Improve character name escapes
commitbd1c7ca67e7429e07f78d4ff49163fd7a67a6765
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 22 Apr 2016 02:26:34 +0000 (21 19:26 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 22 Apr 2016 02:29:41 +0000 (21 19:29 -0700)
tree941d5cf573be2a4588468b3a315c0c6cb47e2c97
parente7cb38edc946ff60c1c878b30b068376d6ef56d2
Improve character name escapes

* doc/lispref/nonascii.texi (Character Properties):
Avoid duplication of Unicode names.  Reformat examples to fit in
narrow pages.
* doc/lispref/objects.texi (General Escape Syntax):
Simplify and better-organize explanation of \N{...} escapes.
* src/character.h (CHAR_SURROGATE_PAIR_P): Remove; unused.
(char_surrogate_p): New inline function.
* src/lread.c: Do not include string.h; no longer needed.
(invalid_character_name, check_scalar_value): Remove; the ideas
behind these functions are now bundled into character_name_to_code.
(character_name_to_code): Remove undocumented support for "CJK
IDEOGRAPH-XXXX" names, as "U+XXXX" suffices.  Reject monstrosities
like "\N{U+-0}" and null bytes in \N escapes.  Reject floating
point in \N escapes instead of returning garbage.  Use
AUTO_STRING_WITH_LEN to lessen pressure on the garbage collector.
* test/src/lread-tests.el (lread-char-number, lread-char-name)
(lread-string-char-number, lread-string-char-name):
Test runtime behavior, not compile-time, as the test framework
is not set up to test compile-time.
(lread-char-surrogate-1, lread-char-surrogate-2)
(lread-char-surrogate-3, lread-char-surrogate-4)
(lread-string-char-number-2, lread-string-char-number-3):
New tests.
(lread-string-char-number-1): Rename from lread-string-char-number.
doc/lispref/nonascii.texi
doc/lispref/objects.texi
src/character.h
src/lread.c
test/src/lread-tests.el