emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Can UNREAD completely undo READCHAR?


From: Leo
Subject: Can UNREAD completely undo READCHAR?
Date: Tue, 28 Dec 2010 20:34:11 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2.91 (Mac OS X 10.6.5)

Hello all,

I tried the following experiment (as in the attached patch) and emacs
failed to dump. Any ideas? Thanks in advance.

(gdb) r -batch -l loadup
Starting program: /Users/Shared/emacs/src/temacs -batch -l loadup
Reading symbols for shared libraries 
.++++++++++++........................................................................................
 done
Loading loadup.el (source)...
Using load-path (/Users/Shared/emacs/lisp)
Loading emacs-lisp/byte-run...
Invalid read syntax: "#"

Program exited with code 0377.
(gdb) bt
No stack.
(gdb) 


diff --git a/src/lread.c b/src/lread.c
index 94d47d5..e28e70a 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1664,7 +1664,7 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
      Lisp_Object unibyte, readfun;
      Lisp_Object start, end;
 {
-  register int c;
+  register int c, c2;
   register Lisp_Object val;
   int count = SPECPDL_INDEX ();
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
@@ -1760,6 +1760,9 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
          || c == 0x8a0)  /* NBSP */
        goto read_next;
 
+      c2 = READCHAR;
+      UNREAD (c2);
+
       if (!NILP (Vpurify_flag) && c == '(')
        {
          record_unwind_protect (unreadpure, Qnil);


Leo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]