--- freem/src/global_dispatch.c 2025/03/09 19:14:25 1.4 +++ freem/src/global_dispatch.c 2025/04/09 19:52:02 1.8 @@ -1,5 +1,5 @@ /* - * $Id: global_dispatch.c,v 1.4 2025/03/09 19:14:25 snw Exp $ + * $Id: global_dispatch.c,v 1.8 2025/04/09 19:52:02 snw Exp $ * global handler dispatch module * * @@ -24,6 +24,18 @@ * along with FreeM. If not, see . * * $Log: global_dispatch.c,v $ + * 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 * @@ -53,17 +65,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); @@ -192,7 +196,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); @@ -424,7 +428,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: @@ -466,7 +470,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);