--- freem/src/mumps.c 2025/03/09 19:50:47 1.4 +++ freem/src/mumps.c 2025/03/31 20:01:13 1.9 @@ -1,5 +1,5 @@ /* - * $Id: mumps.c,v 1.4 2025/03/09 19:50:47 snw Exp $ + * $Id: mumps.c,v 1.9 2025/03/31 20:01:13 snw Exp $ * main module of freem * * @@ -24,6 +24,21 @@ * along with FreeM. If not, see . * * $Log: mumps.c,v $ + * Revision 1.9 2025/03/31 20:01:13 snw + * Set d_uid in daemon + * + * Revision 1.8 2025/03/24 16:10:48 snw + * Print error message and exit on OS/2 if daemon is run without --nofork + * + * Revision 1.7 2025/03/24 16:07:55 snw + * Force daemon into foreground on OS/2 + * + * Revision 1.6 2025/03/24 16:04:49 snw + * Force daemon into foreground on OS/2 + * + * Revision 1.5 2025/03/22 21:44:32 snw + * Make the startup messages fewer and add environment name to direct-mode prompt + * * Revision 1.4 2025/03/09 19:50:47 snw * Second phase of REUSE compliance and header reformat * @@ -438,6 +453,14 @@ int main (int argc, char **argv, char ** } } #endif + +#if defined(__OS2__) + if (run_daemon == TRUE && nofork == FALSE) { + printf ("freem: running on OS/2; daemon must be run with --nofork or -k\r\n"); + exit (1); + } +#endif + snprintf (config_file, 4096, "%s/freem/%s/freem.conf", SYSCONFDIR, shm_env); if (run_daemon == TRUE && geteuid() == 0) { @@ -463,6 +486,9 @@ int main (int argc, char **argv, char ** d_uid = d_user->pw_uid; } + else { + d_uid = 0; + } } @@ -884,10 +910,11 @@ int main (int argc, char **argv, char ** snprintf (version, 255, "Copyright (C) 2014, 2020, 2021, 2023, 2025 Coherent Logic Development LLC\r\n\r\n\201"); write_m (version); + /* printf ("Environment: \t%s\r\n", shm_env); printf ("Environment Daemon:\tPID %d\r\n", shm_config->hdr->first_process); printf ("Interpreter Process:\tPID %d\r\n", pid); - + */ } else {