comparison src/charset.h @ 867:804517e16990

[xemacs-hg @ 2002-06-05 09:54:39 by ben] Textual renaming: text/char names abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, callint.c, casefiddle.c, casetab.c, charset.h, chartab.c, chartab.h, cmds.c, console-gtk.h, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console-x.h, console.h, data.c, device-msw.c, device-x.c, dialog-msw.c, dired-msw.c, dired.c, doc.c, doprnt.c, editfns.c, eldap.c, emodules.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-unixoid.c, events.c, events.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, font-lock.c, frame-gtk.c, frame-msw.c, frame-x.c, frame.c, glyphs-eimage.c, glyphs-msw.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-x.c, gui-x.h, gui.c, gui.h, hpplay.c, indent.c, insdel.c, insdel.h, intl-win32.c, keymap.c, line-number.c, line-number.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, md5.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-ccl.c, mule-charset.c, mule-coding.c, mule-wnnfns.c, ndir.h, nt.c, objects-gtk.c, objects-gtk.h, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, procimpl.h, realpath.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, redisplay.h, regex.c, search.c, select-common.h, select-gtk.c, select-x.c, sound.h, symbols.c, syntax.c, syntax.h, sysdep.c, sysdep.h, sysdir.h, sysfile.h, sysproc.h, syspwd.h, systime.h, syswindows.h, termcap.c, tests.c, text.c, text.h, toolbar-common.c, tooltalk.c, ui-gtk.c, unexnt.c, unicode.c, win32.c: Text/char naming rationalization. [a] distinguish between "charptr" when it refers to operations on the pointer itself and when it refers to operations on text; and [b] use consistent naming for everything referring to internal format, i.e. Itext == text in internal format Ibyte == a byte in such text Ichar == a char as represented in internal character format thus e.g. set_charptr_emchar -> set_itext_ichar The pre and post tags on either side of this change are: pre-internal-format-textual-renaming post-internal-format-textual-renaming See the Internals Manual for details of exactly how this was done, how to handle the change in your workspace, etc.
author ben
date Wed, 05 Jun 2002 09:58:45 +0000
parents 6728e641994e
children 184461bc8de4
comparison
equal deleted inserted replaced
866:613552a02607 867:804517e16990
38 /* used when MULE is not defined, so that Charset-type stuff can still 38 /* used when MULE is not defined, so that Charset-type stuff can still
39 be done */ 39 be done */
40 40
41 #define Vcharset_ascii Qnil 41 #define Vcharset_ascii Qnil
42 42
43 #define emchar_charset(ch) Vcharset_ascii 43 #define ichar_charset(ch) Vcharset_ascii
44 #define emchar_leading_byte(ch) LEADING_BYTE_ASCII 44 #define ichar_leading_byte(ch) LEADING_BYTE_ASCII
45 #define emchar_len(ch) 1 45 #define ichar_len(ch) 1
46 #define emchar_len_fmt(ch, fmt) 1 46 #define ichar_len_fmt(ch, fmt) 1
47 #define LEADING_BYTE_ASCII 0x80 47 #define LEADING_BYTE_ASCII 0x80
48 #define NUM_LEADING_BYTES 1 48 #define NUM_LEADING_BYTES 1
49 #define MIN_LEADING_BYTE 0x80 49 #define MIN_LEADING_BYTE 0x80
50 #define CHARSETP(cs) 1 50 #define CHARSETP(cs) 1
51 #define charset_by_leading_byte(lb) Vcharset_ascii 51 #define charset_by_leading_byte(lb) Vcharset_ascii
52 #define XCHARSET_LEADING_BYTE(cs) LEADING_BYTE_ASCII 52 #define XCHARSET_LEADING_BYTE(cs) LEADING_BYTE_ASCII
53 #define XCHARSET_GRAPHIC(cs) -1 53 #define XCHARSET_GRAPHIC(cs) -1
54 #define XCHARSET_COLUMNS(cs) 1 54 #define XCHARSET_COLUMNS(cs) 1
55 #define XCHARSET_DIMENSION(cs) 1 55 #define XCHARSET_DIMENSION(cs) 1
56 #define BREAKUP_EMCHAR(ch, charset, byte1, byte2) do { \ 56 #define BREAKUP_ICHAR(ch, charset, byte1, byte2) do { \
57 (charset) = Vcharset_ascii; \ 57 (charset) = Vcharset_ascii; \
58 (byte1) = (ch); \ 58 (byte1) = (ch); \
59 (byte2) = 0; \ 59 (byte2) = 0; \
60 } while (0) 60 } while (0)
61 61
157 157
158 /* Is this a prefix for a private leading byte? */ 158 /* Is this a prefix for a private leading byte? */
159 159
160 DECLARE_INLINE_HEADER ( 160 DECLARE_INLINE_HEADER (
161 int 161 int
162 leading_byte_prefix_p (Intbyte lb) 162 leading_byte_prefix_p (Ibyte lb)
163 ) 163 )
164 { 164 {
165 return (lb == PRE_LEADING_BYTE_PRIVATE_1 || 165 return (lb == PRE_LEADING_BYTE_PRIVATE_1 ||
166 lb == PRE_LEADING_BYTE_PRIVATE_2); 166 lb == PRE_LEADING_BYTE_PRIVATE_2);
167 } 167 }
226 int from_unicode_levels; 226 int from_unicode_levels;
227 227
228 unsigned char unicode_table_loaded; 228 unsigned char unicode_table_loaded;
229 229
230 /* Final byte of this character set in ISO2022 designating escape sequence */ 230 /* Final byte of this character set in ISO2022 designating escape sequence */
231 Intbyte final; 231 Ibyte final;
232 232
233 /* Number of bytes (1 - 4) required in the internal representation 233 /* Number of bytes (1 - 4) required in the internal representation
234 for characters in this character set. This is *not* the 234 for characters in this character set. This is *not* the
235 same as the dimension of the character set). */ 235 same as the dimension of the character set). */
236 int rep_bytes; 236 int rep_bytes;
277 #define CHARSET_LEFT_TO_RIGHT 0 277 #define CHARSET_LEFT_TO_RIGHT 0
278 #define CHARSET_RIGHT_TO_LEFT 1 278 #define CHARSET_RIGHT_TO_LEFT 1
279 279
280 /* Leading byte and id have been regrouped. -- OG */ 280 /* Leading byte and id have been regrouped. -- OG */
281 #define CHARSET_ID(cs) ((cs)->id) 281 #define CHARSET_ID(cs) ((cs)->id)
282 #define CHARSET_LEADING_BYTE(cs) ((Intbyte) CHARSET_ID (cs)) 282 #define CHARSET_LEADING_BYTE(cs) ((Ibyte) CHARSET_ID (cs))
283 #define CHARSET_NAME(cs) ((cs)->name) 283 #define CHARSET_NAME(cs) ((cs)->name)
284 #define CHARSET_SHORT_NAME(cs) ((cs)->short_name) 284 #define CHARSET_SHORT_NAME(cs) ((cs)->short_name)
285 #define CHARSET_LONG_NAME(cs) ((cs)->long_name) 285 #define CHARSET_LONG_NAME(cs) ((cs)->long_name)
286 #define CHARSET_REP_BYTES(cs) ((cs)->rep_bytes) 286 #define CHARSET_REP_BYTES(cs) ((cs)->rep_bytes)
287 #define CHARSET_COLUMNS(cs) ((cs)->columns) 287 #define CHARSET_COLUMNS(cs) ((cs)->columns)
333 /* Table of charsets indexed by leading byte. */ 333 /* Table of charsets indexed by leading byte. */
334 Lisp_Object charset_by_leading_byte[NUM_LEADING_BYTES]; 334 Lisp_Object charset_by_leading_byte[NUM_LEADING_BYTES];
335 335
336 /* Table of charsets indexed by type/final-byte/direction. */ 336 /* Table of charsets indexed by type/final-byte/direction. */
337 Lisp_Object charset_by_attributes[4][128][2]; 337 Lisp_Object charset_by_attributes[4][128][2];
338 Intbyte next_allocated_1_byte_leading_byte; 338 Ibyte next_allocated_1_byte_leading_byte;
339 Intbyte next_allocated_2_byte_leading_byte; 339 Ibyte next_allocated_2_byte_leading_byte;
340 }; 340 };
341 341
342 DECLARE_INLINE_HEADER ( 342 DECLARE_INLINE_HEADER (
343 Lisp_Object 343 Lisp_Object
344 charset_by_leading_byte (int lb) 344 charset_by_leading_byte (int lb)
374 /************************************************************************/ 374 /************************************************************************/
375 375
376 /* The bit fields of character are divided into 3 parts: 376 /* The bit fields of character are divided into 3 parts:
377 FIELD1(5bits):FIELD2(7bits):FIELD3(7bits) */ 377 FIELD1(5bits):FIELD2(7bits):FIELD3(7bits) */
378 378
379 #define EMCHAR_FIELD1_MASK (0x1F << 14) 379 #define ICHAR_FIELD1_MASK (0x1F << 14)
380 #define EMCHAR_FIELD2_MASK (0x7F << 7) 380 #define ICHAR_FIELD2_MASK (0x7F << 7)
381 #define EMCHAR_FIELD3_MASK 0x7F 381 #define ICHAR_FIELD3_MASK 0x7F
382 382
383 /* Macros to access each field of a character code of C. */ 383 /* Macros to access each field of a character code of C. */
384 384
385 #define emchar_field1(c) (((c) & EMCHAR_FIELD1_MASK) >> 14) 385 #define ichar_field1(c) (((c) & ICHAR_FIELD1_MASK) >> 14)
386 #define emchar_field2(c) (((c) & EMCHAR_FIELD2_MASK) >> 7) 386 #define ichar_field2(c) (((c) & ICHAR_FIELD2_MASK) >> 7)
387 #define emchar_field3(c) ((c) & EMCHAR_FIELD3_MASK) 387 #define ichar_field3(c) ((c) & ICHAR_FIELD3_MASK)
388 388
389 /* Field 1, if non-zero, usually holds a leading byte for a 389 /* Field 1, if non-zero, usually holds a leading byte for a
390 dimension-2 charset. Field 2, if non-zero, usually holds a leading 390 dimension-2 charset. Field 2, if non-zero, usually holds a leading
391 byte for a dimension-1 charset. */ 391 byte for a dimension-1 charset. */
392 392
398 #define FIELD1_TO_OFFICIAL_LEADING_BYTE (MIN_LEADING_BYTE_OFFICIAL_2 - 1) 398 #define FIELD1_TO_OFFICIAL_LEADING_BYTE (MIN_LEADING_BYTE_OFFICIAL_2 - 1)
399 #define FIELD1_TO_PRIVATE_LEADING_BYTE 0xE1 399 #define FIELD1_TO_PRIVATE_LEADING_BYTE 0xE1
400 400
401 /* Minimum and maximum allowed values for the fields. */ 401 /* Minimum and maximum allowed values for the fields. */
402 402
403 #define MIN_EMCHAR_FIELD2_OFFICIAL \ 403 #define MIN_ICHAR_FIELD2_OFFICIAL \
404 (MIN_LEADING_BYTE_OFFICIAL_1 - FIELD2_TO_OFFICIAL_LEADING_BYTE) 404 (MIN_LEADING_BYTE_OFFICIAL_1 - FIELD2_TO_OFFICIAL_LEADING_BYTE)
405 #define MAX_EMCHAR_FIELD2_OFFICIAL \ 405 #define MAX_ICHAR_FIELD2_OFFICIAL \
406 (MAX_LEADING_BYTE_OFFICIAL_1 - FIELD2_TO_OFFICIAL_LEADING_BYTE) 406 (MAX_LEADING_BYTE_OFFICIAL_1 - FIELD2_TO_OFFICIAL_LEADING_BYTE)
407 407
408 #define MIN_EMCHAR_FIELD1_OFFICIAL \ 408 #define MIN_ICHAR_FIELD1_OFFICIAL \
409 (MIN_LEADING_BYTE_OFFICIAL_2 - FIELD1_TO_OFFICIAL_LEADING_BYTE) 409 (MIN_LEADING_BYTE_OFFICIAL_2 - FIELD1_TO_OFFICIAL_LEADING_BYTE)
410 #define MAX_EMCHAR_FIELD1_OFFICIAL \ 410 #define MAX_ICHAR_FIELD1_OFFICIAL \
411 (MAX_LEADING_BYTE_OFFICIAL_2 - FIELD1_TO_OFFICIAL_LEADING_BYTE) 411 (MAX_LEADING_BYTE_OFFICIAL_2 - FIELD1_TO_OFFICIAL_LEADING_BYTE)
412 412
413 #define MIN_EMCHAR_FIELD2_PRIVATE \ 413 #define MIN_ICHAR_FIELD2_PRIVATE \
414 (MIN_LEADING_BYTE_PRIVATE_1 - FIELD2_TO_PRIVATE_LEADING_BYTE) 414 (MIN_LEADING_BYTE_PRIVATE_1 - FIELD2_TO_PRIVATE_LEADING_BYTE)
415 #define MAX_EMCHAR_FIELD2_PRIVATE \ 415 #define MAX_ICHAR_FIELD2_PRIVATE \
416 (MAX_LEADING_BYTE_PRIVATE_1 - FIELD2_TO_PRIVATE_LEADING_BYTE) 416 (MAX_LEADING_BYTE_PRIVATE_1 - FIELD2_TO_PRIVATE_LEADING_BYTE)
417 417
418 #define MIN_EMCHAR_FIELD1_PRIVATE \ 418 #define MIN_ICHAR_FIELD1_PRIVATE \
419 (MIN_LEADING_BYTE_PRIVATE_2 - FIELD1_TO_PRIVATE_LEADING_BYTE) 419 (MIN_LEADING_BYTE_PRIVATE_2 - FIELD1_TO_PRIVATE_LEADING_BYTE)
420 #define MAX_EMCHAR_FIELD1_PRIVATE \ 420 #define MAX_ICHAR_FIELD1_PRIVATE \
421 (MAX_LEADING_BYTE_PRIVATE_2 - FIELD1_TO_PRIVATE_LEADING_BYTE) 421 (MAX_LEADING_BYTE_PRIVATE_2 - FIELD1_TO_PRIVATE_LEADING_BYTE)
422 422
423 /* Minimum character code of each <type> character. */ 423 /* Minimum character code of each <type> character. */
424 424
425 #define MIN_CHAR_OFFICIAL_TYPE9N (MIN_EMCHAR_FIELD2_OFFICIAL << 7) 425 #define MIN_CHAR_OFFICIAL_TYPE9N (MIN_ICHAR_FIELD2_OFFICIAL << 7)
426 #define MIN_CHAR_PRIVATE_TYPE9N (MIN_EMCHAR_FIELD2_PRIVATE << 7) 426 #define MIN_CHAR_PRIVATE_TYPE9N (MIN_ICHAR_FIELD2_PRIVATE << 7)
427 #define MIN_CHAR_OFFICIAL_TYPE9NX9N (MIN_EMCHAR_FIELD1_OFFICIAL << 14) 427 #define MIN_CHAR_OFFICIAL_TYPE9NX9N (MIN_ICHAR_FIELD1_OFFICIAL << 14)
428 #define MIN_CHAR_PRIVATE_TYPE9NX9N (MIN_EMCHAR_FIELD1_PRIVATE << 14) 428 #define MIN_CHAR_PRIVATE_TYPE9NX9N (MIN_ICHAR_FIELD1_PRIVATE << 14)
429 #define MIN_CHAR_COMPOSITION (0x1F << 14) 429 #define MIN_CHAR_COMPOSITION (0x1F << 14)
430 430
431 /* Leading byte of a character. 431 /* Leading byte of a character.
432 432
433 NOTE: This takes advantage of the fact that 433 NOTE: This takes advantage of the fact that
434 FIELD2_TO_OFFICIAL_LEADING_BYTE and 434 FIELD2_TO_OFFICIAL_LEADING_BYTE and
435 FIELD2_TO_PRIVATE_LEADING_BYTE are the same. 435 FIELD2_TO_PRIVATE_LEADING_BYTE are the same.
436 */ 436 */
437 437
438 DECLARE_INLINE_HEADER ( 438 DECLARE_INLINE_HEADER (
439 Intbyte 439 Ibyte
440 emchar_leading_byte (Emchar c) 440 ichar_leading_byte (Ichar c)
441 ) 441 )
442 { 442 {
443 if (emchar_ascii_p (c)) 443 if (ichar_ascii_p (c))
444 return LEADING_BYTE_ASCII; 444 return LEADING_BYTE_ASCII;
445 else if (c < 0xA0) 445 else if (c < 0xA0)
446 return LEADING_BYTE_CONTROL_1; 446 return LEADING_BYTE_CONTROL_1;
447 else if (c < MIN_CHAR_OFFICIAL_TYPE9NX9N) 447 else if (c < MIN_CHAR_OFFICIAL_TYPE9NX9N)
448 return emchar_field2 (c) + FIELD2_TO_OFFICIAL_LEADING_BYTE; 448 return ichar_field2 (c) + FIELD2_TO_OFFICIAL_LEADING_BYTE;
449 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N) 449 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N)
450 return emchar_field1 (c) + FIELD1_TO_OFFICIAL_LEADING_BYTE; 450 return ichar_field1 (c) + FIELD1_TO_OFFICIAL_LEADING_BYTE;
451 else if (c < MIN_CHAR_COMPOSITION) 451 else if (c < MIN_CHAR_COMPOSITION)
452 return emchar_field1 (c) + FIELD1_TO_PRIVATE_LEADING_BYTE; 452 return ichar_field1 (c) + FIELD1_TO_PRIVATE_LEADING_BYTE;
453 else 453 else
454 { 454 {
455 #ifdef ENABLE_COMPOSITE_CHARS 455 #ifdef ENABLE_COMPOSITE_CHARS
456 return LEADING_BYTE_COMPOSITE; 456 return LEADING_BYTE_COMPOSITE;
457 #else 457 #else
461 } 461 }
462 } 462 }
463 463
464 DECLARE_INLINE_HEADER ( 464 DECLARE_INLINE_HEADER (
465 Bytecount 465 Bytecount
466 emchar_len (Emchar c) 466 ichar_len (Ichar c)
467 ) 467 )
468 { 468 {
469 if (emchar_ascii_p (c)) 469 if (ichar_ascii_p (c))
470 return 1; 470 return 1;
471 else if (c < MIN_CHAR_OFFICIAL_TYPE9NX9N) 471 else if (c < MIN_CHAR_OFFICIAL_TYPE9NX9N)
472 return 2; 472 return 2;
473 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N) 473 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N)
474 return 3; /* dimension-2 official or dimension-1 private */ 474 return 3; /* dimension-2 official or dimension-1 private */
485 } 485 }
486 } 486 }
487 487
488 DECLARE_INLINE_HEADER ( 488 DECLARE_INLINE_HEADER (
489 Bytecount 489 Bytecount
490 emchar_len_fmt (Emchar c, Internal_Format fmt) 490 ichar_len_fmt (Ichar c, Internal_Format fmt)
491 ) 491 )
492 { 492 {
493 switch (fmt) 493 switch (fmt)
494 { 494 {
495 case FORMAT_DEFAULT: 495 case FORMAT_DEFAULT:
496 return emchar_len (c); 496 return ichar_len (c);
497 case FORMAT_16_BIT_FIXED: 497 case FORMAT_16_BIT_FIXED:
498 return 2; 498 return 2;
499 case FORMAT_32_BIT_FIXED: 499 case FORMAT_32_BIT_FIXED:
500 return 4; 500 return 4;
501 default: 501 default:
502 text_checking_assert (fmt == FORMAT_8_BIT_FIXED); 502 text_checking_assert (fmt == FORMAT_8_BIT_FIXED);
503 return 1; 503 return 1;
504 } 504 }
505 } 505 }
506 506
507 #define emchar_charset(c) charset_by_leading_byte (emchar_leading_byte (c)) 507 #define ichar_charset(c) charset_by_leading_byte (ichar_leading_byte (c))
508 508
509 /* Return a character whose charset is CHARSET and position-codes are C1 509 /* Return a character whose charset is CHARSET and position-codes are C1
510 and C2. TYPE9N character ignores C2. (For typical charsets, i.e. not 510 and C2. TYPE9N character ignores C2. (For typical charsets, i.e. not
511 ASCII, Control-1 or Composite, C1 and C2 will be in the range of 32 to 511 ASCII, Control-1 or Composite, C1 and C2 will be in the range of 32 to
512 127 or 33 to 126. See `make-char'.) 512 127 or 33 to 126. See `make-char'.)
515 FIELD2_TO_OFFICIAL_LEADING_BYTE and 515 FIELD2_TO_OFFICIAL_LEADING_BYTE and
516 FIELD2_TO_PRIVATE_LEADING_BYTE are the same. 516 FIELD2_TO_PRIVATE_LEADING_BYTE are the same.
517 */ 517 */
518 518
519 DECLARE_INLINE_HEADER ( 519 DECLARE_INLINE_HEADER (
520 Emchar 520 Ichar
521 make_emchar (Lisp_Object charset, int c1, int c2) 521 make_ichar (Lisp_Object charset, int c1, int c2)
522 ) 522 )
523 { 523 {
524 Emchar retval; 524 Ichar retval;
525 if (EQ (charset, Vcharset_ascii)) 525 if (EQ (charset, Vcharset_ascii))
526 retval = c1; 526 retval = c1;
527 else if (EQ (charset, Vcharset_control_1)) 527 else if (EQ (charset, Vcharset_control_1))
528 retval = c1 | 0x80; 528 retval = c1 | 0x80;
529 #ifdef ENABLE_COMPOSITE_CHARS 529 #ifdef ENABLE_COMPOSITE_CHARS
537 retval = ((XCHARSET_LEADING_BYTE (charset) - 537 retval = ((XCHARSET_LEADING_BYTE (charset) -
538 FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) | ((c1) << 7) | (c2); 538 FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) | ((c1) << 7) | (c2);
539 else 539 else
540 retval = ((XCHARSET_LEADING_BYTE (charset) - 540 retval = ((XCHARSET_LEADING_BYTE (charset) -
541 FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | ((c1) << 7) | (c2); 541 FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | ((c1) << 7) | (c2);
542 text_checking_assert (valid_emchar_p (retval)); 542 text_checking_assert (valid_ichar_p (retval));
543 return retval; 543 return retval;
544 } 544 }
545 545
546 /* BREAKUP_EMCHAR_1_UNSAFE assumes that the charset has already been 546 /* BREAKUP_ICHAR_1_UNSAFE assumes that the charset has already been
547 calculated, and just computes c1 and c2. 547 calculated, and just computes c1 and c2.
548 548
549 BREAKUP_EMCHAR also computes and stores the charset. */ 549 BREAKUP_ICHAR also computes and stores the charset. */
550 550
551 #define BREAKUP_EMCHAR_1_UNSAFE(c, charset, c1, c2) \ 551 #define BREAKUP_ICHAR_1_UNSAFE(c, charset, c1, c2) \
552 XCHARSET_DIMENSION (charset) == 1 \ 552 XCHARSET_DIMENSION (charset) == 1 \
553 ? ((c1) = emchar_field3 (c), (c2) = 0) \ 553 ? ((c1) = ichar_field3 (c), (c2) = 0) \
554 : ((c1) = emchar_field2 (c), \ 554 : ((c1) = ichar_field2 (c), \
555 (c2) = emchar_field3 (c)) 555 (c2) = ichar_field3 (c))
556 556
557 DECLARE_INLINE_HEADER ( 557 DECLARE_INLINE_HEADER (
558 void 558 void
559 breakup_emchar_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) 559 breakup_ichar_1 (Ichar c, Lisp_Object *charset, int *c1, int *c2)
560 ) 560 )
561 { 561 {
562 text_checking_assert (valid_emchar_p (c)); 562 text_checking_assert (valid_ichar_p (c));
563 *charset = emchar_charset (c); 563 *charset = ichar_charset (c);
564 BREAKUP_EMCHAR_1_UNSAFE (c, *charset, *c1, *c2); 564 BREAKUP_ICHAR_1_UNSAFE (c, *charset, *c1, *c2);
565 } 565 }
566 566
567 /* BREAKUP_EMCHAR separates an Emchar into its components. The charset of 567 /* BREAKUP_ICHAR separates an Ichar into its components. The charset of
568 character C is set to CHARSET, and the position-codes of C are set to C1 568 character C is set to CHARSET, and the position-codes of C are set to C1
569 and C2. C2 of TYPE9N character is 0. */ 569 and C2. C2 of TYPE9N character is 0. */
570 570
571 #define BREAKUP_EMCHAR(c, charset, c1, c2) \ 571 #define BREAKUP_ICHAR(c, charset, c1, c2) \
572 breakup_emchar_1 (c, &(charset), &(c1), &(c2)) 572 breakup_ichar_1 (c, &(charset), &(c1), &(c2))
573 573
574 void get_charset_limits (Lisp_Object charset, int *low, int *high); 574 void get_charset_limits (Lisp_Object charset, int *low, int *high);
575 int emchar_to_unicode (Emchar chr); 575 int ichar_to_unicode (Ichar chr);
576 576
577 #endif /* MULE */ 577 #endif /* MULE */
578 578
579 #endif /* INCLUDED_charset_h_ */ 579 #endif /* INCLUDED_charset_h_ */