aboutsummaryrefslogtreecommitdiffstats
path: root/src/character.h
diff options
context:
space:
mode:
authorStefan Monnier2011-03-21 12:42:16 -0400
committerStefan Monnier2011-03-21 12:42:16 -0400
commitcafdcef32d55cbb44389d7e322e7f973cbb72dfd (patch)
tree7ee0c41ea8a589650ce6f4311fb10e61a63807b9 /src/character.h
parenta08a25d7aaf251aa18f2ef747be53734bc55cae9 (diff)
parent4e05e67e4cd0bc1b0a4ef3176a4d0d91c6b3738e (diff)
downloademacs-cafdcef32d55cbb44389d7e322e7f973cbb72dfd.tar.gz
emacs-cafdcef32d55cbb44389d7e322e7f973cbb72dfd.zip
Merge from trunk
Diffstat (limited to 'src/character.h')
-rw-r--r--src/character.h57
1 files changed, 27 insertions, 30 deletions
diff --git a/src/character.h b/src/character.h
index fb29ced66b7..4c468e14d2c 100644
--- a/src/character.h
+++ b/src/character.h
@@ -128,9 +128,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
128 XSETCDR ((x), tmp); \ 128 XSETCDR ((x), tmp); \
129 } while (0) 129 } while (0)
130 130
131/* Nonzero iff C is an ASCII character. */
132#define ASCII_CHAR_P(c) ((unsigned) (c) < 0x80)
133
134/* Nonzero iff C is a character of code less than 0x100. */ 131/* Nonzero iff C is a character of code less than 0x100. */
135#define SINGLE_BYTE_CHAR_P(c) ((unsigned) (c) < 0x100) 132#define SINGLE_BYTE_CHAR_P(c) ((unsigned) (c) < 0x100)
136 133
@@ -281,11 +278,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
281 do { \ 278 do { \
282 if ((p) > (limit)) \ 279 if ((p) > (limit)) \
283 { \ 280 { \
284 const unsigned char *p0 = (p); \ 281 const unsigned char *pcb = (p); \
285 do { \ 282 do { \
286 p0--; \ 283 pcb--; \
287 } while (p0 >= limit && ! CHAR_HEAD_P (*p0)); \ 284 } while (pcb >= limit && ! CHAR_HEAD_P (*pcb)); \
288 (p) = (BYTES_BY_CHAR_HEAD (*p0) == (p) - p0) ? p0 : (p) - 1; \ 285 (p) = (BYTES_BY_CHAR_HEAD (*pcb) == (p) - pcb) ? pcb : (p) - 1; \
289 } \ 286 } \
290 } while (0) 287 } while (0)
291 288
@@ -356,11 +353,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
356 CHARIDX++; \ 353 CHARIDX++; \
357 if (STRING_MULTIBYTE (STRING)) \ 354 if (STRING_MULTIBYTE (STRING)) \
358 { \ 355 { \
359 unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ 356 unsigned char *string_ptr = &SDATA (STRING)[BYTEIDX]; \
360 int len; \ 357 int string_len; \
361 \ 358 \
362 OUTPUT = STRING_CHAR_AND_LENGTH (ptr, len); \ 359 OUTPUT = STRING_CHAR_AND_LENGTH (string_ptr, string_len); \
363 BYTEIDX += len; \ 360 BYTEIDX += string_len; \
364 } \ 361 } \
365 else \ 362 else \
366 { \ 363 { \
@@ -380,10 +377,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
380 if (STRING_MULTIBYTE (STRING)) \ 377 if (STRING_MULTIBYTE (STRING)) \
381 { \ 378 { \
382 unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ 379 unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \
383 int len; \ 380 int ptrlen; \
384 \ 381 \
385 OUTPUT = STRING_CHAR_AND_LENGTH (ptr, len); \ 382 OUTPUT = STRING_CHAR_AND_LENGTH (ptr, ptrlen); \
386 BYTEIDX += len; \ 383 BYTEIDX += ptrlen; \
387 } \ 384 } \
388 else \ 385 else \
389 { \ 386 { \
@@ -400,11 +397,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
400#define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX) \ 397#define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX) \
401 do \ 398 do \
402 { \ 399 { \
403 unsigned char *ptr = &SDATA (STRING)[BYTEIDX]; \ 400 unsigned char *fetch_ptr = &SDATA (STRING)[BYTEIDX]; \
404 int len; \ 401 int fetch_len; \
405 \ 402 \
406 OUTPUT = STRING_CHAR_AND_LENGTH (ptr, len); \ 403 OUTPUT = STRING_CHAR_AND_LENGTH (fetch_ptr, fetch_len); \
407 BYTEIDX += len; \ 404 BYTEIDX += fetch_len; \
408 CHARIDX++; \ 405 CHARIDX++; \
409 } \ 406 } \
410 while (0) 407 while (0)
@@ -420,10 +417,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
420 if (!NILP (BVAR (current_buffer, enable_multibyte_characters))) \ 417 if (!NILP (BVAR (current_buffer, enable_multibyte_characters))) \
421 { \ 418 { \
422 unsigned char *ptr = BYTE_POS_ADDR (BYTEIDX); \ 419 unsigned char *ptr = BYTE_POS_ADDR (BYTEIDX); \
423 int len; \ 420 int string_len; \
424 \ 421 \
425 OUTPUT= STRING_CHAR_AND_LENGTH (ptr, len); \ 422 OUTPUT= STRING_CHAR_AND_LENGTH (ptr, string_len); \
426 BYTEIDX += len; \ 423 BYTEIDX += string_len; \
427 } \ 424 } \
428 else \ 425 else \
429 { \ 426 { \
@@ -454,8 +451,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
454 451
455#define INC_POS(pos_byte) \ 452#define INC_POS(pos_byte) \
456 do { \ 453 do { \
457 unsigned char *p = BYTE_POS_ADDR (pos_byte); \ 454 unsigned char *ptr = BYTE_POS_ADDR (pos_byte); \
458 pos_byte += BYTES_BY_CHAR_HEAD (*p); \ 455 pos_byte += BYTES_BY_CHAR_HEAD (*ptr); \
459 } while (0) 456 } while (0)
460 457
461 458
@@ -464,16 +461,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
464 461
465#define DEC_POS(pos_byte) \ 462#define DEC_POS(pos_byte) \
466 do { \ 463 do { \
467 unsigned char *p; \ 464 unsigned char *ptr; \
468 \ 465 \
469 pos_byte--; \ 466 pos_byte--; \
470 if (pos_byte < GPT_BYTE) \ 467 if (pos_byte < GPT_BYTE) \
471 p = BEG_ADDR + pos_byte - BEG_BYTE; \ 468 ptr = BEG_ADDR + pos_byte - BEG_BYTE; \
472 else \ 469 else \
473 p = BEG_ADDR + GAP_SIZE + pos_byte - BEG_BYTE;\ 470 ptr = BEG_ADDR + GAP_SIZE + pos_byte - BEG_BYTE; \
474 while (!CHAR_HEAD_P (*p)) \ 471 while (!CHAR_HEAD_P (*ptr)) \
475 { \ 472 { \
476 p--; \ 473 ptr--; \
477 pos_byte--; \ 474 pos_byte--; \
478 } \ 475 } \
479 } while (0) 476 } while (0)
@@ -513,8 +510,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
513 510
514#define BUF_INC_POS(buf, pos_byte) \ 511#define BUF_INC_POS(buf, pos_byte) \
515 do { \ 512 do { \
516 unsigned char *p = BUF_BYTE_ADDRESS (buf, pos_byte); \ 513 unsigned char *bbp = BUF_BYTE_ADDRESS (buf, pos_byte); \
517 pos_byte += BYTES_BY_CHAR_HEAD (*p); \ 514 pos_byte += BYTES_BY_CHAR_HEAD (*bbp); \
518 } while (0) 515 } while (0)
519 516
520 517