version 1.2, 2025/02/28 22:31:53
|
version 1.6, 2025/05/02 16:30:16
|
Line 1
|
Line 1
|
/* |
/* |
* * |
* $Id$ |
* * * |
|
* * * |
|
* *************** |
|
* * * * * |
|
* * MUMPS * |
|
* * * * * |
|
* *************** |
|
* * * |
|
* * * |
|
* * |
|
* |
|
* fma_globals.c |
|
* fmadm - globals |
* fmadm - globals |
* |
* |
* |
* |
* 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.6 2025/05/02 16:30:16 snw |
|
* Fix broken build due to time issues |
|
* |
|
* Revision 1.5 2025/03/22 18:43:54 snw |
|
* Make STRLEN 255 chars and add BIGSTR macro for larger buffers |
|
* |
|
* 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 52
|
Line 53
|
|
|
void gl (char *global, short kf, short df, short nr, int chop); |
void gl (char *global, short kf, short df, short nr, int chop); |
int gverify (char *gpath); |
int gverify (char *gpath); |
static short int g_collate (); /* if 't' follows 's' in MUMPS collating */ |
/*static short int g_collate ();*/ /* if 't' follows 's' in MUMPS collating */ |
int key_check (char *key); |
int key_check (char *key); |
void check (unsigned long blknbr); |
void check (unsigned long blknbr); |
static short int g_collate (char s[], char t[]); /* if 't' follows 's' in MUMPS collating */ |
static short int g_collate (char s[], char t[]); /* if 't' follows 's' in MUMPS collating */ |
Line 80 int fma_globals_list (int optc, char **o
|
Line 81 int fma_globals_list (int optc, char **o
|
DIR *dir; |
DIR *dir; |
struct dirent *ent; |
struct dirent *ent; |
|
|
char filename[STRLEN]; |
char filename[PATHLEN]; |
|
|
int ct = 0; |
int ct = 0; |
|
|
Line 97 int fma_globals_list (int optc, char **o
|
Line 98 int fma_globals_list (int optc, char **o
|
|
|
while ((ent = readdir (dir)) != NULL) { |
while ((ent = readdir (dir)) != NULL) { |
|
|
strncpy (filename, ent->d_name, STRLEN - 1); |
strncpy (filename, ent->d_name, PATHLEN - 1); |
|
|
if (filename[0] == '^' && filename[1] != '$') { |
if (filename[0] == '^' && filename[1] != '$') { |
printf (" %s\n", filename); |
printf (" %s\n", filename); |
Line 118 int fma_globals_examine (int optc, char
|
Line 119 int fma_globals_examine (int optc, char
|
DIR *dir; |
DIR *dir; |
struct dirent *ent; |
struct dirent *ent; |
|
|
char gpath[STRLEN]; |
char gpath[PATHLEN]; |
int i; |
int i; |
int ct = 0; |
int ct = 0; |
|
|
Line 153 int fma_globals_examine (int optc, char
|
Line 154 int fma_globals_examine (int optc, char
|
|
|
for (i = fma_base_opt; i < optc; i++) { |
for (i = fma_base_opt; i < optc; i++) { |
|
|
snprintf (gpath, STRLEN - 1, "%s/%s", fma_global_path, opts[i]); |
snprintf (gpath, PATHLEN - 1, "%s/%s", fma_global_path, opts[i]); |
gl (gpath, FALSE, FALSE, FALSE, strlen (fma_global_path)); |
gl (gpath, FALSE, FALSE, FALSE, strlen (fma_global_path)); |
|
|
ct++; |
ct++; |
Line 165 int fma_globals_examine (int optc, char
|
Line 166 int fma_globals_examine (int optc, char
|
|
|
while ((ent = readdir (dir)) != NULL) { |
while ((ent = readdir (dir)) != NULL) { |
|
|
strncpy (gpath, ent->d_name, STRLEN - 1); |
strncpy (gpath, ent->d_name, PATHLEN - 1); |
|
|
if (gpath[0] == '^' && gpath[1] != '$') { |
if (gpath[0] == '^' && gpath[1] != '$') { |
|
|
snprintf (gpath, STRLEN - 1, "%s/%s", fma_global_path, ent->d_name); |
snprintf (gpath, PATHLEN - 1, "%s/%s", fma_global_path, ent->d_name); |
|
|
gl (gpath, FALSE, FALSE, FALSE, strlen (fma_global_path)); |
gl (gpath, FALSE, FALSE, FALSE, strlen (fma_global_path)); |
|
|
Line 191 int fma_globals_examine (int optc, char
|
Line 192 int fma_globals_examine (int optc, char
|
int fma_globals_remove (int optc, char **opts) |
int fma_globals_remove (int optc, char **opts) |
{ |
{ |
|
|
char gpath[STRLEN]; |
char gpath[PATHLEN]; |
int i; |
int i; |
int ct = 0; |
int ct = 0; |
int er = 0; |
int er = 0; |
Line 206 int fma_globals_remove (int optc, char *
|
Line 207 int fma_globals_remove (int optc, char *
|
for (i = fma_base_opt; i < optc; i++) { |
for (i = fma_base_opt; i < optc; i++) { |
printf ("%-10s\t", opts[i]); |
printf ("%-10s\t", opts[i]); |
|
|
snprintf (gpath, STRLEN - 1, "%s/%s", fma_global_path, opts[i]); |
snprintf (gpath, PATHLEN - 1, "%s/%s", fma_global_path, opts[i]); |
|
|
if (unlink (gpath) == -1) { |
if (unlink (gpath) == -1) { |
printf ("[FAIL]\n"); |
printf ("[FAIL]\n"); |
Line 232 int fma_globals_verify (int optc, char *
|
Line 233 int fma_globals_verify (int optc, char *
|
DIR *dir; |
DIR *dir; |
struct dirent *ent; |
struct dirent *ent; |
|
|
char gpath[STRLEN]; |
char gpath[PATHLEN]; |
int i; |
int i; |
int ct = 0; |
int ct = 0; |
|
|
Line 266 int fma_globals_verify (int optc, char *
|
Line 267 int fma_globals_verify (int optc, char *
|
|
|
for (i = fma_base_opt; i < optc; i++) { |
for (i = fma_base_opt; i < optc; i++) { |
|
|
snprintf (gpath, STRLEN - 1, "%s/%s", fma_global_path, opts[i]); |
snprintf (gpath, PATHLEN - 1, "%s/%s", fma_global_path, opts[i]); |
|
|
exstat = 0; |
exstat = 0; |
gverify (gpath); |
gverify (gpath); |
Line 282 int fma_globals_verify (int optc, char *
|
Line 283 int fma_globals_verify (int optc, char *
|
|
|
while ((ent = readdir (dir)) != NULL) { |
while ((ent = readdir (dir)) != NULL) { |
|
|
strncpy (gpath, ent->d_name, STRLEN - 1); |
strncpy (gpath, ent->d_name, PATHLEN - 1); |
|
|
if (gpath[0] == '^') { |
if (gpath[0] == '^') { |
|
|
snprintf (gpath, STRLEN - 1, "%s/%s", fma_global_path, ent->d_name); |
snprintf (gpath, PATHLEN - 1, "%s/%s", fma_global_path, ent->d_name); |
|
|
exstat = 0; |
exstat = 0; |
gverify (gpath); |
gverify (gpath); |