From 90923af3dbee5b59681195d5e8945d04d6766a28 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Fri, 8 Jul 2016 22:48:00 -0300 Subject: [PATCH] Add _INCLERRORFILE$, which reports the included file that last errored. Also: Change qb64.bas to produce C code that reports INCLUDE file names. --- source/global/version.bas | 2 +- source/qb64.bas | 15 +++++++++++++++ source/subs_functions/subs_functions.bas | 10 ++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/source/global/version.bas b/source/global/version.bas index 86713bc19..a25bf02f3 100644 --- a/source/global/version.bas +++ b/source/global/version.bas @@ -3,5 +3,5 @@ DIM SHARED BuildNum AS STRING Version$ = "1.000" 'BuildNum format is YYYYMMDD/id, where id is a ever-increasing 'integer. If you make a change, update the date and increase the id! -BuildNum$ = "20160702/32" +BuildNum$ = "20160708/33" diff --git a/source/qb64.bas b/source/qb64.bas index d4ab6e81d..a00765f50 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -3256,6 +3256,9 @@ DO inclinenump$ = "" IF inclinenumber(inclevel) THEN inclinenump$ = "," + str2$(inclinenumber(inclevel)) + thisincname$ = getfilepath$(incname$(inclevel)) + thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1) + inclinenump$ = inclinenump$ + "," + CHR$(34) + thisincname$ + CHR$(34) END IF IF NoChecks = 0 THEN PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");r=0;}" @@ -3311,6 +3314,9 @@ DO inclinenump$ = "" IF inclinenumber(inclevel) THEN inclinenump$ = "," + str2$(inclinenumber(inclevel)) + thisincname$ = getfilepath$(incname$(inclevel)) + thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1) + inclinenump$ = inclinenump$ + "," + CHR$(34) + thisincname$ + CHR$(34) END IF IF NoChecks = 0 THEN PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");r=0;}" @@ -8119,6 +8125,9 @@ DO inclinenump$ = "" IF inclinenumber(inclevel) THEN inclinenump$ = "," + str2$(inclinenumber(inclevel)) + thisincname$ = getfilepath$(incname$(inclevel)) + thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1) + inclinenump$ = inclinenump$ + "," + CHR$(34) + thisincname$ + CHR$(34) END IF PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");}" 'non-resumable error check (cannot exit without handling errors) PRINT #12, "exit_code=" + e$ + ";" @@ -8139,6 +8148,9 @@ DO inclinenump$ = "" IF inclinenumber(inclevel) THEN inclinenump$ = "," + str2$(inclinenumber(inclevel)) + thisincname$ = getfilepath$(incname$(inclevel)) + thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1) + inclinenump$ = inclinenump$ + "," + CHR$(34) + thisincname$ + CHR$(34) END IF PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");}" 'non-resumable error check (cannot exit without handling errors) PRINT #12, "exit_code=" + e$ + ";" @@ -10367,6 +10379,9 @@ DO inclinenump$ = "" IF inclinenumber(inclevel) THEN inclinenump$ = "," + str2$(inclinenumber(inclevel)) + thisincname$ = getfilepath$(incname$(inclevel)) + thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1) + inclinenump$ = inclinenump$ + "," + CHR$(34) + thisincname$ + CHR$(34) END IF IF NoChecks = 0 THEN IF dynscope THEN diff --git a/source/subs_functions/subs_functions.bas b/source/subs_functions/subs_functions.bas index d2be107a2..b97b24175 100644 --- a/source/subs_functions/subs_functions.bas +++ b/source/subs_functions/subs_functions.bas @@ -2856,3 +2856,13 @@ id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) id.ret = STRINGTYPE - ISPOINTER regid + +'Return the name of the included file in which the last error occurred +clearid +id.n = "_INCLERRORFILE" +id.musthave = "$" +id.subfunc = 1 +id.callname = "func__inclerrorfile" +id.ret = STRINGTYPE - ISPOINTER +regid +