--- freem/src/mcommand.c 2025/01/19 02:04:04 1.1.1.1 +++ freem/src/mcommand.c 2025/05/05 04:46:35 1.4 @@ -1,23 +1,11 @@ /* - * * - * * * - * * * - * *************** - * * * * * - * * MUMPS * - * * * * * - * *************** - * * * - * * * - * * - * - * mcommand.c + * $Id: mcommand.c,v 1.4 2025/05/05 04:46:35 snw Exp $ * M command utility functions * * - * Author: Serena Willis + * Author: Serena Willis * 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. @@ -35,9 +23,20 @@ * You should have received a copy of the GNU Affero Public License * along with FreeM. If not, see . * + * $Log: mcommand.c,v $ + * 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 +#include #include #include "mpsdef.h" #include "mcommand.h" @@ -52,10 +51,10 @@ MRESULT mcmd_tokenize(MACTION *ra, char if (mcmnd != 'z') { 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 \ - if job kill ks ksubscripts kv kvalue lock ma map merge new open quit read rl rload \ - rs rsave set tc tcommit th then thr throw tro trollback ts tstart use \ - un unmap usi using view wa watch write wi with xecute ", tmp3) == FALSE) { + break close do else esta estart esto estop etr etrigger for goto hang halt \ + if job kill ks ksubscripts kv kvalue lock merge new open quit read rl rload \ + rs rsave set tc tcommit th then tro trollback ts tstart use \ + view wa watch write xecute ", tmp3) == FALSE) { return CMMND; } @@ -78,23 +77,15 @@ MRESULT mcmd_tokenize(MACTION *ra, char else if (tmp3[4] == 'o') { mcmnd = ASTOP; } - else if (tmp3[4] == 'e') { - mcmnd = ASSERT_TKN; - } } break; - case 'c': + case 'c': + mcmnd = CLOSE; + break; - if (tmp3[2] == 'l') { - mcmnd = CLOSE; - } - else { - mcmnd = CONST; - } - case 'e': if (tmp3[2] == 't') mcmnd = ETRIGGER; else if (tmp3[4] == 'a') mcmnd = ESTART; @@ -122,10 +113,6 @@ MRESULT mcmd_tokenize(MACTION *ra, char break; } - else if (tmp3[2] == 'a') { - mcmnd = MAP; - break; - } case 'r': if (tmp3[2] == 'l') mcmnd = RLOAD; @@ -138,55 +125,18 @@ MRESULT mcmd_tokenize(MACTION *ra, char if (tmp3[3] == 'e') { mcmnd = THEN; } - else if (tmp3[3] == 'r') { - mcmnd = THROW; - } } else if (tmp3[3] == 'o') mcmnd = TROLLBACK; else if (tmp3[2] == 's') mcmnd = TSTART; break; case 'w': - - switch (tmp3[2]) { - - - case 'a': - mcmnd = WATCH; - break; - - case 'i': - mcmnd = OO_WITH; - break; - - case 'r': - mcmnd = WRITE; - break; - - - } - + mcmnd = WRITE; break; - case 'u': - - if (tmp3[2] == 'n') { - mcmnd = UNMAP; - break; - } - - switch (tmp3[3]) { - - case 'e': - mcmnd = USE; - break; - - case 'i': - mcmnd = OO_USING; - break; - - } - + case 'u': + mcmnd = USE; + break; } /* end of switch(mcmnd) */ @@ -194,10 +144,49 @@ MRESULT mcmd_tokenize(MACTION *ra, char else { 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; } +mcmnd_done: *ra = RA_CONTINUE; return OK; }