--- freem/src/routine.c 2025/04/30 14:41:03 1.7 +++ freem/src/routine.c 2025/04/30 17:19:16 1.8 @@ -1,5 +1,5 @@ /* - * $Id: routine.c,v 1.7 2025/04/30 14:41:03 snw Exp $ + * $Id: routine.c,v 1.8 2025/04/30 17:19:16 snw Exp $ * Routine buffer management * * @@ -24,6 +24,9 @@ * along with FreeM. If not, see . * * $Log: routine.c,v $ + * Revision 1.8 2025/04/30 17:19:16 snw + * Improve backtraces in debugger + * * Revision 1.7 2025/04/30 14:41:03 snw * Further debugger work * @@ -1148,6 +1151,33 @@ void lineref (char **adrr) return; } /* end of lineref() */ +char *m_text(char *lref, char *buf) +{ + char *old_codptr; + char old_code[STRLEN]; + + old_codptr = codptr; + stcpy (old_code, code); + + sprintf (code, "$TEXT(%s)\201", lref); + codptr = code; + + expr (STRING); + + if (merr () != OK) { + stcpy (code, old_code); + codptr = old_codptr; + return (char *) NULL; + } + + stcpy (buf, argptr); + stcpy (code, old_code); + codptr = old_codptr; + + return buf; +} + + #if 0 char *routine_get_line(char *lref, char *buf) {