version 1.1, 2025/01/19 02:04:04
|
version 1.7, 2025/04/13 04:22:43
|
Line 1
|
Line 1
|
/* |
/* |
* * |
* $Id$ |
* * * |
* ^$SYSTEM ssvn |
* * * |
|
* *************** |
|
* * * * * |
|
* * MUMPS * |
|
* * * * * |
|
* *************** |
|
* * * |
|
* * * |
|
* * |
|
* |
|
* ssvn_system.c |
|
* ^$SYSTEM ssv |
|
* |
* |
* |
* |
* 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/13 04:22:43 snw |
|
* Fix snprintf calls |
|
* |
|
* Revision 1.6 2025/04/06 03:38:05 snw |
|
* Prepare for adding packaging functionality to fmd |
|
* |
|
* 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: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 <inttypes.h> |
#include <inttypes.h> |
Line 56 void ssvn_system_set(char *sub)
|
Line 60 void ssvn_system_set(char *sub)
|
|
|
d_buf[0] = '\201'; |
d_buf[0] = '\201'; |
d_buf[1] = '\201'; |
d_buf[1] = '\201'; |
snprintf (k_buf, 254, "^$SYSTEM\202%s\201", sub); |
snprintf (k_buf, sizeof (k_buf) - 1, "^$SYSTEM\202%s\201", sub); |
|
|
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
Line 109 void ssvn_system_update(void)
|
Line 113 void ssvn_system_update(void)
|
strcpy (line_ns, line + 1); |
strcpy (line_ns, line + 1); |
line_ns[strlen (line_ns) - 2] = '\0'; |
line_ns[strlen (line_ns) - 2] = '\0'; |
|
|
snprintf (k_buf, 254, "^$SYSTEM\202NAMESPACE\202%s\201", line_ns); |
snprintf (k_buf, sizeof (k_buf) - 1, "^$SYSTEM\202NAMESPACE\202%s\201", line_ns); |
symtab_shm (set_sym, k_buf, "\201"); |
symtab_shm (set_sym, k_buf, "\201"); |
} |
} |
|
|
Line 117 void ssvn_system_update(void)
|
Line 121 void ssvn_system_update(void)
|
|
|
fclose (fp); |
fclose (fp); |
|
|
snprintf (k_buf, 254, "^$SYSTEM\202CHANNELS\202TERMINAL\201"); |
snprintf (k_buf, sizeof (k_buf) - 1, "^$SYSTEM\202CHANNELS\202TERMINAL\201"); |
snprintf (d_buf, 254, "0,0\201"); |
snprintf (d_buf, sizeof (d_buf) - 1, "0,0\201"); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
snprintf (k_buf, 254, "^$SYSTEM\202CHANNELS\202FILE\201"); |
snprintf (k_buf, sizeof (k_buf) - 1, "^$SYSTEM\202CHANNELS\202FILE\201"); |
snprintf (d_buf, 254, "1,%d\201", FIRSTSCK - 1); |
snprintf (d_buf, sizeof (d_buf) - 1, "1,%d\201", FIRSTSCK - 1); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
snprintf (k_buf, 254, "^$SYSTEM\202CHANNELS\202SOCKET\201"); |
snprintf (k_buf, sizeof (k_buf) - 1, "^$SYSTEM\202CHANNELS\202SOCKET\201"); |
snprintf (d_buf, 254, "%d,%d\201", FIRSTSCK, MAXDEV - 1); |
snprintf (d_buf, sizeof (d_buf) - 1, "%d,%d\201", FIRSTSCK, MAXDEV - 1); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
ssvn_job_update (); |
ssvn_job_update (); |
Line 240 void ssvn_system(short action, char *key
|
Line 244 void ssvn_system(short action, char *key
|
break; |
break; |
} |
} |
|
|
sprintf (data, errmes[errnum]); |
sprintf (data, "%s", errmes[errnum]); |
merr_clear (); |
merr_clear (); |
break; |
break; |
|
|
Line 258 void ssvn_system(short action, char *key
|
Line 262 void ssvn_system(short action, char *key
|
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "DEFUDFSVSIZ") == 0) { |
else if (strcmp (r->subscripts[0], "DEFUDFSVSIZ") == 0) { |
sprintf (data, "%ld\201", DEFUDFSVSIZ); |
sprintf (data, "%ld\201", (long) DEFUDFSVSIZ); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "DEFNSIZE") == 0) { |
else if (strcmp (r->subscripts[0], "DEFNSIZE") == 0) { |
sprintf (data, "%ld\201", DEFNSIZE); |
sprintf (data, "%ld\201", (long) DEFNSIZE); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "MAXNO_OF_RBUF") == 0) { |
else if (strcmp (r->subscripts[0], "MAXNO_OF_RBUF") == 0) { |
sprintf (data, "%ld\201", MAXNO_OF_RBUF); |
sprintf (data, "%d\201", MAXNO_OF_RBUF); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "DEFNO_OF_RBUF") == 0) { |
else if (strcmp (r->subscripts[0], "DEFNO_OF_RBUF") == 0) { |
sprintf (data, "%ld\201", DEFNO_OF_RBUF); |
sprintf (data, "%ld\201", (long) DEFNO_OF_RBUF); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "DEFPSIZE0") == 0) { |
else if (strcmp (r->subscripts[0], "DEFPSIZE0") == 0) { |
sprintf (data, "%ld\201", DEFPSIZE0); |
sprintf (data, "%d\201", DEFPSIZE0); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "NO_GLOBLS") == 0) { |
else if (strcmp (r->subscripts[0], "NO_GLOBLS") == 0) { |
sprintf (data, "%ld\201", NO_GLOBLS); |
sprintf (data, "%d\201", NO_GLOBLS); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "NO_OF_GBUF") == 0) { |
else if (strcmp (r->subscripts[0], "NO_OF_GBUF") == 0) { |
sprintf (data, "%ld\201", NO_OF_GBUF); |
sprintf (data, "%d\201", NO_OF_GBUF); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "NESTLEVLS") == 0) { |
else if (strcmp (r->subscripts[0], "NESTLEVLS") == 0) { |
sprintf (data, "%ld\201", NESTLEVLS); |
sprintf (data, "%d\201", NESTLEVLS); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "PARDEPTH") == 0) { |
else if (strcmp (r->subscripts[0], "PARDEPTH") == 0) { |
sprintf (data, "%ld\201", PARDEPTH); |
sprintf (data, "%d\201", PARDEPTH); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "PATDEPTH") == 0) { |
else if (strcmp (r->subscripts[0], "PATDEPTH") == 0) { |
sprintf (data, "%ld\201", PATDEPTH); |
sprintf (data, "%d\201", PATDEPTH); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "TRLIM") == 0) { |
else if (strcmp (r->subscripts[0], "TRLIM") == 0) { |
sprintf (data, "%ld\201", TRLIM); |
sprintf (data, "%d\201", TRLIM); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "ARGS_IN_ESC") == 0) { |
else if (strcmp (r->subscripts[0], "ARGS_IN_ESC") == 0) { |
sprintf (data, "%ld\201", ARGS_IN_ESC); |
sprintf (data, "%d\201", ARGS_IN_ESC); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "ZTLEN") == 0) { |
else if (strcmp (r->subscripts[0], "ZTLEN") == 0) { |
sprintf (data, "%ld\201", ZTLEN); |
sprintf (data, "%d\201", ZTLEN); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "FUNLEN") == 0) { |
else if (strcmp (r->subscripts[0], "FUNLEN") == 0) { |
sprintf (data, "%ld\201", FUNLEN); |
sprintf (data, "%d\201", FUNLEN); |
merr_clear (); |
merr_clear (); |
break; |
break; |
} |
} |
else if (strcmp (r->subscripts[0], "STRING_MAX") == 0) { |
else if (strcmp (r->subscripts[0], "STRING_MAX") == 0) { |
|
|
sprintf (data, "%ld\201", STRLEN); |
sprintf (data, "%d\201", STRLEN); |
merr_clear (); |
merr_clear (); |
break; |
break; |
|
|
Line 376 void ssvn_system(short action, char *key
|
Line 380 void ssvn_system(short action, char *key
|
} |
} |
else if (strcmp (r->subscripts[0], "ZDATE_FORMAT") == 0) { |
else if (strcmp (r->subscripts[0], "ZDATE_FORMAT") == 0) { |
get_conf ("SYSTEM", "zdate_format", data); |
get_conf ("SYSTEM", "zdate_format", data); |
stcnv_c2m (data); |
stcnv_c2m (data); |
|
|
|
|
break; |
break; |
} |
} |
Line 437 void ssvn_system(short action, char *key
|
Line 440 void ssvn_system(short action, char *key
|
merr_clear (); |
merr_clear (); |
goto done; |
goto done; |
|
|
case dat: |
case fra_dat: |
symtab_shm (action, key, data); |
symtab_shm (action, key, data); |
merr_clear (); |
merr_clear (); |
goto done; |
goto done; |