--- freem/src/mumps.c 2025/03/09 15:20:18 1.3 +++ freem/src/mumps.c 2025/03/24 16:07:55 1.7 @@ -1,23 +1,11 @@ /* - * * - * * * - * * * - * *************** - * * * * * - * * MUMPS * - * * * * * - * *************** - * * * - * * * - * * - * - * mumps.c + * $Id: mumps.c,v 1.7 2025/03/24 16:07:55 snw Exp $ * main module of freem * * * Author: Serena Willis * Copyright (C) 1998 MUG Deutschland - * Copyright (C) 2020 Coherent Logic Development LLC + * Copyright (C) 2020, 2025 Coherent Logic Development LLC * * * This file is part of FreeM. @@ -35,6 +23,22 @@ * You should have received a copy of the GNU Affero Public License * along with FreeM. If not, see . * + * $Log: mumps.c,v $ + * 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 + * + * + * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC + * SPDX-License-Identifier: AGPL-3.0-or-later **/ #include @@ -443,6 +447,14 @@ int main (int argc, char **argv, char ** } } #endif + +#if defined(__OS2__) + if (run_daemon == TRUE && nofork == FALSE) { + printf ("freem: running on OS/2; forcing daemon into foreground\r\n"); + nofork = TRUE; + } +#endif + snprintf (config_file, 4096, "%s/freem/%s/freem.conf", SYSCONFDIR, shm_env); if (run_daemon == TRUE && geteuid() == 0) { @@ -767,6 +779,10 @@ int main (int argc, char **argv, char ** fprintf (stderr, "Coherent Logic Development FreeM version %s\r\n", verstr); fprintf (stderr, "freem: shared memory for environment %s initialized (%ld bytes of shared memory @ '%p')\r\nfreem: system ready\r\n", shm_env, (long) shm_init_size, shm_config->dta); + +#if defined(__OS2__) + fprintf (stderr, "freem: running on OS/2; daemon was forced into the foreground if not explicitly run with --nofork\r\n"); +#endif for (;;) { @@ -886,13 +902,14 @@ int main (int argc, char **argv, char ** snprintf (version, 255, "\r\nCoherent Logic Development FreeM version %s [DIALECT: %s%s]\r\n\201", verstr, m_dialect, (restricted_mode == TRUE ? "/RESTRICTED" : "")); write_m (version); - snprintf (version, 255, "Copyright (C) 2014, 2020, 2021, 2023 Coherent Logic Development LLC\r\n\r\n\201"); + 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 {