version 1.2, 2025/03/09 15:20:18
|
version 1.5, 2025/04/13 04:22:43
|
Line 1
|
Line 1
|
/* |
/* |
* * |
* $Id$ |
* * * |
|
* * * |
|
* *************** |
|
* * * * * |
|
* * MUMPS * |
|
* * * * * |
|
* *************** |
|
* * * |
|
* * * |
|
* * |
|
* |
|
* ssvn.c |
|
* structured system variable support |
* structured system variable support |
* |
* |
* |
* |
* Author: Serena Willis <snw@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.5 2025/04/13 04:22:43 snw |
|
* Fix snprintf calls |
|
* |
|
* Revision 1.4 2025/04/09 15:16:50 snw |
|
* Fix buffer overruns in mref_to_external and ssvn.c |
|
* |
|
* Revision 1.3 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 <stdio.h> |
#include <stdio.h> |
Line 117 void ssvn (short action, char *key, char
|
Line 118 void ssvn (short action, char *key, char
|
int i, j; |
int i, j; |
char ch; |
char ch; |
char ptmp[256]; |
char ptmp[256]; |
|
char sbuf[256]; |
|
|
|
snprintf (sbuf, sizeof (sbuf) - 1, " C CHARACTER D DEVICE DI DISPLAY E EVENT G GLOBAL J JOB LI LIBRARY L LOCK O OBJECT P R ROUTINE S SYSTEM W WINDOW \201"); |
|
|
|
|
if ((rtn_dialect () == D_M77) || |
if ((rtn_dialect () == D_M77) || |
(rtn_dialect () == D_M84) || |
(rtn_dialect () == D_M84) || |
(rtn_dialect () == D_M90)) { |
(rtn_dialect () == D_M90)) { |
Line 151 void ssvn (short action, char *key, char
|
Line 156 void ssvn (short action, char *key, char
|
|
|
if ((ptmp[1] != 'Z') && (ptmp[1] != 'Y')) { |
if ((ptmp[1] != 'Z') && (ptmp[1] != 'Y')) { |
|
|
if (find (" C CHARACTER D DEVICE DI DISPLAY E EVENT G GLOBAL J JOB LI LIBRARY L LOCK O OBJECT P R ROUTINE S SYSTEM W WINDOW ", ptmp) == FALSE) { |
if (find (sbuf, ptmp) == FALSE) { |
merr_raise (M60); |
merr_raise (M60); |
return; |
return; |
} |
} |