--- freem/src/global_dispatch.c 2025/03/09 15:20:18 1.3 +++ freem/src/global_dispatch.c 2025/04/13 04:22:43 1.10 @@ -1,23 +1,11 @@ /* - * * - * * * - * * * - * *************** - * * * * * - * * MUMPS * - * * * * * - * *************** - * * * - * * * - * * - * - * global_dispatch.c + * $Id: global_dispatch.c,v 1.10 2025/04/13 04:22:43 snw Exp $ * global handler dispatch module * * * 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,31 @@ * You should have received a copy of the GNU Affero Public License * along with FreeM. If not, see . * + * $Log: global_dispatch.c,v $ + * Revision 1.10 2025/04/13 04:22:43 snw + * Fix snprintf calls + * + * Revision 1.9 2025/04/10 01:24:38 snw + * Remove C++ style comments + * + * Revision 1.8 2025/04/09 19:52:02 snw + * Eliminate as many warnings as possible while building with -Wall + * + * Revision 1.7 2025/04/09 15:16:50 snw + * Fix buffer overruns in mref_to_external and ssvn.c + * + * Revision 1.6 2025/03/29 16:50:42 snw + * Back to cvs-current as version for development; temp fix for double-free issue in global_dispatch + * + * Revision 1.5 2025/03/24 04:13:11 snw + * Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 + * + * Revision 1.4 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 **/ #include @@ -58,17 +71,9 @@ void (*gbl_s)(short, char *, char *); void global_set_engine(char ns, char *engine) { - - - if ((strcmp (engine, "BUILTIN") != 0) && (strcmp (engine, "BERKELEYDB") != 0)) { - - if (strcmp (engine, "NICKELBACK") == 0) { - char *j; - printf ("\r\nERROR: please go burn your CD collection in fire. Here, have a segfault...\r\n"); + + if (strcmp (engine, "BUILTIN") != 0) { - j[2] = '\201'; - } - printf ("\r\nERROR: '%s' is not a valid global storage engine\r\n", engine); merr_raise (M38); @@ -118,8 +123,6 @@ void global_set_engine(char ns, char *en } - //ssvn_job_update (); - merr_raise (OK); return; @@ -197,7 +200,7 @@ void global (short action, char *key, ch name[i] = '\0'; snprintf (mapk_buf, STRLEN - 1, "^$SYSTEM\202MAPPINGS\202GLOBAL\202%s\201", name); - global (get_sym, mapk_buf, mapd_buf); + symtab_shm (get_sym, mapk_buf, mapd_buf); stcnv_m2c (mapd_buf); @@ -345,7 +348,7 @@ void global (short action, char *key, ch /* grab the rest of the gvn */ subprt = nssave + i + 1; - snprintf (r->name, 255, "^%s", subprt); + sprintf (r->name, "^%s", subprt); /* get a fully-formed key */ key = mref_to_internal (r); @@ -429,7 +432,7 @@ void global (short action, char *key, ch case get_sym: sprintf (an, "GET"); break; - case dat: + case fra_dat: sprintf (an, "DATA"); break; case fra_order: @@ -471,7 +474,7 @@ void global (short action, char *key, ch evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0); free (k_buf); - free (d_buf); + /* free (d_buf); */ } free (old_value);