Diff for /freem/src/routine.c between versions 1.6 and 1.7

version 1.6, 2025/04/13 04:22:43 version 1.7, 2025/04/30 14:41:03
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.7  2025/04/30 14:41:03  snw
    *   Further debugger work
    *
  *   Revision 1.6  2025/04/13 04:22:43  snw   *   Revision 1.6  2025/04/13 04:22:43  snw
  *   Fix snprintf calls   *   Fix snprintf calls
  *   *
Line 1144  void lineref (char **adrr) Line 1147  void lineref (char **adrr)
           
     return;      return;
 }                                       /* end of lineref() */  }                                       /* end of lineref() */
   
   #if 0
   char *routine_get_line(char *lref, char *buf)
   {
       char tmp[STRLEN];
       char a[STRLEN];
       long l1, rouoldc;
       short reload = FALSE;
       int f = 3;
       register int i;
       register int j;
       
       i = 0;
                           
       if (f > 1) {
           stcpy (tmp, lref[arg + 1]);
           i = intexpr (tmp);
       }
   
       if (a[0] == EOL) {
   
           if (i < 0) {
               return (char *) NULL;
           }
   
           /* $T(+0) returns routine name */
           if (i == 0) {
   
               if (f != 3) {
                   stcpy (a, rou_name);
               } 
               else {
                   stcpy (a, argstck[arg + 2]);
               }                                
   
               goto nxt_operator;
   
           }
   
       }
   
       if (f == 3) {
   
           reload = TRUE;  /* load routine; */
           f = mcmnd;
           mcmnd = 'd';    /* make load use standard-path */
                               
           stcpy (tmp, argstck[arg + 2]);
                               
           rouoldc = roucur - rouptr;
                               
           zload (tmp);
                               
           mcmnd = f;
                               
           if (merr () > OK) {
   
               zload (rou_name);
                                   
               if (merr () == NOPGM) {
                   ierr -= NOPGM; /* smw 15 nov 2023 TODO HUH?? */
                   *a = EOL;
   
                   goto nxt_operator;
               }
   
               return;
   
           }
   
       }
   
       j = 0;
       f = 1;
                           
       if (a[0] != EOL) {  /* 1st arg == label */
   
           for (;;) {
                           
               if (j >= (rouend - rouptr)) {
                   a[0] = EOL;
                   goto t_end;
               }
   
               l1 = j;
               f = 0;
                                   
               while (*(rouptr + (++l1)) == a[f++]);
                                   
               if (a[--f] == EOL && (*(rouptr + l1) == TAB || *(rouptr + l1) == SP || *(rouptr + l1) == '(')) break;
   
               j += (UNSIGN (*(rouptr + j)) + 2);  /* skip line */
   
           }
   
           f = 0;
   
       }
   
       if (i > 0) {
   
           while (f < i) {
   
               if ((j = j + (UNSIGN (*(rouptr + j))) + 2) >= (rouend - rouptr)) {
                   a[0] = EOL;
                   goto t_end;
               }
                                   
               f++;
   
           }
   
       }
   
       if (i < 0) {
   
           j--;
                               
           while (f != i) {
   
               while (*(rouptr + (--j)) != EOL && j >= 0);
                                   
               if (--f != i && j < 1) {
                   a[0] = EOL;
                   goto t_end;
               }
   
           }
   
           j++;
   
       }
   
       f = (-1);
       j++;
   
       while ((a[++f] = (*(rouptr + (j++)))) != EOL) {
           if (a[f] == TAB || a[f] == SP)
               break;
       }
   
       if (j >= (rouend - rouptr - 1)) {
           a[0] = EOL;
       } 
       else {
   
           a[f] = SP;
                               
           while ((*(rouptr + j)) == TAB || (*(rouptr + j)) == SP) {
               j++;
               a[++f] = SP;
           }
   
           stcpy (&a[++f], rouptr + j);
   
       }
   
   t_end:
       if (reload) {
           zload (rou_name);
           roucur = rouptr + rouoldc;
       }           /* reload routine; */
   
   
   }
   #endif

Removed from v.1.6  
changed lines
  Added in v.1.7


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