diff options
| author | Paul Eggert | 2011-04-09 15:21:42 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-09 15:21:42 -0700 |
| commit | 9248994de4e597941230d9cb07a50df994c7825b (patch) | |
| tree | 1ac11e5bf7778a1b82b9d39771df00d74a4bdfc9 /src/chartab.c | |
| parent | 3befa583862681a0df1f75274287d1d32f95f7e4 (diff) | |
| download | emacs-9248994de4e597941230d9cb07a50df994c7825b.tar.gz emacs-9248994de4e597941230d9cb07a50df994c7825b.zip | |
* chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
Diffstat (limited to 'src/chartab.c')
| -rw-r--r-- | src/chartab.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/chartab.c b/src/chartab.c index 9ad182131e9..450948a9b37 100644 --- a/src/chartab.c +++ b/src/chartab.c | |||
| @@ -392,7 +392,8 @@ sub_char_table_set_range (Lisp_Object *table, int depth, int min_char, int from, | |||
| 392 | *table = val; | 392 | *table = val; |
| 393 | else | 393 | else |
| 394 | { | 394 | { |
| 395 | int i, j; | 395 | int i; |
| 396 | unsigned j; | ||
| 396 | 397 | ||
| 397 | depth++; | 398 | depth++; |
| 398 | if (! SUB_CHAR_TABLE_P (*table)) | 399 | if (! SUB_CHAR_TABLE_P (*table)) |
| @@ -403,8 +404,9 @@ sub_char_table_set_range (Lisp_Object *table, int depth, int min_char, int from, | |||
| 403 | to = max_char; | 404 | to = max_char; |
| 404 | i = CHARTAB_IDX (from, depth, min_char); | 405 | i = CHARTAB_IDX (from, depth, min_char); |
| 405 | j = CHARTAB_IDX (to, depth, min_char); | 406 | j = CHARTAB_IDX (to, depth, min_char); |
| 407 | j++; | ||
| 406 | min_char += chartab_chars[depth] * i; | 408 | min_char += chartab_chars[depth] * i; |
| 407 | for (; i <= j; i++, min_char += chartab_chars[depth]) | 409 | for (; i < j; i++, min_char += chartab_chars[depth]) |
| 408 | sub_char_table_set_range (XSUB_CHAR_TABLE (*table)->contents + i, | 410 | sub_char_table_set_range (XSUB_CHAR_TABLE (*table)->contents + i, |
| 409 | depth, min_char, from, to, val); | 411 | depth, min_char, from, to, val); |
| 410 | } | 412 | } |
| @@ -416,16 +418,16 @@ char_table_set_range (Lisp_Object table, int from, int to, Lisp_Object val) | |||
| 416 | { | 418 | { |
| 417 | struct Lisp_Char_Table *tbl = XCHAR_TABLE (table); | 419 | struct Lisp_Char_Table *tbl = XCHAR_TABLE (table); |
| 418 | Lisp_Object *contents = tbl->contents; | 420 | Lisp_Object *contents = tbl->contents; |
| 419 | int i, min_char; | 421 | int i; |
| 420 | 422 | ||
| 421 | if (from == to) | 423 | if (from == to) |
| 422 | char_table_set (table, from, val); | 424 | char_table_set (table, from, val); |
| 423 | else | 425 | else |
| 424 | { | 426 | { |
| 425 | for (i = CHARTAB_IDX (from, 0, 0), min_char = i * chartab_chars[0]; | 427 | unsigned lim = to / chartab_chars[0] + 1; |
| 426 | min_char <= to; | 428 | for (i = CHARTAB_IDX (from, 0, 0); i < lim; i++) |
| 427 | i++, min_char += chartab_chars[0]) | 429 | sub_char_table_set_range (contents + i, 0, i * chartab_chars[0], |
| 428 | sub_char_table_set_range (contents + i, 0, min_char, from, to, val); | 430 | from, to, val); |
| 429 | if (ASCII_CHAR_P (from)) | 431 | if (ASCII_CHAR_P (from)) |
| 430 | tbl->ascii = char_table_ascii (table); | 432 | tbl->ascii = char_table_ascii (table); |
| 431 | } | 433 | } |