|
|
| version 1.1.1.1, 2025/01/19 02:04:04 | version 1.7, 2025/04/09 15:16:50 |
|---|---|
| Line 1 | Line 1 |
| /* | /* |
| * * | * $Id$ |
| * * * | |
| * * * | |
| * *************** | |
| * * * * * | |
| * * MUMPS * | |
| * * * * * | |
| * *************** | |
| * * * | |
| * * * | |
| * * | |
| * | |
| * global_dispatch.c | |
| * global handler dispatch module | * global handler dispatch module |
| * | * |
| * | * |
| * Author: Serena Willis <jpw@coherent-logic.com> | * Author: Serena Willis <snw@coherent-logic.com> |
| * Copyright (C) 1998 MUG Deutschland | * 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. | * This file is part of FreeM. |
| Line 35 | Line 23 |
| * You should have received a copy of the GNU Affero Public License | * You should have received a copy of the GNU Affero Public License |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | |
| * 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 <stdlib.h> | #include <stdlib.h> |
| Line 197 void global (short action, char *key, ch | Line 201 void global (short action, char *key, ch |
| name[i] = '\0'; | name[i] = '\0'; |
| snprintf (mapk_buf, STRLEN - 1, "^$SYSTEM\202MAPPINGS\202GLOBAL\202%s\201", name); | 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); | stcnv_m2c (mapd_buf); |
| Line 292 void global (short action, char *key, ch | Line 296 void global (short action, char *key, ch |
| } | } |
| if ((r->name[1] == '|')) { | if (r->name[1] == '|') { |
| /* this is an mdc-style extended reference */ | /* this is an mdc-style extended reference */ |
| Line 429 void global (short action, char *key, ch | Line 433 void global (short action, char *key, ch |
| case get_sym: | case get_sym: |
| sprintf (an, "GET"); | sprintf (an, "GET"); |
| break; | break; |
| case dat: | case fra_dat: |
| sprintf (an, "DATA"); | sprintf (an, "DATA"); |
| break; | break; |
| case fra_order: | case fra_order: |
| Line 471 void global (short action, char *key, ch | Line 475 void global (short action, char *key, ch |
| evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0); | evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0); |
| free (k_buf); | free (k_buf); |
| free (d_buf); | /* free (d_buf); */ |
| } | } |
| free (old_value); | free (old_value); |