Mercurial > hg > xemacs-beta
comparison src/mule-charset.h @ 371:cc15677e0335 r21-2b1
Import from CVS: tag r21-2b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:03:08 +0200 |
parents | fbbf69b4e8a7 |
children | 6719134a07c2 |
comparison
equal
deleted
inserted
replaced
370:bd866891f083 | 371:cc15677e0335 |
---|---|
325 /************************************************************************/ | 325 /************************************************************************/ |
326 | 326 |
327 #define MIN_LEADING_BYTE 0x80 | 327 #define MIN_LEADING_BYTE 0x80 |
328 /* These need special treatment in a string and/or character */ | 328 /* These need special treatment in a string and/or character */ |
329 #define LEADING_BYTE_ASCII 0x8E /* Omitted in a buffer */ | 329 #define LEADING_BYTE_ASCII 0x8E /* Omitted in a buffer */ |
330 #ifdef ENABLE_COMPOSITE_CHARS | |
331 #define LEADING_BYTE_COMPOSITE 0x80 /* for a composite character */ | 330 #define LEADING_BYTE_COMPOSITE 0x80 /* for a composite character */ |
332 #endif | |
333 #define LEADING_BYTE_CONTROL_1 0x8F /* represent normal 80-9F */ | 331 #define LEADING_BYTE_CONTROL_1 0x8F /* represent normal 80-9F */ |
334 | 332 |
335 /** The following are for 1-byte characters in an official charset. **/ | 333 /** The following are for 1-byte characters in an official charset. **/ |
336 | 334 |
337 #define LEADING_BYTE_LATIN_ISO8859_1 0x81 /* Right half of ISO 8859-1 */ | 335 #define LEADING_BYTE_LATIN_ISO8859_1 0x81 /* Right half of ISO 8859-1 */ |
676 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N) | 674 else if (c < MIN_CHAR_PRIVATE_TYPE9NX9N) |
677 return CHAR_FIELD1 (c) + FIELD1_TO_OFFICIAL_LEADING_BYTE; | 675 return CHAR_FIELD1 (c) + FIELD1_TO_OFFICIAL_LEADING_BYTE; |
678 else if (c < MIN_CHAR_COMPOSITION) | 676 else if (c < MIN_CHAR_COMPOSITION) |
679 return CHAR_FIELD1 (c) + FIELD1_TO_PRIVATE_LEADING_BYTE; | 677 return CHAR_FIELD1 (c) + FIELD1_TO_PRIVATE_LEADING_BYTE; |
680 else | 678 else |
681 { | 679 return LEADING_BYTE_COMPOSITE; |
682 #ifdef ENABLE_COMPOSITE_CHARS | |
683 return LEADING_BYTE_COMPOSITE; | |
684 #else | |
685 abort(); | |
686 return 0; | |
687 #endif /* ENABLE_COMPOSITE_CHARS */ | |
688 } | |
689 } | 680 } |
690 | 681 |
691 #define CHAR_CHARSET(c) CHARSET_BY_LEADING_BYTE (CHAR_LEADING_BYTE (c)) | 682 #define CHAR_CHARSET(c) CHARSET_BY_LEADING_BYTE (CHAR_LEADING_BYTE (c)) |
692 | 683 |
693 /* Return a character whose charset is CHARSET and position-codes | 684 /* Return a character whose charset is CHARSET and position-codes |
704 { | 695 { |
705 if (EQ (charset, Vcharset_ascii)) | 696 if (EQ (charset, Vcharset_ascii)) |
706 return c1; | 697 return c1; |
707 else if (EQ (charset, Vcharset_control_1)) | 698 else if (EQ (charset, Vcharset_control_1)) |
708 return c1 | 0x80; | 699 return c1 | 0x80; |
709 #ifdef ENABLE_COMPOSITE_CHARS | |
710 else if (EQ (charset, Vcharset_composite)) | 700 else if (EQ (charset, Vcharset_composite)) |
711 return (0x1F << 14) | ((c1) << 7) | (c2); | 701 return (0x1F << 14) | ((c1) << 7) | (c2); |
712 #endif | |
713 else if (XCHARSET_DIMENSION (charset) == 1) | 702 else if (XCHARSET_DIMENSION (charset) == 1) |
714 return ((XCHARSET_LEADING_BYTE (charset) - | 703 return ((XCHARSET_LEADING_BYTE (charset) - |
715 FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7) | (c1); | 704 FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7) | (c1); |
716 else if (!XCHARSET_PRIVATE_P (charset)) | 705 else if (!XCHARSET_PRIVATE_P (charset)) |
717 return ((XCHARSET_LEADING_BYTE (charset) - | 706 return ((XCHARSET_LEADING_BYTE (charset) - |
747 #define BREAKUP_CHAR(c, charset, c1, c2) \ | 736 #define BREAKUP_CHAR(c, charset, c1, c2) \ |
748 breakup_char_1 (c, &(charset), &(c1), &(c2)) | 737 breakup_char_1 (c, &(charset), &(c1), &(c2)) |
749 | 738 |
750 | 739 |
751 | 740 |
752 #ifdef ENABLE_COMPOSITE_CHARS | |
753 /************************************************************************/ | 741 /************************************************************************/ |
754 /* Composite characters */ | 742 /* Composite characters */ |
755 /************************************************************************/ | 743 /************************************************************************/ |
756 | 744 |
757 Emchar lookup_composite_char (Bufbyte *str, int len); | 745 Emchar lookup_composite_char (Bufbyte *str, int len); |
758 Lisp_Object composite_char_string (Emchar ch); | 746 Lisp_Object composite_char_string (Emchar ch); |
759 #endif /* ENABLE_COMPOSITE_CHARS */ | |
760 | 747 |
761 | 748 |
762 /************************************************************************/ | 749 /************************************************************************/ |
763 /* Exported functions */ | 750 /* Exported functions */ |
764 /************************************************************************/ | 751 /************************************************************************/ |