--- freem/src/fmadm.c	2025/03/24 19:19:42	1.9
+++ freem/src/fmadm.c	2025/03/24 20:59:58	1.16
@@ -1,5 +1,5 @@
 /*
- *   $Id: fmadm.c,v 1.9 2025/03/24 19:19:42 snw Exp $
+ *   $Id: fmadm.c,v 1.16 2025/03/24 20:59:58 snw Exp $
  *    FreeM Administration Tool
  *
  *  
@@ -24,6 +24,27 @@
  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
  *
  *   $Log: fmadm.c,v $
+ *   Revision 1.16  2025/03/24 20:59:58  snw
+ *   Try using DosCopy API instead of built-in cp function on OS/2
+ *
+ *   Revision 1.15  2025/03/24 20:58:05  snw
+ *   Try using DosCopy API instead of built-in cp function on OS/2
+ *
+ *   Revision 1.14  2025/03/24 20:57:06  snw
+ *   Try using DosCopy API instead of built-in cp function on OS/2
+ *
+ *   Revision 1.13  2025/03/24 20:15:09  snw
+ *   Set file permissions on freemd.exe on OS/2 in fmadm configure
+ *
+ *   Revision 1.12  2025/03/24 20:13:34  snw
+ *   Set file permissions on freemd.exe on OS/2 in fmadm configure
+ *
+ *   Revision 1.11  2025/03/24 19:25:48  snw
+ *   Make fmadm configure copy freem.exe to freemd.exe for daemon operation on OS/2 systems
+ *
+ *   Revision 1.10  2025/03/24 19:22:16  snw
+ *   Make fmadm configure copy freem.exe to freemd.exe for daemon operation on OS/2 systems
+ *
  *   Revision 1.9  2025/03/24 19:19:42  snw
  *   Make fmadm configure copy freem.exe to freemd.exe for daemon operation on OS/2 systems
  *
@@ -53,6 +74,10 @@
 #include "namespace.h"
 #include "fs.h"
 
+#if defined(__OS2__)
+# include <os2.h>
+#endif
+
 #ifdef HAVE_LIBREADLINE
 #  if defined(HAVE_READLINE_READLINE_H)
 #    include <readline/readline.h>
@@ -1143,17 +1168,21 @@ void fm_configure (void)
 #if defined(__OS2__)
     {
         char srcfile[PATHLEN];
-        char dstfile[PATHLEN];
-
+        char dstfile[PATHLEN];        
+        
         snprintf (srcfile, PATHLEN, "%s/bin/freem.exe", PREFIX);
         snprintf (dstfile, PATHLEN, "%s/bin/freemd.exe", PREFIX);
-        
-        fprintf (stderr, "fmadm:  running on OS/2; will copy %s to %s\n" srcfile, dstfile);
 
-        if (cp (dstfile, srcfile) != 0) {
+        unlink (dstfile);
+        
+        fprintf (stderr, "fmadm:  running on OS/2; will copy %s to %s\n", srcfile, dstfile);
+        
+        if (DosCopy (srcfile, dstfile, 1) != 0) {
             fprintf (stderr, "fmadm:  fatal error copying %s to %s\n", srcfile, dstfile);
             exit (1);
         }
+
+        chmod (dstfile, 0755);
     }
 #else
     fprintf (stderr, "fmadm:  not running on OS/2\n");
@@ -1165,9 +1194,6 @@ void fm_configure (void)
     printf ("This utility will create the initial configuration file for ");
     printf ("FreeM environment '%s' in %s.\n\n", fma_environment, config_file);    
     
-
-   
-    
     /* check for existence of needed directories */
     if (stat (SYSCONFDIR, &etcstat) == -1) {
 	fprintf (stderr, "fmadm:  creating %s\n", SYSCONFDIR);