comparison src/charset.h @ 4096:1abf84db2c7f

[xemacs-hg @ 2007-08-04 20:00:10 by aidan] Preserve invalid UTF-8, UTF-16 sequences on encoding, decoding.
author aidan
date Sat, 04 Aug 2007 20:00:24 +0000
parents 3ef0aaf3dc34
children d7cc9553d3eb e0db3c197671
comparison
equal deleted inserted replaced
4095:bff7e065cfdc 4096:1abf84db2c7f
565 enum unicode_type 565 enum unicode_type
566 { 566 {
567 UNICODE_UTF_16, 567 UNICODE_UTF_16,
568 UNICODE_UTF_8, 568 UNICODE_UTF_8,
569 UNICODE_UTF_7, 569 UNICODE_UTF_7,
570 UNICODE_UCS_4 570 UNICODE_UCS_4,
571 UNICODE_UTF_32
571 }; 572 };
572 573
573 void encode_unicode_char (Lisp_Object USED_IF_MULE (charset), int h, 574 void encode_unicode_char (Lisp_Object USED_IF_MULE (charset), int h,
574 int USED_IF_MULE (l), unsigned_char_dynarr *dst, 575 int USED_IF_MULE (l), unsigned_char_dynarr *dst,
575 enum unicode_type type, unsigned int little_endian); 576 enum unicode_type type, unsigned int little_endian,
577 int write_error_characters_as_such);
578
579 #define UNICODE_ERROR_OCTET_RANGE_START 0x200000
580
581 #define valid_utf_16_first_surrogate(ch) (((ch) & 0xFC00) == 0xD800)
582 #define valid_utf_16_last_surrogate(ch) (((ch) & 0xFC00) == 0xDC00)
583 #define valid_utf_16_surrogate(ch) (((ch) & 0xF800) == 0xD800)
576 584
577 void set_charset_registries(Lisp_Object charset, Lisp_Object registries); 585 void set_charset_registries(Lisp_Object charset, Lisp_Object registries);
578 586
579 EXFUN (Funicode_to_char, 2); 587 EXFUN (Funicode_to_char, 2);
580 EXFUN (Fchar_to_unicode, 1); 588 EXFUN (Fchar_to_unicode, 1);