--- freem/src/mpsdef.h 2025/01/19 02:04:04 1.1 +++ freem/src/mpsdef.h 2025/04/30 17:19:16 1.11 @@ -1,23 +1,11 @@ /* - * * - * * * - * * * - * *************** - * * * * * - * * MUMPS * - * * * * * - * *************** - * * * - * * * - * * - * - * mpsdef.h + * $Id: mpsdef.h,v 1.11 2025/04/30 17:19:16 snw Exp $ * common external definitions for all mumps modules * * - * Author: Serena Willis + * Author: Serena Willis * Copyright (C) 1998 MUG Deutschland - * Copyright (C) 2020, 2023 Coherent Logic Development LLC + * Copyright (C) 2020, 2023, 2025 Coherent Logic Development LLC * * * This file is part of FreeM. @@ -35,6 +23,34 @@ * You should have received a copy of the GNU Affero Public License * along with FreeM. If not, see . * + * $Log: mpsdef.h,v $ + * Revision 1.11 2025/04/30 17:19:16 snw + * Improve backtraces in debugger + * + * Revision 1.10 2025/04/28 19:38:55 snw + * Add trace mode + * + * Revision 1.9 2025/04/13 04:22:43 snw + * Fix snprintf calls + * + * Revision 1.8 2025/04/10 01:24:38 snw + * Remove C++ style comments + * + * Revision 1.7 2025/04/04 19:43:18 snw + * Switch to using environment catalog to determine user and group for environment, and remove -u and -g flags from freem + * + * Revision 1.6 2025/04/02 03:02:42 snw + * Stop requiring users to pass -e to fmadm when -u or -g are passed + * + * Revision 1.5 2025/03/24 04:05:36 snw + * Replace crlf with frm_crlf to avoid symbol conflict with readline on OS/2 + * + * 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 @@ -167,7 +183,7 @@ extern short nakoffs; /* offset to nak extern char zfunkey[44][FUNLEN]; /* $ZF function key */ extern short xpos[MAXDEV + 1]; /* $X-vector */ extern short ypos[MAXDEV + 1]; /* $Y-vector */ -extern short crlf[MAXDEV + 1]; /* CR/LF flag vector */ +extern short frm_crlf[MAXDEV + 1]; /* CR/LF flag vector */ extern short fm_nodelay[MAXDEV + 1]; /* nodelay flag vector */ extern int SIflag[MAXDEV + 1]; /* SI/SO flag */ extern int ESCflag[MAXDEV + 1]; /* ESC flag */ @@ -246,6 +262,7 @@ extern int noclear; extern int standard; /* 1=standard only, */ extern int quiet_mode; /* quiet mode */ extern char config_file[4096]; /* path to configuration file */ +extern char env_config_file[4096]; /* path to environment config file */ extern char shm_env[255]; /* shared memory environment */ /* 0=non standard features enabled */ extern short ierr; @@ -325,10 +342,6 @@ extern char oucpath[PATHLEN]; /* OPEN/U extern char rgafile[PATHLEN]; /* routine/global access protocol file */ extern char zargdefname[PATHLEN]; /* default varname for Zcommands */ extern FILE *rgaccess; /* dto. filedes */ -extern char locktab[PATHLEN]; /* file with LOCKs */ -extern char zallotab[PATHLEN]; /* file with ZALLOCATE */ -extern char hcpyfile[PATHLEN]; /* hardcopy file */ -extern char jourfile[PATHLEN]; /* journal file */ extern FILE *jouraccess; /* dto. filedes */ extern char curdir[PATHLEN]; /* current directory */ @@ -384,7 +397,7 @@ extern short direct_mode; extern short loadsw; /* flag to avoid redundant loads */ extern short extr_types[NESTLEVLS + 1]; /* return types of extrinsic functions */ -extern char destructors[10][50]; +extern char destructors[10][OBJ_DSTRSIZE]; extern int destructor_ct; extern char private_keys[MAX_PRIVATE_KEYS][255]; @@ -403,8 +416,6 @@ extern short timeoutms; extern char tmp4[80]; extern short param; /* parameter count */ extern short paramx; /* current parameter */ -extern char *ttyname (); -//extern char *calloc (); extern short level; /* level count */ extern short nestlt[NESTLEVLS + 1]; /* stack $T / stack levelcount */ extern pid_t pid; /* $J = process ID */ @@ -423,11 +434,9 @@ extern int strict_mode; extern short first_process; extern size_t shm_init_size; extern short inrpt_after_async; - -//#ifndef OLDUNIX -// extern struct sigaction act; /* signals stuff */ -//#endif /* OLDUNIX */ - +extern int trace_mode; +extern short debug_mode; +extern short lasterr[NESTLEVLS + 1]; /* Macros */ /* Create a new variable of type (datatype) with space for qty instances */ #define NEW(datatype,qty) ((datatype *)calloc(qty,sizeof(datatype)))