view etc/unicode/other/lao.txt @ 4690:257b468bf2ca

Move the #'query-coding-region implementation to C. This is necessary because there is no reasonable way to access the corresponding mswindows-multibyte functionality from Lisp, and we need such functionality if we're going to have a reliable and portable #'query-coding-region implementation. However, this change doesn't yet provide #'query-coding-region for the mswindow-multibyte coding systems, there should be no functional differences between an XEmacs with this change and one without it. src/ChangeLog addition: 2009-09-19 Aidan Kehoe <kehoea@parhasard.net> Move the #'query-coding-region implementation to C. This is necessary because there is no reasonable way to access the corresponding mswindows-multibyte functionality from Lisp, and we need such functionality if we're going to have a reliable and portable #'query-coding-region implementation. However, this change doesn't yet provide #'query-coding-region for the mswindow-multibyte coding systems, there should be no functional differences between an XEmacs with this change and one without it. * mule-coding.c (struct fixed_width_coding_system): Add a new coding system type, fixed_width, and implement it. It uses the CCL infrastructure but has a much simpler creation API, and its own query_method, formerly in lisp/mule/mule-coding.el. * unicode.c: Move the Unicode query method implementation here from unicode.el. * lisp.h: Declare Fmake_coding_system_internal, Fcopy_range_table here. * intl-win32.c (complex_vars_of_intl_win32): Use Fmake_coding_system_internal, not Fmake_coding_system. * general-slots.h: Add Qsucceeded, Qunencodable, Qinvalid_sequence here. * file-coding.h (enum coding_system_variant): Add fixed_width_coding_system here. (struct coding_system_methods): Add query_method and query_lstream_method to the coding system methods. Provide flags for the query methods. Declare the default query method; initialise it correctly in INITIALIZE_CODING_SYSTEM_TYPE. * file-coding.c (default_query_method): New function, the default query method for coding systems that do not set it. Moved from coding.el. (make_coding_system_1): Accept new elements in PROPS in #'make-coding-system; aliases, a list of aliases; safe-chars and safe-charsets (these were previously accepted but not saved); and category. (Fmake_coding_system_internal): New function, what used to be #'make-coding-system--on Mule builds, we've now moved some of the functionality of this to Lisp. (Fcoding_system_canonical_name_p): Move this earlier in the file, since it's now called from within make_coding_system_1. (Fquery_coding_region): Move the implementation of this here, from coding.el. (complex_vars_of_file_coding): Call Fmake_coding_system_internal, not Fmake_coding_system; specify safe-charsets properties when we're a mule build. * extents.h (mouse_highlight_priority, Fset_extent_priority, Fset_extent_face, Fmap_extents): Make these available to other C files. lisp/ChangeLog addition: 2009-09-19 Aidan Kehoe <kehoea@parhasard.net> Move the #'query-coding-region implementation to C. * coding.el: Consolidate code that depends on the presence or absence of Mule at the end of this file. (default-query-coding-region, query-coding-region): Move these functions to C. (default-query-coding-region-safe-charset-skip-chars-map): Remove this variable, the corresponding C variable is Vdefault_query_coding_region_chartab_cache in file-coding.c. (query-coding-string): Update docstring to reflect actual multiple values, be more careful about not modifying a range table that we're currently mapping over. (encode-coding-char): Make the implementation of this simpler. (featurep 'mule): Autoload #'make-coding-system from mule/make-coding-system.el if we're a mule build; provide an appropriate compiler macro. Do various non-mule compatibility things if we're not a mule build. * update-elc.el (additional-dump-dependencies): Add mule/make-coding-system as a dump time dependency if we're a mule build. * unicode.el (ccl-encode-to-ucs-2): (decode-char): (encode-char): Move these earlier in the file, for the sake of some byte compile warnings. (unicode-query-coding-region): Move this to unicode.c * mule/make-coding-system.el: New file, not dumped. Contains the functionality to rework the arguments necessary for fixed-width coding systems, and contains the implementation of #'make-coding-system, which now calls #'make-coding-system-internal. * mule/vietnamese.el (viscii): * mule/latin.el (iso-8859-2): (windows-1250): (iso-8859-3): (iso-8859-4): (iso-8859-14): (iso-8859-15): (iso-8859-16): (iso-8859-9): (macintosh): (windows-1252): * mule/hebrew.el (iso-8859-8): * mule/greek.el (iso-8859-7): (windows-1253): * mule/cyrillic.el (iso-8859-5): (koi8-r): (koi8-u): (windows-1251): (alternativnyj): (koi8-ru): (koi8-t): (koi8-c): (koi8-o): * mule/arabic.el (iso-8859-6): (windows-1256): Move all these coding systems to being of type fixed-width, not of type CCL. This allows the distinct query-coding-region for them to be in C, something which will eventually allow us to implement query-coding-region for the mswindows-multibyte coding systems. * mule/general-late.el (posix-charset-to-coding-system-hash): Document why we're pre-emptively persuading the byte compiler that the ELC for this file needs to be written using escape-quoted. Call #'set-unicode-query-skip-chars-args, now the Unicode query-coding-region implementation is in C. * mule/thai-xtis.el (tis-620): Don't bother checking whether we're XEmacs or not here. * mule/mule-coding.el: Move the eight bit fixed-width functionality from this file to make-coding-system.el. tests/ChangeLog addition: 2009-09-19 Aidan Kehoe <kehoea@parhasard.net> * automated/mule-tests.el: Check a coding system's type, not an 8-bit-fixed property, for whether that coding system should be treated as a fixed-width coding system. * automated/query-coding-tests.el: Don't test the query coding functionality for mswindows-multibyte coding systems, it's not yet implemented.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 19 Sep 2009 22:53:13 +0100
parents a29c4eef8f00
children 03ab78e48ef6
line wrap: on
line source

## Made up based on the comment in lao.el:

## ;; ISO10646's 0x0E80..0x0EDF are mapped to 0x20..0x7F.

## This isn't quite right, since lao is a 94-char charset and 0x20 and 0x7F
## don't exist.

0x21   0x0E81
0x22   0x0E82
0x23   0x0E83
0x24   0x0E84
0x25   0x0E85
0x26   0x0E86
0x27   0x0E87
0x28   0x0E88
0x29   0x0E89
0x2a   0x0E8A
0x2b   0x0E8B
0x2c   0x0E8C
0x2d   0x0E8D
0x2e   0x0E8E
0x2f   0x0E8F
0x30   0x0E90
0x31   0x0E91
0x32   0x0E92
0x33   0x0E93
0x34   0x0E94
0x35   0x0E95
0x36   0x0E96
0x37   0x0E97
0x38   0x0E98
0x39   0x0E99
0x3a   0x0E9A
0x3b   0x0E9B
0x3c   0x0E9C
0x3d   0x0E9D
0x3e   0x0E9E
0x3f   0x0E9F
0x40   0x0EA0
0x41   0x0EA1
0x42   0x0EA2
0x43   0x0EA3
0x44   0x0EA4
0x45   0x0EA5
0x46   0x0EA6
0x47   0x0EA7
0x48   0x0EA8
0x49   0x0EA9
0x4a   0x0EAA
0x4b   0x0EAB
0x4c   0x0EAC
0x4d   0x0EAD
0x4e   0x0EAE
0x4f   0x0EAF
0x50   0x0EB0
0x51   0x0EB1
0x52   0x0EB2
0x53   0x0EB3
0x54   0x0EB4
0x55   0x0EB5
0x56   0x0EB6
0x57   0x0EB7
0x58   0x0EB8
0x59   0x0EB9
0x5a   0x0EBA
0x5b   0x0EBB
0x5c   0x0EBC
0x5d   0x0EBD
0x5e   0x0EBE
0x5f   0x0EBF
0x60   0x0EC0
0x61   0x0EC1
0x62   0x0EC2
0x63   0x0EC3
0x64   0x0EC4
0x65   0x0EC5
0x66   0x0EC6
0x67   0x0EC7
0x68   0x0EC8
0x69   0x0EC9
0x6a   0x0ECA
0x6b   0x0ECB
0x6c   0x0ECC
0x6d   0x0ECD
0x6e   0x0ECE
0x6f   0x0ECF
0x70   0x0ED0
0x71   0x0ED1
0x72   0x0ED2
0x73   0x0ED3
0x74   0x0ED4
0x75   0x0ED5
0x76   0x0ED6
0x77   0x0ED7
0x78   0x0ED8
0x79   0x0ED9
0x7a   0x0EDA
0x7b   0x0EDB
0x7c   0x0EDC
0x7d   0x0EDD
0x7e   0x0EDE