# HG changeset patch # User Richard M. Stallman # Date 1135741468 0 # Node ID 998f4ca6948d35f29019749db9a5d378e97b97bd # Parent 60b2bb5ad00fca0ec33d0c05d09e897dfcd73899 (readevalloop): Set PT and ZV in the proper buffer, not the current one. diff -r 60b2bb5ad00f -r 998f4ca6948d src/lread.c --- a/src/lread.c Wed Dec 28 03:19:29 2005 +0000 +++ b/src/lread.c Wed Dec 28 03:44:28 2005 +0000 @@ -1344,10 +1344,20 @@ 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); }