Diff for /freem/src/mcommand.c between versions 1.1 and 1.4

version 1.1, 2025/01/19 02:04:04 version 1.4, 2025/05/05 04:46:35
Line 1 Line 1
 /*  /*
  *                            *   *   $Id$
  *                           * *  
  *                          *   *  
  *                     ***************  
  *                      * *       * *  
  *                       *  MUMPS  *  
  *                      * *       * *  
  *                     ***************  
  *                          *   *  
  *                           * *  
  *                            *  
  *  
  *   mcommand.c  
  *    M command utility functions   *    M command utility functions
  *   *
  *     *  
  *   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) 2023 Coherent Logic Development LLC   *    Copyright (C) 2023, 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.4  2025/05/05 04:46:35  snw
    *   Documentation fixes; make FreeM more standards compliant
    *
    *   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 <string.h>  #include <string.h>
   #include <ctype.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include "mpsdef.h"  #include "mpsdef.h"
 #include "mcommand.h"  #include "mcommand.h"
Line 52  MRESULT mcmd_tokenize(MACTION *ra, char Line 51  MRESULT mcmd_tokenize(MACTION *ra, char
     if (mcmnd != 'z') {      if (mcmnd != 'z') {
                   
         if (find (" ab ablock assert assign asta astart asto astop aunb aunblock \          if (find (" ab ablock assert assign asta astart asto astop aunb aunblock \
             break co const close do else esta estart esto estop etr etrigger for goto hang halt \              break close do else esta estart esto estop etr etrigger for goto hang halt \
             if job kill ks ksubscripts kv kvalue lock ma map merge new open quit read rl rload \              if job kill ks ksubscripts kv kvalue lock merge new open quit read rl rload \
             rs rsave set tc tcommit th then thr throw tro trollback ts tstart use \              rs rsave set tc tcommit th then tro trollback ts tstart use \
             un unmap usi using view wa watch write wi with xecute ", tmp3) == FALSE) {              view wa watch write xecute ", tmp3) == FALSE) {
             return CMMND;              return CMMND;
         }          }
   
Line 78  MRESULT mcmd_tokenize(MACTION *ra, char Line 77  MRESULT mcmd_tokenize(MACTION *ra, char
                     else if (tmp3[4] == 'o') {                      else if (tmp3[4] == 'o') {
                         mcmnd = ASTOP;                          mcmnd = ASTOP;
                     }                      }
                     else if (tmp3[4] == 'e') {  
                         mcmnd = ASSERT_TKN;  
                     }  
                                           
                 }                  }
                                   
                 break;                  break;
                                   
             case 'c':              case 'c':               
                   mcmnd = CLOSE;
                   break;
                                   
                 if (tmp3[2] == 'l') {  
                     mcmnd = CLOSE;  
                 }  
                 else {  
                     mcmnd = CONST;  
                 }  
                   
             case 'e':              case 'e':
                 if (tmp3[2] == 't') mcmnd = ETRIGGER;                  if (tmp3[2] == 't') mcmnd = ETRIGGER;
                 else if (tmp3[4] == 'a') mcmnd = ESTART;                  else if (tmp3[4] == 'a') mcmnd = ESTART;
Line 122  MRESULT mcmd_tokenize(MACTION *ra, char Line 113  MRESULT mcmd_tokenize(MACTION *ra, char
                     break;                      break;
                                           
                 }                  }
                 else if (tmp3[2] == 'a') {  
                     mcmnd = MAP;  
                     break;  
                 }  
                                   
             case 'r':              case 'r':
                 if (tmp3[2] == 'l') mcmnd = RLOAD;                  if (tmp3[2] == 'l') mcmnd = RLOAD;
Line 138  MRESULT mcmd_tokenize(MACTION *ra, char Line 125  MRESULT mcmd_tokenize(MACTION *ra, char
                     if (tmp3[3] == 'e') {                      if (tmp3[3] == 'e') {
                         mcmnd = THEN;                          mcmnd = THEN;
                     }                      }
                     else if (tmp3[3] == 'r') {  
                         mcmnd = THROW;  
                     }  
                 }                  }
                 else if (tmp3[3] == 'o') mcmnd = TROLLBACK;                  else if (tmp3[3] == 'o') mcmnd = TROLLBACK;
                 else if (tmp3[2] == 's') mcmnd = TSTART;                  else if (tmp3[2] == 's') mcmnd = TSTART;
                 break;                  break;
                                   
             case 'w':              case 'w':
                                   mcmnd = WRITE;
                 switch (tmp3[2]) {  
                       
                       
                     case 'a':  
                         mcmnd = WATCH;  
                         break;  
                           
                     case 'i':  
                         mcmnd = OO_WITH;  
                         break;  
                           
                     case 'r':  
                         mcmnd = WRITE;  
                         break;  
                           
                           
                 }                     
                   
                 break;                  break;
                                   
             case 'u':              case 'u':                
                                   mcmnd = USE;
                 if (tmp3[2] == 'n') {                  break;                
                     mcmnd = UNMAP;  
                     break;  
                 }  
                   
                 switch (tmp3[3]) {  
                       
                     case 'e':  
                         mcmnd = USE;  
                         break;  
                           
                     case 'i':  
                         mcmnd = OO_USING;  
                         break;  
                           
                 }  
                   
                                   
         }           /* end of switch(mcmnd) */          }           /* end of switch(mcmnd) */
                   
Line 194  MRESULT mcmd_tokenize(MACTION *ra, char Line 144  MRESULT mcmd_tokenize(MACTION *ra, char
     else {      else {
                   
         mcmnd = tmp3[2] - 32;   /* z_command select */          mcmnd = tmp3[2] - 32;   /* z_command select */
   
           switch (mcmnd) {
   
               case 'A':
                   mcmnd = ASSERT_TKN;
                   break;
   
               case 'C':
                   mcmnd = CONST;
                   break;
   
               case 'M':
                   mcmnd = MAP;
                   break;
                   
               case 'T':
                   mcmnd = THROW;
                   break;
                   
               case 'U':
                   mcmnd = UNMAP;
                   break;
                   
               case 'W':
                   switch (toupper (tmp3[3])) {
                       case 'R':
                           mcmnd = ZWRITE;
                           break;
                       case 'A':
                           mcmnd = WATCH;
                           break;
                       case 'I':
                           mcmnd = OO_WITH;
                           break;
                   }
                   break;                
                  
           }
                   
         if (find (zcommds, tmp3) == FALSE) mcmnd = PRIVATE;          if (find (zcommds, tmp3) == FALSE) mcmnd = PRIVATE;
     }      }
   
   mcmnd_done:
     *ra = RA_CONTINUE;      *ra = RA_CONTINUE;
     return OK;      return OK;
 }  }

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


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