Diff for /freem/src/namespace.c between versions 1.2 and 1.6

version 1.2, 2025/03/09 15:20:18 version 1.6, 2025/04/13 04:22:43
Line 1 Line 1
 /*  /*
  *                            *   *   $Id$
  *                           * *  
  *                          *   *  
  *                     ***************  
  *                      * *       * *  
  *                       *  MUMPS  *  
  *                      * *       * *  
  *                     ***************  
  *                          *   *  
  *                           * *  
  *                            *  
  *  
  *   namespace.c  
  *    Namespace support   *    Namespace 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.6  2025/04/13 04:22:43  snw
    *   Fix snprintf calls
    *
    *   Revision 1.5  2025/04/09 19:52:02  snw
    *   Eliminate as many warnings as possible while building with -Wall
    *
    *   Revision 1.4  2025/04/02 03:02:42  snw
    *   Stop requiring users to pass -e to fmadm when -u or -g are passed
    *
    *   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 <stddef.h>  #include <stddef.h>
Line 64 Line 68
 #endif  #endif
   
 #define LOCK        'l'  #define LOCK        'l'
 #define ZDEALLOCATE 'D'  
   
 void ns_error(char *ns, char *e)  void ns_error(char *ns, char *e)
 {  {
     char msg_buf[256];      char msg_buf[256];
   
     snprintf(msg_buf, 256, "error switching to namespace '%s': %s (possibly a configuration error?)\r\n\201", ns, e);      snprintf(msg_buf, sizeof (msg_buf) - 1, "error switching to namespace '%s': %s (possibly a configuration error?)\r\n\201", ns, e);
     write_m(msg_buf);      write_m(msg_buf);
   
     return;      return;
Line 98  void set_namespace(char *ns, int verbose Line 101  void set_namespace(char *ns, int verbose
     get_conf (ns, "root", nsroot);      get_conf (ns, "root", nsroot);
   
     if(!file_exists (config_file)) {      if(!file_exists (config_file)) {
         snprintf (tmps, 256, "configuration file '%s' does not exist.\n", config_file);          snprintf (tmps, sizeof (tmps) - 1, "configuration file '%s' does not exist.\n", config_file);
         ns_error (ns, tmps);          ns_error (ns, tmps);
   
         cleanup ();          cleanup ();
Line 110  void set_namespace(char *ns, int verbose Line 113  void set_namespace(char *ns, int verbose
     /* turn off all the old so-called "journal" implementation */      /* turn off all the old so-called "journal" implementation */
     ug_buf[HOME][0] = EOL;      ug_buf[HOME][0] = EOL;
     jour_flag = 0;      jour_flag = 0;
     jourfile[0] = NUL;  
   
     /* the real journal file */      /* the real journal file */
     jour_file[0] = NUL;      jour_file[0] = NUL;
Line 156  void set_namespace(char *ns, int verbose Line 158  void set_namespace(char *ns, int verbose
   
         }          }
         else {          else {
             snprintf (tmps, 256, "invalid journal_mode '%s'", ns_buf);              snprintf (tmps, sizeof (tmps) - 1, "invalid journal_mode '%s'", ns_buf);
             ns_error ("SYSTEM", tmps);              ns_error ("SYSTEM", tmps);
   
             goto jour_end;              goto jour_end;
Line 247  jour_end: Line 249  jour_end:
     /* set up local engine */      /* set up local engine */
     for(i = 0; i < 256; i++) ns_buf[i] = NUL;      for(i = 0; i < 256; i++) ns_buf[i] = NUL;
   
     if(get_conf(ns, "local_engine", ns_buf) == TRUE) {      if(get_conf (ns, "local_engine", ns_buf) == TRUE) {
         sprintf(loc_engine, "%s", ns_buf);          snprintf (loc_engine, sizeof (loc_engine), "%s", ns_buf);
     }      }
     else {      else {
         sprintf(loc_engine, "BUILTIN");          sprintf (loc_engine, "BUILTIN");
     }      }
   
           
Line 325  jour_end: Line 327  jour_end:
     strcpy (nsname, ns);      strcpy (nsname, ns);
   
     if (verbose == TRUE) {      if (verbose == TRUE) {
         snprintf (notif, 256, "Namespace set to '%s'\r\n\201", ns);          snprintf (notif, sizeof (notif) - 1, "Namespace set to '%s'\r\n\201", ns);
         write_m (notif);          write_m (notif);
     }      }
   

Removed from v.1.2  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>