diff man/lispref/objects.texi @ 5247:02d875ebd1ea

Make Lisp reader errors more informative with over-long hex, octal characters src/ChangeLog addition: 2010-08-21 Aidan Kehoe <kehoea@parhasard.net> * lread.c (read_escape): Make error messages better reflect the text that was encountered, when overlong hex character escapes or non-Latin-1 octal character escapes are encountered. man/ChangeLog addition: 2010-08-21 Aidan Kehoe <kehoea@parhasard.net> * lispref/objects.texi (Character Type): Go into more detail here on the specific type of error provoked on overlong hex character escapes and non-Latin-1 octal character escapes; give details of why the latter may be encountered, and what to do with such code.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 21 Aug 2010 19:02:44 +0100
parents 755ae5b97edb
children f5a5501814f5
line wrap: on
line diff
--- a/man/lispref/objects.texi	Sun Aug 15 15:42:45 2010 +0100
+++ b/man/lispref/objects.texi	Sat Aug 21 19:02:44 2010 +0100
@@ -623,6 +623,8 @@
 @cindex backslash in character constant
 @cindex octal character code
 @cindex hexadecimal character code
+@cindex Overlong hex character escape
+@cindex Non-ISO-8859-1 octal character escape
 
   Finally, there are two read syntaxes involving character codes.
 It is not possible to represent multibyte or wide characters in this
@@ -643,14 +645,21 @@
 @samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the
 character @kbd{C-b}.  The reader will finalize the character and start
 reading the next token when a non-octal-digit is encountered or three
-octal digits are read. 
+octal digits are read.  When a given character code is above
+@code{#o377}, the Lisp reader signals an @code{invalid-read-syntax}
+error.  Such errors are typically provoked by code written for older
+versions of GNU Emacs, where the absence of the #o octal syntax for
+integers made the character syntax convenient for non-character
+values.  Those older versions of GNU Emacs are long obsolete, so
+changing the code to use the #o integer escape is the best
+solution. @pxref{Numbers}.
 
   The second consists of a question mark followed by a backslash, the
 character @samp{x}, and the character code in hexadecimal (up to two
 hexadecimal digits); thus, @samp{?\x41} for the character @kbd{A},
 @samp{?\x1} for the character @kbd{C-a}, and @code{?\x2} for the
 character @kbd{C-b}.  If more than two hexadecimal codes are given, the
-reader signals an error.
+reader signals an @code{invalid-read-syntax} error.
 
 @example
 @group