Mercurial > hg > xemacs-beta
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); |