version 1.3, 2025/03/09 19:50:47
|
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 |
|
* Fix snprintf calls |
|
* |
|
* Revision 1.5 2025/04/09 19:52:02 snw |
|
* Eliminate as many warnings as possible while building with -Wall |
|
* |
|
* Revision 1.4 2025/03/27 03:27:35 snw |
|
* Install init scripts to share/freem/examples/init and fix regression in method dispatch |
|
* |
* Revision 1.3 2025/03/09 19:50:47 snw |
* Revision 1.3 2025/03/09 19:50:47 snw |
* Second phase of REUSE compliance and header reformat |
* Second phase of REUSE compliance and header reformat |
* |
* |
Line 205 short rtn_get_superclass(char *rou, char
|
Line 217 short rtn_get_superclass(char *rou, char
|
|
|
if (ch == ')') after_parens = TRUE; |
if (ch == ')') after_parens = TRUE; |
|
|
|
/* ignore comments in search for superclass */ |
|
if (ch == ';' && after_parens == TRUE) { |
|
found_super = FALSE; |
|
break; |
|
} |
|
|
if (ch == ':' && after_parens == TRUE) { |
if (ch == ':' && after_parens == TRUE) { |
strcpy (buf, p); |
strcpy (buf, p); |
found_super = TRUE; |
found_super = TRUE; |
Line 247 short rtn_get_path(char *rou, char *buf)
|
Line 265 short rtn_get_path(char *rou, char *buf)
|
stcnv_m2c (pth); |
stcnv_m2c (pth); |
} |
} |
|
|
snprintf (buf, PATHLEN, "%s/%s.m", pth, rou); |
snprintf (buf, PATHLEN - 1, "%s/%s.m", pth, rou); |
|
|
if ((fp = fopen (buf, "r")) != NULL) { |
if ((fp = fopen (buf, "r")) != NULL) { |
(void) fclose (fp); |
(void) fclose (fp); |
|
|
Line 304 m_entry *rtn_get_entries(char *rou)
|
Line 322 m_entry *rtn_get_entries(char *rou)
|
char cur_label[255]; |
char cur_label[255]; |
int has_args = 0; |
int has_args = 0; |
char *paren_pos; |
char *paren_pos; |
char *curarg; |
|
|
|
if (rtn_get_path (rou, rou_path) == FALSE) { |
if (rtn_get_path (rou, rou_path) == FALSE) { |
return (m_entry *) NULL; |
return (m_entry *) NULL; |
Line 1130 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 |