diff options
| author | Stefan Monnier | 2008-02-12 21:27:54 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-02-12 21:27:54 +0000 |
| commit | f1c996283840d0a9fd60c90f1a9e2aa2a82251a4 (patch) | |
| tree | 9668a3b56c3aaad51246a20f4cef97c18f9692f6 /src | |
| parent | fff23de29ab4c5c21dacc6927e0f0a4900c6fd59 (diff) | |
| download | emacs-f1c996283840d0a9fd60c90f1a9e2aa2a82251a4.tar.gz emacs-f1c996283840d0a9fd60c90f1a9e2aa2a82251a4.zip | |
(FETCH_STRING_CHAR_ADVANCE, FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
(FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA and SREF.
(DEC_POS, BUF_DEC_POS): Use BEG_BYTE rather than hardcoding 1.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/character.h | 22 |
2 files changed, 18 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 85bbcbbdf87..a79548bd31f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,10 @@ | |||
| 1 | 2008-02-12 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2008-02-12 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * character.h (FETCH_STRING_CHAR_ADVANCE) | ||
| 4 | (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE) | ||
| 5 | (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA and SREF. | ||
| 6 | (DEC_POS, BUF_DEC_POS): Use BEG_BYTE rather than hardcoding 1. | ||
| 7 | |||
| 3 | * casefiddle.c (casify_region): Only call after-change and composition | 8 | * casefiddle.c (casify_region): Only call after-change and composition |
| 4 | functions on the part of the region that was changed. | 9 | functions on the part of the region that was changed. |
| 5 | 10 | ||
diff --git a/src/character.h b/src/character.h index 60bd1f43f77..41cc8d7211e 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -385,14 +385,17 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 385 | CHARIDX++; \ | 385 | CHARIDX++; \ |
| 386 | if (STRING_MULTIBYTE (STRING)) \ | 386 | if (STRING_MULTIBYTE (STRING)) \ |
| 387 | { \ | 387 | { \ |
| 388 | unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX]; \ | 388 | unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ |
| 389 | int len; \ | 389 | int len; \ |
| 390 | \ | 390 | \ |
| 391 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ | 391 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ |
| 392 | BYTEIDX += len; \ | 392 | BYTEIDX += len; \ |
| 393 | } \ | 393 | } \ |
| 394 | else \ | 394 | else \ |
| 395 | OUTPUT = XSTRING (STRING)->data[BYTEIDX++]; \ | 395 | { \ |
| 396 | OUTPUT = SREF (STRING, BYTEIDX); \ | ||
| 397 | BYTEIDX++; \ | ||
| 398 | } \ | ||
| 396 | } \ | 399 | } \ |
| 397 | while (0) | 400 | while (0) |
| 398 | 401 | ||
| @@ -405,7 +408,7 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 405 | CHARIDX++; \ | 408 | CHARIDX++; \ |
| 406 | if (STRING_MULTIBYTE (STRING)) \ | 409 | if (STRING_MULTIBYTE (STRING)) \ |
| 407 | { \ | 410 | { \ |
| 408 | unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX]; \ | 411 | unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ |
| 409 | int len; \ | 412 | int len; \ |
| 410 | \ | 413 | \ |
| 411 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ | 414 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ |
| @@ -413,7 +416,8 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 413 | } \ | 416 | } \ |
| 414 | else \ | 417 | else \ |
| 415 | { \ | 418 | { \ |
| 416 | OUTPUT = XSTRING (STRING)->data[BYTEIDX++]; \ | 419 | OUTPUT = SREF (STRING, BYTEIDX); \ |
| 420 | BYTEIDX++; \ | ||
| 417 | MAKE_CHAR_MULTIBYTE (OUTPUT); \ | 421 | MAKE_CHAR_MULTIBYTE (OUTPUT); \ |
| 418 | } \ | 422 | } \ |
| 419 | } \ | 423 | } \ |
| @@ -425,7 +429,7 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 425 | #define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX) \ | 429 | #define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX) \ |
| 426 | do \ | 430 | do \ |
| 427 | { \ | 431 | { \ |
| 428 | unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX]; \ | 432 | unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ |
| 429 | int len; \ | 433 | int len; \ |
| 430 | \ | 434 | \ |
| 431 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ | 435 | OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len); \ |
| @@ -493,9 +497,9 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 493 | \ | 497 | \ |
| 494 | pos_byte--; \ | 498 | pos_byte--; \ |
| 495 | if (pos_byte < GPT_BYTE) \ | 499 | if (pos_byte < GPT_BYTE) \ |
| 496 | p = BEG_ADDR + pos_byte - 1; \ | 500 | p = BEG_ADDR + pos_byte - BEG_BYTE; \ |
| 497 | else \ | 501 | else \ |
| 498 | p = BEG_ADDR + GAP_SIZE + pos_byte - 1; \ | 502 | p = BEG_ADDR + GAP_SIZE + pos_byte - BEG_BYTE;\ |
| 499 | while (!CHAR_HEAD_P (*p)) \ | 503 | while (!CHAR_HEAD_P (*p)) \ |
| 500 | { \ | 504 | { \ |
| 501 | p--; \ | 505 | p--; \ |
| @@ -551,9 +555,9 @@ extern char unibyte_has_multibyte_table[256]; | |||
| 551 | unsigned char *p; \ | 555 | unsigned char *p; \ |
| 552 | pos_byte--; \ | 556 | pos_byte--; \ |
| 553 | if (pos_byte < BUF_GPT_BYTE (buf)) \ | 557 | if (pos_byte < BUF_GPT_BYTE (buf)) \ |
| 554 | p = BUF_BEG_ADDR (buf) + pos_byte - 1; \ | 558 | p = BUF_BEG_ADDR (buf) + pos_byte - BEG_BYTE; \ |
| 555 | else \ | 559 | else \ |
| 556 | p = BUF_BEG_ADDR (buf) + BUF_GAP_SIZE (buf) + pos_byte - 1; \ | 560 | p = BUF_BEG_ADDR (buf) + BUF_GAP_SIZE (buf) + pos_byte - BEG_BYTE;\ |
| 557 | while (!CHAR_HEAD_P (*p)) \ | 561 | while (!CHAR_HEAD_P (*p)) \ |
| 558 | { \ | 562 | { \ |
| 559 | p--; \ | 563 | p--; \ |