Mercurial > emacs
changeset 19240:c962562027d4
(read1): Handle read_escape making a multibyte character.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 09 Aug 1997 03:44:54 +0000 |
parents | 8298b8a6a47d |
children | eb1cef5fa337 |
files | src/lread.c |
diffstat | 1 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lread.c Sat Aug 09 03:41:42 1997 +0000 +++ b/src/lread.c Sat Aug 09 03:44:54 1997 +0000 @@ -1620,7 +1620,29 @@ end = read_buffer + read_buffer_size; } if (c == '\\') - c = read_escape (readcharfun); + { + c = read_escape (readcharfun); + if (! SINGLE_BYTE_CHAR_P ((c & ~CHAR_META))) + { + char workbuf[4]; + char *str = workbuf; + int length; + + length = non_ascii_char_to_string (c, workbuf, &str); + + if (p + length > end) + { + char *new = (char *) xrealloc (read_buffer, read_buffer_size *= 2); + p += new - read_buffer; + read_buffer += new - read_buffer; + end = read_buffer + read_buffer_size; + } + + bcopy (str, p, length); + p += length; + continue; + } + } /* c is -1 if \ newline has just been seen */ if (c == -1) {