--- freem/src/fmadm.c 2025/03/24 19:19:42 1.9
+++ freem/src/fmadm.c 2025/03/24 20:58:05 1.15
@@ -1,5 +1,5 @@
/*
- * $Id: fmadm.c,v 1.9 2025/03/24 19:19:42 snw Exp $
+ * $Id: fmadm.c,v 1.15 2025/03/24 20:58:05 snw Exp $
* FreeM Administration Tool
*
*
@@ -24,6 +24,24 @@
* along with FreeM. If not, see .
*
* $Log: fmadm.c,v $
+ * 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 +71,10 @@
#include "namespace.h"
#include "fs.h"
+#if defined(__OS2__)
+# include
+#endif
+
#ifdef HAVE_LIBREADLINE
# if defined(HAVE_READLINE_READLINE_H)
# include
@@ -1143,17 +1165,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, 0L) != 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 +1191,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);