]> git.eshelyaron.com Git - emacs.git/commitdiff
(readevalloop): Set PT and ZV in the proper buffer, not the current one.
authorRichard M. Stallman <rms@gnu.org>
Wed, 28 Dec 2005 03:44:28 +0000 (03:44 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 28 Dec 2005 03:44:28 +0000 (03:44 +0000)
src/lread.c

index 5fb0a39ff03988de13888a08051cf58b01c9040f..c8aa55780c245703e1f3fb16a548739e6db0caf0 100644 (file)
@@ -1344,10 +1344,20 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
       if (b != 0 && NILP (b->name))
        error ("Reading from killed buffer");
 
+
       if (!NILP (start))
        {
+         /* Switch to the buffer we are reading from.  */
+         record_unwind_protect (save_excursion_restore, save_excursion_save ());
+         set_buffer_internal (b);
+
+         /* Save point in it.  */
          record_unwind_protect (save_excursion_restore, save_excursion_save ());
+         /* Save ZV in it.  */
          record_unwind_protect (save_restriction_restore, save_restriction_save ());
+         /* Those get unbound after we read one expression.  */
+
+         /* Set point and ZV around stuff to be read.  */
          Fgoto_char (start);
          Fnarrow_to_region (make_number (BEGV), end);
        }