



		
		 
 If I call a routine that doesn't exist in my source code,
Inform correctly reports the error, but still produces a story file (in an intermediate state).
Running that story then crashes the interpreter with an "illegal opcode" runtime error.
Example: The simplest thing is to delete the file if an error has occurred
during backpatching. 
					
			
		
				 
		About Patches   
				
					 
			Issue C63002     [previous patch]
					
	
	 
	Story file not deleted after failed compilation 
		Submitted by: Sophie Frühling
		    Appeared in: Compiler 6.30 or before
		    Fixed in: -
	Problem 
   [ Main; Crash(); ];
	Solution (by Cedric Knight) 
 diff -u inform630ref\files.c .\files.c
--- inform630ref\files.c	Fri Feb 27 06:30:00 2004
+++ .\files.c	Sun Mar 14 23:52:36 2004
@@ -437,6 +437,7 @@
       fatalerror("I/O failure: couldn't backtrack on story file for checksum");
     fclose(sf_handle);
+    if (no_errors>0) remove(new_name);
     /*  Write a copy of the header into the debugging information file
         (mainly so that it can be used to identify which story file matches
@@ -853,6 +854,7 @@
       fatalerror("I/O failure: couldn't backtrack on story file for checksum");
     fclose(sf_handle);
+    if (no_errors>0) remove(new_name);
 #ifdef ARCHIMEDES
     {   char settype_command[PATHLEN];
diff -u inform630ref\inform.c .\inform.c
--- inform630ref\inform.c	Fri Feb 27 06:30:00 2004
+++ .\inform.c	Sun Mar 14 23:22:02 2004
@@ -1012,7 +1012,9 @@
         close_transcript_file();
     }
-    if (no_errors==0) { output_file(); output_has_occurred = TRUE; }
+    if (no_errors==0) output_file();
+
+    if (no_errors==0) { output_has_occurred = TRUE; }
     else { output_has_occurred = FALSE; }
     if (debugfile_switch) close_debug_file();
	
						
					
					
					
					
  
    Last updated 17 April 2013.
  
  This site is no longer supported; information may be out of date.
  Maintained as a historical archive by the Interactive Fiction Technology Foundation.
  Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
  
    This page was originally managed by Roger Firth.