# HG changeset patch # User Jim Blandy # Date 711052750 0 # Node ID 852a2f5838da1311740ec0f85cdfd927bb24cb11 # Parent 4dffad9d353d15f24107d3be031014ae2f29a6ea *** empty log message *** diff -r 4dffad9d353d -r 852a2f5838da lisp/simple.el --- a/lisp/simple.el Mon Jul 13 18:33:54 1992 +0000 +++ b/lisp/simple.el Mon Jul 13 18:39:10 1992 +0000 @@ -829,7 +829,7 @@ (eq last-command 'kill-region) (eq beg end))) ;; Don't let the undo list be truncated before we can even access it. - (let ((undo-high-threshold (+ (- (max beg end) (min beg end)) 100))) + (let ((undo-strong-limit (+ (- (max beg end) (min beg end)) 100))) (delete-region beg end) ;; Take the same string recorded for undo ;; and put it in the kill-ring. diff -r 4dffad9d353d -r 852a2f5838da src/lread.c --- a/src/lread.c Mon Jul 13 18:33:54 1992 +0000 +++ b/src/lread.c Mon Jul 13 18:39:10 1992 +0000 @@ -821,7 +821,6 @@ case ')': case ']': - case '.': { register Lisp_Object val; XSET (val, Lisp_Internal, c); @@ -906,6 +905,27 @@ return make_string (read_buffer, p - read_buffer); } + case '.': + { +#ifdef LISP_FLOAT_TYPE + /* If a period is followed by a number, then we should read it + as a floating point number. Otherwise, it denotes a dotted + pair. */ + int next_char = READCHAR; + UNREAD (next_char); + + if (! isdigit (next_char)) +#endif + { + register Lisp_Object val; + XSET (val, Lisp_Internal, c); + return val; + } + + /* Otherwise, we fall through! Note that the atom-reading loop + below will now loop at least once, assuring that we will not + try to UNREAD two characters in a row. */ + } default: if (c <= 040) goto retry; { @@ -917,7 +937,9 @@ while (c > 040 && !(c == '\"' || c == '\'' || c == ';' || c == '?' || c == '(' || c == ')' -#ifndef LISP_FLOAT_TYPE /* we need to see */ +#ifndef LISP_FLOAT_TYPE + /* If we have floating-point support, then we need + to allow . */ || c =='.' #endif /* not LISP_FLOAT_TYPE */ || c == '[' || c == ']' || c == '#'