diff options
| author | Kenichi Handa | 2004-02-04 01:20:27 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2004-02-04 01:20:27 +0000 |
| commit | 13c5d120fc89e35407b0092bef93c809a0b715fd (patch) | |
| tree | dcf3f5c6fba54af1595fb11149afc28e15692d93 /src | |
| parent | 2883d84228b07da8276569258cee4eafebc10c35 (diff) | |
| download | emacs-13c5d120fc89e35407b0092bef93c809a0b715fd.tar.gz emacs-13c5d120fc89e35407b0092bef93c809a0b715fd.zip | |
(Fset_char_table_range): Handle charsets ascii,
eight-bit-control, and eight-bit-graphic correctly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/fns.c | 24 |
2 files changed, 23 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1e44a98d42d..f96f7740548 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2004-02-04 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * fns.c (Fset_char_table_range): Handle charsets ascii, | ||
| 4 | eight-bit-control, and eight-bit-graphic correctly. | ||
| 5 | |||
| 1 | 2004-02-03 Jason Rumney <jasonr@gnu.org> | 6 | 2004-02-03 Jason Rumney <jasonr@gnu.org> |
| 2 | 7 | ||
| 3 | * w32select.c (Fw32_set_clipboard_data): Make coding iso2022 safe. | 8 | * w32select.c (Fw32_set_clipboard_data): Make coding iso2022 safe. |
| @@ -2512,14 +2512,26 @@ character set, or a character code. Return VALUE. */) | |||
| 2512 | else if (SYMBOLP (range)) | 2512 | else if (SYMBOLP (range)) |
| 2513 | { | 2513 | { |
| 2514 | Lisp_Object charset_info; | 2514 | Lisp_Object charset_info; |
| 2515 | int charset_id; | ||
| 2515 | 2516 | ||
| 2516 | charset_info = Fget (range, Qcharset); | 2517 | charset_info = Fget (range, Qcharset); |
| 2517 | CHECK_VECTOR (charset_info); | 2518 | if (! VECTORP (charset_info) |
| 2518 | 2519 | || ! NATNUMP (AREF (charset_info, 0)) | |
| 2519 | return Faset (char_table, | 2520 | || (charset_id = XINT (AREF (charset_info, 0)), |
| 2520 | make_number (XINT (XVECTOR (charset_info)->contents[0]) | 2521 | ! CHARSET_DEFINED_P (charset_id))) |
| 2521 | + 128), | 2522 | error ("Invalid charset: %s", SYMBOL_NAME (range)); |
| 2522 | value); | 2523 | |
| 2524 | if (charset_id == CHARSET_ASCII) | ||
| 2525 | for (i = 0; i < 128; i++) | ||
| 2526 | XCHAR_TABLE (char_table)->contents[i] = value; | ||
| 2527 | else if (charset_id == CHARSET_8_BIT_CONTROL) | ||
| 2528 | for (i = 128; i < 160; i++) | ||
| 2529 | XCHAR_TABLE (char_table)->contents[i] = value; | ||
| 2530 | else if (charset_id == CHARSET_8_BIT_GRAPHIC) | ||
| 2531 | for (i = 160; i < 256; i++) | ||
| 2532 | XCHAR_TABLE (char_table)->contents[i] = value; | ||
| 2533 | else | ||
| 2534 | XCHAR_TABLE (char_table)->contents[charset_id + 128] = value; | ||
| 2523 | } | 2535 | } |
| 2524 | else if (INTEGERP (range)) | 2536 | else if (INTEGERP (range)) |
| 2525 | Faset (char_table, range, value); | 2537 | Faset (char_table, range, value); |