cvsdist 191b24e
Bug report: #14693
cvsdist 191b24e
Reported by: Vincent Renardias <vincent@waw.com>
cvsdist 191b24e
Patch: jdassen@wi.leidenuniv.nl (J.H.M.Dassen)
cvsdist 191b24e
Since Version: 2.5-2
cvsdist 191b24e
cvsdist 191b24e
--- patch-2.5.orig/inp.c
cvsdist 191b24e
+++ patch-2.5/inp.c
cvsdist 191b24e
@@ -71,6 +71,14 @@
cvsdist 191b24e
     }
cvsdist 191b24e
 }
cvsdist 191b24e
 
cvsdist 191b24e
+void
cvsdist 191b24e
+reset_scan_input_vars()
cvsdist 191b24e
+{
cvsdist 191b24e
+ using_plan_a = 1;
cvsdist 191b24e
+ i_buffer = NULL;
cvsdist 191b24e
+ i_ptr = NULL;
cvsdist 191b24e
+}
cvsdist 191b24e
+
cvsdist 191b24e
 /* Construct the line index, somehow or other. */
cvsdist 191b24e
 
cvsdist 191b24e
 void
cvsdist 191b24e
--- patch-2.5.orig/patch.c
cvsdist 191b24e
+++ patch-2.5/patch.c
cvsdist 191b24e
@@ -210,7 +210,10 @@
cvsdist 191b24e
 
cvsdist 191b24e
 	/* find out where all the lines are */
cvsdist 191b24e
 	if (!skip_rest_of_patch)
cvsdist 191b24e
-	    scan_input (inname);
cvsdist 191b24e
+          scan_input (inname);
cvsdist 191b24e
+        else
cvsdist 191b24e
+          reset_scan_input_vars ();
cvsdist 191b24e
+        
cvsdist 191b24e
 
cvsdist 191b24e
 	/* from here on, open no standard i/o files, because malloc */
cvsdist 191b24e
 	/* might misfire and we can't catch it easily */
cvsdist 191b24e
--- patch-2.5.orig/inp.h
cvsdist 191b24e
+++ patch-2.5/inp.h
cvsdist 191b24e
@@ -7,4 +7,5 @@
cvsdist 191b24e
 char const *ifetch PARAMS ((LINENUM, int, size_t *));
cvsdist 191b24e
 void get_input_file PARAMS ((char const *, char const *));
cvsdist 191b24e
 void re_input PARAMS ((void));
cvsdist 191b24e
+void reset_scan_input_vars PARAMS (());
cvsdist 191b24e
 void scan_input PARAMS ((char *));