diff --git a/oscar64/Errors.cpp b/oscar64/Errors.cpp index 5ace50a..cf22249 100644 --- a/oscar64/Errors.cpp +++ b/oscar64/Errors.cpp @@ -33,15 +33,27 @@ void Errors::Error(const Location& loc, ErrorID eid, const char* msg, const char level = "warning"; } - if (!info1) - fprintf(stderr, "%s(%d, %d) : %s %d: %s\n", loc.mFileName, loc.mLine, loc.mColumn, level, eid, msg); - else if (!info2) - fprintf(stderr, "%s(%d, %d) : %s %d: %s '%s'\n", loc.mFileName, loc.mLine, loc.mColumn, level ,eid, msg, info1); - else - fprintf(stderr, "%s(%d, %d) : %s %d: %s '%s' != '%s'\n", loc.mFileName, loc.mLine, loc.mColumn, level, eid, msg, info1, info2); + if (loc.mFileName) + { + if (!info1) + fprintf(stderr, "%s(%d, %d) : %s %d: %s\n", loc.mFileName, loc.mLine, loc.mColumn, level, eid, msg); + else if (!info2) + fprintf(stderr, "%s(%d, %d) : %s %d: %s '%s'\n", loc.mFileName, loc.mLine, loc.mColumn, level, eid, msg, info1); + else + fprintf(stderr, "%s(%d, %d) : %s %d: %s '%s' != '%s'\n", loc.mFileName, loc.mLine, loc.mColumn, level, eid, msg, info1, info2); - if (loc.mFrom) - Error(*(loc.mFrom), EINFO_EXPANDED, "While expanding here"); + if (loc.mFrom) + Error(*(loc.mFrom), EINFO_EXPANDED, "While expanding here"); + } + else + { + if (!info1) + fprintf(stderr, "oscar64: %s %d: %s\n", level, eid, msg); + else if (!info2) + fprintf(stderr, "oscar64: %s %d: %s '%s'\n", level, eid, msg, info1); + else + fprintf(stderr, "oscar64: %s %d: %s '%s' != '%s'\n", level, eid, msg, info1, info2); + } if (mErrorCount > 10 || eid >= EFATAL_GENERIC) exit(20);