--- freem/src/fmadm.c 2025/03/24 20:13:34 1.12
+++ freem/src/fmadm.c 2025/03/31 16:33:56 1.18
@@ -1,5 +1,5 @@
/*
- * $Id: fmadm.c,v 1.12 2025/03/24 20:13:34 snw Exp $
+ * $Id: fmadm.c,v 1.18 2025/03/31 16:33:56 snw Exp $
* FreeM Administration Tool
*
*
@@ -24,6 +24,24 @@
* along with FreeM. If not, see .
*
* $Log: fmadm.c,v $
+ * Revision 1.18 2025/03/31 16:33:56 snw
+ * Work on fmadm edit global
+ *
+ * Revision 1.17 2025/03/30 01:36:58 snw
+ * Make it easier to bring back fma_gedit, fix double-free in global handler, limit $CHAR to 7-bit ASCII
+ *
+ * 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
*
@@ -62,6 +80,10 @@
#include "namespace.h"
#include "fs.h"
+#if defined(__OS2__)
+# include
+#endif
+
#ifdef HAVE_LIBREADLINE
# if defined(HAVE_READLINE_READLINE_H)
# include
@@ -1036,11 +1058,9 @@ int fm_edit (short object, int optc, cha
case OBJ_ROUTINE:
return fma_routines_edit (optc, options);
- /*
case OBJ_GLOBAL:
return fma_globals_edit (optc, options);
- */
-
+
default:
fprintf (stderr, "fmadm: 'edit' is an invalid action for '%s'\n", obj_str);
return 1;
@@ -1075,7 +1095,7 @@ void fm_reconfigure(void)
retval = rename (config_file, config_backup);
if (retval == 0) {
- fprintf (stderr, "[OK]\n\n");
+ fprintf (stderr, "[OK]\n");
fm_configure ();
@@ -1134,9 +1154,9 @@ void fm_configure (void)
}
if (file_exists (config_file)) {
- fprintf (stderr, "fmadm: '%s' already exists.\n\n", config_file);
- fprintf (stderr, "'fmadm configure' may only be used on a fresh installation of FreeM.\n");
- exit (1);
+ fprintf (stderr, "fmadm: '%s' already exists; running fmadm reconfigure instead\n", config_file);
+ fm_reconfigure ();
+ return;
}
@@ -1160,12 +1180,13 @@ void fm_configure (void)
unlink (dstfile);
fprintf (stderr, "fmadm: running on OS/2; will copy %s to %s\n", srcfile, dstfile);
- chmod (dstfile, 0755);
- if (cp (dstfile, srcfile) != 0) {
+ 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");
@@ -1177,9 +1198,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);