Diff for /freem/src/xecline.c between versions 1.2 and 1.9

version 1.2, 2025/02/28 20:51:20 version 1.9, 2025/03/24 04:13:12
Line 1 Line 1
 /*  /*
  *                            *   *   $Id$
  *                           * *  
  *                          *   *  
  *                     ***************  
  *                      * *       * *  
  *                       *  MUMPS  *  
  *                      * *       * *  
  *                     ***************  
  *                          *   *  
  *                           * *  
  *                            *  
  *  
  *   xecline.c  
  *    freem interpreter proper   *    freem interpreter proper
  *   *
  *     *  
  *   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.9  2025/03/24 04:13:12  snw
    *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2
    *
    *   Revision 1.8  2025/03/24 04:05:36  snw
    *   Replace crlf with frm_crlf to avoid symbol conflict with readline on OS/2
    *
    *   Revision 1.7  2025/03/22 22:52:24  snw
    *   Add STRLEN_GBL macro to manage global string length
    *
    *   Revision 1.6  2025/03/22 21:44:32  snw
    *   Make the startup messages fewer and add environment name to direct-mode prompt
    *
    *   Revision 1.5  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 1076  set: Line 1083  set:
                         goto err;                          goto err;
                     }                      }
   
                     expr (STRING);                      expr (STRING);                    
                       
                     if (merr () > OK) goto err;                      if (merr () > OK) goto err;
   
                     stcpy (tmp2, argptr);                      stcpy (tmp2, argptr);
Line 2021  set10: Line 2028  set10:
                             goto err;                              goto err;
                         }                          }
                                                   
                         sec += day * 86400 + timezone;                          sec += day * 86400 + FreeM_timezone;
                         day = timezone;                          day = FreeM_timezone;
   
                         sh_ts.tv_sec = sec;                          sh_ts.tv_sec = sec;
   
Line 2042  set10: Line 2049  set10:
                             clock = time (0L);                              clock = time (0L);
                             ctdata = localtime (&clock);                              ctdata = localtime (&clock);
                                                           
                             if (day -= (timezone = ctdata->tm_tzadj)) {                              if (day -= (FreeM_timezone = ctdata->tm_tzadj)) {
                                 sec -= day;                                  sec -= day;
                                 tzoffset += day;                                  tzoffset += day;
                                 stime (&sec);                                  stime (&sec);
Line 3936  off3: Line 3943  off3:
                                                           
                             stcpy (objvar, vn);                              stcpy (objvar, vn);
   
                             symtab (dat, objvar, datres);                              symtab (fra_dat, objvar, datres);
                             dat_res = atoi (datres);                              dat_res = atoi (datres);
   
                             if (dat_res > 0) {                              if (dat_res > 0) {
Line 4320  use0:          /* entry point for proces Line 4327  use0:          /* entry point for proces
                                 break;                                  break;
   
                             case 2:                              case 2:
                                 crlf[io] = tvexpr (argptr);                                  frm_crlf[io] = tvexpr (argptr);
                                 break;                                  break;
                                                           
                             case 3:                              case 3:
Line 4422  use_socket: Line 4429  use_socket:
   
                 /* need to evaluate the following 6 lines carefully - smw 2023-10-15 */                  /* need to evaluate the following 6 lines carefully - smw 2023-10-15 */
                 if (k != HOME) {                  if (k != HOME) {
                     crlf[k] = FALSE;                      frm_crlf[k] = FALSE;
                     fm_nodelay[k] = FALSE;                      fm_nodelay[k] = FALSE;
                     xpos[k] = 0;                      xpos[k] = 0;
                     ypos[k] = 0;                      ypos[k] = 0;
Line 5538  zgo: Line 5545  zgo:
   
                 for (; beg < end; beg += UNSIGN (*beg) + 2) {                  for (; beg < end; beg += UNSIGN (*beg) + 2) {
                                           
                     if (crlf[io]) {                      if (frm_crlf[io]) {
                         write_m ("\012\201");                          write_m ("\012\201");
                     }                      }
                     else {                      else {
Line 5554  zgo: Line 5561  zgo:
                 rouins = beg;                  rouins = beg;
             }              }
   
             if (crlf[io]) {              if (frm_crlf[io]) {
                 write_m ("\012\201");                  write_m ("\012\201");
             }              }
             else {              else {
Line 5823  zwritep: Line 5830  zwritep:
                 }                  }
                                   
                 if (varnam[0] != '^') {                  if (varnam[0] != '^') {
                     symtab (dat, varnam, tmp2);                      symtab (fra_dat, varnam, tmp2);
                     zwmode = 'L';                      zwmode = 'L';
                 }                  }
                 else {                  else {
                     if (varnam[1] == '$') {                      if (varnam[1] == '$') {
                         ssvn (dat, varnam, tmp2);                          ssvn (fra_dat, varnam, tmp2);
                         zwmode = '$';                          zwmode = '$';
                     }                      }
                     else {                      else {
                         global (dat, varnam, tmp2);                          global (fra_dat, varnam, tmp2);
                         zwmode = '^';                          zwmode = '^';
                     }                      }
                 }                  }
Line 5943  zwritep: Line 5950  zwritep:
                     switch (zwmode) {                      switch (zwmode) {
   
                         case 'L':                          case 'L':
                             symtab (dat, tmp, tmp3);                              symtab (fra_dat, tmp, tmp3);
                             symtab (get_sym, tmp, &w_tmp[1]);                              symtab (get_sym, tmp, &w_tmp[1]);
   
                             break;                              break;
   
   
                         case '$':                          case '$':
                             ssvn (dat, tmp, tmp3);                              ssvn (fra_dat, tmp, tmp3);
                             ssvn (get_sym, tmp, &w_tmp[1]);                              ssvn (get_sym, tmp, &w_tmp[1]);
   
                             break;                              break;
   
   
                         case '^':                          case '^':
                             global (dat, tmp, tmp3);                              global (fra_dat, tmp, tmp3);
                             global (get_sym, tmp, &w_tmp[1]);                              global (get_sym, tmp, &w_tmp[1]);
   
                             break;                              break;
Line 7210  direct_mode: Line 7217  direct_mode:
   
                 if (quiet_mode == FALSE) {                  if (quiet_mode == FALSE) {
                     if (tp_level == 0) {                      if (tp_level == 0) {
                         snprintf (fmrl_prompt, 255, "\r\n%s> ", nsname);                          snprintf (fmrl_prompt, 255, "\r\n%s.%s> ", shm_env, nsname);
                     }                      }
                     else {                      else {
                         snprintf (fmrl_prompt, 255, "\r\nTL%d:%s> ", tp_level, nsname);                          snprintf (fmrl_prompt, 255, "\r\nTL%d:%s.%s> ", tp_level, shm_env, nsname);
                     }                      }
                 }                  }
                 set_io (UNIX);                  set_io (UNIX);

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


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