diff options
| author | Kenichi Handa | 1997-04-07 07:12:13 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1997-04-07 07:12:13 +0000 |
| commit | 3701b5de07a2998b089ef9e4f65bebedbb554039 (patch) | |
| tree | 39f1fc64eed0169aed1249fb61d2aa6babeaa3ab | |
| parent | ed8ec86d08a6f2b656e67493003aa4624f868299 (diff) | |
| download | emacs-3701b5de07a2998b089ef9e4f65bebedbb554039.tar.gz emacs-3701b5de07a2998b089ef9e4f65bebedbb554039.zip | |
(read1): Adjusted for the new structure of Lisp_Char_Table.
| -rw-r--r-- | src/lread.c | 17 | ||||
| -rw-r--r-- | src/print.c | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/lread.c b/src/lread.c index 882b09bf5a3..5b4cd3e748f 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1336,8 +1336,25 @@ read1 (readcharfun, pch, first_in_list) | |||
| 1336 | || XVECTOR (tmp)->size > CHAR_TABLE_STANDARD_SLOTS + 10) | 1336 | || XVECTOR (tmp)->size > CHAR_TABLE_STANDARD_SLOTS + 10) |
| 1337 | error ("Invalid size char-table"); | 1337 | error ("Invalid size char-table"); |
| 1338 | XSETCHAR_TABLE (tmp, XCHAR_TABLE (tmp)); | 1338 | XSETCHAR_TABLE (tmp, XCHAR_TABLE (tmp)); |
| 1339 | XCHAR_TABLE (tmp)->top = Qt; | ||
| 1339 | return tmp; | 1340 | return tmp; |
| 1340 | } | 1341 | } |
| 1342 | else if (c == '^') | ||
| 1343 | { | ||
| 1344 | c = READCHAR; | ||
| 1345 | if (c == '[') | ||
| 1346 | { | ||
| 1347 | Lisp_Object tmp; | ||
| 1348 | tmp = read_vector (readcharfun); | ||
| 1349 | if (XVECTOR (tmp)->size != SUB_CHAR_TABLE_STANDARD_SLOTS) | ||
| 1350 | error ("Invalid size char-table"); | ||
| 1351 | XSETCHAR_TABLE (tmp, XCHAR_TABLE (tmp)); | ||
| 1352 | XCHAR_TABLE (tmp)->top = Qnil; | ||
| 1353 | return tmp; | ||
| 1354 | } | ||
| 1355 | Fsignal (Qinvalid_read_syntax, | ||
| 1356 | Fcons (make_string ("#^^", 3), Qnil)); | ||
| 1357 | } | ||
| 1341 | Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#^", 2), Qnil)); | 1358 | Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#^", 2), Qnil)); |
| 1342 | } | 1359 | } |
| 1343 | if (c == '&') | 1360 | if (c == '&') |
diff --git a/src/print.c b/src/print.c index 57f6ffdf826..8a218e88105 100644 --- a/src/print.c +++ b/src/print.c | |||
| @@ -1258,6 +1258,8 @@ print (obj, printcharfun, escapeflag) | |||
| 1258 | character slots. But we add #^ as a prefix. */ | 1258 | character slots. But we add #^ as a prefix. */ |
| 1259 | PRINTCHAR ('#'); | 1259 | PRINTCHAR ('#'); |
| 1260 | PRINTCHAR ('^'); | 1260 | PRINTCHAR ('^'); |
| 1261 | if (SUB_CHAR_TABLE_P (obj)) | ||
| 1262 | PRINTCHAR ('^'); | ||
| 1261 | size &= PSEUDOVECTOR_SIZE_MASK; | 1263 | size &= PSEUDOVECTOR_SIZE_MASK; |
| 1262 | } | 1264 | } |
| 1263 | if (size & PSEUDOVECTOR_FLAG) | 1265 | if (size & PSEUDOVECTOR_FLAG) |