Diff for /freem/src/mlib.c between versions 1.1 and 1.5

version 1.1, 2025/01/19 02:04:04 version 1.5, 2025/04/10 01:24:38
Line 1 Line 1
 /*  /*
  *                            *   *   $Id$
  *                           * *  
  *                          *   *  
  *                     ***************  
  *                      * *       * *  
  *                       *  MUMPS  *  
  *                      * *       * *  
  *                     ***************  
  *                          *   *  
  *                           * *  
  *                            *  
  *  
  *   mlib.h  
  *    Function prototypes, structs, and macros for FreeM   *    Function prototypes, structs, and macros for FreeM
  *    binding library   *    binding library
  *   *
  *     *  
  *   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 36 Line 24
  *   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/10 01:24:38  snw
    *   Remove C++ style comments
    *
    *   Revision 1.4  2025/03/24 04:13:11  snw
    *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2
    *
    *   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 <stdlib.h>  #include <stdlib.h>
Line 95  void mref2str(freem_ref_t *ref, char *ke Line 96  void mref2str(freem_ref_t *ref, char *ke
         strcat (key, ref->name);          strcat (key, ref->name);
     }      }
   
     // ends with EOL      /* ends with EOL */
     strncat (key, "\201", 2);      strncat (key, "\201", 2);
   
 }  }
Line 144  short freem_get(freem_ref_t *ref) Line 145  short freem_get(freem_ref_t *ref)
   
     freem_return_io ();      freem_return_io ();
   
     // set up the EOL-delimited string      /* set up the EOL-delimited string */
     mref2str (ref, key);      mref2str (ref, key);
   
     switch (ref->reftype) {      switch (ref->reftype) {
                   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table to get the local var              /* call into the symbol table to get the local var */
             symtab (get_sym, key, result);              symtab (get_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; result in &result              /* call into the FreeM global handler; result in &result */
             global (get_sym, key, result);              global (get_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (get_sym, key, result);              ssvn (get_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
Line 171  short freem_get(freem_ref_t *ref) Line 172  short freem_get(freem_ref_t *ref)
           
     stcnv_m2c (result);      stcnv_m2c (result);
   
     strncpy (ref->value, result, 255);      strncpy (ref->value, result, sizeof (ref->value));
   
     freem_release_io ();      freem_release_io ();
           
Line 192  short freem_set(freem_ref_t *ref) Line 193  short freem_set(freem_ref_t *ref)
     switch (ref->reftype) {      switch (ref->reftype) {
   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table to set the local var              /* call into the symbol table to set the local var */
             symtab (set_sym, key, data);              symtab (set_sym, key, data);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; data in &data              /* call into the FreeM global handler; data in &data */
             global (set_sym, key, data);              global (set_sym, key, data);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (set_sym, key, data);              ssvn (set_sym, key, data);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
Line 229  short freem_kill(freem_ref_t *ref) Line 230  short freem_kill(freem_ref_t *ref)
     switch (ref->reftype) {      switch (ref->reftype) {
                   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table to kill the local var              /* call into the symbol table to kill the local var */
             symtab (kill_sym, key, result);              symtab (kill_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; result in &result              /* call into the FreeM global handler; result in &result */
             global (kill_sym, key, result);              global (kill_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (kill_sym, key, result);              ssvn (kill_sym, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
Line 250  short freem_kill(freem_ref_t *ref) Line 251  short freem_kill(freem_ref_t *ref)
   
     stcnv_m2c (result);      stcnv_m2c (result);
   
     strncpy (ref->value, result, 255);      strncpy (ref->value, result, sizeof (ref->value) - 1);
   
     freem_release_io ();      freem_release_io ();
           
Line 270  short freem_data(freem_ref_t *ref) Line 271  short freem_data(freem_ref_t *ref)
     switch (ref->reftype) {      switch (ref->reftype) {
                   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table              /* call into the symbol table */
             symtab (dat, key, result);              symtab (fra_dat, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; result in &result              /* call into the FreeM global handler; result in &result */
             global (dat, key, result);              global (fra_dat, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (dat, key, result);              ssvn (fra_dat, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
Line 310  short freem_order(freem_ref_t *ref) Line 311  short freem_order(freem_ref_t *ref)
     switch (ref->reftype) {      switch (ref->reftype) {
                   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table for $ORDER              /* call into the symbol table for $ORDER */
             symtab (fra_order, key, result);              symtab (fra_order, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; result in &result              /* call into the FreeM global handler; result in &result */
             global (fra_order, key, result);              global (fra_order, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (fra_order, key, result);              ssvn (fra_order, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
Line 349  short freem_query(freem_ref_t *ref) Line 350  short freem_query(freem_ref_t *ref)
     switch (ref->reftype) {      switch (ref->reftype) {
                   
         case MREF_RT_LOCAL:          case MREF_RT_LOCAL:
             // call into the symbol table              /* call into the symbol table */
             symtab (fra_query, key, result);              symtab (fra_query, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
                   
         case MREF_RT_GLOBAL:          case MREF_RT_GLOBAL:
             // call into the FreeM global handler; result in &result              /* call into the FreeM global handler; result in &result */
             global (fra_query, key, result);              global (fra_query, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;
   
         case MREF_RT_SSVN:          case MREF_RT_SSVN:
             // call into the SSVN code              /* call into the SSVN code */
             ssvn (fra_query, key, result);              ssvn (fra_query, key, result);
             ref->status = merr ();              ref->status = merr ();
             break;              break;

Removed from v.1.1  
changed lines
  Added in v.1.5


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