--- freem/src/frmgbl.c	2025/02/28 20:51:20	1.3
+++ freem/src/frmgbl.c	2025/04/02 03:02:42	1.8
@@ -1,23 +1,11 @@
 /*
- *                            *
- *                           * *
- *                          *   *
- *                     ***************
- *                      * *       * *
- *                       *  MUMPS  *
- *                      * *       * *
- *                     ***************
- *                          *   *
- *                           * *
- *                            *
- *
- *   frmgbl.c
+ *   $Id: frmgbl.c,v 1.8 2025/04/02 03:02:42 snw Exp $
  *    freem global C variables
  *
  *  
- *   Author: Serena Willis <jpw@coherent-logic.com>
+ *   Author: Serena Willis <snw@coherent-logic.com>
  *    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 <https://www.gnu.org/licenses/>.
  *
+ *   $Log: frmgbl.c,v $
+ *   Revision 1.8  2025/04/02 03:02:42  snw
+ *   Stop requiring users to pass -e to fmadm when -u or -g are passed
+ *
+ *   Revision 1.7  2025/04/01 16:37:12  snw
+ *   Configure DEFAULT environment the same as others, and set permissions/ownership directly in fmadm configure. Add env.conf file as a centralized configuration listing all environments.
+ *
+ *   Revision 1.6  2025/03/24 04:05:36  snw
+ *   Replace crlf with frm_crlf to avoid symbol conflict with readline on OS/2
+ *
+ *   Revision 1.5  2025/03/09 19:14:25  snw
+ *   First phase of REUSE compliance and header reformat
+ *
+ *
+ * SPDX-FileCopyrightText:  (C) 2025 Coherent Logic Development LLC
+ * SPDX-License-Identifier: AGPL-3.0-or-later
  **/
 
 /* needed if byte data are to be interpreted as unsigned integer */
@@ -121,10 +125,7 @@
 #define VIEW        'v'
 #define WRITE       'w'
 #define XECUTE      'x'
-
-#define ZALLOCATE   'A'
 #define ZBREAK      'B'
-#define ZDEALLOCATE 'D'
 #define ZGO         'G'
 #define ZHALT       'H'
 #define ZINSERT     'I'
@@ -335,7 +336,7 @@ frm_devstat devstat[MAXDEV + 1]; /* chan
 
 short   xpos[MAXDEV + 1];       /* $X-vector                       */
 short   ypos[MAXDEV + 1];       /* $Y-vector                       */
-short   crlf[MAXDEV + 1];       /* CR/LF flag vector               */
+short   frm_crlf[MAXDEV + 1];       /* CR/LF flag vector               */
 short   fm_nodelay[MAXDEV + 1];     /* nodelay flag vector             */
 
 int     ESCflag[MAXDEV + 1] =
@@ -415,6 +416,9 @@ int     noclear = FALSE;        /* nocle
 int     standard = D_FREEM;     /* default dialect */
 int     quiet_mode = FALSE;      /* quiet mode */
 char    config_file[4096];      /* path to configuration file      */
+char    env_config_file[4096];  /* path to environment config file */
+char    env_user[255];
+char    env_group[255];
 char    shm_env[255];           /* shared memory environment       */
 
 short fp_mode = 0;             /* set to 0 for fixed-point math, 1 for IEEE754 floating point */
@@ -519,14 +523,13 @@ char    rou0plib[PATHLEN];          /* %
 char    rou1plib[PATHLEN];          /* %routine path (ZL..)     */
 char    oucpath[PATHLEN] = "\201";  /* OPEN/USE/CLOSE path */
 char    zargdefname[PATHLEN]= "%\201";  /* default varname for Z-commands */
-char    jourfile[PATHLEN] = "/usr/tmp/ioprotocol";  /* journal file */
 FILE   *jouraccess;         /* dto. filedes */
 char    curdir[256] = ".";      /* current directory */
 
 char    startuprou[PATHLEN] = "\201";   /* start up routine from cmdline*/
 
 char    zcommds[256] =
-" za zas zb zd zg zh zi zj zl zn zp zq zr zs zt zwr zallocate zbreak zdeallocate \
+" za zas zb zd zg zh zi zj zl zn zp zq zr zs zt zwr zbreak \
 zgo zhalt zinsert zjob zload znamespace zprint zquit zremove zsave ztrap zwrite \201";  /* intrinsic z-commands */
 char    zfunctions[256] =       /* intrinsic z-functions */
 " zb zc zd ze zh zht zk zl zm zn zo zp zr zs zt zboolean zcall zcr zcrc zdata zdate zedit zhorolog \