--- freem/src/fmadm.c 2025/04/13 15:12:21 1.36 +++ freem/src/fmadm.c 2025/04/14 19:20:20 1.37 @@ -1,5 +1,5 @@ /* - * $Id: fmadm.c,v 1.36 2025/04/13 15:12:21 snw Exp $ + * $Id: fmadm.c,v 1.37 2025/04/14 19:20:20 snw Exp $ * FreeM Administration Tool * * @@ -24,6 +24,9 @@ * along with FreeM. If not, see . * * $Log: fmadm.c,v $ + * Revision 1.37 2025/04/14 19:20:20 snw + * Create LOCALSTATEDIR during fmadm configure if needed + * * Revision 1.36 2025/04/13 15:12:21 snw * Fix transaction checkpoints on OS/2 [CLOSES #34] * @@ -1522,6 +1525,7 @@ void fm_configure (void) { char rundir[4096]; char varbase[4096]; + char vardir[4096]; char sysrtn[4096]; char sysgbl[4096]; char usrrtn[4096]; @@ -1572,7 +1576,8 @@ void fm_configure (void) exit (1); } #endif - + + snprintf (vardir, sizeof (vardir) - 1, "%s", LOCALSTATEDIR); snprintf (varbase, sizeof (varbase) - 1, "%s/freem", LOCALSTATEDIR); snprintf (rundir, sizeof (rundir) - 1, "%s/freem/run", LOCALSTATEDIR); snprintf (sysrtn, sizeof (sysrtn) - 1, "%s/freem/%s/SYSTEM/routines", LOCALSTATEDIR, fma_environment); @@ -1651,6 +1656,12 @@ void fm_configure (void) set_permissions (confbase, username, groupname, 0775); } + if (stat (vardir, &etcstat) == -1) { + fprintf (stderr, "fmadm: creating %s [vardir]\n", vardir); + mkdir (vardir, 0775); + set_permissions (vardir, username, groupname, 0775); + } + if (stat (varbase, &etcstat) == -1) { fprintf (stderr, "fmadm: creating %s [varbase]\n", varbase); mkdir (varbase, 0775);