Fix stupid wrong-pointer error handling target vars containing semicolons.
authorPaul Smith <psmith@gnu.org>
Sun, 9 Sep 2012 21:31:20 +0000 (21:31 +0000)
committerPaul Smith <psmith@gnu.org>
Sun, 9 Sep 2012 21:31:20 +0000 (21:31 +0000)
Fixes Savannah bug #36106.

ChangeLog
read.c

index 94e4aab..261be30 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
        * read.c (eval): If we detect an initial UTF-8 BOM, skip it.
        Fixes Savannah bug #36529.
        (record_target_var): Remove unused variable "fname".
+       (eval): Use the correct pointer when adding to the variable buffer.
+       Fixes Savannah bug #36106.
 
 2012-09-09  Eli Zaretskii  <eliz@gnu.org>
 
diff --git a/read.c b/read.c
index b28c66f..677c233 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1078,12 +1078,12 @@ eval (struct ebuffer *ebuf, int set_default)
                after it.  */
             if (semip)
               {
-                unsigned int l = p - variable_buffer;
+                unsigned int l = p2 - variable_buffer;
                 *(--semip) = ';';
                 collapse_continuations (semip);
                 variable_buffer_output (p2 + strlen (p2),
                                         semip, strlen (semip)+1);
-                p = variable_buffer + l;
+                p2 = variable_buffer + l;
               }
             record_target_var (filenames, p2,
                                vmod.override_v ? o_override : o_file,