Borland C++ build doesn't depend on Cygwin configure
[fw/sdcc] / src / asm.c
index 8b9f7798075154c11763ce867c7c3986efee523a..d31b0ea154e871dc96b071ae33243d187be0c732 100644 (file)
--- a/src/asm.c
+++ b/src/asm.c
@@ -209,16 +209,26 @@ asm_addTree (const ASM_MAPPINGS * pMappings)
 static FILE *inFile=NULL;
 static char inLineString[1024];
 static int inLineNo=0;
+static char lastSrcFile[PATH_MAX];
 int rewinds=0;
 
 char *printCLine (char *srcFile, int lineno) {
   char *ilsP=inLineString;
+
+  if (inFile) {
+    if (strcmp (lastSrcFile, srcFile) != 0) {
+      fclose (inFile);
+      inFile = NULL;
+      inLineNo = 0;
+    }
+  }
   if (!inFile) {
     inFile=fopen(srcFile, "r");
     if (!inFile) {
       perror ("printCLine");
       exit (1);
     }
+    strcpy (lastSrcFile, srcFile);
   }
   if (lineno<inLineNo) {
     fseek (inFile, 0, SEEK_SET);