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 /************************************************************************/