version 1.19, 2025/04/30 14:41:03
|
version 1.25, 2025/05/18 18:15: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.25 2025/05/18 18:15:38 snw |
|
* Add ZEDIT command for editing routines |
|
* |
|
* Revision 1.24 2025/05/14 12:22:04 snw |
|
* Further work on shared memory |
|
* |
|
* Revision 1.23 2025/05/06 16:10:06 snw |
|
* Add extra blank before readline call on NetBSD |
|
* |
|
* Revision 1.22 2025/05/05 14:53:17 snw |
|
* Modify rpm spec to include documentation TODO |
|
* |
|
* Revision 1.21 2025/05/01 17:02:30 snw |
|
* Further debugging improvements |
|
* |
|
* Revision 1.20 2025/04/30 17:19:16 snw |
|
* Improve backtraces in debugger |
|
* |
* Revision 1.19 2025/04/30 14:41:03 snw |
* Revision 1.19 2025/04/30 14:41:03 snw |
* Further debugger work |
* Further debugger work |
* |
* |
Line 174 int xecline(int typ)
|
Line 192 int xecline(int typ)
|
short new_and_set = FALSE; |
short new_and_set = FALSE; |
short new_object = FALSE; |
short new_object = FALSE; |
short destructor_run = FALSE; |
short destructor_run = FALSE; |
short debug_mode = FALSE; |
|
short libcall = FALSE; |
short libcall = FALSE; |
char *namold; |
char *namold; |
long rouoldc; |
long rouoldc; |
Line 197 int xecline(int typ)
|
Line 214 int xecline(int typ)
|
|
|
char *reeval_codptr; |
char *reeval_codptr; |
char reeval_code[512]; |
char reeval_code[512]; |
|
char entryref[256]; |
|
|
int i; |
int i; |
int j; |
int j; |
Line 247 int xecline(int typ)
|
Line 265 int xecline(int typ)
|
next_line: /* entry point for next command line */ |
next_line: /* entry point for next command line */ |
|
|
if (debug_mode) { |
if (debug_mode) { |
debug_mode = debugger (DEBENTRY_LINE, codptr); |
debug_mode = debugger (DEBENTRY_LINE, entryref); |
} |
} |
|
|
job_set_status (pid, JSTAT_INTERPRETER); |
job_set_status (pid, JSTAT_INTERPRETER); |
|
|
if (then_ctr > 0) { |
if (then_ctr > 0) { |
Line 297 next_line: /* entry point for n
|
Line 315 next_line: /* entry point for n
|
codptr = code; |
codptr = code; |
|
|
next_cmnd: /* continue line entry point */ |
next_cmnd: /* continue line entry point */ |
|
getraddress (entryref, nstx); |
if (debug_mode) { |
if (debug_mode) { |
debug_mode = debugger (DEBENTRY_CMD, codptr); |
debug_mode = debugger (DEBENTRY_CMD, entryref); |
} |
} |
|
|
if (sigint_in_for) goto for_quit; |
if (sigint_in_for) goto for_quit; |
Line 4956 open_socket:
|
Line 4975 open_socket:
|
if (merr () > OK) break; |
if (merr () > OK) break; |
} |
} |
else { |
else { |
halt:i = 0; |
halt: |
|
i = 0; |
} |
} |
|
|
cleanup (); |
cleanup (); |
Line 5275 open_socket:
|
Line 5295 open_socket:
|
break; |
break; |
|
|
/* Z-COMMANDS */ |
/* Z-COMMANDS */ |
|
case ZEDIT: |
|
merr_raise (cmd_zedit (&ra)); |
|
MRESCHECK(ra); |
|
break; |
|
|
case ZGO: |
case ZGO: |
|
|
/* ZGO with arguments: same as GOTO but with BREAK on */ |
/* ZGO with arguments: same as GOTO but with BREAK on */ |
Line 6802 err:
|
Line 6827 err:
|
stcpy (er_buf, errmes[merr ()]); |
stcpy (er_buf, errmes[merr ()]); |
stcnv_m2c (er_buf); |
stcnv_m2c (er_buf); |
|
|
|
|
/* |
|
if (usermode == 1 && ztrap[nstx][0] == EOL && etrap[0] == '\0') { |
|
debug_mode = TRUE; |
|
debugger (DEBENTRY_ERROR, codptr); |
|
} |
|
*/ |
|
|
|
|
|
#if !defined(MSDOS) |
#if !defined(MSDOS) |
logprintf (FM_LOG_DEBUG, "xecline: interpreter error %d [%s]", ierr, er_buf); |
logprintf (FM_LOG_DEBUG, "xecline: interpreter error %d [%s]", ierr, er_buf); |
Line 7284 direct_mode:
|
Line 7301 direct_mode:
|
set_io (UNIX); |
set_io (UNIX); |
|
|
job_set_status (pid, JSTAT_DIRECTMODE); |
job_set_status (pid, JSTAT_DIRECTMODE); |
|
|
|
#if defined(__NetBSD__) |
|
printf ("\r\n"); |
|
#endif |
|
|
/* readline() does its own malloc() */ |
/* readline() does its own malloc() */ |
fmrl_buf = readline (fmrl_prompt); |
fmrl_buf = readline (fmrl_prompt); |
|
|
Line 7295 direct_mode:
|
Line 7316 direct_mode:
|
|
|
goto halt; |
goto halt; |
} |
} |
|
|
|
|
if (strlen (fmrl_buf) > 0) { |
if (strlen (fmrl_buf) > 0) { |
add_history (fmrl_buf); |
add_history (fmrl_buf); |