emacs/test/src
Paul Eggert 5bd8cfc14d Fix mishandling of symbols that look like numbers
* src/bignum.c (make_neg_biguint): New function.
* src/lread.c (read1): Do not mishandle an unquoted symbol
with name equal to something like "1\0x", i.e., a string
of numeric form followed by a NUL byte.
Formerly these symbols were misread as numbers.
(string_to_number): Change last argument from an integer flag
to a pointer to the length.  This lets the caller figure out
how much of the prefix was used.  All callers changed.
Add a fast path if the integer (sans sign) fits in uintmax_t.
Update comments and simplify now that bignums are present.
* src/print.c (print_object): Fix quoting of symbols that look
like numbers, by relying on string_to_number for the tricky
cases rather than trying to redo its logic, incorrectly.  For
example, (read (prin1-to-string '\1e+NaN)) formerly returned
"1e+NaN", which was wrong: a backslash is needed in the output
to prevent it from being read as a NaN.  Escape NO_BREAK_SPACE
too, since lread.c treats it like SPACE.
* test/src/print-tests.el (print-read-roundtrip):
Add tests illustrating the abovementioned bugs.
2018-10-10 23:19:42 -07:00
..
regex-resources
alloc-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
buffer-tests.el Merge from origin/emacs-26 2018-09-15 09:20:32 -07:00
callint-tests.el Fix off-by-one history pruning (bug#31211) 2018-05-02 20:18:07 -04:00
callproc-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
casefiddle-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
charset-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
chartab-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
cmds-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
coding-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
data-tests.el Fix (+ bignum float) bug 2018-09-21 23:09:08 -07:00
decompress-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
doc-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
editfns-tests.el Move timestamp-related stuff to timefns.c 2018-10-06 23:31:03 -07:00
emacs-module-tests.el Merge from origin/emacs-26 2018-08-26 15:10:50 -07:00
eval-tests.el Give warning if losing value to defvaralias (Bug#5950) 2018-06-12 07:40:33 -04:00
fileio-tests.el Merge from origin/emacs-26 2018-01-01 01:13:04 -08:00
floatfns-tests.el Round bignums consistently with other integers 2018-09-22 09:01:26 -07:00
fns-tests.el Fix glitches introduced by nthcdr changes 2018-08-21 02:05:31 -07:00
font-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
inotify-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
json-tests.el Support bignums when serializing JSON 2018-09-21 21:50:56 +02:00
keyboard-tests.el Update copyright year to 2018 2018-01-01 01:25:56 -08:00
keymap-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
lcms-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
lread-tests.el Fix assertion failure when reading 'BIGNUM.' 2018-08-21 15:51:05 -07:00
marker-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
minibuf-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
print-tests.el Fix mishandling of symbols that look like numbers 2018-10-10 23:19:42 -07:00
process-tests.el Don’t assume ordering in make-process/mix-stderr 2018-05-21 12:31:54 -07:00
regex-emacs-tests.el Rename src/regex.c to src/regex-emacs.c. 2018-08-05 19:36:09 -07:00
syntax-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
textprop-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
thread-tests.el Mark thread-alive-p as obsolete 2018-08-31 11:45:37 +02:00
timefns-tests.el Improvements on (TICKS . HZ) 2018-10-06 23:31:04 -07:00
undo-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00
xml-tests.el Update copyright year to 2018 2018-01-01 00:57:59 -08:00