Diff for /freem/src/expr.c between versions 1.11 and 1.12

version 1.11, 2025/03/30 01:36:58 version 1.12, 2025/04/10 01:24:38
Line 24 Line 24
  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.   *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
  *   *
  *   $Log$   *   $Log$
    *   Revision 1.12  2025/04/10 01:24:38  snw
    *   Remove C++ style comments
    *
  *   Revision 1.11  2025/03/30 01:36:58  snw   *   Revision 1.11  2025/03/30 01:36:58  snw
  *   Make it easier to bring back fma_gedit, fix double-free in global handler, limit $CHAR to 7-bit ASCII   *   Make it easier to bring back fma_gedit, fix double-free in global handler, limit $CHAR to 7-bit ASCII
  *   *
Line 769  d_o_n: Line 772  d_o_n:
                                           
                     if (merr () == UNDEF) {                      if (merr () == UNDEF) {
   
                         //smw 15 nov 2023 merr_raise (ierr < 0 ? OK - CTRLB : OK);                          /* smw 15 nov 2023 merr_raise (ierr < 0 ? OK - CTRLB : OK); */
                         merr_clear ();                          merr_clear ();
                                                   
                         if (*++codptr == ',') {                          if (*++codptr == ',') {
Line 954  undefglvn: Line 957  undefglvn:
             stcpy (refsav[refsx], zref);              stcpy (refsav[refsx], zref);
             stcpy (refsav[refsx++] + 256, zloc);              stcpy (refsav[refsx++] + 256, zloc);
                           
             ierr -= M7; //smw TODO HUH??              ierr -= M7; 
             arg--;              arg--;
                           
             goto nextchr;              goto nextchr;
Line 4607  extra_fun: Line 4610  extra_fun:
                     obj_field = FALSE;                      obj_field = FALSE;
                                           
   
                     //dofram0 = dofrmptr;                      /* dofram0 = dofrmptr; */
                                           
                     i = 0;                      i = 0;
                     codptr++;                      codptr++;
Line 4669  extra_fun: Line 4672  extra_fun:
   
                     obj_field = FALSE;                      obj_field = FALSE;
                                           
                     //dofram0 = 0;                      /* dofram0 = 0; */
                     if (*codptr == '(') codptr += 2;                      if (*codptr == '(') codptr += 2;
                                   
                 }                  }
Line 4745  extra_fun: Line 4748  extra_fun:
                                     /* save off the return type to be checked by QUIT code */                                      /* save off the return type to be checked by QUIT code */
                                     extr_types[nstx + 1] = ret_type;                                       extr_types[nstx + 1] = ret_type; 
                                                                           
                                     //printf ("return_type = '%s' *reg = '%c'\r\n", return_type, *reg);                                      /* printf ("return_type = '%s' *reg = '%c'\r\n", return_type, *reg); */
                                 }                                  }
                                                                   
                                 if (*reg == TAB || *reg == SP) goto off;                                  if (*reg == TAB || *reg == SP) goto off;
Line 4880  off: Line 4883  off:
                     else {                      else {
                         /* PARSE FORMALLIST */                          /* PARSE FORMALLIST */
                         short fl_type;                          short fl_type;
                         short fl_mandatory;                          /* re-enable following 3 later */
                         short fl_byref;                          /*short fl_mandatory;*/
                           /*short fl_byref;*/
                           /*short lastparm;*/                        
                         char fl_typestr[255];                          char fl_typestr[255];
                         char fl_mand;                          char fl_mand;
                         short dtcheck_result;                                                  short dtcheck_result;                        
                         register short typei;                          register short typei;
                         short lastparm;  
                         short gotparm;                          short gotparm;
                         int paramct;                          int paramct;
                                                   
                         fl_type = DT_AUTO;                          fl_type = DT_AUTO;
                         fl_mandatory = TRUE;                          /* re-enable following 3 later */
                         fl_byref = FALSE;                          /*fl_mandatory = TRUE;*/
                           /*fl_byref = FALSE;*/
                           /*lastparm = FALSE;*/                        
                         dtcheck_result = FALSE;                          dtcheck_result = FALSE;
                         lastparm = FALSE;  
                         gotparm = FALSE;                          gotparm = FALSE;
                         paramct = 0;                          paramct = 0;
                                                   
Line 4917  off: Line 4922  off:
                                         fl_typestr[typei] = '\0';                                          fl_typestr[typei] = '\0';
                                         fl_mand = *(reg + 1);                                          fl_mand = *(reg + 1);
   
                                           /*
                                         if ((fl_mand == 'o') || (fl_mand == 'O')) {                                          if ((fl_mand == 'o') || (fl_mand == 'O')) {
                                             fl_mandatory = FALSE;                                              fl_mandatory = FALSE;
                                         }                                          }
Line 4931  off: Line 4937  off:
   
                                             goto errexfun;                                              goto errexfun;
                                         }                                          }
                                           */
   
                                           if ((fl_mand != 'o') && (fl_mand != 'O')) {
                                               merr_raise (INVLIBOPT);
                                               dofrmptr = dofram0;
   
                                               errex = TRUE;
   
                                               nstx--;
                                               estack--;
   
                                               goto errexfun;
                                           }
                                               
                                           
                                     }                                      }
                                     else if ((ch == ',') || (ch == ')')) {                                      else if ((ch == ',') || (ch == ')')) {
   
                                           /* re-enable later
                                         if (ch == ')') {                                          if (ch == ')') {
                                             lastparm = TRUE;                                              lastparm = TRUE;
                                         }                                          }
                                           */
   
                                         gotparm = TRUE;                                          gotparm = TRUE;
                                         paramct++;                                          paramct++;
Line 4973  off: Line 4996  off:
                                                           
                                 if (dtcheck_result == FALSE) {                                  if (dtcheck_result == FALSE) {
                                     merr_raise (TYPMISMATCH);                                      merr_raise (TYPMISMATCH);
                                     dofrmptr = dofram0;     // reset frame pointer                                      dofrmptr = dofram0;     /* reset frame pointer */
   
                                     errex = TRUE;                                      errex = TRUE;
   
Line 5494  errexfun: Line 5517  errexfun:
                         ilong = ilong1 - (ilong * 86400);                          ilong = ilong1 - (ilong * 86400);
                                                   
                         lintstr (&a[i], ilong);                          lintstr (&a[i], ilong);
   
 //                        printf ("unix epoch = %d\r\n", horolog_to_unix (a));  
                                                   
                         goto exec;                          goto exec;
   
Line 5572  errexfun: Line 5593  errexfun:
   
                 case SVNecode:                      case SVNecode:    
   
                     //write_m ("in SVNecode\r\n\201");                       /* write_m ("in SVNecode\r\n\201"); */
   
                     if (stlen (user_ecode)) {                      if (stlen (user_ecode)) {
                         stcpy (a, user_ecode);                          stcpy (a, user_ecode);
Line 5596  errexfun: Line 5617  errexfun:
   
   
                 case SVNetrap:                  case SVNetrap:
 //                    write_m ("in SVNetrap\r\n\201");  /*                    write_m ("in SVNetrap\r\n\201"); */
                     stcpy (a, etrap);                      stcpy (a, etrap);
                     goto exec;                      goto exec;
   
Line 5680  errexfun: Line 5701  errexfun:
                     goto exec;                      goto exec;
   
   
                 ///* $ZX (number of columns) */                  /* $ZX (number of columns) */
                 //case 'X':                  case 'X':
                 //intstr (a, n_columns);                      intstr (a, n_columns);
                 // goto exec;                      goto exec;
   
                 ///* $ZY (number of rows) */                  /* $ZY (number of rows) */
                 //case 'Y':                  case 'Y':
                 //intstr (a, n_lines);                      intstr (a, n_lines);
                 //goto exec;                      goto exec;
   
                 /* $ZERROR */                  /* $ZERROR */
                 case 'E':                  case 'E':

Removed from v.1.11  
changed lines
  Added in v.1.12


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