aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2008-02-12 21:27:54 +0000
committerStefan Monnier2008-02-12 21:27:54 +0000
commitf1c996283840d0a9fd60c90f1a9e2aa2a82251a4 (patch)
tree9668a3b56c3aaad51246a20f4cef97c18f9692f6 /src
parentfff23de29ab4c5c21dacc6927e0f0a4900c6fd59 (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/character.h22
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 @@
12008-02-12 Stefan Monnier <monnier@iro.umontreal.ca> 12008-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--; \