Mercurial > hg > xemacs-beta
changeset 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 | 0636c6ccb430 |
children | 3ba90c659d01 |
files | lisp/ChangeLog lisp/coding.el lisp/mule/arabic.el lisp/mule/cyrillic.el lisp/mule/general-late.el lisp/mule/greek.el lisp/mule/hebrew.el lisp/mule/latin.el lisp/mule/make-coding-system.el lisp/mule/mule-coding.el lisp/mule/thai-xtis.el lisp/mule/vietnamese.el lisp/unicode.el lisp/update-elc.el src/ChangeLog src/extents.h src/file-coding.c src/file-coding.h src/general-slots.h src/intl-win32.c src/lisp.h src/mule-coding.c src/rangetab.c src/unicode.c tests/ChangeLog tests/automated/mule-tests.el tests/automated/query-coding-tests.el |
diffstat | 27 files changed, 5779 insertions(+), 4720 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/ChangeLog Sat Sep 19 22:53:13 2009 +0100 @@ -1,3 +1,78 @@ +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. + 2009-09-14 Michael Sperber <mike@xemacs.org> * frame.el (pre-display-buffer-function): Don't set to
--- a/lisp/coding.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/coding.el Sat Sep 19 22:53:13 2009 +0100 @@ -270,25 +270,12 @@ (terminal terminal-coding-system) (keyboard keyboard-coding-system))) -(when (not (featurep 'mule)) - (define-coding-system-alias 'escape-quoted 'binary) - ;; these are so that gnus and friends work when not mule - (define-coding-system-alias 'iso-8859-1 'raw-text) - ;; We're misrepresenting ourselves to the gnus code by saying we support - ;; both. - ; (define-coding-system-alias 'iso-8859-2 'raw-text) - (define-coding-system-alias 'ctext 'raw-text)) - (make-compatible-variable 'enable-multibyte-characters "Unimplemented") ;; Sure would be nice to be able to use defface here. (copy-face 'highlight 'query-coding-warning-face) -(defvar default-query-coding-region-safe-charset-skip-chars-map - #s(hash-table test equal data ()) - "A map from list of charsets to `skip-chars-forward' arguments for them.") - -(defsubst query-coding-clear-highlights (begin end &optional buffer-or-string) +(defun query-coding-clear-highlights (begin end &optional buffer-or-string) "Remove extent faces added by `query-coding-region' between BEGIN and END. Optional argument BUFFER-OR-STRING is the buffer or string to use, and @@ -302,170 +289,6 @@ (extent-face extent)) (delete-extent extent))) buffer-or-string begin end)) -(defun* default-query-coding-region (begin end coding-system - &optional buffer ignore-invalid-sequencesp - errorp highlightp) - "The default `query-coding-region' implementation. - -Uses the `safe-charsets' and `safe-chars' coding system properties. -The former is a list of XEmacs character sets that can be safely -encoded by CODING-SYSTEM; the latter a char table describing, in -addition, characters that can be safely encoded by CODING-SYSTEM. - -Does not support IGNORE-INVALID-SEQUENCESP." - (check-argument-type #'coding-system-p - (setq coding-system (find-coding-system coding-system))) - (check-argument-type #'integer-or-marker-p begin) - (check-argument-type #'integer-or-marker-p end) - (let* ((safe-charsets - (or (coding-system-get coding-system 'safe-charsets) - (coding-system-get (coding-system-base coding-system) - 'safe-charsets))) - (safe-chars - (or (coding-system-get coding-system 'safe-chars) - (coding-system-get (coding-system-base coding-system) - 'safe-chars))) - (skip-chars-arg - (gethash safe-charsets - default-query-coding-region-safe-charset-skip-chars-map)) - (ranges (make-range-table)) - (case-fold-search nil) - fail-range-start fail-range-end char-after - looking-at-arg failed extent) - ;; Coding systems with a value of t for safe-charsets support everything. - (when (eq t safe-charsets) - (return-from default-query-coding-region (values t nil))) - (unless skip-chars-arg - (setq skip-chars-arg - (puthash safe-charsets - (mapconcat #'charset-skip-chars-string - safe-charsets "") - default-query-coding-region-safe-charset-skip-chars-map))) - (when highlightp - (query-coding-clear-highlights begin end buffer)) - (if (and (zerop (length skip-chars-arg)) (null safe-chars)) - (progn - ;; Uh-oh, nothing known about this coding system. Fail. - (when errorp - (error 'text-conversion-error - "Coding system doesn't say what it can encode" - (coding-system-name coding-system))) - (put-range-table begin end t ranges) - (when highlightp - (setq extent (make-extent begin end buffer)) - (set-extent-priority extent (+ mouse-highlight-priority 2)) - (set-extent-face extent 'query-coding-warning-face)) - (values nil ranges)) - (setq looking-at-arg (if (equal "" skip-chars-arg) - ;; Regexp that will never match. - #r".\{0,0\}" - (concat "[" skip-chars-arg "]"))) - (save-excursion - (goto-char begin buffer) - (skip-chars-forward skip-chars-arg end buffer) - (while (< (point buffer) end) - ; (message - ; "fail-range-start is %S, point is %S, end is %S" - ; fail-range-start (point buffer) end) - (setq char-after (char-after (point buffer) buffer) - fail-range-start (point buffer)) - (while (and - (< (point buffer) end) - (not (looking-at looking-at-arg)) - (or (not safe-chars) - (not (get-char-table char-after safe-chars)))) - (forward-char 1 buffer) - (setq char-after (char-after (point buffer) buffer) - failed t)) - (if (= fail-range-start (point buffer)) - ;; The character can actually be encoded by the coding - ;; system; check the characters past it. - (forward-char 1 buffer) - ;; Can't be encoded; note this. - (when errorp - (error 'text-conversion-error - (format "Cannot encode %s using coding system" - (buffer-substring fail-range-start (point buffer) - buffer)) - (coding-system-name coding-system))) - (put-range-table fail-range-start - ;; If char-after is non-nil, we're not at - ;; the end of the buffer. - (setq fail-range-end (if char-after - (point buffer) - (point-max buffer))) - t ranges) - (when highlightp - (setq extent (make-extent fail-range-start fail-range-end buffer)) - (set-extent-priority extent (+ mouse-highlight-priority 2)) - (set-extent-face extent 'query-coding-warning-face))) - (skip-chars-forward skip-chars-arg end buffer)) - (if failed - (values nil ranges) - (values t nil)))))) - -(defun query-coding-region (start end coding-system &optional buffer - ignore-invalid-sequencesp errorp highlight) - "Work out whether CODING-SYSTEM can losslessly encode a region. - -START and END are the beginning and end of the region to check. -CODING-SYSTEM is the coding system to try. - -Optional argument BUFFER is the buffer to check, and defaults to the current -buffer. - -IGNORE-INVALID-SEQUENCESP, also an optional argument, says to treat XEmacs -characters which have an unambiguous encoded representation, despite being -undefined in what they represent, as encodable. These chiefly arise with -variable-length encodings like UTF-8 and UTF-16, where an invalid sequence -is passed through to XEmacs as a sequence of characters with a defined -correspondence to the octets on disk, but no non-error semantics; see the -`invalid-sequence-coding-system' argument to `set-language-info'. - -They can also arise with fixed-length encodings like ISO 8859-7, where -certain octets on disk have undefined values, and treating them as -corresponding to the ISO 8859-1 characters with the same numerical values -may lead to data that is not understood by other applications. - -Optional argument ERRORP says to signal a `text-conversion-error' if some -character in the region cannot be encoded, and defaults to nil. - -Optional argument HIGHLIGHT says to display unencodable characters in the -region using `query-coding-warning-face'. It defaults to nil. - -This function returns a list; the intention is that callers use -`multiple-value-bind' or the related CL multiple value functions to deal -with it. The first element is `t' if the region can be encoded using -CODING-SYSTEM, or `nil' if not. The second element is `nil' if the region -can be encoded using CODING-SYSTEM; otherwise, it is a range table -describing the positions of the unencodable characters. Ranges that -describe characters that would be ignored were IGNORE-INVALID-SEQUENCESP -non-nil map to the symbol `invalid-sequence'; other ranges map to the symbol -`unencodable'. If IGNORE-INVALID-SEQUENCESP is non-nil, all ranges will map -to the symbol `unencodable'. See `make-range-table' for more details of -range tables." - (funcall (or (coding-system-get coding-system 'query-coding-function) - #'default-query-coding-region) - start end coding-system buffer ignore-invalid-sequencesp errorp - highlight)) - -(define-compiler-macro query-coding-region (start end coding-system - &optional buffer - ignore-invalid-sequencesp - errorp highlight) - `(funcall (or (coding-system-get ,coding-system 'query-coding-function) - #'default-query-coding-region) - ,start ,end ,coding-system ,@(append (when (or buffer - ignore-invalid-sequencesp - errorp highlight) - (list buffer)) - (when (or ignore-invalid-sequencesp - errorp highlight) - (list ignore-invalid-sequencesp)) - (when (or errorp highlight) - (list errorp)) - (when highlight (list highlight))))) - (defun query-coding-string (string coding-system &optional ignore-invalid-sequencesp errorp highlight) "Work out whether CODING-SYSTEM can losslessly encode STRING. @@ -482,7 +305,7 @@ They can also arise with fixed-length encodings like ISO 8859-7, where certain octets on disk have undefined values, and treating them as corresponding to the ISO 8859-1 characters with the same numerical values -may lead to data that is not understood by other applications. +may lead to data that are not understood by other applications. Optional argument ERRORP says to signal a `text-conversion-error' if some character in the region cannot be encoded, and defaults to nil. @@ -490,39 +313,42 @@ Optional argument HIGHLIGHT says to display unencodable characters in the region using `query-coding-warning-face'. It defaults to nil. -This function returns a list; the intention is that callers use +This function can return multiple values; the intention is that callers use `multiple-value-bind' or the related CL multiple value functions to deal -with it. The first element is `t' if the region can be encoded using -CODING-SYSTEM, or `nil' if not. The second element is `nil' if the region -can be encoded using CODING-SYSTEM; otherwise, it is a range table -describing the positions of the unencodable characters. Ranges that -describe characters that would be ignored were IGNORE-INVALID-SEQUENCESP -non-nil map to the symbol `invalid-sequence'; other ranges map to the symbol -`unencodable'. If IGNORE-INVALID-SEQUENCESP is non-nil, all ranges will map -to the symbol `unencodable'. See `make-range-table' for more details of -range tables." +with it. The first result is `t' if the region can be encoded using +CODING-SYSTEM, or `nil' if not. If the region cannot be encoded using +CODING-SYSTEM, the second result is a range table describing the positions +of the unencodable characters. + +Ranges that describe characters that would be ignored were +IGNORE-INVALID-SEQUENCESP non-nil map to the symbol `invalid-sequence'; +other ranges map to the symbol `unencodable'. If IGNORE-INVALID-SEQUENCESP +is non-nil, all ranges will map to the symbol `unencodable'. See +`make-range-table' for more details of range tables." (with-temp-buffer (when highlight (query-coding-clear-highlights 0 (length string) string)) (insert string) - (multiple-value-bind (result ranges extent) + (multiple-value-bind (result ranges) (query-coding-region (point-min) (point-max) coding-system (current-buffer) ignore-invalid-sequencesp errorp) - (unless result - (map-range-table - #'(lambda (begin end value) - ;; Sigh, string indices are zero-based, buffer offsets are - ;; one-based. - (remove-range-table begin end ranges) - (put-range-table (decf begin) (decf end) value ranges) - (when highlight - (setq extent (make-extent begin end string)) - (set-extent-priority extent (+ mouse-highlight-priority 2)) - (set-extent-property extent 'duplicable t) - (set-extent-face extent 'query-coding-warning-face))) - ranges)) - (values result ranges)))) + (unless result + (let ((original-ranges ranges) + extent) + (setq ranges (make-range-table)) + (map-range-table + #'(lambda (begin end value) + ;; Sigh, string indices are zero-based, buffer offsets are + ;; one-based. + (put-range-table (decf begin) (decf end) value ranges) + (when highlight + (setq extent (make-extent begin end string)) + (set-extent-priority extent (+ mouse-highlight-priority 2)) + (set-extent-property extent 'duplicable t) + (set-extent-face extent 'query-coding-warning-face))) + original-ranges))) + (if result result (values result ranges))))) ;; Function docstring and API are taken from GNU coding.c version 1.353, GPLv2. (defun unencodable-char-position (start end coding-system @@ -615,7 +441,8 @@ (multiple-value-bind (encoded ranges) (query-coding-region begin end coding-system) (unless encoded - (setq intermediate (list (coding-system-name coding-system))) + (setq intermediate + (list (coding-system-name coding-system))) (map-range-table range-lambda ranges) (push (nreverse intermediate) result))) finally return result)))) @@ -634,18 +461,36 @@ If CODING-SYSTEM can't safely encode CHAR, return nil. The optional third argument CHARSET is, for the moment, ignored." (check-argument-type #'characterp char) - (multiple-value-bind (succeededp) - (query-coding-string char coding-system) - (when succeededp - (encode-coding-string char coding-system)))) + (and (query-coding-string char coding-system) + (encode-coding-string char coding-system))) + +(if (featurep 'mule) + (progn + ;; Under Mule, we do much of the complicated coding system creation in + ;; Lisp and especially at compile time. We need some function + ;; definition for this function to be created in this file, but we can + ;; leave assigning the docstring to the autoload cookie + ;; handling later. Thankfully; that docstring is big. + (autoload 'make-coding-system "mule/make-coding-system") -(unless (featurep 'mule) - ;; If we're under non-Mule, every XEmacs character can be encoded - ;; with every XEmacs coding system. - (fset #'default-query-coding-region - #'(lambda (&rest ignored) - "Stub `query-coding-region' implementation. Always succeeds." - (values t nil))) - (unintern 'default-query-coding-region-safe-charset-skip-chars-map)) + ;; (During byte-compile before dumping, make-coding-system may already + ;; have been loaded, make sure not to overwrite the correct compiler + ;; macro:) + (when (eq 'autoload (car (symbol-function 'make-coding-system))) + ;; Make sure to pick up the correct compiler macro when compiling + ;; files: + (define-compiler-macro make-coding-system (&whole form name type + &optional description props) + (load (second (symbol-function 'make-coding-system))) + (funcall (get 'make-coding-system 'cl-compiler-macro) + form name type description props)))) + + ;; Mule's not available; + (fset 'make-coding-system (symbol-function 'make-coding-system-internal)) + (define-coding-system-alias 'escape-quoted 'binary) + + ;; These are so that gnus and friends work when not mule: + (define-coding-system-alias 'iso-8859-1 'raw-text) + (define-coding-system-alias 'ctext 'raw-text)) ;;; coding.el ends here
--- a/lisp/mule/arabic.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/arabic.el Sat Sep 19 22:53:13 2009 +0100 @@ -31,226 +31,226 @@ ;; See iso-with-esc.el for commentary on the ISO standard Arabic character ;; set. -(make-8-bit-coding-system - 'iso-8859-6 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xAC ?\u060C) ;; ARABIC COMMA - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xBB ?\u061B) ;; ARABIC SEMICOLON - (#xBF ?\u061F) ;; ARABIC QUESTION MARK - (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA - (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE - (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE - (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE - (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW - (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE - (#xC7 ?\u0627) ;; ARABIC LETTER ALEF - (#xC8 ?\u0628) ;; ARABIC LETTER BEH - (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA - (#xCA ?\u062A) ;; ARABIC LETTER TEH - (#xCB ?\u062B) ;; ARABIC LETTER THEH - (#xCC ?\u062C) ;; ARABIC LETTER JEEM - (#xCD ?\u062D) ;; ARABIC LETTER HAH - (#xCE ?\u062E) ;; ARABIC LETTER KHAH - (#xCF ?\u062F) ;; ARABIC LETTER DAL - (#xD0 ?\u0630) ;; ARABIC LETTER THAL - (#xD1 ?\u0631) ;; ARABIC LETTER REH - (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN - (#xD3 ?\u0633) ;; ARABIC LETTER SEEN - (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN - (#xD5 ?\u0635) ;; ARABIC LETTER SAD - (#xD6 ?\u0636) ;; ARABIC LETTER DAD - (#xD7 ?\u0637) ;; ARABIC LETTER TAH - (#xD8 ?\u0638) ;; ARABIC LETTER ZAH - (#xD9 ?\u0639) ;; ARABIC LETTER AIN - (#xDA ?\u063A) ;; ARABIC LETTER GHAIN - (#xE0 ?\u0640) ;; ARABIC TATWEEL - (#xE1 ?\u0641) ;; ARABIC LETTER FEH - (#xE2 ?\u0642) ;; ARABIC LETTER QAF - (#xE3 ?\u0643) ;; ARABIC LETTER KAF - (#xE4 ?\u0644) ;; ARABIC LETTER LAM - (#xE5 ?\u0645) ;; ARABIC LETTER MEEM - (#xE6 ?\u0646) ;; ARABIC LETTER NOON - (#xE7 ?\u0647) ;; ARABIC LETTER HEH - (#xE8 ?\u0648) ;; ARABIC LETTER WAW - (#xE9 ?\u0649) ;; ARABIC LETTER ALEF MAKSURA - (#xEA ?\u064A) ;; ARABIC LETTER YEH - (#xEB ?\u064B) ;; ARABIC FATHATAN - (#xEC ?\u064C) ;; ARABIC DAMMATAN - (#xED ?\u064D) ;; ARABIC KASRATAN - (#xEE ?\u064E) ;; ARABIC FATHA - (#xEF ?\u064F) ;; ARABIC DAMMA - (#xF0 ?\u0650) ;; ARABIC KASRA - (#xF1 ?\u0651) ;; ARABIC SHADDA - (#xF2 ?\u0652)) ;; ARABIC SUKUN - "ISO 8859-6 (Arabic)" -'(mnemonic "ArISO")) +(make-coding-system + 'iso-8859-6 'fixed-width "ISO 8859-6 (Arabic)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xAC ?\u060C) ;; ARABIC COMMA + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xBB ?\u061B) ;; ARABIC SEMICOLON + (#xBF ?\u061F) ;; ARABIC QUESTION MARK + (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA + (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE + (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE + (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE + (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW + (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE + (#xC7 ?\u0627) ;; ARABIC LETTER ALEF + (#xC8 ?\u0628) ;; ARABIC LETTER BEH + (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA + (#xCA ?\u062A) ;; ARABIC LETTER TEH + (#xCB ?\u062B) ;; ARABIC LETTER THEH + (#xCC ?\u062C) ;; ARABIC LETTER JEEM + (#xCD ?\u062D) ;; ARABIC LETTER HAH + (#xCE ?\u062E) ;; ARABIC LETTER KHAH + (#xCF ?\u062F) ;; ARABIC LETTER DAL + (#xD0 ?\u0630) ;; ARABIC LETTER THAL + (#xD1 ?\u0631) ;; ARABIC LETTER REH + (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN + (#xD3 ?\u0633) ;; ARABIC LETTER SEEN + (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN + (#xD5 ?\u0635) ;; ARABIC LETTER SAD + (#xD6 ?\u0636) ;; ARABIC LETTER DAD + (#xD7 ?\u0637) ;; ARABIC LETTER TAH + (#xD8 ?\u0638) ;; ARABIC LETTER ZAH + (#xD9 ?\u0639) ;; ARABIC LETTER AIN + (#xDA ?\u063A) ;; ARABIC LETTER GHAIN + (#xE0 ?\u0640) ;; ARABIC TATWEEL + (#xE1 ?\u0641) ;; ARABIC LETTER FEH + (#xE2 ?\u0642) ;; ARABIC LETTER QAF + (#xE3 ?\u0643) ;; ARABIC LETTER KAF + (#xE4 ?\u0644) ;; ARABIC LETTER LAM + (#xE5 ?\u0645) ;; ARABIC LETTER MEEM + (#xE6 ?\u0646) ;; ARABIC LETTER NOON + (#xE7 ?\u0647) ;; ARABIC LETTER HEH + (#xE8 ?\u0648) ;; ARABIC LETTER WAW + (#xE9 ?\u0649) ;; ARABIC LETTER ALEF MAKSURA + (#xEA ?\u064A) ;; ARABIC LETTER YEH + (#xEB ?\u064B) ;; ARABIC FATHATAN + (#xEC ?\u064C) ;; ARABIC DAMMATAN + (#xED ?\u064D) ;; ARABIC KASRATAN + (#xEE ?\u064E) ;; ARABIC FATHA + (#xEF ?\u064F) ;; ARABIC DAMMA + (#xF0 ?\u0650) ;; ARABIC KASRA + (#xF1 ?\u0651) ;; ARABIC SHADDA + (#xF2 ?\u0652)) ;; ARABIC SUKUN + mnemonic "ArISO")) -(make-8-bit-coding-system - 'windows-1256 - '((#x80 ?\u20AC) ;; EURO SIGN - (#x81 ?\u067E) ;; ARABIC LETTER PEH - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8A ?\u0679) ;; ARABIC LETTER TTEH - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE - (#x8D ?\u0686) ;; ARABIC LETTER TCHEH - (#x8E ?\u0698) ;; ARABIC LETTER JEH - (#x8F ?\u0688) ;; ARABIC LETTER DDAL - (#x90 ?\u06AF) ;; ARABIC LETTER GAF - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x98 ?\u06A9) ;; ARABIC LETTER KEHEH - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9A ?\u0691) ;; ARABIC LETTER RREH - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE - (#x9D ?\u200C) ;; ZERO WIDTH NON-JOINER - (#x9E ?\u200D) ;; ZERO WIDTH JOINER - (#x9F ?\u06BA) ;; ARABIC LETTER NOON GHUNNA - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u060C) ;; ARABIC COMMA - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u06BE) ;; ARABIC LETTER HEH DOACHASHMEE - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE - (#xBA ?\u061B) ;; ARABIC SEMICOLON - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS - (#xBF ?\u061F) ;; ARABIC QUESTION MARK - (#xC0 ?\u06C1) ;; ARABIC LETTER HEH GOAL - (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA - (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE - (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE - (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE - (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW - (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE - (#xC7 ?\u0627) ;; ARABIC LETTER ALEF - (#xC8 ?\u0628) ;; ARABIC LETTER BEH - (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA - (#xCA ?\u062A) ;; ARABIC LETTER TEH - (#xCB ?\u062B) ;; ARABIC LETTER THEH - (#xCC ?\u062C) ;; ARABIC LETTER JEEM - (#xCD ?\u062D) ;; ARABIC LETTER HAH - (#xCE ?\u062E) ;; ARABIC LETTER KHAH - (#xCF ?\u062F) ;; ARABIC LETTER DAL - (#xD0 ?\u0630) ;; ARABIC LETTER THAL - (#xD1 ?\u0631) ;; ARABIC LETTER REH - (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN - (#xD3 ?\u0633) ;; ARABIC LETTER SEEN - (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN - (#xD5 ?\u0635) ;; ARABIC LETTER SAD - (#xD6 ?\u0636) ;; ARABIC LETTER DAD - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u0637) ;; ARABIC LETTER TAH - (#xD9 ?\u0638) ;; ARABIC LETTER ZAH - (#xDA ?\u0639) ;; ARABIC LETTER AIN - (#xDB ?\u063A) ;; ARABIC LETTER GHAIN - (#xDC ?\u0640) ;; ARABIC TATWEEL - (#xDD ?\u0641) ;; ARABIC LETTER FEH - (#xDE ?\u0642) ;; ARABIC LETTER QAF - (#xDF ?\u0643) ;; ARABIC LETTER KAF - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u0644) ;; ARABIC LETTER LAM - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u0645) ;; ARABIC LETTER MEEM - (#xE4 ?\u0646) ;; ARABIC LETTER NOON - (#xE5 ?\u0647) ;; ARABIC LETTER HEH - (#xE6 ?\u0648) ;; ARABIC LETTER WAW - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u0649) ;; ARABIC LETTER ALEF MAKSURA - (#xED ?\u064A) ;; ARABIC LETTER YEH - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u064B) ;; ARABIC FATHATAN - (#xF1 ?\u064C) ;; ARABIC DAMMATAN - (#xF2 ?\u064D) ;; ARABIC KASRATAN - (#xF3 ?\u064E) ;; ARABIC FATHA - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u064F) ;; ARABIC DAMMA - (#xF6 ?\u0650) ;; ARABIC KASRA - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u0651) ;; ARABIC SHADDA - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u0652) ;; ARABIC SUKUN - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK - (#xFE ?\u200F) ;; RIGHT-TO-LEFT MARK - (#xFF ?\u06D2));; ARABIC LETTER YEH BARREE - "Windows-1256 (Arabic)" - '(mnemonic "cp1256" +(make-coding-system + 'windows-1256 'fixed-width "Windows-1256 (Arabic)" + '(unicode-map + ((#x80 ?\u20AC) ;; EURO SIGN + (#x81 ?\u067E) ;; ARABIC LETTER PEH + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8A ?\u0679) ;; ARABIC LETTER TTEH + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE + (#x8D ?\u0686) ;; ARABIC LETTER TCHEH + (#x8E ?\u0698) ;; ARABIC LETTER JEH + (#x8F ?\u0688) ;; ARABIC LETTER DDAL + (#x90 ?\u06AF) ;; ARABIC LETTER GAF + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x98 ?\u06A9) ;; ARABIC LETTER KEHEH + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9A ?\u0691) ;; ARABIC LETTER RREH + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE + (#x9D ?\u200C) ;; ZERO WIDTH NON-JOINER + (#x9E ?\u200D) ;; ZERO WIDTH JOINER + (#x9F ?\u06BA) ;; ARABIC LETTER NOON GHUNNA + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u060C) ;; ARABIC COMMA + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u06BE) ;; ARABIC LETTER HEH DOACHASHMEE + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE + (#xBA ?\u061B) ;; ARABIC SEMICOLON + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS + (#xBF ?\u061F) ;; ARABIC QUESTION MARK + (#xC0 ?\u06C1) ;; ARABIC LETTER HEH GOAL + (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA + (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE + (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE + (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE + (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW + (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE + (#xC7 ?\u0627) ;; ARABIC LETTER ALEF + (#xC8 ?\u0628) ;; ARABIC LETTER BEH + (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA + (#xCA ?\u062A) ;; ARABIC LETTER TEH + (#xCB ?\u062B) ;; ARABIC LETTER THEH + (#xCC ?\u062C) ;; ARABIC LETTER JEEM + (#xCD ?\u062D) ;; ARABIC LETTER HAH + (#xCE ?\u062E) ;; ARABIC LETTER KHAH + (#xCF ?\u062F) ;; ARABIC LETTER DAL + (#xD0 ?\u0630) ;; ARABIC LETTER THAL + (#xD1 ?\u0631) ;; ARABIC LETTER REH + (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN + (#xD3 ?\u0633) ;; ARABIC LETTER SEEN + (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN + (#xD5 ?\u0635) ;; ARABIC LETTER SAD + (#xD6 ?\u0636) ;; ARABIC LETTER DAD + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u0637) ;; ARABIC LETTER TAH + (#xD9 ?\u0638) ;; ARABIC LETTER ZAH + (#xDA ?\u0639) ;; ARABIC LETTER AIN + (#xDB ?\u063A) ;; ARABIC LETTER GHAIN + (#xDC ?\u0640) ;; ARABIC TATWEEL + (#xDD ?\u0641) ;; ARABIC LETTER FEH + (#xDE ?\u0642) ;; ARABIC LETTER QAF + (#xDF ?\u0643) ;; ARABIC LETTER KAF + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u0644) ;; ARABIC LETTER LAM + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u0645) ;; ARABIC LETTER MEEM + (#xE4 ?\u0646) ;; ARABIC LETTER NOON + (#xE5 ?\u0647) ;; ARABIC LETTER HEH + (#xE6 ?\u0648) ;; ARABIC LETTER WAW + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u0649) ;; ARABIC LETTER ALEF MAKSURA + (#xED ?\u064A) ;; ARABIC LETTER YEH + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u064B) ;; ARABIC FATHATAN + (#xF1 ?\u064C) ;; ARABIC DAMMATAN + (#xF2 ?\u064D) ;; ARABIC KASRATAN + (#xF3 ?\u064E) ;; ARABIC FATHA + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u064F) ;; ARABIC DAMMA + (#xF6 ?\u0650) ;; ARABIC KASRA + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u0651) ;; ARABIC SHADDA + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u0652) ;; ARABIC SUKUN + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK + (#xFE ?\u200F) ;; RIGHT-TO-LEFT MARK + (#xFF ?\u06D2)) ;; ARABIC LETTER YEH BARREE + mnemonic "cp1256" documentation "This is the much Windows encoding for Arabic, much superior to the ISO standard one."
--- a/lisp/mule/cyrillic.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/cyrillic.el Sat Sep 19 22:53:13 2009 +0100 @@ -106,138 +106,138 @@ (standard-syntax-table)) ;; And create the coding system. -(make-8-bit-coding-system - 'iso-8859-5 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xA2 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE - (#xA3 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE - (#xA4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xA5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE - (#xA6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xA7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xA8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE - (#xA9 ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE - (#xAA ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE - (#xAB ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE - (#xAC ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xAF ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE - (#xB0 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xB1 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xB2 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xB3 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xB4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xB5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xB6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xB7 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xB8 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xB9 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xBA ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xBB ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xBC ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xBD ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xBE ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xBF ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xC0 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xC1 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xC2 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xC3 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xC4 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xC5 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xC6 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xC7 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xC8 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xC9 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xCA ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN - (#xCB ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xCC ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xCD ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xCE ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xCF ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xD0 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xD1 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xD2 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xD4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xD5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xD8 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xD9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xDA ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xDB ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xDC ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xDD ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xDE ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xDF ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xE0 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xE1 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xE2 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xE3 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xE4 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xE5 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xE6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xE7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xE8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xE9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xEA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xEB ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xEC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xED ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xEE ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xEF ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xF0 ?\u2116) ;; NUMERO SIGN - (#xF1 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xF2 ?\u0452) ;; CYRILLIC SMALL LETTER DJE - (#xF3 ?\u0453) ;; CYRILLIC SMALL LETTER GJE - (#xF4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xF5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE - (#xF6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xF7 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xF8 ?\u0458) ;; CYRILLIC SMALL LETTER JE - (#xF9 ?\u0459) ;; CYRILLIC SMALL LETTER LJE - (#xFA ?\u045A) ;; CYRILLIC SMALL LETTER NJE - (#xFB ?\u045B) ;; CYRILLIC SMALL LETTER TSHE - (#xFC ?\u045C) ;; CYRILLIC SMALL LETTER KJE - (#xFD ?\u00A7) ;; SECTION SIGN - (#xFE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xFF ?\u045F)) ;; CYRILLIC SMALL LETTER DZHE - "ISO-8859-5 (Cyrillic)" - '(mnemonic "ISO8/Cyr" +(make-coding-system + 'iso-8859-5 'fixed-width "ISO-8859-5 (Cyrillic)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xA2 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE + (#xA3 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE + (#xA4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xA5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE + (#xA6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xA7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xA8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE + (#xA9 ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE + (#xAA ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE + (#xAB ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE + (#xAC ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xAF ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE + (#xB0 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xB1 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xB2 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xB3 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xB4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xB5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xB6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xB7 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xB8 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xB9 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xBA ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xBB ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xBC ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xBD ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xBE ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xBF ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xC0 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xC1 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xC2 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xC3 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xC4 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xC5 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xC6 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xC7 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xC8 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xC9 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xCA ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN + (#xCB ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xCC ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xCD ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xCE ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xCF ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xD0 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xD1 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xD2 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xD4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xD5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xD8 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xD9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xDA ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xDB ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xDC ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xDD ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xDE ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xDF ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xE0 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xE1 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xE2 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xE3 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xE4 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xE5 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xE6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xE7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xE8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xE9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xEA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xEB ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xEC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xED ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xEE ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xEF ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xF0 ?\u2116) ;; NUMERO SIGN + (#xF1 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xF2 ?\u0452) ;; CYRILLIC SMALL LETTER DJE + (#xF3 ?\u0453) ;; CYRILLIC SMALL LETTER GJE + (#xF4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xF5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE + (#xF6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xF7 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xF8 ?\u0458) ;; CYRILLIC SMALL LETTER JE + (#xF9 ?\u0459) ;; CYRILLIC SMALL LETTER LJE + (#xFA ?\u045A) ;; CYRILLIC SMALL LETTER NJE + (#xFB ?\u045B) ;; CYRILLIC SMALL LETTER TSHE + (#xFC ?\u045C) ;; CYRILLIC SMALL LETTER KJE + (#xFD ?\u00A7) ;; SECTION SIGN + (#xFE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xFF ?\u045F)) ;; CYRILLIC SMALL LETTER DZHE + mnemonic "ISO8/Cyr" documentation "The ISO standard for encoding Cyrillic. Not used in practice. See `koi8-r' and `windows-1251'. " aliases (cyrillic-iso-8bit))) @@ -257,145 +257,145 @@ '("Cyrillic")) ;; KOI8-R, the most common encoding for Cyrillic on Unix and Usenet. -(make-8-bit-coding-system - 'koi8-r - '((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL - (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL - (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT - (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT - (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT - (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT - (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT - (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT - (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL - (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - (#x8B ?\u2580) ;; UPPER HALF BLOCK - (#x8C ?\u2584) ;; LOWER HALF BLOCK - (#x8D ?\u2588) ;; FULL BLOCK - (#x8E ?\u258C) ;; LEFT HALF BLOCK - (#x8F ?\u2590) ;; RIGHT HALF BLOCK - (#x90 ?\u2591) ;; LIGHT SHADE - (#x91 ?\u2592) ;; MEDIUM SHADE - (#x92 ?\u2593) ;; DARK SHADE - (#x93 ?\u2320) ;; TOP HALF INTEGRAL - (#x94 ?\u25A0) ;; BLACK SQUARE - (#x95 ?\u2219) ;; BULLET OPERATOR - (#x96 ?\u221A) ;; SQUARE ROOT - (#x97 ?\u2248) ;; ALMOST EQUAL TO - (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO - (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO - (#x9A ?\u00A0) ;; NO-BREAK SPACE - (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL - (#x9C ?\u00B0) ;; DEGREE SIGN - (#x9D ?\u00B2) ;; SUPERSCRIPT TWO - (#x9E ?\u00B7) ;; MIDDLE DOT - (#x9F ?\u00F7) ;; DIVISION SIGN - (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL - (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL - (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u2553) ;; BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE - (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT - (#xA6 ?\u2555) ;; BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE - (#xA7 ?\u2556) ;; BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE - (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT - (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT - (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - (#xAD ?\u255C) ;; BOX DRAWINGS UP DOUBLE AND LEFT SINGLE - (#xAE ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT - (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB4 ?\u2562) ;; BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT - (#xB6 ?\u2564) ;; BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - (#xB7 ?\u2565) ;; BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE - (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL - (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - (#xBD ?\u256B) ;; BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - (#xBE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - (#xBF ?\u00A9) ;; COPYRIGHT SIGN - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A));; CYRILLIC CAPITAL LETTER HARD SIGN - "KOI8-R (,L:^T(B ,L>Q\U]P(B ,L8]d^`\PfXUY(B, 8 ,LQXb(B) for Russian and Bulgarian." - '(mnemonic "KOI8" +(make-coding-system + 'koi8-r 'fixed-width "KOI8-R (Cyrillic)" + '(unicode-map + ((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL + (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL + (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT + (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT + (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT + (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT + (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT + (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT + (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL + (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + (#x8B ?\u2580) ;; UPPER HALF BLOCK + (#x8C ?\u2584) ;; LOWER HALF BLOCK + (#x8D ?\u2588) ;; FULL BLOCK + (#x8E ?\u258C) ;; LEFT HALF BLOCK + (#x8F ?\u2590) ;; RIGHT HALF BLOCK + (#x90 ?\u2591) ;; LIGHT SHADE + (#x91 ?\u2592) ;; MEDIUM SHADE + (#x92 ?\u2593) ;; DARK SHADE + (#x93 ?\u2320) ;; TOP HALF INTEGRAL + (#x94 ?\u25A0) ;; BLACK SQUARE + (#x95 ?\u2219) ;; BULLET OPERATOR + (#x96 ?\u221A) ;; SQUARE ROOT + (#x97 ?\u2248) ;; ALMOST EQUAL TO + (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO + (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO + (#x9A ?\u00A0) ;; NO-BREAK SPACE + (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL + (#x9C ?\u00B0) ;; DEGREE SIGN + (#x9D ?\u00B2) ;; SUPERSCRIPT TWO + (#x9E ?\u00B7) ;; MIDDLE DOT + (#x9F ?\u00F7) ;; DIVISION SIGN + (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL + (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL + (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u2553) ;; BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE + (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT + (#xA6 ?\u2555) ;; BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE + (#xA7 ?\u2556) ;; BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE + (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT + (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT + (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + (#xAD ?\u255C) ;; BOX DRAWINGS UP DOUBLE AND LEFT SINGLE + (#xAE ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT + (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB4 ?\u2562) ;; BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE + (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT + (#xB6 ?\u2564) ;; BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE + (#xB7 ?\u2565) ;; BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE + (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL + (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + (#xBD ?\u256B) ;; BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE + (#xBE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + (#xBF ?\u00A9) ;; COPYRIGHT SIGN + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + mnemonic "KOI8" documentation - "This is the ASCII-compatible encoding documented in RFC 1341. -,L:>8(B8-,L@(B is very common across the Cyrillic-using internet and in Unix -implementations; it shares the useful property with the other ,L:>8(B8 -encodings that when the high bit is stripped, encoded text remains -readable (Cyrillic characters get mapped to corresponding Roman -character of the opposite case). " + "This is ,L:^T(B ,L>Q\U]P(B ,L8]d^`\PfXUY(B, 8 ,LQXb(B, the ASCII-compatible encoding +documented in RFC 1341. ,L:>8(B8-,L@(B is very common across the Cyrillic-using +internet and in Unix implementations; it shares the useful property with the +other ,L:>8(B8 encodings that when the high bit is stripped, encoded text +remains readable (Cyrillic characters get mapped to corresponding Roman +characters of the opposite case). " aliases (cyrillic-koi8 koi8 cp878))) ;; Create a corresponding language environment. @@ -423,144 +423,144 @@ (remassq 'locale (copy-list (cdr (assoc "Russian" language-info-alist)))) '("Cyrillic")) -;; KOI8-U, for Ukrainian. -(make-8-bit-coding-system - 'koi8-u - '((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL - (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL - (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT - (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT - (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT - (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT - (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT - (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT - (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL - (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - (#x8B ?\u2580) ;; UPPER HALF BLOCK - (#x8C ?\u2584) ;; LOWER HALF BLOCK - (#x8D ?\u2588) ;; FULL BLOCK - (#x8E ?\u258C) ;; LEFT HALF BLOCK - (#x8F ?\u2590) ;; RIGHT HALF BLOCK - (#x90 ?\u2591) ;; LIGHT SHADE - (#x91 ?\u2592) ;; MEDIUM SHADE - (#x92 ?\u2593) ;; DARK SHADE - (#x93 ?\u2320) ;; TOP HALF INTEGRAL - (#x94 ?\u25A0) ;; BLACK SQUARE - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u221A) ;; SQUARE ROOT - (#x97 ?\u2248) ;; ALMOST EQUAL TO - (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO - (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO - (#x9A ?\u00A0) ;; NO-BREAK SPACE - (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL - (#x9C ?\u00B0) ;; DEGREE SIGN - (#x9D ?\u00B2) ;; SUPERSCRIPT TWO - (#x9E ?\u00B7) ;; MIDDLE DOT - (#x9F ?\u00F7) ;; DIVISION SIGN - (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL - (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL - (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT - (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT - (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT - (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN - (#xAE ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT - (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT - (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL - (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN - (#xBE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - (#xBF ?\u00A9) ;; COPYRIGHT SIGN - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN - "KOI8-U, for Ukrainian" - '(mnemonic ",L:>8(B8,LC(B" +;; KOI8-U, for Ukrainian. +(make-coding-system + 'koi8-u 'fixed-width "KOI8-U, Ukrainian" + '(unicode-map + ((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL + (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL + (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT + (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT + (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT + (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT + (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT + (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT + (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL + (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + (#x8B ?\u2580) ;; UPPER HALF BLOCK + (#x8C ?\u2584) ;; LOWER HALF BLOCK + (#x8D ?\u2588) ;; FULL BLOCK + (#x8E ?\u258C) ;; LEFT HALF BLOCK + (#x8F ?\u2590) ;; RIGHT HALF BLOCK + (#x90 ?\u2591) ;; LIGHT SHADE + (#x91 ?\u2592) ;; MEDIUM SHADE + (#x92 ?\u2593) ;; DARK SHADE + (#x93 ?\u2320) ;; TOP HALF INTEGRAL + (#x94 ?\u25A0) ;; BLACK SQUARE + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u221A) ;; SQUARE ROOT + (#x97 ?\u2248) ;; ALMOST EQUAL TO + (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO + (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO + (#x9A ?\u00A0) ;; NO-BREAK SPACE + (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL + (#x9C ?\u00B0) ;; DEGREE SIGN + (#x9D ?\u00B2) ;; SUPERSCRIPT TWO + (#x9E ?\u00B7) ;; MIDDLE DOT + (#x9F ?\u00F7) ;; DIVISION SIGN + (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL + (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL + (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT + (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT + (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT + (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN + (#xAE ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT + (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT + (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL + (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN + (#xBE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + (#xBF ?\u00A9) ;; COPYRIGHT SIGN + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + mnemonic ",L:>8(B8,LC(B" documentation "KOI8-U, a KOI-8-compatible encoding for Ukrainian, described in RFC2319. This has GHE WITH UPTURN, BYELORUSSIAN-UKRAINIAN I, UKRAINIAN IE and YI instead of some box-drawing characters. Russian in this encoding -(without using box-drawing characters) is bit-for-bit compatible with +\(without using box-drawing characters) is bit-for-bit compatible with Russian in KOI8-R. ")) ;; Case support, for the new characters. @@ -584,142 +584,145 @@ . "Support for Ukrainian.")) '("Cyrillic")) -(make-8-bit-coding-system - 'windows-1251 - '((#x80 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE - (#x81 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x83 ?\u0453) ;; CYRILLIC SMALL LETTER GJE - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x88 ?\u20AC) ;; EURO SIGN - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8A ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE - (#x8D ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE - (#x8E ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE - (#x8F ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE - (#x90 ?\u0452) ;; CYRILLIC SMALL LETTER DJE - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9A ?\u0459) ;; CYRILLIC SMALL LETTER LJE - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#x9C ?\u045A) ;; CYRILLIC SMALL LETTER NJE - (#x9D ?\u045C) ;; CYRILLIC SMALL LETTER KJE - (#x9E ?\u045B) ;; CYRILLIC SMALL LETTER TSHE - (#x9F ?\u045F) ;; CYRILLIC SMALL LETTER DZHE - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xA2 ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xA3 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB3 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB4 ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xB9 ?\u2116) ;; NUMERO SIGN - (#xBA ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u0458) ;; CYRILLIC SMALL LETTER JE - (#xBD ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE - (#xBE ?\u0455) ;; CYRILLIC SMALL LETTER DZE - (#xBF ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xC0 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xC1 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xC2 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xC3 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xC4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xC5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xC6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xC7 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xC8 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xC9 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xCA ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xCB ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xCC ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xCD ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xCE ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xCF ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xD0 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xD1 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xD2 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xD3 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xD4 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xD5 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xD6 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xD7 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xD8 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xD9 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xDA ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN - (#xDB ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xDC ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xDD ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xDE ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xDF ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xE0 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xE1 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xE2 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xE3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xE4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xE5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xE6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xE7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xE8 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xE9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xEA ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xEB ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xEC ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xED ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xEE ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xEF ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xF0 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xF1 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xF2 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xF3 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xF4 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xF5 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xF6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xF7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xF8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xF9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xFA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xFB ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xFC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xFD ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xFE ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xFF ?\u044F)) ;; CYRILLIC SMALL LETTER YA - "Microsoft's Code Page 1251, for Russian, Bulgarian, Serbian and others. " - '(mnemonic "CyrW" +(make-coding-system + 'windows-1251 'fixed-width "Microsoft's CP1251, Cyrillic." + '(unicode-map + ((#x80 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE + (#x81 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x83 ?\u0453) ;; CYRILLIC SMALL LETTER GJE + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x88 ?\u20AC) ;; EURO SIGN + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8A ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE + (#x8D ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE + (#x8E ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE + (#x8F ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE + (#x90 ?\u0452) ;; CYRILLIC SMALL LETTER DJE + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9A ?\u0459) ;; CYRILLIC SMALL LETTER LJE + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#x9C ?\u045A) ;; CYRILLIC SMALL LETTER NJE + (#x9D ?\u045C) ;; CYRILLIC SMALL LETTER KJE + (#x9E ?\u045B) ;; CYRILLIC SMALL LETTER TSHE + (#x9F ?\u045F) ;; CYRILLIC SMALL LETTER DZHE + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xA2 ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xA3 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB3 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB4 ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xB9 ?\u2116) ;; NUMERO SIGN + (#xBA ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u0458) ;; CYRILLIC SMALL LETTER JE + (#xBD ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE + (#xBE ?\u0455) ;; CYRILLIC SMALL LETTER DZE + (#xBF ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xC0 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xC1 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xC2 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xC3 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xC4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xC5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xC6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xC7 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xC8 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xC9 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xCA ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xCB ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xCC ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xCD ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xCE ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xCF ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xD0 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xD1 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xD2 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xD3 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xD4 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xD5 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xD6 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xD7 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xD8 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xD9 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xDA ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN + (#xDB ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xDC ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xDD ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xDE ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xDF ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xE0 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xE1 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xE2 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xE3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xE4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xE5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xE6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xE7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xE8 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xE9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xEA ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xEB ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xEC ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xED ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xEE ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xEF ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xF0 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xF1 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xF2 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xF3 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xF4 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xF5 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xF6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xF7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xF8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xF9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xFA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xFB ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xFC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xFD ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xFE ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xFF ?\u044F)) ;; CYRILLIC SMALL LETTER YA + mnemonic "CyrW" documentation "This ASCII-compatible encoding is unfortunately not compatible at the code point level with the KOI8 family of encodings, but it provides several widely-used punctuation and quotation marks that -KOI-8R and its relatives don't, and has become widely used. " +KOI-8R and its relatives don't, and has become widely used. + +It supports Russian, Bulgarian, Serbian and other languages written using +Cyrillic script. " aliases (cp1251))) (set-language-info-alist @@ -745,138 +748,138 @@ '("Cyrillic")) ;;; Alternativnyj -(make-8-bit-coding-system - 'alternativnyj - '((#x80 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#x81 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#x82 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#x83 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#x84 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#x85 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#x86 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#x87 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#x88 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#x89 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#x8A ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#x8B ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#x8C ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#x8D ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#x8E ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#x8F ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#x90 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#x91 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#x92 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#x93 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#x94 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#x95 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#x96 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#x97 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#x98 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#x99 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#x9A ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN - (#x9B ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#x9C ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#x9D ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#x9E ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#x9F ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xA0 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xA1 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xA2 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xA3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xA4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xA5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xA6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xA7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xA8 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xA9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xAA ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xAB ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xAC ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xAD ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xAE ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xAF ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xB0 ?\u2591) ;; LIGHT SHADE - (#xB1 ?\u2592) ;; MEDIUM SHADE - (#xB2 ?\u2593) ;; DARK SHADE - (#xB3 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL - (#xB4 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT - (#xB5 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - (#xB6 ?\u2562) ;; BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - (#xB7 ?\u2556) ;; BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE - (#xB8 ?\u2555) ;; BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE - (#xB9 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT - (#xBA ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL - (#xBB ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT - (#xBC ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT - (#xBD ?\u255C) ;; BOX DRAWINGS UP DOUBLE AND LEFT SINGLE - (#xBE ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - (#xBF ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT - (#xC0 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT - (#xC1 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL - (#xC2 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - (#xC3 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT - (#xC4 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL - (#xC5 ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - (#xC6 ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - (#xC7 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - (#xC8 ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT - (#xC9 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT - (#xCA ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL - (#xCB ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - (#xCC ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - (#xCD ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL - (#xCE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - (#xCF ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - (#xD0 ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - (#xD1 ?\u2564) ;; BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - (#xD2 ?\u2565) ;; BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE - (#xD3 ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - (#xD4 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - (#xD5 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - (#xD6 ?\u2553) ;; BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE - (#xD7 ?\u256B) ;; BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - (#xD8 ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - (#xD9 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT - (#xDA ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT - (#xDB ?\u2588) ;; FULL BLOCK - (#xDC ?\u2584) ;; LOWER HALF BLOCK - (#xDD ?\u258C) ;; LEFT HALF BLOCK - (#xDE ?\u2590) ;; RIGHT HALF BLOCK - (#xDF ?\u2580) ;; UPPER HALF BLOCK - (#xE0 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xE1 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xE2 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xE3 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xE4 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xE5 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xE6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xE7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xE8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xE9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xEA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xEB ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xEC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xED ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xEE ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xEF ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xF0 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xF1 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xF2 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xF3 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xF4 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xF5 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xF6 ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xF7 ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xF8 ?\u00B0) ;; DEGREE SIGN - (#xF9 ?\u2022) ;; BULLET - (#xFA ?\u00B7) ;; MIDDLE DOT - (#xFB ?\u221A) ;; SQUARE ROOT - (#xFC ?\u2116) ;; NUMERO SIGN - (#xFD ?\u00A4) ;; CURRENCY SIGN - (#xFE ?\u25A0) ;; BLACK SQUARE - (#xFF ?\u00A0)) ;; NO-BREAK SPACE - "Alternativnyj (Cyrillic). Microsoft's Code Page 966. " - '(mnemonic "Cy.Alt" +(make-coding-system + 'alternativnyj 'fixed-width "Microsoft's CP966, Cyrillic" + '(unicode-map + ((#x80 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#x81 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#x82 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#x83 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#x84 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#x85 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#x86 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#x87 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#x88 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#x89 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#x8A ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#x8B ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#x8C ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#x8D ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#x8E ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#x8F ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#x90 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#x91 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#x92 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#x93 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#x94 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#x95 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#x96 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#x97 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#x98 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#x99 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#x9A ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN + (#x9B ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#x9C ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#x9D ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#x9E ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#x9F ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xA0 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xA1 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xA2 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xA3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xA4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xA5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xA6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xA7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xA8 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xA9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xAA ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xAB ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xAC ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xAD ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xAE ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xAF ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xB0 ?\u2591) ;; LIGHT SHADE + (#xB1 ?\u2592) ;; MEDIUM SHADE + (#xB2 ?\u2593) ;; DARK SHADE + (#xB3 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL + (#xB4 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT + (#xB5 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + (#xB6 ?\u2562) ;; BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE + (#xB7 ?\u2556) ;; BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE + (#xB8 ?\u2555) ;; BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE + (#xB9 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT + (#xBA ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL + (#xBB ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT + (#xBC ?\u255D) ;; BOX DRAWINGS DOUBLE UP AND LEFT + (#xBD ?\u255C) ;; BOX DRAWINGS UP DOUBLE AND LEFT SINGLE + (#xBE ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + (#xBF ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT + (#xC0 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT + (#xC1 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL + (#xC2 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + (#xC3 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT + (#xC4 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL + (#xC5 ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + (#xC6 ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + (#xC7 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + (#xC8 ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT + (#xC9 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT + (#xCA ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL + (#xCB ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + (#xCC ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + (#xCD ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL + (#xCE ?\u256C) ;; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + (#xCF ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + (#xD0 ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + (#xD1 ?\u2564) ;; BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE + (#xD2 ?\u2565) ;; BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE + (#xD3 ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + (#xD4 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + (#xD5 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + (#xD6 ?\u2553) ;; BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE + (#xD7 ?\u256B) ;; BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE + (#xD8 ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + (#xD9 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT + (#xDA ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT + (#xDB ?\u2588) ;; FULL BLOCK + (#xDC ?\u2584) ;; LOWER HALF BLOCK + (#xDD ?\u258C) ;; LEFT HALF BLOCK + (#xDE ?\u2590) ;; RIGHT HALF BLOCK + (#xDF ?\u2580) ;; UPPER HALF BLOCK + (#xE0 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xE1 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xE2 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xE3 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xE4 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xE5 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xE6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xE7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xE8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xE9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xEA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xEB ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xEC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xED ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xEE ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xEF ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xF0 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xF1 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xF2 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xF3 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xF4 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xF5 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xF6 ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xF7 ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xF8 ?\u00B0) ;; DEGREE SIGN + (#xF9 ?\u2022) ;; BULLET + (#xFA ?\u00B7) ;; MIDDLE DOT + (#xFB ?\u221A) ;; SQUARE ROOT + (#xFC ?\u2116) ;; NUMERO SIGN + (#xFD ?\u00A4) ;; CURRENCY SIGN + (#xFE ?\u25A0) ;; BLACK SQUARE + (#xFF ?\u00A0)) ;; NO-BREAK SPACE + mnemonic "Cy.Alt" aliases (cp866))) (set-language-info-alist @@ -892,257 +895,258 @@ (documentation . "Support for Cyrillic ALTERNATIVNYJ.")) '("Cyrillic")) -(make-8-bit-coding-system - 'koi8-ru - '((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL - (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL - (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT - (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT - (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT - (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT - (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT - (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT - (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL - (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - (#x8B ?\u2580) ;; UPPER HALF BLOCK - (#x8C ?\u2584) ;; LOWER HALF BLOCK - (#x8D ?\u2588) ;; FULL BLOCK - (#x8E ?\u258C) ;; LEFT HALF BLOCK - (#x8F ?\u2590) ;; RIGHT HALF BLOCK - (#x90 ?\u2591) ;; LIGHT SHADE - (#x91 ?\u2592) ;; MEDIUM SHADE - (#x92 ?\u2593) ;; DARK SHADE - (#x93 ?\u2320) ;; TOP HALF INTEGRAL - (#x94 ?\u25A0) ;; BLACK SQUARE - (#x95 ?\u2219) ;; BULLET OPERATOR - (#x96 ?\u221A) ;; SQUARE ROOT - (#x97 ?\u2248) ;; ALMOST EQUAL TO - (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO - (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO - (#x9A ?\u00A0) ;; NO-BREAK SPACE - (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL - (#x9C ?\u00B0) ;; DEGREE SIGN - (#x9D ?\u00B2) ;; SUPERSCRIPT TWO - (#x9E ?\u00B7) ;; MIDDLE DOT - (#x9F ?\u00F7) ;; DIVISION SIGN - (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL - (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL - (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT - (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT - (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT - (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN - (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT - (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL - (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN - (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xBF ?\u00A9) ;; COPYRIGHT SIGN - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A));; CYRILLIC CAPITAL LETTER HARD SIGN - "KOI8-RU, a mostly-compatible superset of KOI8-R. +(make-coding-system + 'koi8-ru 'fixed-width ",L:>8(B-8 (Russian, Ukrainian)" + '(unicode-map + ((#x80 ?\u2500) ;; BOX DRAWINGS LIGHT HORIZONTAL + (#x81 ?\u2502) ;; BOX DRAWINGS LIGHT VERTICAL + (#x82 ?\u250C) ;; BOX DRAWINGS LIGHT DOWN AND RIGHT + (#x83 ?\u2510) ;; BOX DRAWINGS LIGHT DOWN AND LEFT + (#x84 ?\u2514) ;; BOX DRAWINGS LIGHT UP AND RIGHT + (#x85 ?\u2518) ;; BOX DRAWINGS LIGHT UP AND LEFT + (#x86 ?\u251C) ;; BOX DRAWINGS LIGHT VERTICAL AND RIGHT + (#x87 ?\u2524) ;; BOX DRAWINGS LIGHT VERTICAL AND LEFT + (#x88 ?\u252C) ;; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + (#x89 ?\u2534) ;; BOX DRAWINGS LIGHT UP AND HORIZONTAL + (#x8A ?\u253C) ;; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + (#x8B ?\u2580) ;; UPPER HALF BLOCK + (#x8C ?\u2584) ;; LOWER HALF BLOCK + (#x8D ?\u2588) ;; FULL BLOCK + (#x8E ?\u258C) ;; LEFT HALF BLOCK + (#x8F ?\u2590) ;; RIGHT HALF BLOCK + (#x90 ?\u2591) ;; LIGHT SHADE + (#x91 ?\u2592) ;; MEDIUM SHADE + (#x92 ?\u2593) ;; DARK SHADE + (#x93 ?\u2320) ;; TOP HALF INTEGRAL + (#x94 ?\u25A0) ;; BLACK SQUARE + (#x95 ?\u2219) ;; BULLET OPERATOR + (#x96 ?\u221A) ;; SQUARE ROOT + (#x97 ?\u2248) ;; ALMOST EQUAL TO + (#x98 ?\u2264) ;; LESS-THAN OR EQUAL TO + (#x99 ?\u2265) ;; GREATER-THAN OR EQUAL TO + (#x9A ?\u00A0) ;; NO-BREAK SPACE + (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL + (#x9C ?\u00B0) ;; DEGREE SIGN + (#x9D ?\u00B2) ;; SUPERSCRIPT TWO + (#x9E ?\u00B7) ;; MIDDLE DOT + (#x9F ?\u00F7) ;; DIVISION SIGN + (#xA0 ?\u2550) ;; BOX DRAWINGS DOUBLE HORIZONTAL + (#xA1 ?\u2551) ;; BOX DRAWINGS DOUBLE VERTICAL + (#xA2 ?\u2552) ;; BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xA5 ?\u2554) ;; BOX DRAWINGS DOUBLE DOWN AND RIGHT + (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xA8 ?\u2557) ;; BOX DRAWINGS DOUBLE DOWN AND LEFT + (#xA9 ?\u2558) ;; BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + (#xAA ?\u2559) ;; BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + (#xAB ?\u255A) ;; BOX DRAWINGS DOUBLE UP AND RIGHT + (#xAC ?\u255B) ;; BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN + (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xAF ?\u255E) ;; BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + (#xB0 ?\u255F) ;; BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + (#xB1 ?\u2560) ;; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + (#xB2 ?\u2561) ;; BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xB5 ?\u2563) ;; BOX DRAWINGS DOUBLE VERTICAL AND LEFT + (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xB8 ?\u2566) ;; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + (#xB9 ?\u2567) ;; BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + (#xBA ?\u2568) ;; BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + (#xBB ?\u2569) ;; BOX DRAWINGS DOUBLE UP AND HORIZONTAL + (#xBC ?\u256A) ;; BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN + (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xBF ?\u00A9) ;; COPYRIGHT SIGN + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + mnemonic ",L@C(B" + documentation "KOI8-RU, a mostly-compatible superset of KOI8-R. Also known as Windows code page 21866; has Ukrainian and Belarussian support. " - '(mnemonic ",L@C(B" aliases (cp21866))) ;; We should provide an input method and the corresponding language ;; environments for the next three coding systems. -(make-8-bit-coding-system - 'koi8-t - '((#x80 ?\u049B) ;; CYRILLIC SMALL LETTER KA WITH DESCENDER - (#x81 ?\u0493) ;; CYRILLIC SMALL LETTER GHE WITH STROKE - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x83 ?\u0492) ;; CYRILLIC CAPITAL LETTER GHE WITH STROKE - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8A ?\u04B3) ;; CYRILLIC SMALL LETTER HA WITH DESCENDER - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u04B2) ;; CYRILLIC CAPITAL LETTER HA WITH DESCENDER - (#x8D ?\u04B7) ;; CYRILLIC SMALL LETTER CHE WITH DESCENDER - (#x8E ?\u04B6) ;; CYRILLIC CAPITAL LETTER CHE WITH DESCENDER - (#x90 ?\u049A) ;; CYRILLIC CAPITAL LETTER KA WITH DESCENDER - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#xA1 ?\u04EF) ;; CYRILLIC SMALL LETTER U WITH MACRON - (#xA2 ?\u04EE) ;; CYRILLIC CAPITAL LETTER U WITH MACRON - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u04E3) ;; CYRILLIC SMALL LETTER I WITH MACRON - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB5 ?\u04E2) ;; CYRILLIC CAPITAL LETTER I WITH MACRON - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB9 ?\u2116) ;; NUMERO SIGN - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBF ?\u00A9) ;; COPYRIGHT SIGN - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A));; CYRILLIC CAPITAL LETTER HARD SIGN - ",L:>8(B-8 for Tajik." - '(mnemonic ",LB%GÒ¶%@(B" +(make-coding-system + 'koi8-t 'fixed-width ",L:>8(B-8 for Tajik." + '(unicode-map + ((#x80 ?\u049B) ;; CYRILLIC SMALL LETTER KA WITH DESCENDER + (#x81 ?\u0493) ;; CYRILLIC SMALL LETTER GHE WITH STROKE + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x83 ?\u0492) ;; CYRILLIC CAPITAL LETTER GHE WITH STROKE + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8A ?\u04B3) ;; CYRILLIC SMALL LETTER HA WITH DESCENDER + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u04B2) ;; CYRILLIC CAPITAL LETTER HA WITH DESCENDER + (#x8D ?\u04B7) ;; CYRILLIC SMALL LETTER CHE WITH DESCENDER + (#x8E ?\u04B6) ;; CYRILLIC CAPITAL LETTER CHE WITH DESCENDER + (#x90 ?\u049A) ;; CYRILLIC CAPITAL LETTER KA WITH DESCENDER + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#xA1 ?\u04EF) ;; CYRILLIC SMALL LETTER U WITH MACRON + (#xA2 ?\u04EE) ;; CYRILLIC CAPITAL LETTER U WITH MACRON + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u04E3) ;; CYRILLIC SMALL LETTER I WITH MACRON + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB5 ?\u04E2) ;; CYRILLIC CAPITAL LETTER I WITH MACRON + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB9 ?\u2116) ;; NUMERO SIGN + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBF ?\u00A9) ;; COPYRIGHT SIGN + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + mnemonic ",LB%GÒ¶%@(B" documentation "Compatible in the alphabetic characters with KOI-8R for Russian, this 8-bit Cyrillic coding system makes those characters available @@ -1163,138 +1167,138 @@ (put-case-table-pair upper lower case-table)) ;; Support fot the languages of the Caucasus. -(make-8-bit-coding-system - 'koi8-c - '((#x80 ?\u0493) ;; CYRILLIC SMALL LETTER GHE WITH STROKE - (#x81 ?\u0497) ;; CYRILLIC SMALL LETTER ZHE WITH DESCENDER - (#x82 ?\u049B) ;; CYRILLIC SMALL LETTER KA WITH DESCENDER - (#x83 ?\u049D) ;; CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE - (#x84 ?\u04A3) ;; CYRILLIC SMALL LETTER EN WITH DESCENDER - (#x85 ?\u04AF) ;; CYRILLIC SMALL LETTER STRAIGHT U - (#x86 ?\u04B1) ;; CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE - (#x87 ?\u04B3) ;; CYRILLIC SMALL LETTER HA WITH DESCENDER - (#x88 ?\u04B7) ;; CYRILLIC SMALL LETTER CHE WITH DESCENDER - (#x89 ?\u04B9) ;; CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE - (#x8A ?\u04BB) ;; CYRILLIC SMALL LETTER SHHA - (#x8B ?\u2580) ;; UPPER HALF BLOCK - (#x8C ?\u049D) ;; CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE - (#x8D ?\u04E3) ;; CYRILLIC SMALL LETTER I WITH MACRON - (#x8E ?\u04E9) ;; CYRILLIC SMALL LETTER BARRED O - (#x8F ?\u04EF) ;; CYRILLIC SMALL LETTER U WITH MACRON - (#x90 ?\u0492) ;; CYRILLIC CAPITAL LETTER GHE WITH STROKE - (#x91 ?\u0496) ;; CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER - (#x92 ?\u049A) ;; CYRILLIC CAPITAL LETTER KA WITH DESCENDER - (#x93 ?\u049C) ;; CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE - (#x94 ?\u04A2) ;; CYRILLIC CAPITAL LETTER EN WITH DESCENDER - (#x95 ?\u04AE) ;; CYRILLIC CAPITAL LETTER STRAIGHT U - (#x96 ?\u04B0) ;; CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE - (#x97 ?\u04B2) ;; CYRILLIC CAPITAL LETTER HA WITH DESCENDER - (#x98 ?\u04B6) ;; CYRILLIC CAPITAL LETTER CHE WITH DESCENDER - (#x99 ?\u04B8) ;; CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE - (#x9A ?\u04BA) ;; CYRILLIC CAPITAL LETTER SHHA - (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL - (#x9C ?\u04D8) ;; CYRILLIC CAPITAL LETTER SCHWA - (#x9D ?\u04E2) ;; CYRILLIC CAPITAL LETTER I WITH MACRON - (#x9E ?\u04E8) ;; CYRILLIC CAPITAL LETTER BARRED O - (#x9F ?\u04EE) ;; CYRILLIC CAPITAL LETTER U WITH MACRON - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0452) ;; CYRILLIC SMALL LETTER DJE - (#xA2 ?\u0453) ;; CYRILLIC SMALL LETTER GJE - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xA5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE - (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xA8 ?\u0458) ;; CYRILLIC SMALL LETTER JE - (#xA9 ?\u0459) ;; CYRILLIC SMALL LETTER LJE - (#xAA ?\u045A) ;; CYRILLIC SMALL LETTER NJE - (#xAB ?\u045B) ;; CYRILLIC SMALL LETTER TSHE - (#xAC ?\u045C) ;; CYRILLIC SMALL LETTER KJE - (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN - (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xAF ?\u045F) ;; CYRILLIC SMALL LETTER DZHE - (#xB0 ?\u2116) ;; NUMERO SIGN - (#xB1 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE - (#xB2 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xB5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE - (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xB8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE - (#xB9 ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE - (#xBA ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE - (#xBB ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE - (#xBC ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE - (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN - (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xBF ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A));; CYRILLIC CAPITAL LETTER HARD SIGN - "KOI-8 for the Caucasus." - '(documentation +(make-coding-system + 'koi8-c 'fixed-width "KOI-8, Caucasus." + '(unicode-map + ((#x80 ?\u0493) ;; CYRILLIC SMALL LETTER GHE WITH STROKE + (#x81 ?\u0497) ;; CYRILLIC SMALL LETTER ZHE WITH DESCENDER + (#x82 ?\u049B) ;; CYRILLIC SMALL LETTER KA WITH DESCENDER + (#x83 ?\u049D) ;; CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE + (#x84 ?\u04A3) ;; CYRILLIC SMALL LETTER EN WITH DESCENDER + (#x85 ?\u04AF) ;; CYRILLIC SMALL LETTER STRAIGHT U + (#x86 ?\u04B1) ;; CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE + (#x87 ?\u04B3) ;; CYRILLIC SMALL LETTER HA WITH DESCENDER + (#x88 ?\u04B7) ;; CYRILLIC SMALL LETTER CHE WITH DESCENDER + (#x89 ?\u04B9) ;; CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE + (#x8A ?\u04BB) ;; CYRILLIC SMALL LETTER SHHA + (#x8B ?\u2580) ;; UPPER HALF BLOCK + (#x8C ?\u049D) ;; CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE + (#x8D ?\u04E3) ;; CYRILLIC SMALL LETTER I WITH MACRON + (#x8E ?\u04E9) ;; CYRILLIC SMALL LETTER BARRED O + (#x8F ?\u04EF) ;; CYRILLIC SMALL LETTER U WITH MACRON + (#x90 ?\u0492) ;; CYRILLIC CAPITAL LETTER GHE WITH STROKE + (#x91 ?\u0496) ;; CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER + (#x92 ?\u049A) ;; CYRILLIC CAPITAL LETTER KA WITH DESCENDER + (#x93 ?\u049C) ;; CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE + (#x94 ?\u04A2) ;; CYRILLIC CAPITAL LETTER EN WITH DESCENDER + (#x95 ?\u04AE) ;; CYRILLIC CAPITAL LETTER STRAIGHT U + (#x96 ?\u04B0) ;; CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE + (#x97 ?\u04B2) ;; CYRILLIC CAPITAL LETTER HA WITH DESCENDER + (#x98 ?\u04B6) ;; CYRILLIC CAPITAL LETTER CHE WITH DESCENDER + (#x99 ?\u04B8) ;; CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE + (#x9A ?\u04BA) ;; CYRILLIC CAPITAL LETTER SHHA + (#x9B ?\u2321) ;; BOTTOM HALF INTEGRAL + (#x9C ?\u04D8) ;; CYRILLIC CAPITAL LETTER SCHWA + (#x9D ?\u04E2) ;; CYRILLIC CAPITAL LETTER I WITH MACRON + (#x9E ?\u04E8) ;; CYRILLIC CAPITAL LETTER BARRED O + (#x9F ?\u04EE) ;; CYRILLIC CAPITAL LETTER U WITH MACRON + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0452) ;; CYRILLIC SMALL LETTER DJE + (#xA2 ?\u0453) ;; CYRILLIC SMALL LETTER GJE + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xA5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE + (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xA8 ?\u0458) ;; CYRILLIC SMALL LETTER JE + (#xA9 ?\u0459) ;; CYRILLIC SMALL LETTER LJE + (#xAA ?\u045A) ;; CYRILLIC SMALL LETTER NJE + (#xAB ?\u045B) ;; CYRILLIC SMALL LETTER TSHE + (#xAC ?\u045C) ;; CYRILLIC SMALL LETTER KJE + (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN + (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xAF ?\u045F) ;; CYRILLIC SMALL LETTER DZHE + (#xB0 ?\u2116) ;; NUMERO SIGN + (#xB1 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE + (#xB2 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xB5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE + (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xB8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE + (#xB9 ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE + (#xBA ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE + (#xBB ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE + (#xBC ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE + (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN + (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xBF ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + documentation "Note that this does not support old Russian orthography; for that, see koi8-o. ")) @@ -1315,138 +1319,138 @@ (put-case-table-pair upper lower case-table)) ;; Archaic Russian support. -(make-8-bit-coding-system - 'koi8-o - '((#x80 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE - (#x81 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE - (#x82 ?\u00B8) ;; CEDILLA - (#x83 ?\u0453) ;; CYRILLIC SMALL LETTER GJE - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u00A7) ;; SECTION SIGN - (#x88 ?\u20AC) ;; EURO SIGN - (#x89 ?\u00A8) ;; DIAERESIS - (#x8A ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE - (#x8D ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE - (#x8E ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE - (#x8F ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE - (#x90 ?\u0452) ;; CYRILLIC SMALL LETTER DJE - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x98 ?\u00A3) ;; POUND SIGN - (#x99 ?\u00B7) ;; MIDDLE DOT - (#x9A ?\u0459) ;; CYRILLIC SMALL LETTER LJE - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#x9C ?\u045A) ;; CYRILLIC SMALL LETTER NJE - (#x9D ?\u045C) ;; CYRILLIC SMALL LETTER KJE - (#x9E ?\u045B) ;; CYRILLIC SMALL LETTER TSHE - (#x9F ?\u045F) ;; CYRILLIC SMALL LETTER DZHE - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0475) ;; CYRILLIC SMALL LETTER IZHITSA - (#xA2 ?\u0463) ;; CYRILLIC SMALL LETTER YAT - (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO - (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (#xA5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE - (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI - (#xA8 ?\u0458) ;; CYRILLIC SMALL LETTER JE - (#xA9 ?\u00AE) ;; REGISTERED SIGN - (#xAA ?\u2122) ;; TRADE MARK SIGN - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u0473) ;; CYRILLIC SMALL LETTER FITA - (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN - (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U - (#xAF ?\u00B4) ;; ACUTE ACCENT - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u0474) ;; CYRILLIC CAPITAL LETTER IZHITSA - (#xB2 ?\u0462) ;; CYRILLIC CAPITAL LETTER YAT - (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO - (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (#xB5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE - (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI - (#xB8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE - (#xB9 ?\u2116) ;; NUMERO SIGN - (#xBA ?\u00A2) ;; CENT SIGN - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u0472) ;; CYRILLIC CAPITAL LETTER FITA - (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN - (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (#xBF ?\u00A9) ;; COPYRIGHT SIGN - (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU - (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A - (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE - (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE - (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE - (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE - (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF - (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE - (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA - (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I - (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I - (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA - (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL - (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM - (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN - (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O - (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE - (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA - (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER - (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES - (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE - (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U - (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE - (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE - (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU - (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE - (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA - (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E - (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA - (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE - (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU - (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A - (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE - (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE - (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE - (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE - (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF - (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE - (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA - (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I - (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA - (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL - (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM - (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN - (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O - (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE - (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA - (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER - (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES - (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE - (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U - (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE - (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE - (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU - (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE - (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA - (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E - (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE - (#xFF ?\u042A));; CYRILLIC CAPITAL LETTER HARD SIGN - "KOI-8 for old-orthography Russian; also known as KOI-C." - '(mnemonic ",L:>(B" +(make-coding-system + 'koi8-o 'fixed-width "Old-orthography Russian" + '(unicode-map + ((#x80 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE + (#x81 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE + (#x82 ?\u00B8) ;; CEDILLA + (#x83 ?\u0453) ;; CYRILLIC SMALL LETTER GJE + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u00A7) ;; SECTION SIGN + (#x88 ?\u20AC) ;; EURO SIGN + (#x89 ?\u00A8) ;; DIAERESIS + (#x8A ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE + (#x8D ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE + (#x8E ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE + (#x8F ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE + (#x90 ?\u0452) ;; CYRILLIC SMALL LETTER DJE + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x98 ?\u00A3) ;; POUND SIGN + (#x99 ?\u00B7) ;; MIDDLE DOT + (#x9A ?\u0459) ;; CYRILLIC SMALL LETTER LJE + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#x9C ?\u045A) ;; CYRILLIC SMALL LETTER NJE + (#x9D ?\u045C) ;; CYRILLIC SMALL LETTER KJE + (#x9E ?\u045B) ;; CYRILLIC SMALL LETTER TSHE + (#x9F ?\u045F) ;; CYRILLIC SMALL LETTER DZHE + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0475) ;; CYRILLIC SMALL LETTER IZHITSA + (#xA2 ?\u0463) ;; CYRILLIC SMALL LETTER YAT + (#xA3 ?\u0451) ;; CYRILLIC SMALL LETTER IO + (#xA4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE + (#xA5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE + (#xA6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + (#xA7 ?\u0457) ;; CYRILLIC SMALL LETTER YI + (#xA8 ?\u0458) ;; CYRILLIC SMALL LETTER JE + (#xA9 ?\u00AE) ;; REGISTERED SIGN + (#xAA ?\u2122) ;; TRADE MARK SIGN + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u0473) ;; CYRILLIC SMALL LETTER FITA + (#xAD ?\u0491) ;; CYRILLIC SMALL LETTER GHE WITH UPTURN + (#xAE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U + (#xAF ?\u00B4) ;; ACUTE ACCENT + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u0474) ;; CYRILLIC CAPITAL LETTER IZHITSA + (#xB2 ?\u0462) ;; CYRILLIC CAPITAL LETTER YAT + (#xB3 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO + (#xB4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE + (#xB5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE + (#xB6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + (#xB7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI + (#xB8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE + (#xB9 ?\u2116) ;; NUMERO SIGN + (#xBA ?\u00A2) ;; CENT SIGN + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u0472) ;; CYRILLIC CAPITAL LETTER FITA + (#xBD ?\u0490) ;; CYRILLIC CAPITAL LETTER GHE WITH UPTURN + (#xBE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U + (#xBF ?\u00A9) ;; COPYRIGHT SIGN + (#xC0 ?\u044E) ;; CYRILLIC SMALL LETTER YU + (#xC1 ?\u0430) ;; CYRILLIC SMALL LETTER A + (#xC2 ?\u0431) ;; CYRILLIC SMALL LETTER BE + (#xC3 ?\u0446) ;; CYRILLIC SMALL LETTER TSE + (#xC4 ?\u0434) ;; CYRILLIC SMALL LETTER DE + (#xC5 ?\u0435) ;; CYRILLIC SMALL LETTER IE + (#xC6 ?\u0444) ;; CYRILLIC SMALL LETTER EF + (#xC7 ?\u0433) ;; CYRILLIC SMALL LETTER GHE + (#xC8 ?\u0445) ;; CYRILLIC SMALL LETTER HA + (#xC9 ?\u0438) ;; CYRILLIC SMALL LETTER I + (#xCA ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I + (#xCB ?\u043A) ;; CYRILLIC SMALL LETTER KA + (#xCC ?\u043B) ;; CYRILLIC SMALL LETTER EL + (#xCD ?\u043C) ;; CYRILLIC SMALL LETTER EM + (#xCE ?\u043D) ;; CYRILLIC SMALL LETTER EN + (#xCF ?\u043E) ;; CYRILLIC SMALL LETTER O + (#xD0 ?\u043F) ;; CYRILLIC SMALL LETTER PE + (#xD1 ?\u044F) ;; CYRILLIC SMALL LETTER YA + (#xD2 ?\u0440) ;; CYRILLIC SMALL LETTER ER + (#xD3 ?\u0441) ;; CYRILLIC SMALL LETTER ES + (#xD4 ?\u0442) ;; CYRILLIC SMALL LETTER TE + (#xD5 ?\u0443) ;; CYRILLIC SMALL LETTER U + (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE + (#xD7 ?\u0432) ;; CYRILLIC SMALL LETTER VE + (#xD8 ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN + (#xD9 ?\u044B) ;; CYRILLIC SMALL LETTER YERU + (#xDA ?\u0437) ;; CYRILLIC SMALL LETTER ZE + (#xDB ?\u0448) ;; CYRILLIC SMALL LETTER SHA + (#xDC ?\u044D) ;; CYRILLIC SMALL LETTER E + (#xDD ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA + (#xDE ?\u0447) ;; CYRILLIC SMALL LETTER CHE + (#xDF ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN + (#xE0 ?\u042E) ;; CYRILLIC CAPITAL LETTER YU + (#xE1 ?\u0410) ;; CYRILLIC CAPITAL LETTER A + (#xE2 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE + (#xE3 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE + (#xE4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE + (#xE5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE + (#xE6 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF + (#xE7 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE + (#xE8 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA + (#xE9 ?\u0418) ;; CYRILLIC CAPITAL LETTER I + (#xEA ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I + (#xEB ?\u041A) ;; CYRILLIC CAPITAL LETTER KA + (#xEC ?\u041B) ;; CYRILLIC CAPITAL LETTER EL + (#xED ?\u041C) ;; CYRILLIC CAPITAL LETTER EM + (#xEE ?\u041D) ;; CYRILLIC CAPITAL LETTER EN + (#xEF ?\u041E) ;; CYRILLIC CAPITAL LETTER O + (#xF0 ?\u041F) ;; CYRILLIC CAPITAL LETTER PE + (#xF1 ?\u042F) ;; CYRILLIC CAPITAL LETTER YA + (#xF2 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER + (#xF3 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES + (#xF4 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE + (#xF5 ?\u0423) ;; CYRILLIC CAPITAL LETTER U + (#xF6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE + (#xF7 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE + (#xF8 ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN + (#xF9 ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU + (#xFA ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE + (#xFB ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA + (#xFC ?\u042D) ;; CYRILLIC CAPITAL LETTER E + (#xFD ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA + (#xFE ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE + (#xFF ?\u042A)) ;; CYRILLIC CAPITAL LETTER HARD SIGN + mnemonic ",L:>(B" documentation "KOI-8 for old-orthography Russian; also known as KOI-C.
--- a/lisp/mule/general-late.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/general-late.el Sat Sep 19 22:53:13 2009 +0100 @@ -65,31 +65,41 @@ Installation-file-coding-system) Installation-string) - ;; Convince the byte compiler that, really, this file can't be encoded - ;; as binary. Ugh. - system-type (symbol-value (intern "\u0073ystem-type")) + ;; This used to be here to convince the byte-compiler to encode the + ;; output file using escape-quoted. This is no longer necessary, but + ;; keeping it here avoids doing the eval-when-compile clause below + ;; twice, which is a significant improvement. + system-type (symbol-value (intern "\u0073ystem-type"))) - unicode-query-coding-skip-chars-arg - (eval-when-compile - (when-fboundp 'map-charset-chars - (loop - for charset in (charset-list) - with skip-chars-string = "" - do - (block no-ucs-mapping - (map-charset-chars - #'(lambda (begin end) - (loop - while (and begin (>= end begin)) - do - (when (= -1 (char-to-unicode begin)) - (return-from no-ucs-mapping)) - (setq begin (int-to-char (1+ begin))))) - charset) - (setq skip-chars-string - (concat skip-chars-string - (charset-skip-chars-string charset)))) - finally return skip-chars-string)))) +;; When this file is being compiled, all the charsets have been loaded, so +;; we can construct the query-skip-chars-arg string correctly. +(set-unicode-query-skip-chars-args + (eval-when-compile + (when-fboundp 'map-charset-chars + (loop + for charset in (charset-list) + with skip-chars-string = "" + do + (block no-ucs-mapping + (map-charset-chars + #'(lambda (begin end) + (loop + while (and begin (>= end begin)) + do + (when (= -1 (char-to-unicode begin)) + (return-from no-ucs-mapping)) + (setq begin (int-to-char (1+ begin))))) + charset) + (setq skip-chars-string + (concat skip-chars-string + (charset-skip-chars-string charset)))) + finally return skip-chars-string))) + unicode-invalid-sequence-regexp-range + (eval-when-compile + (concat (loop + for i from #x80 to #xFF + collect (aref (decode-coding-string (int-char i) + 'utf-8) 0))))) ;; At this point in the dump, all the charsets have been loaded. Now, load ;; their Unicode mappings.
--- a/lisp/mule/greek.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/greek.el Sat Sep 19 22:53:13 2009 +0100 @@ -118,254 +118,256 @@ (string (char-syntax (make-char 'latin-iso8859-1 latin-1))) syntax-table)) -(make-8-bit-coding-system - 'iso-8859-7 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#xA2 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u20AC) ;; EURO SIGN - (#xA5 ?\u20AF) ;; DRACHMA SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u037A) ;; GREEK YPOGEGRAMMENI - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAF ?\u2015) ;; HORIZONTAL BAR - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u0384) ;; GREEK TONOS - (#xB5 ?\u0385) ;; GREEK DIALYTIKA TONOS - (#xB6 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS - (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS - (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS - (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS - (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA - (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA - (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA - (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA - (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON - (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA - (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA - (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA - (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA - (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA - (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA - (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU - (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU - (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI - (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON - (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI - (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO - (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA - (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU - (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON - (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI - (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI - (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI - (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA - (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS - (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS - (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS - (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS - (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA - (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA - (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA - (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA - (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON - (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA - (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA - (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA - (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA - (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA - (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA - (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU - (#xED ?\u03BD) ;; GREEK SMALL LETTER NU - (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI - (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON - (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI - (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO - (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA - (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA - (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU - (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON - (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI - (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI - (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI - (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA - (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA - (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA - (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS - (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS - (#xFE ?\u03CE));; GREEK SMALL LETTER OMEGA WITH TONOS - "ISO-8859-7 (Greek)" - '(mnemonic "Grk" +(make-coding-system + 'iso-8859-7 'fixed-width "ISO-8859-7 (Greek)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#xA2 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u20AC) ;; EURO SIGN + (#xA5 ?\u20AF) ;; DRACHMA SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u037A) ;; GREEK YPOGEGRAMMENI + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAF ?\u2015) ;; HORIZONTAL BAR + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u0384) ;; GREEK TONOS + (#xB5 ?\u0385) ;; GREEK DIALYTIKA TONOS + (#xB6 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS + (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS + (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS + (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS + (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS + (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA + (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA + (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA + (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA + (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON + (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA + (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA + (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA + (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA + (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA + (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA + (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU + (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU + (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI + (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON + (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI + (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO + (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA + (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU + (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON + (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI + (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI + (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI + (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA + (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA + (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA + (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS + (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS + (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS + (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS + (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS + (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA + (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA + (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA + (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA + (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON + (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA + (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA + (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA + (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA + (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA + (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA + (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU + (#xED ?\u03BD) ;; GREEK SMALL LETTER NU + (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI + (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON + (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI + (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO + (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA + (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA + (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU + (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON + (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI + (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI + (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI + (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA + (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA + (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA + (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS + (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS + (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS + mnemonic "Grk" aliases (greek-iso-8bit))) -(make-8-bit-coding-system - 'windows-1253 - '((#x80 ?\u20AC) ;; EURO SIGN - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0385) ;; GREEK DIALYTIKA TONOS - (#xA2 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u2015) ;; HORIZONTAL BAR - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u0384) ;; GREEK TONOS - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS - (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS - (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS - (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS - (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA - (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA - (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA - (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA - (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON - (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA - (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA - (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA - (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA - (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA - (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA - (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU - (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU - (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI - (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON - (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI - (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO - (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA - (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU - (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON - (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI - (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI - (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI - (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA - (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS - (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS - (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS - (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS - (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA - (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA - (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA - (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA - (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON - (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA - (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA - (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA - (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA - (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA - (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA - (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU - (#xED ?\u03BD) ;; GREEK SMALL LETTER NU - (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI - (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON - (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI - (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO - (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA - (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA - (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU - (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON - (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI - (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI - (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI - (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA - (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA - (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA - (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS - (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS - (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS - "Microsoft's Code Page 1253, for monotonic Greek. " - '(mnemonic "GrkW" +(make-coding-system + 'windows-1253 'fixed-width "Microsoft's CP1253" + '(unicode-map + ((#x80 ?\u20AC) ;; EURO SIGN + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0385) ;; GREEK DIALYTIKA TONOS + (#xA2 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u2015) ;; HORIZONTAL BAR + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u0384) ;; GREEK TONOS + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS + (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS + (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS + (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS + (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS + (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA + (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA + (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA + (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA + (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON + (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA + (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA + (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA + (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA + (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA + (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA + (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU + (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU + (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI + (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON + (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI + (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO + (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA + (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU + (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON + (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI + (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI + (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI + (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA + (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA + (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA + (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS + (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS + (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS + (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS + (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS + (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA + (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA + (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA + (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA + (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON + (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA + (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA + (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA + (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA + (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA + (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA + (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU + (#xED ?\u03BD) ;; GREEK SMALL LETTER NU + (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI + (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON + (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI + (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO + (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA + (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA + (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU + (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON + (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI + (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI + (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI + (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA + (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA + (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA + (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS + (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS + (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS + mnemonic "GrkW" documentation - "This ASCII-compatible encoding is slightly incompatibile with + "Microsoft's Code Page 1253, for monotonic Greek. + +This ASCII-compatible encoding is slightly incompatibile with ISO-8859-7; it provides several widely-used punctuation marks in the C1 ISO-2022 area, which makes it incompatbile with the latter standard, but that latter standard is not used in Greece, "
--- a/lisp/mule/hebrew.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/hebrew.el Sat Sep 19 22:53:13 2009 +0100 @@ -48,102 +48,102 @@ (modify-syntax-entry (make-char 'hebrew-iso8859-8 32) "w") ; no-break space -(make-8-bit-coding-system - 'iso-8859-8 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u00D7) ;; MULTIPLICATION SIGN - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE - (#xBA ?\u00F7) ;; DIVISION SIGN - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS - (#xDF ?\u2017) ;; DOUBLE LOW LINE - (#xE0 ?\u05D0) ;; HEBREW LETTER ALEF - (#xE1 ?\u05D1) ;; HEBREW LETTER BET - (#xE2 ?\u05D2) ;; HEBREW LETTER GIMEL - (#xE3 ?\u05D3) ;; HEBREW LETTER DALET - (#xE4 ?\u05D4) ;; HEBREW LETTER HE - (#xE5 ?\u05D5) ;; HEBREW LETTER VAV - (#xE6 ?\u05D6) ;; HEBREW LETTER ZAYIN - (#xE7 ?\u05D7) ;; HEBREW LETTER HET - (#xE8 ?\u05D8) ;; HEBREW LETTER TET - (#xE9 ?\u05D9) ;; HEBREW LETTER YOD - (#xEA ?\u05DA) ;; HEBREW LETTER FINAL KAF - (#xEB ?\u05DB) ;; HEBREW LETTER KAF - (#xEC ?\u05DC) ;; HEBREW LETTER LAMED - (#xED ?\u05DD) ;; HEBREW LETTER FINAL MEM - (#xEE ?\u05DE) ;; HEBREW LETTER MEM - (#xEF ?\u05DF) ;; HEBREW LETTER FINAL NUN - (#xF0 ?\u05E0) ;; HEBREW LETTER NUN - (#xF1 ?\u05E1) ;; HEBREW LETTER SAMEKH - (#xF2 ?\u05E2) ;; HEBREW LETTER AYIN - (#xF3 ?\u05E3) ;; HEBREW LETTER FINAL PE - (#xF4 ?\u05E4) ;; HEBREW LETTER PE - (#xF5 ?\u05E5) ;; HEBREW LETTER FINAL TSADI - (#xF6 ?\u05E6) ;; HEBREW LETTER TSADI - (#xF7 ?\u05E7) ;; HEBREW LETTER QOF - (#xF8 ?\u05E8) ;; HEBREW LETTER RESH - (#xF9 ?\u05E9) ;; HEBREW LETTER SHIN - (#xFA ?\u05EA) ;; HEBREW LETTER TAV - (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK - (#xFE ?\u200F)) ;; RIGHT-TO-LEFT MARK - "ISO-8859-8 (Hebrew)" - '(mnemonic "MIME/Hbrw")) +(make-coding-system + 'iso-8859-8 'fixed-width "ISO-8859-8 (Hebrew)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u00D7) ;; MULTIPLICATION SIGN + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE + (#xBA ?\u00F7) ;; DIVISION SIGN + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS + (#xDF ?\u2017) ;; DOUBLE LOW LINE + (#xE0 ?\u05D0) ;; HEBREW LETTER ALEF + (#xE1 ?\u05D1) ;; HEBREW LETTER BET + (#xE2 ?\u05D2) ;; HEBREW LETTER GIMEL + (#xE3 ?\u05D3) ;; HEBREW LETTER DALET + (#xE4 ?\u05D4) ;; HEBREW LETTER HE + (#xE5 ?\u05D5) ;; HEBREW LETTER VAV + (#xE6 ?\u05D6) ;; HEBREW LETTER ZAYIN + (#xE7 ?\u05D7) ;; HEBREW LETTER HET + (#xE8 ?\u05D8) ;; HEBREW LETTER TET + (#xE9 ?\u05D9) ;; HEBREW LETTER YOD + (#xEA ?\u05DA) ;; HEBREW LETTER FINAL KAF + (#xEB ?\u05DB) ;; HEBREW LETTER KAF + (#xEC ?\u05DC) ;; HEBREW LETTER LAMED + (#xED ?\u05DD) ;; HEBREW LETTER FINAL MEM + (#xEE ?\u05DE) ;; HEBREW LETTER MEM + (#xEF ?\u05DF) ;; HEBREW LETTER FINAL NUN + (#xF0 ?\u05E0) ;; HEBREW LETTER NUN + (#xF1 ?\u05E1) ;; HEBREW LETTER SAMEKH + (#xF2 ?\u05E2) ;; HEBREW LETTER AYIN + (#xF3 ?\u05E3) ;; HEBREW LETTER FINAL PE + (#xF4 ?\u05E4) ;; HEBREW LETTER PE + (#xF5 ?\u05E5) ;; HEBREW LETTER FINAL TSADI + (#xF6 ?\u05E6) ;; HEBREW LETTER TSADI + (#xF7 ?\u05E7) ;; HEBREW LETTER QOF + (#xF8 ?\u05E8) ;; HEBREW LETTER RESH + (#xF9 ?\u05E9) ;; HEBREW LETTER SHIN + (#xFA ?\u05EA) ;; HEBREW LETTER TAV + (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK + (#xFE ?\u200F)) ;; RIGHT-TO-LEFT MARK + mnemonic "MIME/Hbrw")) (make-coding-system 'ctext-hebrew 'iso2022
--- a/lisp/mule/latin.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/latin.el Sat Sep 19 22:53:13 2009 +0100 @@ -124,270 +124,273 @@ (#xDD #xFD) ;; Y WITH ACUTE (#xDE #xFE))) ;; T WITH CEDILLA -(make-8-bit-coding-system - 'iso-8859-2 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (#xA2 ?\u02D8) ;; BREVE - (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u013D) ;; LATIN CAPITAL LETTER L WITH CARON - (#xA6 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (#xAB ?\u0164) ;; LATIN CAPITAL LETTER T WITH CARON - (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK - (#xB2 ?\u02DB) ;; OGONEK - (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u013E) ;; LATIN SMALL LETTER L WITH CARON - (#xB6 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE - (#xB7 ?\u02C7) ;; CARON - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (#xBB ?\u0165) ;; LATIN SMALL LETTER T WITH CARON - (#xBC ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE - (#xBD ?\u02DD) ;; DOUBLE ACUTE ACCENT - (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (#xC0 ?\u0154) ;; LATIN CAPITAL LETTER R WITH ACUTE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u0139) ;; LATIN CAPITAL LETTER L WITH ACUTE - (#xC6 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u011A) ;; LATIN CAPITAL LETTER E WITH CARON - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u010E) ;; LATIN CAPITAL LETTER D WITH CARON - (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE - (#xD2 ?\u0147) ;; LATIN CAPITAL LETTER N WITH CARON - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u0158) ;; LATIN CAPITAL LETTER R WITH CARON - (#xD9 ?\u016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u0155) ;; LATIN SMALL LETTER R WITH ACUTE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u013A) ;; LATIN SMALL LETTER L WITH ACUTE - (#xE6 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u011B) ;; LATIN SMALL LETTER E WITH CARON - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u010F) ;; LATIN SMALL LETTER D WITH CARON - (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE - (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE - (#xF2 ?\u0148) ;; LATIN SMALL LETTER N WITH CARON - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u0159) ;; LATIN SMALL LETTER R WITH CARON - (#xF9 ?\u016F) ;; LATIN SMALL LETTER U WITH RING ABOVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (#xFE ?\u0163) ;; LATIN SMALL LETTER T WITH CEDILLA - (#xFF ?\u02D9)) ;; DOT ABOVE - "ISO-8859-2 (Latin-2) for Central Europe. +(make-coding-system + 'iso-8859-2 'fixed-width "ISO-8859-2 (Latin-2)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK + (#xA2 ?\u02D8) ;; BREVE + (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u013D) ;; LATIN CAPITAL LETTER L WITH CARON + (#xA6 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA + (#xAB ?\u0164) ;; LATIN CAPITAL LETTER T WITH CARON + (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK + (#xB2 ?\u02DB) ;; OGONEK + (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u013E) ;; LATIN SMALL LETTER L WITH CARON + (#xB6 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE + (#xB7 ?\u02C7) ;; CARON + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA + (#xBB ?\u0165) ;; LATIN SMALL LETTER T WITH CARON + (#xBC ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE + (#xBD ?\u02DD) ;; DOUBLE ACUTE ACCENT + (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE + (#xC0 ?\u0154) ;; LATIN CAPITAL LETTER R WITH ACUTE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u0139) ;; LATIN CAPITAL LETTER L WITH ACUTE + (#xC6 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u011A) ;; LATIN CAPITAL LETTER E WITH CARON + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u010E) ;; LATIN CAPITAL LETTER D WITH CARON + (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE + (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE + (#xD2 ?\u0147) ;; LATIN CAPITAL LETTER N WITH CARON + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u0158) ;; LATIN CAPITAL LETTER R WITH CARON + (#xD9 ?\u016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u0155) ;; LATIN SMALL LETTER R WITH ACUTE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u013A) ;; LATIN SMALL LETTER L WITH ACUTE + (#xE6 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u011B) ;; LATIN SMALL LETTER E WITH CARON + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u010F) ;; LATIN SMALL LETTER D WITH CARON + (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE + (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE + (#xF2 ?\u0148) ;; LATIN SMALL LETTER N WITH CARON + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u0159) ;; LATIN SMALL LETTER R WITH CARON + (#xF9 ?\u016F) ;; LATIN SMALL LETTER U WITH RING ABOVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE + (#xFE ?\u0163) ;; LATIN SMALL LETTER T WITH CEDILLA + (#xFF ?\u02D9)) ;; DOT ABOVE + documentation "ISO-8859-2 (Latin-2) for Central Europe. See also `windows-1250', and `iso-8859-1', which is compatible with Latin 2 when used to write German (or English, of course). " - '(mnemonic "Latin 2" + mnemonic "Latin 2" aliases (iso-latin-2 latin-2))) -(make-8-bit-coding-system - 'windows-1250 - '((#x80 ?\u20AC) ;; EURO SIGN - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8A ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE - (#x8D ?\u0164) ;; LATIN CAPITAL LETTER T WITH CARON - (#x8E ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#x8F ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9A ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#x9C ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE - (#x9D ?\u0165) ;; LATIN SMALL LETTER T WITH CARON - (#x9E ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#x9F ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u02C7) ;; CARON - (#xA2 ?\u02D8) ;; BREVE - (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u02DB) ;; OGONEK - (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK - (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u013D) ;; LATIN CAPITAL LETTER L WITH CARON - (#xBD ?\u02DD) ;; DOUBLE ACUTE ACCENT - (#xBE ?\u013E) ;; LATIN SMALL LETTER L WITH CARON - (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (#xC0 ?\u0154) ;; LATIN CAPITAL LETTER R WITH ACUTE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u0139) ;; LATIN CAPITAL LETTER L WITH ACUTE - (#xC6 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u011A) ;; LATIN CAPITAL LETTER E WITH CARON - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u010E) ;; LATIN CAPITAL LETTER D WITH CARON - (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE - (#xD2 ?\u0147) ;; LATIN CAPITAL LETTER N WITH CARON - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u0158) ;; LATIN CAPITAL LETTER R WITH CARON - (#xD9 ?\u016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u0155) ;; LATIN SMALL LETTER R WITH ACUTE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u013A) ;; LATIN SMALL LETTER L WITH ACUTE - (#xE6 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u011B) ;; LATIN SMALL LETTER E WITH CARON - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u010F) ;; LATIN SMALL LETTER D WITH CARON - (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE - (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE - (#xF2 ?\u0148) ;; LATIN SMALL LETTER N WITH CARON - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u0159) ;; LATIN SMALL LETTER R WITH CARON - (#xF9 ?\u016F) ;; LATIN SMALL LETTER U WITH RING ABOVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (#xFE ?\u0163) ;; LATIN SMALL LETTER T WITH CEDILLA - (#xFF ?\u02D9)) ;; DOT ABOVE - "CP 1250, Microsoft's encoding for Central Europe. +(make-coding-system + 'windows-1250 'fixed-width "Microsoft's CP1250" + '(unicode-map + ((#x80 ?\u20AC) ;; EURO SIGN + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8A ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE + (#x8D ?\u0164) ;; LATIN CAPITAL LETTER T WITH CARON + (#x8E ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#x8F ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9A ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#x9C ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE + (#x9D ?\u0165) ;; LATIN SMALL LETTER T WITH CARON + (#x9E ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#x9F ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u02C7) ;; CARON + (#xA2 ?\u02D8) ;; BREVE + (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u02DB) ;; OGONEK + (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK + (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u013D) ;; LATIN CAPITAL LETTER L WITH CARON + (#xBD ?\u02DD) ;; DOUBLE ACUTE ACCENT + (#xBE ?\u013E) ;; LATIN SMALL LETTER L WITH CARON + (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE + (#xC0 ?\u0154) ;; LATIN CAPITAL LETTER R WITH ACUTE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u0139) ;; LATIN CAPITAL LETTER L WITH ACUTE + (#xC6 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u011A) ;; LATIN CAPITAL LETTER E WITH CARON + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u010E) ;; LATIN CAPITAL LETTER D WITH CARON + (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE + (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE + (#xD2 ?\u0147) ;; LATIN CAPITAL LETTER N WITH CARON + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u0158) ;; LATIN CAPITAL LETTER R WITH CARON + (#xD9 ?\u016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u0155) ;; LATIN SMALL LETTER R WITH ACUTE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u013A) ;; LATIN SMALL LETTER L WITH ACUTE + (#xE6 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u011B) ;; LATIN SMALL LETTER E WITH CARON + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u010F) ;; LATIN SMALL LETTER D WITH CARON + (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE + (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE + (#xF2 ?\u0148) ;; LATIN SMALL LETTER N WITH CARON + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u0159) ;; LATIN SMALL LETTER R WITH CARON + (#xF9 ?\u016F) ;; LATIN SMALL LETTER U WITH RING ABOVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE + (#xFE ?\u0163) ;; LATIN SMALL LETTER T WITH CEDILLA + (#xFF ?\u02D9)) ;; DOT ABOVE + documentation + "CP 1250, Microsoft's encoding for Central Europe. See also `iso-8859-2' and `window-1252' for Western Europe. " - '(mnemonic "CP1250" + mnemonic "CP1250" aliases (cp1250))) @@ -460,131 +463,131 @@ (#xDD #xFD) ;; U WITH BREVE (#xDE #xFE))) ;; S WITH CIRCUMFLEX -(make-8-bit-coding-system - 'iso-8859-3 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0126) ;; LATIN CAPITAL LETTER H WITH STROKE - (#xA2 ?\u02D8) ;; BREVE - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA6 ?\u0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE - (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (#xAB ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE - (#xAC ?\u0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u0127) ;; LATIN SMALL LETTER H WITH STROKE - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u0131) ;; LATIN SMALL LETTER DOTLESS I - (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (#xBB ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE - (#xBC ?\u0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE - (#xC6 ?\u0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u016C) ;; LATIN CAPITAL LETTER U WITH BREVE - (#xDE ?\u015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE - (#xE6 ?\u0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u016D) ;; LATIN SMALL LETTER U WITH BREVE - (#xFE ?\u015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX - (#xFF ?\u02D9)) ;; DOT ABOVE - "ISO-8859-3 (Latin-3)" - '(mnemonic "Latin 3" +(make-coding-system + 'iso-8859-3 'fixed-width "ISO-8859-3 (Latin-3)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0126) ;; LATIN CAPITAL LETTER H WITH STROKE + (#xA2 ?\u02D8) ;; BREVE + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA6 ?\u0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE + (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA + (#xAB ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE + (#xAC ?\u0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u0127) ;; LATIN SMALL LETTER H WITH STROKE + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u0131) ;; LATIN SMALL LETTER DOTLESS I + (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA + (#xBB ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE + (#xBC ?\u0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE + (#xC6 ?\u0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u016C) ;; LATIN CAPITAL LETTER U WITH BREVE + (#xDE ?\u015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE + (#xE6 ?\u0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u016D) ;; LATIN SMALL LETTER U WITH BREVE + (#xFE ?\u015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX + (#xFF ?\u02D9)) ;; DOT ABOVE + mnemonic "Latin 3" documentation "Aimed at Turkish, Maltese and Esperanto. " aliases (iso-latin-3 latin-3))) @@ -660,138 +663,138 @@ (#xDD #xFD) ;; U WITH TILDE (#xDE #xFE))) ;; U WITH MACRON -(make-8-bit-coding-system - 'iso-8859-4 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (#xA2 ?\u0138) ;; LATIN SMALL LETTER KRA - (#xA3 ?\u0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u0128) ;; LATIN CAPITAL LETTER I WITH TILDE - (#xA6 ?\u013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#xAA ?\u0112) ;; LATIN CAPITAL LETTER E WITH MACRON - (#xAB ?\u0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA - (#xAC ?\u0166) ;; LATIN CAPITAL LETTER T WITH STROKE - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK - (#xB2 ?\u02DB) ;; OGONEK - (#xB3 ?\u0157) ;; LATIN SMALL LETTER R WITH CEDILLA - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u0129) ;; LATIN SMALL LETTER I WITH TILDE - (#xB6 ?\u013C) ;; LATIN SMALL LETTER L WITH CEDILLA - (#xB7 ?\u02C7) ;; CARON - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#xBA ?\u0113) ;; LATIN SMALL LETTER E WITH MACRON - (#xBB ?\u0123) ;; LATIN SMALL LETTER G WITH CEDILLA - (#xBC ?\u0167) ;; LATIN SMALL LETTER T WITH STROKE - (#xBD ?\u014A) ;; LATIN CAPITAL LETTER ENG - (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#xBF ?\u014B) ;; LATIN SMALL LETTER ENG - (#xC0 ?\u0100) ;; LATIN CAPITAL LETTER A WITH MACRON - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u012E) ;; LATIN CAPITAL LETTER I WITH OGONEK - (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u012A) ;; LATIN CAPITAL LETTER I WITH MACRON - (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (#xD1 ?\u0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA - (#xD2 ?\u014C) ;; LATIN CAPITAL LETTER O WITH MACRON - (#xD3 ?\u0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xD9 ?\u0172) ;; LATIN CAPITAL LETTER U WITH OGONEK - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u0168) ;; LATIN CAPITAL LETTER U WITH TILDE - (#xDE ?\u016A) ;; LATIN CAPITAL LETTER U WITH MACRON - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u0101) ;; LATIN SMALL LETTER A WITH MACRON - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u012F) ;; LATIN SMALL LETTER I WITH OGONEK - (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u012B) ;; LATIN SMALL LETTER I WITH MACRON - (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE - (#xF1 ?\u0146) ;; LATIN SMALL LETTER N WITH CEDILLA - (#xF2 ?\u014D) ;; LATIN SMALL LETTER O WITH MACRON - (#xF3 ?\u0137) ;; LATIN SMALL LETTER K WITH CEDILLA - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xF9 ?\u0173) ;; LATIN SMALL LETTER U WITH OGONEK - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u0169) ;; LATIN SMALL LETTER U WITH TILDE - (#xFE ?\u016B) ;; LATIN SMALL LETTER U WITH MACRON - (#xFF ?\u02D9));; DOT ABOVE - "ISO-8859-4 (Latin-4)" - '(mnemonic "Latin 4" +(make-coding-system + 'iso-8859-4 'fixed-width "ISO-8859-4 (Latin-4)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK + (#xA2 ?\u0138) ;; LATIN SMALL LETTER KRA + (#xA3 ?\u0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u0128) ;; LATIN CAPITAL LETTER I WITH TILDE + (#xA6 ?\u013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#xAA ?\u0112) ;; LATIN CAPITAL LETTER E WITH MACRON + (#xAB ?\u0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA + (#xAC ?\u0166) ;; LATIN CAPITAL LETTER T WITH STROKE + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK + (#xB2 ?\u02DB) ;; OGONEK + (#xB3 ?\u0157) ;; LATIN SMALL LETTER R WITH CEDILLA + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u0129) ;; LATIN SMALL LETTER I WITH TILDE + (#xB6 ?\u013C) ;; LATIN SMALL LETTER L WITH CEDILLA + (#xB7 ?\u02C7) ;; CARON + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#xBA ?\u0113) ;; LATIN SMALL LETTER E WITH MACRON + (#xBB ?\u0123) ;; LATIN SMALL LETTER G WITH CEDILLA + (#xBC ?\u0167) ;; LATIN SMALL LETTER T WITH STROKE + (#xBD ?\u014A) ;; LATIN CAPITAL LETTER ENG + (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#xBF ?\u014B) ;; LATIN SMALL LETTER ENG + (#xC0 ?\u0100) ;; LATIN CAPITAL LETTER A WITH MACRON + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u012E) ;; LATIN CAPITAL LETTER I WITH OGONEK + (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u012A) ;; LATIN CAPITAL LETTER I WITH MACRON + (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE + (#xD1 ?\u0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA + (#xD2 ?\u014C) ;; LATIN CAPITAL LETTER O WITH MACRON + (#xD3 ?\u0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xD9 ?\u0172) ;; LATIN CAPITAL LETTER U WITH OGONEK + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u0168) ;; LATIN CAPITAL LETTER U WITH TILDE + (#xDE ?\u016A) ;; LATIN CAPITAL LETTER U WITH MACRON + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u0101) ;; LATIN SMALL LETTER A WITH MACRON + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u012F) ;; LATIN SMALL LETTER I WITH OGONEK + (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u012B) ;; LATIN SMALL LETTER I WITH MACRON + (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE + (#xF1 ?\u0146) ;; LATIN SMALL LETTER N WITH CEDILLA + (#xF2 ?\u014D) ;; LATIN SMALL LETTER O WITH MACRON + (#xF3 ?\u0137) ;; LATIN SMALL LETTER K WITH CEDILLA + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xF9 ?\u0173) ;; LATIN SMALL LETTER U WITH OGONEK + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u0169) ;; LATIN SMALL LETTER U WITH TILDE + (#xFE ?\u016B) ;; LATIN SMALL LETTER U WITH MACRON + (#xFF ?\u02D9)) ;; DOT ABOVE + mnemonic "Latin 4" aliases (iso-latin-4 latin-4) documentation "Obsolete coding system for the Baltic rim. ")) @@ -873,138 +876,138 @@ (#xDD #xFD) ;; Y WITH ACUTE (#xDE #xFE))) ;; Y WITH CIRCUMFLEX -(make-8-bit-coding-system - 'iso-8859-14 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE - (#xA2 ?\u1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE - (#xA5 ?\u010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE - (#xA6 ?\u1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE - (#xAB ?\u1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE - (#xAC ?\u1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (#xB0 ?\u1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE - (#xB1 ?\u1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE - (#xB2 ?\u0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE - (#xB3 ?\u0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE - (#xB4 ?\u1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE - (#xB5 ?\u1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE - (#xB8 ?\u1E81) ;; LATIN SMALL LETTER W WITH GRAVE - (#xB9 ?\u1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE - (#xBA ?\u1E83) ;; LATIN SMALL LETTER W WITH ACUTE - (#xBB ?\u1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE - (#xBC ?\u1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE - (#xBD ?\u1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS - (#xBE ?\u1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS - (#xBF ?\u1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD0 ?\u0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX - (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE - (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX - (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE - (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (#xFE ?\u0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX - (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS - "ISO-8859-14 (Latin-8)" - '(mnemonic "Latin 8" +(make-coding-system + 'iso-8859-14 'fixed-width "ISO-8859-14 (Latin-8)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE + (#xA2 ?\u1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE + (#xA5 ?\u010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE + (#xA6 ?\u1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE + (#xAB ?\u1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE + (#xAC ?\u1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS + (#xB0 ?\u1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE + (#xB1 ?\u1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE + (#xB2 ?\u0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE + (#xB3 ?\u0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE + (#xB4 ?\u1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE + (#xB5 ?\u1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE + (#xB8 ?\u1E81) ;; LATIN SMALL LETTER W WITH GRAVE + (#xB9 ?\u1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE + (#xBA ?\u1E83) ;; LATIN SMALL LETTER W WITH ACUTE + (#xBB ?\u1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE + (#xBC ?\u1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE + (#xBD ?\u1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS + (#xBE ?\u1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS + (#xBF ?\u1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD0 ?\u0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX + (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE + (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX + (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE + (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE + (#xFE ?\u0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX + (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS + mnemonic "Latin 8" aliases (iso-latin-8 latin-8))) @@ -1079,138 +1082,140 @@ (#xDD #xFD) ;; Y WITH ACUTE (#xDE #xFE))) ;; THORN -(make-8-bit-coding-system - 'iso-8859-15 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u20AC) ;; EURO SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE - (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE - (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE - (#xBE ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (#xBF ?\u00BF) ;; INVERTED QUESTION MARK - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD0 ?\u00D0) ;; LATIN CAPITAL LETTER ETH - (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u00DE) ;; LATIN CAPITAL LETTER THORN - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u00F0) ;; LATIN SMALL LETTER ETH - (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (#xFE ?\u00FE) ;; LATIN SMALL LETTER THORN - (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS - "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)" - '(mnemonic "Latin 9" +(make-coding-system + 'iso-8859-15 'fixed-width "ISO-8859-15 (Latin-9" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u20AC) ;; EURO SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE + (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE + (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE + (#xBE ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS + (#xBF ?\u00BF) ;; INVERTED QUESTION MARK + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD0 ?\u00D0) ;; LATIN CAPITAL LETTER ETH + (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u00DE) ;; LATIN CAPITAL LETTER THORN + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u00F0) ;; LATIN SMALL LETTER ETH + (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE + (#xFE ?\u00FE) ;; LATIN SMALL LETTER THORN + (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS + documentation "ISO 4873 conforming 8-bit code. +(ASCII + Latin 9; aka Latin-1 with Euro)" + mnemonic "Latin 9" aliases (iso-latin-9 latin-9 latin-0))) ;; end of ISO 8859-15. @@ -1309,138 +1314,138 @@ (#xDE #xFE))) ;; T WITH COMMA BELOW ;; Add a coding system for ISO 8859-16. -(make-8-bit-coding-system - 'iso-8859-16 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (#xA2 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK - (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE - (#xA4 ?\u20AC) ;; EURO SIGN - (#xA5 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u0218) ;; LATIN CAPITAL LETTER S WITH COMMA BELOW - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE - (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON - (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE - (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#xB5 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#xB9 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON - (#xBA ?\u0219) ;; LATIN SMALL LETTER S WITH COMMA BELOW - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE - (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE - (#xBE ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE - (#xD8 ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (#xDE ?\u021A) ;; LATIN CAPITAL LETTER T WITH COMMA BELOW - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE - (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE - (#xF8 ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK - (#xFE ?\u021B) ;; LATIN SMALL LETTER T WITH COMMA BELOW - (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS - "ISO-8859-16 (Latin-10)" - '(mnemonic "Latin 10" +(make-coding-system + 'iso-8859-16 'fixed-width "ISO-8859-16 (Latin-10)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK + (#xA2 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK + (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE + (#xA4 ?\u20AC) ;; EURO SIGN + (#xA5 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u0218) ;; LATIN CAPITAL LETTER S WITH COMMA BELOW + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE + (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON + (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE + (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#xB5 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#xB9 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON + (#xBA ?\u0219) ;; LATIN SMALL LETTER S WITH COMMA BELOW + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE + (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE + (#xBE ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS + (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE + (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE + (#xD8 ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK + (#xDE ?\u021A) ;; LATIN CAPITAL LETTER T WITH COMMA BELOW + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE + (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE + (#xF8 ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK + (#xFE ?\u021B) ;; LATIN SMALL LETTER T WITH COMMA BELOW + (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS + mnemonic "Latin 10" aliases (iso-latin-10))) ;; end of ISO 8859-16. @@ -1517,138 +1522,138 @@ (make-char 'latin-iso8859-9 #xfd) ?I (standard-case-table)) -(make-8-bit-coding-system - 'iso-8859-9 - '((#x80 ?\u0080) ;; <control> - (#x81 ?\u0081) ;; <control> - (#x82 ?\u0082) ;; <control> - (#x83 ?\u0083) ;; <control> - (#x84 ?\u0084) ;; <control> - (#x85 ?\u0085) ;; <control> - (#x86 ?\u0086) ;; <control> - (#x87 ?\u0087) ;; <control> - (#x88 ?\u0088) ;; <control> - (#x89 ?\u0089) ;; <control> - (#x8A ?\u008A) ;; <control> - (#x8B ?\u008B) ;; <control> - (#x8C ?\u008C) ;; <control> - (#x8D ?\u008D) ;; <control> - (#x8E ?\u008E) ;; <control> - (#x8F ?\u008F) ;; <control> - (#x90 ?\u0090) ;; <control> - (#x91 ?\u0091) ;; <control> - (#x92 ?\u0092) ;; <control> - (#x93 ?\u0093) ;; <control> - (#x94 ?\u0094) ;; <control> - (#x95 ?\u0095) ;; <control> - (#x96 ?\u0096) ;; <control> - (#x97 ?\u0097) ;; <control> - (#x98 ?\u0098) ;; <control> - (#x99 ?\u0099) ;; <control> - (#x9A ?\u009A) ;; <control> - (#x9B ?\u009B) ;; <control> - (#x9C ?\u009C) ;; <control> - (#x9D ?\u009D) ;; <control> - (#x9E ?\u009E) ;; <control> - (#x9F ?\u009F) ;; <control> - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE - (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS - (#xBF ?\u00BF) ;; INVERTED QUESTION MARK - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD0 ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE - (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE - (#xDE ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE - (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u0131) ;; LATIN SMALL LETTER DOTLESS I - (#xFE ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS - "ISO-8859-9 (Latin-5)" - '(mnemonic "Latin 5" +(make-coding-system + 'iso-8859-9 'fixed-width "ISO-8859-9 (Latin-5)" + '(unicode-map + ((#x80 ?\u0080) ;; <control> + (#x81 ?\u0081) ;; <control> + (#x82 ?\u0082) ;; <control> + (#x83 ?\u0083) ;; <control> + (#x84 ?\u0084) ;; <control> + (#x85 ?\u0085) ;; <control> + (#x86 ?\u0086) ;; <control> + (#x87 ?\u0087) ;; <control> + (#x88 ?\u0088) ;; <control> + (#x89 ?\u0089) ;; <control> + (#x8A ?\u008A) ;; <control> + (#x8B ?\u008B) ;; <control> + (#x8C ?\u008C) ;; <control> + (#x8D ?\u008D) ;; <control> + (#x8E ?\u008E) ;; <control> + (#x8F ?\u008F) ;; <control> + (#x90 ?\u0090) ;; <control> + (#x91 ?\u0091) ;; <control> + (#x92 ?\u0092) ;; <control> + (#x93 ?\u0093) ;; <control> + (#x94 ?\u0094) ;; <control> + (#x95 ?\u0095) ;; <control> + (#x96 ?\u0096) ;; <control> + (#x97 ?\u0097) ;; <control> + (#x98 ?\u0098) ;; <control> + (#x99 ?\u0099) ;; <control> + (#x9A ?\u009A) ;; <control> + (#x9B ?\u009B) ;; <control> + (#x9C ?\u009C) ;; <control> + (#x9D ?\u009D) ;; <control> + (#x9E ?\u009E) ;; <control> + (#x9F ?\u009F) ;; <control> + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE + (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS + (#xBF ?\u00BF) ;; INVERTED QUESTION MARK + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD0 ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE + (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE + (#xDE ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE + (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u0131) ;; LATIN SMALL LETTER DOTLESS I + (#xFE ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA + (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS + mnemonic "Latin 5" aliases (iso-latin-5 latin-5))) ;; end of ISO-8859-9 @@ -1734,8 +1739,8 @@ (invalid-sequence-coding-system ,(or invalid-sequence-coding-system codesys)) (documentation . ,(if (listp supported-langs) (car supported-langs) - (format "\ -Generic language environment for %s (%s)." nice-charset-1 nice-charset-2)))) + (format "Generic language environment for %s (%s)." + nice-charset-1 nice-charset-2)))) '("European")) (loop for (name locale tutorial sample-text input-method) in langenvs do @@ -1752,8 +1757,8 @@ (tutorial-coding-system . ,codesys))) ,@(if sample-text `((sample-text . ,sample-text))) (input-method . ,(or input-method default-input)) - (documentation . ,(format "\ -This language environment supports %s. " name))) + (documentation . ,(format "This language environment supports %s. " + name))) '("European")))) ;; The case table for Turkish is special: @@ -1776,268 +1781,270 @@ ;; Restore the normal case mappings for the characters. (put-case-table-pair ?I ?i (standard-case-table)))) -(make-8-bit-coding-system - 'macintosh - '((#x80 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#x81 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#x82 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#x83 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#x84 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#x85 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#x86 ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#x87 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#x88 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#x89 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#x8A ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#x8B ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#x8C ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#x8D ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#x8E ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#x8F ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#x90 ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#x91 ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#x92 ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#x93 ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#x94 ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#x95 ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#x96 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#x97 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#x98 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#x99 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#x9A ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#x9B ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#x9C ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#x9D ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#x9E ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#x9F ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xA0 ?\u2020) ;; DAGGER - (#xA1 ?\u00B0) ;; DEGREE SIGN - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A7) ;; SECTION SIGN - (#xA5 ?\u2022) ;; BULLET - (#xA6 ?\u00B6) ;; PILCROW SIGN - (#xA7 ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xA8 ?\u00AE) ;; REGISTERED SIGN - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u2122) ;; TRADE MARK SIGN - (#xAB ?\u00B4) ;; ACUTE ACCENT - (#xAC ?\u00A8) ;; DIAERESIS - (#xAD ?\u2260) ;; NOT EQUAL TO - (#xAE ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xAF ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xB0 ?\u221E) ;; INFINITY - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u2264) ;; LESS-THAN OR EQUAL TO - (#xB3 ?\u2265) ;; GREATER-THAN OR EQUAL TO - (#xB4 ?\u00A5) ;; YEN SIGN - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u2202) ;; PARTIAL DIFFERENTIAL - (#xB7 ?\u2211) ;; N-ARY SUMMATION - (#xB8 ?\u220F) ;; N-ARY PRODUCT - (#xB9 ?\u03C0) ;; GREEK SMALL LETTER PI - (#xBA ?\u222B) ;; INTEGRAL - (#xBB ?\u00AA) ;; FEMININE ORDINAL INDICATOR - (#xBC ?\u00BA) ;; MASCULINE ORDINAL INDICATOR - (#xBD ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA - (#xBE ?\u00E6) ;; LATIN SMALL LETTER AE - (#xBF ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xC0 ?\u00BF) ;; INVERTED QUESTION MARK - (#xC1 ?\u00A1) ;; INVERTED EXCLAMATION MARK - (#xC2 ?\u00AC) ;; NOT SIGN - (#xC3 ?\u221A) ;; SQUARE ROOT - (#xC4 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK - (#xC5 ?\u2248) ;; ALMOST EQUAL TO - (#xC6 ?\u2206) ;; INCREMENT - (#xC7 ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xC8 ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xC9 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#xCA ?\u00A0) ;; NO-BREAK SPACE - (#xCB ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xCC ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xCD ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xCE ?\u0152) ;; LATIN CAPITAL LIGATURE OE - (#xCF ?\u0153) ;; LATIN SMALL LIGATURE OE - (#xD0 ?\u2013) ;; EN DASH - (#xD1 ?\u2014) ;; EM DASH - (#xD2 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#xD3 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#xD4 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#xD5 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#xD6 ?\u00F7) ;; DIVISION SIGN - (#xD7 ?\u25CA) ;; LOZENGE - (#xD8 ?\u00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS - (#xD9 ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (#xDA ?\u2044) ;; FRACTION SLASH - (#xDB ?\u20AC) ;; EURO SIGN - (#xDC ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#xDD ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#xDE ?\uFB01) ;; LATIN SMALL LIGATURE FI - (#xDF ?\uFB02) ;; LATIN SMALL LIGATURE FL - (#xE0 ?\u2021) ;; DOUBLE DAGGER - (#xE1 ?\u00B7) ;; MIDDLE DOT - (#xE2 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#xE3 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#xE4 ?\u2030) ;; PER MILLE SIGN - (#xE5 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xE6 ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xE7 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xE8 ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xE9 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xEA ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xEB ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xEC ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xED ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xEE ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xEF ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xF0 ?\uF8FF) ;; Apple logo - (#xF1 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xF2 ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xF3 ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xF4 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xF5 ?\u0131) ;; LATIN SMALL LETTER DOTLESS I - (#xF6 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT - (#xF7 ?\u02DC) ;; SMALL TILDE - (#xF8 ?\u00AF) ;; MACRON - (#xF9 ?\u02D8) ;; BREVE - (#xFA ?\u02D9) ;; DOT ABOVE - (#xFB ?\u02DA) ;; RING ABOVE - (#xFC ?\u00B8) ;; CEDILLA - (#xFD ?\u02DD) ;; DOUBLE ACUTE ACCENT - (#xFE ?\u02DB) ;; OGONEK - (#xFF ?\u02C7)) ;; CARON - "The Macintosh encoding for Western Europe and the Americas" - '(mnemonic "MR" - documentation "MacRoman, MIME name macintosh" - aliases (cp10000 MacRoman mac-roman))) - -(make-8-bit-coding-system - 'windows-1252 - '((#x80 ?\u20AC) ;; EURO SIGN - (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK - (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK - (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK - (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS - (#x86 ?\u2020) ;; DAGGER - (#x87 ?\u2021) ;; DOUBLE DAGGER - (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT - (#x89 ?\u2030) ;; PER MILLE SIGN - (#x8A ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON - (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE - (#x8E ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK - (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK - (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK - (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK - (#x95 ?\u2022) ;; BULLET - (#x96 ?\u2013) ;; EN DASH - (#x97 ?\u2014) ;; EM DASH - (#x98 ?\u02DC) ;; SMALL TILDE - (#x99 ?\u2122) ;; TRADE MARK SIGN - (#x9A ?\u0161) ;; LATIN SMALL LETTER S WITH CARON - (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE - (#x9E ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON - (#x9F ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (#xA0 ?\u00A0) ;; NO-BREAK SPACE - (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK - (#xA2 ?\u00A2) ;; CENT SIGN - (#xA3 ?\u00A3) ;; POUND SIGN - (#xA4 ?\u00A4) ;; CURRENCY SIGN - (#xA5 ?\u00A5) ;; YEN SIGN - (#xA6 ?\u00A6) ;; BROKEN BAR - (#xA7 ?\u00A7) ;; SECTION SIGN - (#xA8 ?\u00A8) ;; DIAERESIS - (#xA9 ?\u00A9) ;; COPYRIGHT SIGN - (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR - (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xAC ?\u00AC) ;; NOT SIGN - (#xAD ?\u00AD) ;; SOFT HYPHEN - (#xAE ?\u00AE) ;; REGISTERED SIGN - (#xAF ?\u00AF) ;; MACRON - (#xB0 ?\u00B0) ;; DEGREE SIGN - (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN - (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO - (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE - (#xB4 ?\u00B4) ;; ACUTE ACCENT - (#xB5 ?\u00B5) ;; MICRO SIGN - (#xB6 ?\u00B6) ;; PILCROW SIGN - (#xB7 ?\u00B7) ;; MIDDLE DOT - (#xB8 ?\u00B8) ;; CEDILLA - (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE - (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR - (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER - (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF - (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS - (#xBF ?\u00BF) ;; INVERTED QUESTION MARK - (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE - (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (#xD0 ?\u00D0) ;; LATIN CAPITAL LETTER ETH - (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN - (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u00DE) ;; LATIN CAPITAL LETTER THORN - (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S - (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE - (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE - (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (#xF0 ?\u00F0) ;; LATIN SMALL LETTER ETH - (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE - (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE - (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (#xF7 ?\u00F7) ;; DIVISION SIGN - (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE - (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (#xFE ?\u00FE) ;; LATIN SMALL LETTER THORN - (#xFF ?\u00FF));; LATIN SMALL LETTER Y WITH DIAERESIS - "Microsoft's extension of iso-8859-1 for Western Europe and the Americas. " - '(mnemonic "cp1252" +(make-coding-system + 'macintosh 'fixed-width "MacRoman" + '(unicode-map + ((#x80 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#x81 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#x82 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#x83 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#x84 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#x85 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#x86 ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#x87 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#x88 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#x89 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#x8A ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#x8B ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#x8C ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#x8D ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#x8E ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#x8F ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#x90 ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#x91 ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#x92 ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#x93 ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#x94 ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#x95 ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#x96 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#x97 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#x98 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#x99 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#x9A ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#x9B ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#x9C ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#x9D ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#x9E ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#x9F ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xA0 ?\u2020) ;; DAGGER + (#xA1 ?\u00B0) ;; DEGREE SIGN + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A7) ;; SECTION SIGN + (#xA5 ?\u2022) ;; BULLET + (#xA6 ?\u00B6) ;; PILCROW SIGN + (#xA7 ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xA8 ?\u00AE) ;; REGISTERED SIGN + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u2122) ;; TRADE MARK SIGN + (#xAB ?\u00B4) ;; ACUTE ACCENT + (#xAC ?\u00A8) ;; DIAERESIS + (#xAD ?\u2260) ;; NOT EQUAL TO + (#xAE ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xAF ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xB0 ?\u221E) ;; INFINITY + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u2264) ;; LESS-THAN OR EQUAL TO + (#xB3 ?\u2265) ;; GREATER-THAN OR EQUAL TO + (#xB4 ?\u00A5) ;; YEN SIGN + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u2202) ;; PARTIAL DIFFERENTIAL + (#xB7 ?\u2211) ;; N-ARY SUMMATION + (#xB8 ?\u220F) ;; N-ARY PRODUCT + (#xB9 ?\u03C0) ;; GREEK SMALL LETTER PI + (#xBA ?\u222B) ;; INTEGRAL + (#xBB ?\u00AA) ;; FEMININE ORDINAL INDICATOR + (#xBC ?\u00BA) ;; MASCULINE ORDINAL INDICATOR + (#xBD ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA + (#xBE ?\u00E6) ;; LATIN SMALL LETTER AE + (#xBF ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xC0 ?\u00BF) ;; INVERTED QUESTION MARK + (#xC1 ?\u00A1) ;; INVERTED EXCLAMATION MARK + (#xC2 ?\u00AC) ;; NOT SIGN + (#xC3 ?\u221A) ;; SQUARE ROOT + (#xC4 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK + (#xC5 ?\u2248) ;; ALMOST EQUAL TO + (#xC6 ?\u2206) ;; INCREMENT + (#xC7 ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xC8 ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xC9 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#xCA ?\u00A0) ;; NO-BREAK SPACE + (#xCB ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xCC ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xCD ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xCE ?\u0152) ;; LATIN CAPITAL LIGATURE OE + (#xCF ?\u0153) ;; LATIN SMALL LIGATURE OE + (#xD0 ?\u2013) ;; EN DASH + (#xD1 ?\u2014) ;; EM DASH + (#xD2 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#xD3 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#xD4 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#xD5 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#xD6 ?\u00F7) ;; DIVISION SIGN + (#xD7 ?\u25CA) ;; LOZENGE + (#xD8 ?\u00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS + (#xD9 ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS + (#xDA ?\u2044) ;; FRACTION SLASH + (#xDB ?\u20AC) ;; EURO SIGN + (#xDC ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#xDD ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#xDE ?\uFB01) ;; LATIN SMALL LIGATURE FI + (#xDF ?\uFB02) ;; LATIN SMALL LIGATURE FL + (#xE0 ?\u2021) ;; DOUBLE DAGGER + (#xE1 ?\u00B7) ;; MIDDLE DOT + (#xE2 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#xE3 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#xE4 ?\u2030) ;; PER MILLE SIGN + (#xE5 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xE6 ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xE7 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xE8 ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xE9 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xEA ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xEB ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xEC ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xED ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xEE ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xEF ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xF0 ?\uF8FF) ;; Apple logo + (#xF1 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xF2 ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xF3 ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xF4 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xF5 ?\u0131) ;; LATIN SMALL LETTER DOTLESS I + (#xF6 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT + (#xF7 ?\u02DC) ;; SMALL TILDE + (#xF8 ?\u00AF) ;; MACRON + (#xF9 ?\u02D8) ;; BREVE + (#xFA ?\u02D9) ;; DOT ABOVE + (#xFB ?\u02DA) ;; RING ABOVE + (#xFC ?\u00B8) ;; CEDILLA + (#xFD ?\u02DD) ;; DOUBLE ACUTE ACCENT + (#xFE ?\u02DB) ;; OGONEK + (#xFF ?\u02C7)) ;; CARON + mnemonic "MR" + documentation "The Macintosh encoding for Western Europe and the Americas" + aliases (cp10000 MacRoman))) + +(make-coding-system + 'windows-1252 'fixed-width "Microsoft's CP1252" + '(unicode-map + ((#x80 ?\u20AC) ;; EURO SIGN + (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK + (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK + (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x86 ?\u2020) ;; DAGGER + (#x87 ?\u2021) ;; DOUBLE DAGGER + (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT + (#x89 ?\u2030) ;; PER MILLE SIGN + (#x8A ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON + (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE + (#x8E ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#x98 ?\u02DC) ;; SMALL TILDE + (#x99 ?\u2122) ;; TRADE MARK SIGN + (#x9A ?\u0161) ;; LATIN SMALL LETTER S WITH CARON + (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE + (#x9E ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON + (#x9F ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK + (#xA2 ?\u00A2) ;; CENT SIGN + (#xA3 ?\u00A3) ;; POUND SIGN + (#xA4 ?\u00A4) ;; CURRENCY SIGN + (#xA5 ?\u00A5) ;; YEN SIGN + (#xA6 ?\u00A6) ;; BROKEN BAR + (#xA7 ?\u00A7) ;; SECTION SIGN + (#xA8 ?\u00A8) ;; DIAERESIS + (#xA9 ?\u00A9) ;; COPYRIGHT SIGN + (#xAA ?\u00AA) ;; FEMININE ORDINAL INDICATOR + (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xAC ?\u00AC) ;; NOT SIGN + (#xAD ?\u00AD) ;; SOFT HYPHEN + (#xAE ?\u00AE) ;; REGISTERED SIGN + (#xAF ?\u00AF) ;; MACRON + (#xB0 ?\u00B0) ;; DEGREE SIGN + (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN + (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO + (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE + (#xB4 ?\u00B4) ;; ACUTE ACCENT + (#xB5 ?\u00B5) ;; MICRO SIGN + (#xB6 ?\u00B6) ;; PILCROW SIGN + (#xB7 ?\u00B7) ;; MIDDLE DOT + (#xB8 ?\u00B8) ;; CEDILLA + (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE + (#xBA ?\u00BA) ;; MASCULINE ORDINAL INDICATOR + (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER + (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF + (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS + (#xBF ?\u00BF) ;; INVERTED QUESTION MARK + (#xC0 ?\u00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; LATIN CAPITAL LETTER A WITH TILDE + (#xC4 ?\u00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + (#xC5 ?\u00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE + (#xC6 ?\u00C6) ;; LATIN CAPITAL LETTER AE + (#xC7 ?\u00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA + (#xC8 ?\u00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + (#xCC ?\u00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE + (#xCE ?\u00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + (#xCF ?\u00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + (#xD0 ?\u00D0) ;; LATIN CAPITAL LETTER ETH + (#xD1 ?\u00D1) ;; LATIN CAPITAL LETTER N WITH TILDE + (#xD2 ?\u00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u00D5) ;; LATIN CAPITAL LETTER O WITH TILDE + (#xD6 ?\u00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN + (#xD8 ?\u00D8) ;; LATIN CAPITAL LETTER O WITH STROKE + (#xD9 ?\u00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE + (#xDB ?\u00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX + (#xDC ?\u00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + (#xDD ?\u00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u00DE) ;; LATIN CAPITAL LETTER THORN + (#xDF ?\u00DF) ;; LATIN SMALL LETTER SHARP S + (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; LATIN SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; LATIN SMALL LETTER A WITH TILDE + (#xE4 ?\u00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS + (#xE5 ?\u00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE + (#xE6 ?\u00E6) ;; LATIN SMALL LETTER AE + (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA + (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS + (#xEC ?\u00EC) ;; LATIN SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; LATIN SMALL LETTER I WITH ACUTE + (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS + (#xF0 ?\u00F0) ;; LATIN SMALL LETTER ETH + (#xF1 ?\u00F1) ;; LATIN SMALL LETTER N WITH TILDE + (#xF2 ?\u00F2) ;; LATIN SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; LATIN SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; LATIN SMALL LETTER O WITH TILDE + (#xF6 ?\u00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS + (#xF7 ?\u00F7) ;; DIVISION SIGN + (#xF8 ?\u00F8) ;; LATIN SMALL LETTER O WITH STROKE + (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; LATIN SMALL LETTER U WITH ACUTE + (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS + (#xFD ?\u00FD) ;; LATIN SMALL LETTER Y WITH ACUTE + (#xFE ?\u00FE) ;; LATIN SMALL LETTER THORN + (#xFF ?\u00FF)) ;; LATIN SMALL LETTER Y WITH DIAERESIS + documentation "Microsoft's extension of iso-8859-1 for Western Europe \ +and the Americas. " + mnemonic "cp1252" aliases (cp1252))) ;; Provide language environments that prefer specific coding systems.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/mule/make-coding-system.el Sat Sep 19 22:53:13 2009 +0100 @@ -0,0 +1,984 @@ +;;; make-coding-system.el; Provides the #'make-coding-system function and +;;; much of the implementation of the fixed-width coding system type. + +;; Copyright (C) 2009 Free Software Foundation + +;; Author: Aidan Kehoe + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;;; Code: + +(defvar fixed-width-private-use-start (decode-char 'ucs #xE000) + "Start of a 256 code private use area for fixed-width coding systems. + +This is used to ensure that distinct octets on disk for a given coding +system map to distinct XEmacs characters, preventing spurious changes when +a file is read, not changed, and then written. ") + +(defun fixed-width-generate-helper (decode-table encode-table + encode-failure-octet) + "Helper func, `fixed-width-generate-encode-program-and-skip-chars-strings', +which see. + +Deals with the case where ASCII and another character set can both be +encoded unambiguously and completely into the coding-system; if this is so, +returns multiple values comprisig of such a ccl-program and the character +set in question. If not, it returns nil." + (let ((tentative-encode-program-parts + (eval-when-compile + (let* ((vec-len 128) + (compiled + (append + (ccl-compile + `(1 + (loop + (read-multibyte-character r0 r1) + (if (r0 == ,(charset-id 'ascii)) + (write r1) + ((if (r0 == #xABAB) + ;; #xBFFE is a sentinel in the compiled + ;; program. + ((r0 = r1 & #x7F) + (write r0 ,(make-vector vec-len #xBFFE))) + ((mule-to-unicode r0 r1) + (if (r0 == #xFFFD) + (write #xBEEF) + ((lookup-integer encode-table-sym r0 r3) + (if r7 + (write-multibyte-character r0 r3) + (write #xBEEF)))))))) + (repeat)))) nil)) + (first-part compiled) + (last-part + (member-if-not (lambda (entr) (eq #xBFFE entr)) + (member-if + (lambda (entr) (eq #xBFFE entr)) + first-part)))) + (while compiled + (when (eq #xBFFE (cadr compiled)) + (assert (= vec-len (search '(#xBFFE) (cdr compiled) + :test #'/=)) nil + "Strange ccl vector length") + (setcdr compiled nil)) + (setq compiled (cdr compiled))) + ;; Is the generated code as we expect it to be? + (assert (and (memq #xABAB first-part) + (memq #xBEEF14 last-part)) + nil + "This code assumes that the constant #xBEEF is #xBEEF14 in \ +compiled CCL code,\nand that the constant #xABAB is #xABAB. If that is +not the case, and it appears not to be--that's why you're getting this +message--it will not work. ") + (list first-part last-part vec-len)))) + (charset-lower -1) + (charset-upper -1) + worth-trying known-charsets encode-program + other-charset-vector ucs) + + (loop for char across decode-table + do (pushnew (char-charset char) known-charsets)) + (setq known-charsets (delq 'ascii known-charsets)) + + (loop for known-charset in known-charsets + do + ;; This is not possible for two dimensional charsets. + (when (eq 1 (charset-dimension known-charset)) + (if (eq 'control-1 known-charset) + (setq charset-lower 0 + charset-upper 31) + ;; There should be a nicer way to get the limits here. + (condition-case args-out-of-range + (make-char known-charset #x100) + (args-out-of-range + (setq charset-lower (third args-out-of-range) + charset-upper (fourth args-out-of-range))))) + (loop + for i from charset-lower to charset-upper + always (and (setq ucs + (encode-char (make-char known-charset i) 'ucs)) + (gethash ucs encode-table)) + finally (setq worth-trying known-charset)) + + ;; Only trying this for one charset at a time, the first find. + (when worth-trying (return)) + + ;; Okay, this charset is not worth trying, Try the next. + (setq charset-lower -1 + charset-upper -1 + worth-trying nil))) + + (when worth-trying + (setq other-charset-vector + (make-vector (third tentative-encode-program-parts) + encode-failure-octet)) + (loop for i from charset-lower to charset-upper + do (aset other-charset-vector i + (gethash (encode-char (make-char worth-trying i) + 'ucs) encode-table))) + (setq encode-program + (nsublis + (list (cons #xABAB (charset-id worth-trying))) + (nconc + (copy-list (first + tentative-encode-program-parts)) + (append other-charset-vector nil) + (copy-tree (second + tentative-encode-program-parts)))))) + (and encode-program (values encode-program worth-trying)))) + +(defun fixed-width-generate-encode-program-and-skip-chars-strings + (decode-table encode-table encode-failure-octet) + "Generate a CCL program to encode a 8-bit fixed-width charset. + +DECODE-TABLE must have 256 non-cons entries, and will be regarded as +describing a map from the octet corresponding to an offset in the +table to the that entry in the table. ENCODE-TABLE is a hash table +map from unicode values to characters in the range [0,255]. +ENCODE-FAILURE-OCTET describes an integer between 0 and 255 +\(inclusive) to write in the event that a character cannot be encoded." + (check-argument-type #'vectorp decode-table) + (check-argument-range (length decode-table) #x100 #x100) + (check-argument-type #'hash-table-p encode-table) + (check-argument-type #'integerp encode-failure-octet) + (check-argument-range encode-failure-octet #x00 #xFF) + (let ((encode-program nil) + (general-encode-program + (eval-when-compile + (let ((prog (append + (ccl-compile + `(1 + (loop + (read-multibyte-character r0 r1) + (mule-to-unicode r0 r1) + (if (r0 == #xFFFD) + (write #xBEEF) + ((lookup-integer encode-table-sym r0 r3) + (if r7 + (write-multibyte-character r0 r3) + (write #xBEEF)))) + (repeat)))) nil))) + (assert (memq #xBEEF14 prog) + nil + "This code assumes that the constant #xBEEF is #xBEEF14 \ +in compiled CCL code.\nIf that is not the case, and it appears not to +be--that's why you're getting this message--it will not work. ") + prog))) + (encode-program-with-ascii-optimisation + (eval-when-compile + (let ((prog (append + (ccl-compile + `(1 + (loop + (read-multibyte-character r0 r1) + (if (r0 == ,(charset-id 'ascii)) + (write r1) + ((mule-to-unicode r0 r1) + (if (r0 == #xFFFD) + (write #xBEEF) + ((lookup-integer encode-table-sym r0 r3) + (if r7 + (write-multibyte-character r0 r3) + (write #xBEEF)))))) + (repeat)))) nil))) + (assert (memq #xBEEF14 prog) + nil + "This code assumes that the constant #xBEEF is #xBEEF14 \ +in compiled CCL code.\nIf that is not the case, and it appears not to +be--that's why you're getting this message--it will not work. ") + prog))) + (ascii-encodes-as-itself nil) + (control-1-encodes-as-itself t) + (invalid-sequence-code-point-start + (eval-when-compile + (char-to-unicode + (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)))) + further-char-set skip-chars invalid-sequences-skip-chars) + + ;; Is this coding system ASCII-compatible? If so, we can avoid the hash + ;; table lookup for those characters. + (loop + for i from #x00 to #x7f + always (eq (int-to-char i) (gethash i encode-table)) + finally (setq ascii-encodes-as-itself t)) + + ;; Note that this logic handles EBCDIC badly. For example, CP037, + ;; MIME name ebcdic-na, has the entire repertoire of ASCII and + ;; Latin 1, and thus a more optimal ccl encode program would check + ;; for those character sets and use tables. But for now, we do a + ;; hash table lookup for every character. + (if (null ascii-encodes-as-itself) + ;; General encode program. Pros; general and correct. Cons; + ;; slow, a hash table lookup + mule-unicode conversion is done + ;; for every character encoding. + (setq encode-program general-encode-program) + (multiple-value-setq + (encode-program further-char-set) + ;; Encode program with ascii-ascii mapping (based on a + ;; character's mule character set), and one other mule + ;; character set using table-based encoding, other + ;; character sets using hash table lookups. + ;; fixed-width-non-ascii-completely-coveredp only returns + ;; such a mapping if some non-ASCII charset with + ;; characters in decode-table is entirely covered by + ;; encode-table. + (fixed-width-generate-helper decode-table encode-table + encode-failure-octet)) + (unless encode-program + ;; If fixed-width-non-ascii-completely-coveredp returned nil, + ;; but ASCII still encodes as itself, do one-to-one mapping + ;; for ASCII, and a hash table lookup for everything else. + (setq encode-program encode-program-with-ascii-optimisation))) + + (setq encode-program + (nsublis + (list (cons #xBEEF14 + (logior (lsh encode-failure-octet 8) + #x14))) + (copy-tree encode-program))) + (loop + for i from #x80 to #x9f + do (unless (= i (aref decode-table i)) + (setq control-1-encodes-as-itself nil) + (return))) + (loop + for i from #x00 to #xFF + initially (setq skip-chars + (cond + ((and ascii-encodes-as-itself + control-1-encodes-as-itself further-char-set) + (concat "\x00-\x9f" (charset-skip-chars-string + further-char-set))) + ((and ascii-encodes-as-itself + control-1-encodes-as-itself) + "\x00-\x9f") + ((null ascii-encodes-as-itself) + (skip-chars-quote (apply #'string + (append decode-table nil)))) + (further-char-set + (concat (charset-skip-chars-string 'ascii) + (charset-skip-chars-string further-char-set))) + (t + (charset-skip-chars-string 'ascii))) + invalid-sequences-skip-chars "") + with decoded-ucs = nil + with decoded = nil + with no-ascii-transparency-skip-chars-list = + (unless ascii-encodes-as-itself (append decode-table nil)) + ;; Can't use #'match-string here, see: + ;; http://mid.gmane.org/18829.34118.709782.704574@parhasard.net + with skip-chars-test = + #'(lambda (skip-chars-string testing) + (with-temp-buffer + (insert testing) + (goto-char (point-min)) + (skip-chars-forward skip-chars-string) + (= (point) (point-max)))) + do + (setq decoded (aref decode-table i) + decoded-ucs (char-to-unicode decoded)) + (cond + ((<= invalid-sequence-code-point-start decoded-ucs + (+ invalid-sequence-code-point-start #xFF)) + (setq invalid-sequences-skip-chars + (concat (string decoded) + invalid-sequences-skip-chars)) + (assert (not (funcall skip-chars-test skip-chars decoded)) + "This char should only be skipped with \ +`invalid-sequences-skip-chars', not by `skip-chars'")) + ((not (funcall skip-chars-test skip-chars decoded)) + (if ascii-encodes-as-itself + (setq skip-chars (concat skip-chars (string decoded))) + (push decoded no-ascii-transparency-skip-chars-list)))) + finally (unless ascii-encodes-as-itself + (setq skip-chars + (skip-chars-quote + (apply #'string + no-ascii-transparency-skip-chars-list))))) + (values encode-program skip-chars invalid-sequences-skip-chars))) + +(defun fixed-width-create-decode-encode-tables (unicode-map) + "Return multiple values \(DECODE-TABLE ENCODE-TABLE) given UNICODE-MAP. +UNICODE-MAP should be an alist mapping from integer octet values to +characters with UCS code points; DECODE-TABLE will be a 256-element +vector, and ENCODE-TABLE will be a hash table mapping from 256 numbers +to 256 distinct characters." + (check-argument-type #'listp unicode-map) + (let ((decode-table (make-vector 256 nil)) + (encode-table (make-hash-table :size 256)) + (private-use-start (encode-char fixed-width-private-use-start 'ucs)) + (invalid-sequence-code-point-start + (eval-when-compile + (char-to-unicode + (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)))) + desired-ucs decode-table-entry) + + (loop for (external internal) + in unicode-map + do + (aset decode-table external internal) + (assert (not (eq (encode-char internal 'ucs) -1)) + nil + "Looks like you're creating a fixed-width coding system \ +in a dumped file, \nand you're either not providing a literal unicode map +or PROPS. Don't do that; fixed-width coding systems rely on sensible +Unicode mappings being available, which they are at compile time for +dumped files (but this requires the mentioned literals), but not, for +most of them, at run time. ") + + (puthash (encode-char internal 'ucs) + ;; This is semantically an integer, but Dave Love's design + ;; for lookup-integer in CCL means we need to store it as a + ;; character. + (int-to-char external) + encode-table)) + + ;; Now, go through the decode table. For octet values above #x7f, if the + ;; decode table entry is nil, this means that they have an undefined + ;; mapping (= they map to XEmacs characters with keys in + ;; unicode-error-default-translation-table); for octet values below or + ;; equal to #x7f, it means that they map to ASCII. + + ;; If any entry (whether below or above #x7f) in the decode-table + ;; already maps to some character with a key in + ;; unicode-error-default-translation-table, it is treated as an + ;; undefined octet by `query-coding-region'. That is, it is not + ;; necessary for an octet value to be above #x7f for this to happen. + + (dotimes (i 256) + (setq decode-table-entry (aref decode-table i)) + (if decode-table-entry + (when (get-char-table + decode-table-entry + unicode-error-default-translation-table) + ;; The caller is explicitly specifying that this octet + ;; corresponds to an invalid sequence on disk: + (assert (= (get-char-table + decode-table-entry + unicode-error-default-translation-table) i) + "Bad argument for a fixed-width coding system. +If you're going to designate an octet with value below #x80 as invalid +for this coding system, make sure to map it to the invalid sequence +character corresponding to its octet value on disk. ")) + + ;; decode-table-entry is nil; either the octet is to be treated as + ;; contributing to an error sequence (when (> #x7f i)), or it should + ;; be attempted to treat it as ASCII-equivalent. + (setq desired-ucs (or (and (< i #x80) i) + (+ invalid-sequence-code-point-start i))) + (while (gethash desired-ucs encode-table) + (assert (not (< i #x80)) + "UCS code point should not already be in encode-table!" + ;; There is one invalid sequence char per octet value; + ;; with fixed-width coding systems, it makes no sense + ;; for us to be multiply allocating them. + (gethash desired-ucs encode-table)) + (setq desired-ucs (+ private-use-start desired-ucs) + private-use-start (+ private-use-start 1))) + (puthash desired-ucs (int-to-char i) encode-table) + (setq desired-ucs (if (> desired-ucs #xFF) + (unicode-to-char desired-ucs) + ;; So we get Latin-1 when run at dump time, + ;; instead of JIT-allocated characters. + (int-to-char desired-ucs))) + (aset decode-table i desired-ucs))) + (values decode-table encode-table))) + +(defun fixed-width-generate-decode-program (decode-table) + "Given DECODE-TABLE, generate a CCL program to decode an 8-bit charset. +DECODE-TABLE must have 256 non-cons entries, and will be regarded as +describing a map from the octet corresponding to an offset in the +table to the that entry in the table. " + (check-argument-type #'vectorp decode-table) + (check-argument-range (length decode-table) #x100 #x100) + (let ((decode-program-parts + (eval-when-compile + (let* ((compiled + (append + (ccl-compile + `(3 + ((read r0) + (loop + (write-read-repeat r0 ,(make-vector + 256 'sentinel)))))) nil)) + (first-part compiled) + (last-part + (member-if-not #'symbolp + (member-if-not #'integerp first-part)))) + ;; Chop off the sentinel sentinel sentinel [..] part. + (while compiled + (if (symbolp (cadr compiled)) + (setcdr compiled nil)) + (setq compiled (cdr compiled))) + (list first-part last-part))))) + (nconc + ;; copy-list needed, because the structure of the literal provided + ;; by our eval-when-compile hangs around. + (copy-list (first decode-program-parts)) + (append decode-table nil) + (second decode-program-parts)))) + +(defun fixed-width-choose-category (decode-table) + "Given DECODE-TABLE, return an appropriate coding category. +DECODE-TABLE is a 256-entry vector describing the mapping from octets on +disk to XEmacs characters for some fixed-width 8-bit coding system." + (check-argument-type #'vectorp decode-table) + (check-argument-range (length decode-table) #x100 #x100) + (loop + named category + for i from #x80 to #x9F + do (unless (= i (aref decode-table i)) + (return-from category 'no-conversion)) + finally return 'iso-8-1)) + +(defun fixed-width-rework-props-runtime (name props) + "Rework PROPS to a form understood by `make-coding-system-internal'. + +NAME must be a symbol, describing a fixed-width coding system that is +about to be created. Much of the implementation of the fixed-width +coding system is in Lisp, and this function allows us to rework the +arguments that `make-coding-system-internal' sees accordingly. + +If you are calling this function from anywhere but +`make-coding-system', you're probably doing something wrong." + (check-argument-type #'symbolp name) + (check-valid-plist props) + (let ((encode-failure-octet (or (plist-get props 'encode-failure-octet) + (char-to-int ?~))) + (unicode-map (plist-get props 'unicode-map)) + (hash-table-sym (gensym (format "%s-encode-table" name))) + encode-program decode-program decode-table encode-table skip-chars + invalid-sequences-skip-chars category) + + (check-argument-range encode-failure-octet 0 #xFF) + ;; unicode-map must be a true list, and must be non-nil. + (check-argument-type #'true-list-p unicode-map) + (check-argument-type #'consp unicode-map) + + ;; Don't pass on our extra data to make-coding-system-internal. + (setq props (plist-remprop props 'encode-failure-octet) + props (plist-remprop props 'unicode-map)) + + (multiple-value-setq + (decode-table encode-table) + (fixed-width-create-decode-encode-tables unicode-map)) + + ;; Register the decode-table. + (define-translation-hash-table hash-table-sym encode-table) + + ;; Generate the programs and skip-chars strings. + (setq decode-program (fixed-width-generate-decode-program decode-table)) + (multiple-value-setq + (encode-program skip-chars invalid-sequences-skip-chars) + (fixed-width-generate-encode-program-and-skip-chars-strings + decode-table encode-table encode-failure-octet)) + + (setq category (fixed-width-choose-category decode-table)) + + (unless (vectorp encode-program) + (setq encode-program + (apply #'vector + (nsublis (list (cons 'encode-table-sym hash-table-sym)) + (copy-tree encode-program))))) + (unless (vectorp decode-program) + (setq decode-program + (apply #'vector decode-program))) + + (loop for (symbol . value) + in `((decode . ,decode-program) + (encode . ,encode-program) + (from-unicode . ,encode-table) + (query-skip-chars . ,skip-chars) + (invalid-sequences-skip-chars . ,invalid-sequences-skip-chars) + (category . ,category)) + with default = (gensym) + do + (unless (eq default (plist-get props symbol default)) + (error + 'invalid-argument + "Explicit property not allowed for fixed-width coding systems" + symbol)) + (setq props (nconc (list symbol value) props))) + props)) + +;;;###autoload +(defun make-coding-system (name type description props) + "Register symbol NAME as a coding system. + +TYPE describes the conversion method used and should be one of + +nil or `undecided' + Automatic conversion. XEmacs attempts to detect the coding system + used in the file. +`chain' + Chain two or more coding systems together to make a combination coding + system. +`no-conversion' + No conversion. Use this for binary files and such. On output, + graphic characters that are not in ASCII or Latin-1 will be + replaced by a ?. (For a no-conversion-encoded buffer, these + characters will only be present if you explicitly insert them.) +`convert-eol' + Convert CRLF sequences or CR to LF. +`shift-jis' + Shift-JIS (a Japanese encoding commonly used in PC operating systems). +`unicode' + Any Unicode encoding (UCS-4, UTF-8, UTF-16, etc.). +`mswindows-unicode-to-multibyte' + (MS Windows only) Converts from Windows Unicode to Windows Multibyte + (any code page encoding) upon encoding, and the other way upon decoding. +`mswindows-multibyte' + Converts to or from Windows Multibyte (any code page encoding). + This is resolved into a chain of `mswindows-unicode' and + `mswindows-unicode-to-multibyte'. +`iso2022' + Any ISO2022-compliant encoding. Among other things, this includes + JIS (the Japanese encoding commonly used for e-mail), EUC (the + standard Unix encoding for Japanese and other languages), and + Compound Text (the encoding used in X11). You can specify more + specific information about the conversion with the PROPS argument. +`fixed-width' + A fixed-width eight bit encoding that is not necessarily compliant with + ISO 2022. This coding system assumes Unicode equivalency, that is, if + two given XEmacs characters have the same Unicode mapping, they will + always map to the same octet on disk. +`big5' + Big5 (the encoding commonly used for Mandarin Chinese in Taiwan). +`ccl' + The conversion is performed using a user-written pseudo-code + program. CCL (Code Conversion Language) is the name of this + pseudo-code. +`gzip' + GZIP compression format. +`internal' + Write out or read in the raw contents of the memory representing + the buffer's text. This is primarily useful for debugging + purposes, and is only enabled when XEmacs has been compiled with + DEBUG_XEMACS defined (via the --debug configure option). + WARNING: Reading in a file using `internal' conversion can result + in an internal inconsistency in the memory representing a + buffer's text, which will produce unpredictable results and may + cause XEmacs to crash. Under normal circumstances you should + never use `internal' conversion. + +DESCRIPTION is a short English phrase describing the coding system, +suitable for use as a menu item. (See also the `documentation' property +below.) + +PROPS is a property list, describing the specific nature of the +character set. Recognized properties are: + +`mnemonic' + String to be displayed in the modeline when this coding system is + active. + +`documentation' + Detailed documentation on the coding system. + +`aliases' + A list of aliases for the coding system. See + `define-coding-system-alias'. + +`eol-type' + End-of-line conversion to be used. It should be one of + + nil + Automatically detect the end-of-line type (LF, CRLF, + or CR). Also generate subsidiary coding systems named + `NAME-unix', `NAME-dos', and `NAME-mac', that are + identical to this coding system but have an EOL-TYPE + value of `lf', `crlf', and `cr', respectively. + `lf' + The end of a line is marked externally using ASCII LF. + Since this is also the way that XEmacs represents an + end-of-line internally, specifying this option results + in no end-of-line conversion. This is the standard + format for Unix text files. + `crlf' + The end of a line is marked externally using ASCII + CRLF. This is the standard format for MS-DOS text + files. + `cr' + The end of a line is marked externally using ASCII CR. + This is the standard format for Macintosh text files. + t + Automatically detect the end-of-line type but do not + generate subsidiary coding systems. (This value is + converted to nil when stored internally, and + `coding-system-property' will return nil.) + +`post-read-conversion' + The value is a function to call after some text is inserted and + decoded by the coding system itself and before any functions in + `after-change-functions' are called. (#### Not actually true in + XEmacs. `after-change-functions' will be called twice if + `post-read-conversion' changes something.) The argument of this + function is the same as for a function in + `after-insert-file-functions', i.e. LENGTH of the text inserted, + with point at the head of the text to be decoded. + +`pre-write-conversion' + The value is a function to call after all functions in + `write-region-annotate-functions' and `buffer-file-format' are + called, and before the text is encoded by the coding system itself. + The arguments to this function are the same as those of a function + in `write-region-annotate-functions', i.e. FROM and TO, specifying + a region of text. + +The following properties are used by `default-query-coding-region', +the default implementation of `query-coding-region'. This +implementation and these properties are not used by the Unicode coding +systems, nor by fixed-width coding systems. + +`safe-chars' + The value is a char table. If a character has non-nil value in it, + the character is safely supported by the coding system. + This overrides the `safe-charsets' property. + +`safe-charsets' + The value is a list of charsets safely supported by the coding + system. For coding systems based on ISO 2022, XEmacs may try to + encode characters outside these character sets, but outside of + East Asia and East Asian coding systems, it is unlikely that + consumers of the data will understand XEmacs' encoding. + The value t means that all XEmacs character sets handles are supported. + +The following properties are allowed for FSF compatibility but currently +ignored: + +`translation-table-for-decode' + The value is a translation table to be applied on decoding. See + the function `make-translation-table' for the format of translation + table. This is not applicable to CCL-based coding systems. + +`translation-table-for-encode' + The value is a translation table to be applied on encoding. This is + not applicable to CCL-based coding systems. + +`mime-charset' + The value is a symbol of which name is `MIME-charset' parameter of + the coding system. + +`valid-codes' (meaningful only for a coding system based on CCL) + The value is a list to indicate valid byte ranges of the encoded + file. Each element of the list is an integer or a cons of integer. + In the former case, the integer value is a valid byte code. In the + latter case, the integers specifies the range of valid byte codes. + +The following additional property is recognized if TYPE is `convert-eol': + +`subtype' + One of `lf', `crlf', `cr' or nil (for autodetection). When decoding, + the corresponding sequence will be converted to LF. When encoding, + the opposite happens. This coding system converts characters to + characters. + + + +The following additional properties are recognized if TYPE is `iso2022': + +`charset-g0' +`charset-g1' +`charset-g2' +`charset-g3' + The character set initially designated to the G0 - G3 registers. + The value should be one of + + -- A charset object (designate that character set) + -- nil (do not ever use this register) + -- t (no character set is initially designated to + the register, but may be later on; this automatically + sets the corresponding `force-g*-on-output' property) + +`force-g0-on-output' +`force-g1-on-output' +`force-g2-on-output' +`force-g2-on-output' + If non-nil, send an explicit designation sequence on output before + using the specified register. + +`short' + If non-nil, use the short forms \"ESC $ @\", \"ESC $ A\", and + \"ESC $ B\" on output in place of the full designation sequences + \"ESC $ ( @\", \"ESC $ ( A\", and \"ESC $ ( B\". + +`no-ascii-eol' + If non-nil, don't designate ASCII to G0 at each end of line on output. + Setting this to non-nil also suppresses other state-resetting that + normally happens at the end of a line. + +`no-ascii-cntl' + If non-nil, don't designate ASCII to G0 before control chars on output. + +`seven' + If non-nil, use 7-bit environment on output. Otherwise, use 8-bit + environment. + +`lock-shift' + If non-nil, use locking-shift (SO/SI) instead of single-shift + or designation by escape sequence. + +`no-iso6429' + If non-nil, don't use ISO6429's direction specification. + +`escape-quoted' + If non-nil, literal control characters that are the same as + the beginning of a recognized ISO2022 or ISO6429 escape sequence + (in particular, ESC (0x1B), SO (0x0E), SI (0x0F), SS2 (0x8E), + SS3 (0x8F), and CSI (0x9B)) are \"quoted\" with an escape character + so that they can be properly distinguished from an escape sequence. + (Note that doing this results in a non-portable encoding.) This + encoding flag is used for byte-compiled files. Note that ESC + is a good choice for a quoting character because there are no + escape sequences whose second byte is a character from the Control-0 + or Control-1 character sets; this is explicitly disallowed by the + ISO2022 standard. + +`input-charset-conversion' + A list of conversion specifications, specifying conversion of + characters in one charset to another when decoding is performed. + Each specification is a list of two elements: the source charset, + and the destination charset. + +`output-charset-conversion' + A list of conversion specifications, specifying conversion of + characters in one charset to another when encoding is performed. + The form of each specification is the same as for + `input-charset-conversion'. + +The following additional properties are recognized if TYPE is +`fixed-width': + +`unicode-map' + Required. A plist describing a map from octets in the coding system + NAME (as integers) to XEmacs characters. Those XEmacs characters will + be used explicitly on decoding, but for encoding (most relevantly, on + writing to disk) XEmacs characters that map to the same Unicode code + point will be unified. This means that the ISO-8859-? characters that + map to the same Unicode code point will not be distinct when written to + disk, which is normally what is intended; it also means that East Asian + Han characters from different XEmacs character sets will not be + distinct when written to disk, which is less often what is intended. + + Any octets not mapped, and with values above #x7f, will be decoded into + XEmacs characters that reflect that their values are undefined. These + characters will be displayed in a language-environment-specific + way. See `unicode-error-default-translation-table' and the + `invalid-sequence-coding-system' argument to `set-language-info'. + + These characters will normally be treated as invalid when checking + whether text can be encoded with `query-coding-region'--see the + IGNORE-INVALID-SEQUENCESP argument to that function to avoid this. It + is possible to specify that octets with values less than #x80 (or + indeed greater than it) be treated in this way, by specifying + explicitly that they correspond to the character mapping to that octet + in `unicode-error-default-translation-table'. Far fewer coding systems + override the ASCII mapping, though, so this is not the default. + +`encode-failure-octet' + An integer between 0 and 255 to write in place of XEmacs characters + that cannot be encoded, defaulting to the code for tilde `~'. + +The following additional properties are recognized (and required) +if TYPE is `ccl': + +`decode' + CCL program used for decoding (converting to internal format). + +`encode' + CCL program used for encoding (converting to external format). + + +The following additional properties are recognized if TYPE is `chain': + +`chain' + List of coding systems to be chained together, in decoding order. + +`canonicalize-after-coding' + Coding system to be returned by the detector routines in place of + this coding system. + + + +The following additional properties are recognized if TYPE is `unicode': + +`unicode-type' + One of `utf-16', `utf-8', `ucs-4', or `utf-7' (the latter is not + yet implemented). `utf-16' is the basic two-byte encoding; + `ucs-4' is the four-byte encoding; `utf-8' is an ASCII-compatible + variable-width 8-bit encoding; `utf-7' is a 7-bit encoding using + only characters that will safely pass through all mail gateways. + [[ This should be \"transformation format\". There should also be + `ucs-2' (or `bmp' -- no surrogates) and `utf-32' (range checked). ]] + +`little-endian' + If non-nil, `utf-16' and `ucs-4' will write out the groups of two + or four bytes little-endian instead of big-endian. This is required, + for example, under Windows. + +`need-bom' + If non-nil, a byte order mark (BOM, or Unicode FFFE) should be + written out at the beginning of the data. This serves both to + identify the endianness of the following data and to mark the + data as Unicode (at least, this is how Windows uses it). + [[ The correct term is \"signature\", since this technique may also + be used with UTF-8. That is the term used in the standard. ]] + + +The following additional properties are recognized if TYPE is +`mswindows-multibyte': + +`code-page' + Either a number (specifying a particular code page) or one of the + symbols `ansi', `oem', `mac', or `ebcdic', specifying the ANSI, + OEM, Macintosh, or EBCDIC code page associated with a particular + locale (given by the `locale' property). NOTE: EBCDIC code pages + only exist in Windows 2000 and later. + +`locale' + If `code-page' is a symbol, this specifies the locale whose code + page of the corresponding type should be used. This should be + one of the following: A cons of two strings, (LANGUAGE + . SUBLANGUAGE) (see `mswindows-set-current-locale'); a string (a + language; SUBLANG_DEFAULT, i.e. the default sublanguage, is + used); or one of the symbols `current', `user-default', or + `system-default', corresponding to the values of + `mswindows-current-locale', `mswindows-user-default-locale', or + `mswindows-system-default-locale', respectively. + + +The following additional properties are recognized if TYPE is `undecided': +\[[ Doesn't GNU use \"detect-*\" for the following two? ]] + +`do-eol' + Do EOL detection. + +`do-coding' + Do encoding detection. + +`coding-system' + If encoding detection is not done, use the specified coding system + to do decoding. This is used internally when implementing coding + systems with an EOL type that specifies autodetection (the default), + so that the detector routines return the proper subsidiary. + + + +The following additional property is recognized if TYPE is `gzip': + +`level' + Compression level: 0 through 9, or `default' (currently 6)." + (when (eq 'fixed-width type) + (setq props (fixed-width-rework-props-runtime name props))) + (make-coding-system-internal name type description props)) + +(define-compiler-macro make-coding-system (&whole form name type + &optional description props) + (if (equal '(quote fixed-width) type) + (if (memq (car-safe props) '(quote eval-when-compile)) + (let* ((props (if (eq 'eval-when-compile (car props)) + (eval (cadr props)) + (cadr props))) + (encode-failure-octet + (or (plist-get props 'encode-failure-octet) + (char-to-int ?~))) + (unicode-map (plist-get props 'unicode-map)) + (default-plist-entry (gensym)) + (encode-table-sym (gensym + (if (eq 'quote (car name)) + (format "%s-enc-" (second name))))) + encode-program decode-program + decode-table encode-table + skip-chars invalid-sequences-skip-chars category) + + (check-argument-range encode-failure-octet 0 #xFF) + ;; unicode-map must be a true list, and must be non-nil. + (check-argument-type #'true-list-p unicode-map) + (check-argument-type #'consp unicode-map) + + ;; Don't pass on our extra data to make-coding-system-internal. + (setq props (plist-remprop props 'encode-failure-octet) + props (plist-remprop props 'unicode-map)) + + (multiple-value-setq + (decode-table encode-table) + (fixed-width-create-decode-encode-tables unicode-map)) + + ;; Generate the decode and encode programs, and the skip-chars + ;; arguments. + (setq decode-program + (fixed-width-generate-decode-program decode-table) + category (fixed-width-choose-category decode-table)) + + (multiple-value-setq + (encode-program skip-chars invalid-sequences-skip-chars) + (fixed-width-generate-encode-program-and-skip-chars-strings + decode-table encode-table encode-failure-octet)) + + (unless (vectorp decode-program) + (setq decode-program + (apply #'vector decode-program))) + + (unless (eq default-plist-entry (plist-get props 'encode + default-plist-entry)) + (error + 'invalid-argument + "Explicit property not allowed for fixed-width coding system" + 'encode)) + (loop for (symbol . value) + in `((decode . ,decode-program) + (from-unicode . ,encode-table) + (query-skip-chars . ,skip-chars) + (invalid-sequences-skip-chars . + ,invalid-sequences-skip-chars) + (category . ,category)) + do + (unless (eq default-plist-entry (plist-get props symbol + default-plist-entry)) + (error + 'invalid-argument + "Explicit property not allowed for \ +fixed-width coding systems" + symbol)) + (setq props (nconc (list symbol value) props))) + `(progn + (define-translation-hash-table ',encode-table-sym ,encode-table) + (make-coding-system-internal + ,name ,type ,description + ',(nconc (list 'encode + (apply #'vector + (nsublis + (list (cons 'encode-table-sym + encode-table-sym)) + encode-program))) + props)))) + ;; The form does not use literals; call make-coding-system at + ;; run time. + form) + (if (byte-compile-constp type) + ;; This is not a fixed-width call; compile it to a form that 21.4 + ;; can also understand. + `(funcall (or (and (fboundp 'make-coding-system-internal) + 'make-coding-system-internal) + 'make-coding-system) + ,@(cdr form)) + ;; TYPE is not literal; work things out at runtime. + form))) +
--- a/lisp/mule/mule-coding.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/mule-coding.el Sat Sep 19 22:53:13 2009 +0100 @@ -28,9 +28,6 @@ ;;; split off of mule.el and mostly moved to coding.el -;; Needed for make-8-bit-coding-system. -(eval-when-compile (require 'ccl)) - ;;; Code: (defun coding-system-force-on-output (coding-system register) @@ -222,730 +219,16 @@ (put symbol 'translation-hash-table-id id) id)) -(defvar make-8-bit-private-use-start (decode-char 'ucs #xE000) - "Start of a 256 code private use area for make-8-bit-coding-system. - -This is used to ensure that distinct octets on disk for a given coding -system map to distinct XEmacs characters, preventing a spurious changes when -a file is read, not changed, and then written. ") - -(defun make-8-bit-generate-helper (decode-table encode-table - encode-failure-octet) - "Helper function, `make-8-bit-generate-encode-program-and-skip-chars-strings', -which see. - -Deals with the case where ASCII and another character set can both be -encoded unambiguously and completely into the coding-system; if this is so, -returns a list comprised of such a ccl-program and the character set in -question. If not, it returns a list with both entries nil." - (let ((tentative-encode-program-parts - (eval-when-compile - (let* ((vec-len 128) - (compiled - (append - (ccl-compile - `(1 - (loop - (read-multibyte-character r0 r1) - (if (r0 == ,(charset-id 'ascii)) - (write r1) - ((if (r0 == #xABAB) - ;; #xBFFE is a sentinel in the compiled - ;; program. - ((r0 = r1 & #x7F) - (write r0 ,(make-vector vec-len #xBFFE))) - ((mule-to-unicode r0 r1) - (if (r0 == #xFFFD) - (write #xBEEF) - ((lookup-integer encode-table-sym r0 r3) - (if r7 - (write-multibyte-character r0 r3) - (write #xBEEF)))))))) - (repeat)))) nil)) - (first-part compiled) - (last-part - (member-if-not (lambda (entr) (eq #xBFFE entr)) - (member-if - (lambda (entr) (eq #xBFFE entr)) - first-part)))) - (while compiled - (when (eq #xBFFE (cadr compiled)) - (assert (= vec-len (search '(#xBFFE) (cdr compiled) - :test #'/=)) nil - "Strange ccl vector length") - (setcdr compiled nil)) - (setq compiled (cdr compiled))) - ;; Is the generated code as we expect it to be? - (assert (and (memq #xABAB first-part) - (memq #xBEEF14 last-part)) - nil - "This code assumes that the constant #xBEEF is #xBEEF14 in \ -compiled CCL code,\nand that the constant #xABAB is #xABAB. If that is -not the case, and it appears not to be--that's why you're getting this -message--it will not work. ") - (list first-part last-part vec-len)))) - (charset-lower -1) - (charset-upper -1) - worth-trying known-charsets encode-program - other-charset-vector ucs) - - (loop for char across decode-table - do (pushnew (char-charset char) known-charsets)) - (setq known-charsets (delq 'ascii known-charsets)) - - (loop for known-charset in known-charsets - do - ;; This is not possible for two dimensional charsets. - (when (eq 1 (charset-dimension known-charset)) - (if (eq 'control-1 known-charset) - (setq charset-lower 0 - charset-upper 31) - ;; There should be a nicer way to get the limits here. - (condition-case args-out-of-range - (make-char known-charset #x100) - (args-out-of-range - (setq charset-lower (third args-out-of-range) - charset-upper (fourth args-out-of-range))))) - (loop - for i from charset-lower to charset-upper - always (and (setq ucs - (encode-char (make-char known-charset i) 'ucs)) - (gethash ucs encode-table)) - finally (setq worth-trying known-charset)) - - ;; Only trying this for one charset at a time, the first find. - (when worth-trying (return)) - - ;; Okay, this charset is not worth trying, Try the next. - (setq charset-lower -1 - charset-upper -1 - worth-trying nil))) - - (when worth-trying - (setq other-charset-vector - (make-vector (third tentative-encode-program-parts) - encode-failure-octet)) - (loop for i from charset-lower to charset-upper - do (aset other-charset-vector i - (gethash (encode-char (make-char worth-trying i) - 'ucs) encode-table))) - (setq encode-program - (nsublis - (list (cons #xABAB (charset-id worth-trying))) - (nconc - (copy-list (first - tentative-encode-program-parts)) - (append other-charset-vector nil) - (copy-tree (second - tentative-encode-program-parts)))))) - (values encode-program worth-trying))) - -(defun make-8-bit-generate-encode-program-and-skip-chars-strings - (decode-table encode-table encode-failure-octet) - "Generate a CCL program to encode a 8-bit fixed-width charset. - -DECODE-TABLE must have 256 non-cons entries, and will be regarded as -describing a map from the octet corresponding to an offset in the -table to the that entry in the table. ENCODE-TABLE is a hash table -map from unicode values to characters in the range [0,255]. -ENCODE-FAILURE-OCTET describes an integer between 0 and 255 -\(inclusive) to write in the event that a character cannot be encoded. " - (check-argument-type #'vectorp decode-table) - (check-argument-range (length decode-table) #x100 #x100) - (check-argument-type #'hash-table-p encode-table) - (check-argument-type #'integerp encode-failure-octet) - (check-argument-range encode-failure-octet #x00 #xFF) - (let ((encode-program nil) - (general-encode-program - (eval-when-compile - (let ((prog (append - (ccl-compile - `(1 - (loop - (read-multibyte-character r0 r1) - (mule-to-unicode r0 r1) - (if (r0 == #xFFFD) - (write #xBEEF) - ((lookup-integer encode-table-sym r0 r3) - (if r7 - (write-multibyte-character r0 r3) - (write #xBEEF)))) - (repeat)))) nil))) - (assert (memq #xBEEF14 prog) - nil - "This code assumes that the constant #xBEEF is #xBEEF14 \ -in compiled CCL code.\nIf that is not the case, and it appears not to -be--that's why you're getting this message--it will not work. ") - prog))) - (encode-program-with-ascii-optimisation - (eval-when-compile - (let ((prog (append - (ccl-compile - `(1 - (loop - (read-multibyte-character r0 r1) - (if (r0 == ,(charset-id 'ascii)) - (write r1) - ((mule-to-unicode r0 r1) - (if (r0 == #xFFFD) - (write #xBEEF) - ((lookup-integer encode-table-sym r0 r3) - (if r7 - (write-multibyte-character r0 r3) - (write #xBEEF)))))) - (repeat)))) nil))) - (assert (memq #xBEEF14 prog) - nil - "This code assumes that the constant #xBEEF is #xBEEF14 \ -in compiled CCL code.\nIf that is not the case, and it appears not to -be--that's why you're getting this message--it will not work. ") - prog))) - (ascii-encodes-as-itself nil) - (control-1-encodes-as-itself t) - (invalid-sequence-code-point-start - (eval-when-compile - (char-to-unicode - (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)))) - further-char-set skip-chars invalid-sequences-skip-chars) - - ;; Is this coding system ASCII-compatible? If so, we can avoid the hash - ;; table lookup for those characters. - (loop - for i from #x00 to #x7f - always (eq (int-to-char i) (gethash i encode-table)) - finally (setq ascii-encodes-as-itself t)) - - ;; Note that this logic handles EBCDIC badly. For example, CP037, - ;; MIME name ebcdic-na, has the entire repertoire of ASCII and - ;; Latin 1, and thus a more optimal ccl encode program would check - ;; for those character sets and use tables. But for now, we do a - ;; hash table lookup for every character. - (if (null ascii-encodes-as-itself) - ;; General encode program. Pros; general and correct. Cons; - ;; slow, a hash table lookup + mule-unicode conversion is done - ;; for every character encoding. - (setq encode-program general-encode-program) - (multiple-value-setq - (encode-program further-char-set) - ;; Encode program with ascii-ascii mapping (based on a - ;; character's mule character set), and one other mule - ;; character set using table-based encoding, other - ;; character sets using hash table lookups. - ;; make-8-bit-non-ascii-completely-coveredp only returns - ;; such a mapping if some non-ASCII charset with - ;; characters in decode-table is entirely covered by - ;; encode-table. - (make-8-bit-generate-helper decode-table encode-table - encode-failure-octet)) - (unless encode-program - ;; If make-8-bit-non-ascii-completely-coveredp returned nil, - ;; but ASCII still encodes as itself, do one-to-one mapping - ;; for ASCII, and a hash table lookup for everything else. - (setq encode-program encode-program-with-ascii-optimisation))) - - (setq encode-program - (nsublis - (list (cons #xBEEF14 - (logior (lsh encode-failure-octet 8) - #x14))) - (copy-tree encode-program))) - (loop - for i from #x80 to #x9f - do (unless (= i (aref decode-table i)) - (setq control-1-encodes-as-itself nil) - (return))) - (loop - for i from #x00 to #xFF - initially (setq skip-chars - (cond - ((and ascii-encodes-as-itself - control-1-encodes-as-itself further-char-set) - (concat "\x00-\x9f" (charset-skip-chars-string - further-char-set))) - ((and ascii-encodes-as-itself - control-1-encodes-as-itself) - "\x00-\x9f") - ((null ascii-encodes-as-itself) - (skip-chars-quote (apply #'string - (append decode-table nil)))) - (further-char-set - (concat (charset-skip-chars-string 'ascii) - (charset-skip-chars-string further-char-set))) - (t - (charset-skip-chars-string 'ascii))) - invalid-sequences-skip-chars "") - with decoded-ucs = nil - with decoded = nil - with no-ascii-transparency-skip-chars-list = - (unless ascii-encodes-as-itself (append decode-table nil)) - ;; Can't use #'match-string here, see: - ;; http://mid.gmane.org/18829.34118.709782.704574@parhasard.net - with skip-chars-test = - #'(lambda (skip-chars-string testing) - (with-temp-buffer - (insert testing) - (goto-char (point-min)) - (skip-chars-forward skip-chars-string) - (= (point) (point-max)))) - do - (setq decoded (aref decode-table i) - decoded-ucs (char-to-unicode decoded)) - (cond - ((<= invalid-sequence-code-point-start decoded-ucs - (+ invalid-sequence-code-point-start #xFF)) - (setq invalid-sequences-skip-chars - (concat (string decoded) - invalid-sequences-skip-chars)) - (assert (not (funcall skip-chars-test skip-chars decoded)) - "This char should only be skipped with \ -`invalid-sequences-skip-chars', not by `skip-chars'")) - ((not (funcall skip-chars-test skip-chars decoded)) - (if ascii-encodes-as-itself - (setq skip-chars (concat skip-chars (string decoded))) - (push decoded no-ascii-transparency-skip-chars-list)))) - finally (unless ascii-encodes-as-itself - (setq skip-chars - (skip-chars-quote - (apply #'string - no-ascii-transparency-skip-chars-list))))) - (values encode-program skip-chars invalid-sequences-skip-chars))) - -(defun make-8-bit-create-decode-encode-tables (unicode-map) - "Return a list \(DECODE-TABLE ENCODE-TABLE) given UNICODE-MAP. -UNICODE-MAP should be an alist mapping from integer octet values to -characters with UCS code points; DECODE-TABLE will be a 256-element -vector, and ENCODE-TABLE will be a hash table mapping from 256 numbers -to 256 distinct characters. " - (check-argument-type #'listp unicode-map) - (let ((decode-table (make-vector 256 nil)) - (encode-table (make-hash-table :size 256)) - (private-use-start (encode-char make-8-bit-private-use-start 'ucs)) - (invalid-sequence-code-point-start - (eval-when-compile - (char-to-unicode - (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)))) - desired-ucs decode-table-entry) - - (loop for (external internal) - in unicode-map - do - (aset decode-table external internal) - (assert (not (eq (encode-char internal 'ucs) -1)) - nil - "Looks like you're calling make-8-bit-coding-system in a \ -dumped file, \nand you're either not providing a literal UNICODE-MAP -or PROPS. Don't do that; make-8-bit-coding-system relies on sensible -Unicode mappings being available, which they are at compile time for -dumped files (but this requires the mentioned literals), but not, for -most of them, at run time. ") - - (puthash (encode-char internal 'ucs) - ;; This is semantically an integer, but Dave Love's design - ;; for lookup-integer in CCL means we need to store it as a - ;; character. - (int-to-char external) - encode-table)) - - ;; Now, go through the decode table. For octet values above #x7f, if the - ;; decode table entry is nil, this means that they have an undefined - ;; mapping (= they map to XEmacs characters with keys in - ;; unicode-error-default-translation-table); for octet values below or - ;; equal to #x7f, it means that they map to ASCII. - - ;; If any entry (whether below or above #x7f) in the decode-table - ;; already maps to some character with a key in - ;; unicode-error-default-translation-table, it is treated as an - ;; undefined octet by `query-coding-region'. That is, it is not - ;; necessary for an octet value to be above #x7f for this to happen. - - (dotimes (i 256) - (setq decode-table-entry (aref decode-table i)) - (if decode-table-entry - (when (get-char-table - decode-table-entry - unicode-error-default-translation-table) - ;; The caller is explicitly specifying that this octet - ;; corresponds to an invalid sequence on disk: - (assert (= (get-char-table - decode-table-entry - unicode-error-default-translation-table) i) - "Bad argument to `make-8-bit-coding-system'. -If you're going to designate an octet with value below #x80 as invalid -for this coding system, make sure to map it to the invalid sequence -character corresponding to its octet value on disk. ")) - - ;; decode-table-entry is nil; either the octet is to be treated as - ;; contributing to an error sequence (when (> #x7f i)), or it should - ;; be attempted to treat it as ASCII-equivalent. - (setq desired-ucs (or (and (< i #x80) i) - (+ invalid-sequence-code-point-start i))) - (while (gethash desired-ucs encode-table) - (assert (not (< i #x80)) - "UCS code point should not already be in encode-table!" - ;; There is one invalid sequence char per octet value; - ;; with eight-bit-fixed coding systems, it makes no sense - ;; for us to be multiply allocating them. - (gethash desired-ucs encode-table)) - (setq desired-ucs (+ private-use-start desired-ucs) - private-use-start (+ private-use-start 1))) - (puthash desired-ucs (int-to-char i) encode-table) - (setq desired-ucs (if (> desired-ucs #xFF) - (unicode-to-char desired-ucs) - ;; So we get Latin-1 when run at dump time, - ;; instead of JIT-allocated characters. - (int-to-char desired-ucs))) - (aset decode-table i desired-ucs))) - (values decode-table encode-table))) - -(defun make-8-bit-generate-decode-program (decode-table) - "Given DECODE-TABLE, generate a CCL program to decode an 8-bit charset. -DECODE-TABLE must have 256 non-cons entries, and will be regarded as -describing a map from the octet corresponding to an offset in the -table to the that entry in the table. " - (check-argument-type #'vectorp decode-table) - (check-argument-range (length decode-table) #x100 #x100) - (let ((decode-program-parts - (eval-when-compile - (let* ((compiled - (append - (ccl-compile - `(3 - ((read r0) - (loop - (write-read-repeat r0 ,(make-vector - 256 'sentinel)))))) nil)) - (first-part compiled) - (last-part - (member-if-not #'symbolp - (member-if-not #'integerp first-part)))) - ;; Chop off the sentinel sentinel sentinel [..] part. - (while compiled - (if (symbolp (cadr compiled)) - (setcdr compiled nil)) - (setq compiled (cdr compiled))) - (list first-part last-part))))) - (nconc - ;; copy-list needed, because the structure of the literal provided - ;; by our eval-when-compile hangs around. - (copy-list (first decode-program-parts)) - (append decode-table nil) - (second decode-program-parts)))) - -(defun make-8-bit-choose-category (decode-table) - "Given DECODE-TABLE, return an appropriate coding category. -DECODE-TABLE is a 256-entry vector describing the mapping from octets on -disk to XEmacs characters for some fixed-width 8-bit coding system. " - (check-argument-type #'vectorp decode-table) - (check-argument-range (length decode-table) #x100 #x100) - (loop - named category - for i from #x80 to #x9F - do (unless (= i (aref decode-table i)) - (return-from category 'no-conversion)) - finally return 'iso-8-1)) - -(defun 8-bit-fixed-query-coding-region (begin end coding-system &optional - buffer ignore-invalid-sequencesp - errorp highlightp) - "The `query-coding-region' implementation for 8-bit-fixed coding systems. - -Uses the `8-bit-fixed-query-from-unicode' and `8-bit-fixed-query-skip-chars' -coding system properties. The former is a hash table mapping from valid -Unicode code points to on-disk octets in the coding system; the latter a set -of characters as used by `skip-chars-forward'. Both of these properties are -generated automatically by `make-8-bit-coding-system'. - -See that the documentation of `query-coding-region'; see also -`make-8-bit-coding-system'. " - (check-argument-type #'coding-system-p - (setq coding-system (find-coding-system coding-system))) - (check-argument-type #'integer-or-marker-p begin) - (check-argument-type #'integer-or-marker-p end) - (let ((from-unicode - (or (coding-system-get coding-system '8-bit-fixed-query-from-unicode) - (coding-system-get (coding-system-base coding-system) - '8-bit-fixed-query-from-unicode))) - (skip-chars-arg - (or (coding-system-get coding-system '8-bit-fixed-query-skip-chars) - (coding-system-get (coding-system-base coding-system) - '8-bit-fixed-query-skip-chars))) - (invalid-sequences-skip-chars - (or (coding-system-get coding-system - '8-bit-fixed-invalid-sequences-skip-chars) - (coding-system-get (coding-system-base coding-system) - '8-bit-fixed-invalid-sequences-skip-chars))) - (ranges (make-range-table)) - (case-fold-search nil) - char-after fail-range-start fail-range-end extent - failed invalid-sequences-looking-at failed-reason - previous-failed-reason) - (check-type from-unicode hash-table) - (check-type skip-chars-arg string) - (check-type invalid-sequences-skip-chars string) - (setq invalid-sequences-looking-at - (if (equal "" invalid-sequences-skip-chars) - ;; Regexp that will never match. - #r".\{0,0\}" - (concat "[" invalid-sequences-skip-chars "]"))) - (when ignore-invalid-sequencesp - (setq skip-chars-arg - (concat skip-chars-arg invalid-sequences-skip-chars))) - (save-excursion - (when highlightp - (query-coding-clear-highlights begin end buffer)) - (goto-char begin buffer) - (skip-chars-forward skip-chars-arg end buffer) - (while (< (point buffer) end) - (setq char-after (char-after (point buffer) buffer) - fail-range-start (point buffer)) - (while (and - (< (point buffer) end) - (or (and - (not (gethash (encode-char char-after 'ucs) from-unicode)) - (setq failed-reason 'unencodable)) - (and (not ignore-invalid-sequencesp) - (looking-at invalid-sequences-looking-at buffer) - (setq failed-reason 'invalid-sequence))) - (or (null previous-failed-reason) - (eq previous-failed-reason failed-reason))) - (forward-char 1 buffer) - (setq char-after (char-after (point buffer) buffer) - failed t - previous-failed-reason failed-reason)) - (if (= fail-range-start (point buffer)) - ;; The character can actually be encoded by the coding - ;; system; check the characters past it. - (forward-char 1 buffer) - ;; The character actually failed. - (when errorp - (error 'text-conversion-error - (format "Cannot encode %s using coding system" - (buffer-substring fail-range-start (point buffer) - buffer)) - (coding-system-name coding-system))) - (assert (not (null previous-failed-reason)) t - "previous-failed-reason should always be non-nil here") - (put-range-table fail-range-start - ;; If char-after is non-nil, we're not at - ;; the end of the buffer. - (setq fail-range-end (if char-after - (point buffer) - (point-max buffer))) - previous-failed-reason ranges) - (setq previous-failed-reason nil) - (when highlightp - (setq extent (make-extent fail-range-start fail-range-end buffer)) - (set-extent-priority extent (+ mouse-highlight-priority 2)) - (set-extent-face extent 'query-coding-warning-face)) - (skip-chars-forward skip-chars-arg end buffer))) - (if failed - (values nil ranges) - (values t nil))))) - -(defun make-8-bit-coding-system (name unicode-map &optional description props) - "Make and return a fixed-width 8-bit CCL coding system named NAME. -NAME must be a symbol, and UNICODE-MAP a list. - -UNICODE-MAP is a plist describing a map from octets in the coding -system NAME (as integers) to XEmacs characters. Those XEmacs -characters will be used explicitly on decoding, but for encoding (most -relevantly, on writing to disk) XEmacs characters that map to the same -Unicode code point will be unified. This means that the ISO-8859-? -characters that map to the same Unicode code point will not be -distinct when written to disk, which is normally what is intended; it -also means that East Asian Han characters from different XEmacs -character sets will not be distinct when written to disk, which is -less often what is intended. - -Any octets not mapped, and with values above #x7f, will be decoded into -XEmacs characters that reflect that their values are undefined. These -characters will be displayed in a language-environment-specific way. See -`unicode-error-default-translation-table' and the -`invalid-sequence-coding-system' argument to `set-language-info'. - -These characters will normally be treated as invalid when checking whether -text can be encoded with `query-coding-region'--see the -IGNORE-INVALID-SEQUENCESP argument to that function to avoid this. It is -possible to specify that octets with values less than #x80 (or indeed -greater than it) be treated in this way, by specifying explicitly that they -correspond to the character mapping to that octet in -`unicode-error-default-translation-table'. Far fewer coding systems -override the ASCII mapping, though, so this is not the default. - -DESCRIPTION and PROPS are as in `make-coding-system', which see. This -function also accepts two additional (optional) properties in PROPS; -`aliases', giving a list of aliases to be initialized for this -coding-system, and `encode-failure-octet', an integer between 0 and 256 to -write in place of XEmacs characters that cannot be encoded, defaulting to -the code for tilde `~'. " - (check-argument-type #'symbolp name) - (check-argument-type #'listp unicode-map) - (check-argument-type #'stringp - (or description - (setq description - (format "Coding system used for %s." name)))) - (check-valid-plist props) - (let ((encode-failure-octet (or (plist-get props 'encode-failure-octet) - (char-to-int ?~))) - (aliases (plist-get props 'aliases)) - (hash-table-sym (gentemp (format "%s-encode-table" name))) - encode-program decode-program result decode-table encode-table - skip-chars invalid-sequences-skip-chars) - - ;; Some more sanity checking. - (check-argument-range encode-failure-octet 0 #xFF) - (check-argument-type #'listp aliases) - - ;; Don't pass on our extra data to make-coding-system. - (setq props (plist-remprop props 'encode-failure-octet) - props (plist-remprop props 'aliases)) - - (multiple-value-setq - (decode-table encode-table) - (make-8-bit-create-decode-encode-tables unicode-map)) - - ;; Register the decode-table. - (define-translation-hash-table hash-table-sym encode-table) - - ;; Generate the programs and skip-chars strings. - (setq decode-program (make-8-bit-generate-decode-program decode-table)) - (multiple-value-setq - (encode-program skip-chars invalid-sequences-skip-chars) - (make-8-bit-generate-encode-program-and-skip-chars-strings - decode-table encode-table encode-failure-octet)) - - (unless (vectorp encode-program) - (setq encode-program - (apply #'vector - (nsublis (list (cons 'encode-table-sym hash-table-sym)) - (copy-tree encode-program))))) - (unless (vectorp decode-program) - (setq decode-program - (apply #'vector decode-program))) - - ;; And now generate the actual coding system. - (setq result - (make-coding-system - name 'ccl - description - (plist-put (plist-put props 'decode decode-program) - 'encode encode-program))) - (coding-system-put name '8-bit-fixed t) - (coding-system-put name 'category - (make-8-bit-choose-category decode-table)) - (coding-system-put name '8-bit-fixed-query-skip-chars - skip-chars) - (coding-system-put name '8-bit-fixed-invalid-sequences-skip-chars - invalid-sequences-skip-chars) - (coding-system-put name '8-bit-fixed-query-from-unicode encode-table) - (coding-system-put name 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put (intern (format "%s-unix" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put (intern (format "%s-dos" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put (intern (format "%s-mac" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - (loop for alias in aliases - do (define-coding-system-alias alias name)) - result)) - -(define-compiler-macro make-8-bit-coding-system (&whole form name unicode-map - &optional description props) - ;; We provide the compiler macro (= macro that is expanded only on - ;; compilation, and that can punt to a runtime version of the - ;; associate function if necessary) not for reasons of speed, though - ;; it does speed up things at runtime a little, but because the - ;; Unicode mappings are available at compile time in the dumped - ;; files, but they are not available at run time for the vast - ;; majority of them. - - (if (not (and (and (consp name) (eq (car name) 'quote)) - (and (consp unicode-map) (eq (car unicode-map) 'quote)) - (and (or (and (consp props) (eq (car props) 'quote)) - (null props))))) - ;; The call does not use literals; do it at runtime. - form - (setq name (cadr name) - unicode-map (cadr unicode-map) - props (if props (cadr props))) - (let ((encode-failure-octet - (or (plist-get props 'encode-failure-octet) (char-to-int ?~))) - (aliases (plist-get props 'aliases)) - encode-program decode-program - decode-table encode-table - skip-chars invalid-sequences-skip-chars) - - ;; Some sanity checking. - (check-argument-range encode-failure-octet 0 #xFF) - (check-argument-type #'listp aliases) - - ;; Don't pass on our extra data to make-coding-system. - (setq props (plist-remprop props 'encode-failure-octet) - props (plist-remprop props 'aliases)) - - ;; Work out encode-table and decode-table - (multiple-value-setq - (decode-table encode-table) - (make-8-bit-create-decode-encode-tables unicode-map)) - - ;; Generate the decode and encode programs, and the skip-chars - ;; arguments. - (setq decode-program (make-8-bit-generate-decode-program decode-table)) - (multiple-value-setq - (encode-program skip-chars invalid-sequences-skip-chars) - (make-8-bit-generate-encode-program-and-skip-chars-strings - decode-table encode-table encode-failure-octet)) - - ;; And return the generated code. - `(let ((encode-table-sym (gentemp (format "%s-encode-table" ',name))) - (encode-table ,encode-table)) - (define-translation-hash-table encode-table-sym encode-table) - (make-coding-system - ',name 'ccl ,description - (plist-put (plist-put ',props 'decode - ,(apply #'vector decode-program)) - 'encode - (apply #'vector - (nsublis - (list (cons - 'encode-table-sym - (symbol-value 'encode-table-sym))) - ',encode-program)))) - (coding-system-put ',name '8-bit-fixed t) - (coding-system-put ',name 'category - ',(make-8-bit-choose-category decode-table)) - (coding-system-put ',name '8-bit-fixed-query-skip-chars - ,skip-chars) - (coding-system-put ',name '8-bit-fixed-invalid-sequences-skip-chars - ,invalid-sequences-skip-chars) - (coding-system-put ',name '8-bit-fixed-query-from-unicode encode-table) - (coding-system-put ',name 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put ',(intern (format "%s-unix" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put ',(intern (format "%s-dos" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - (coding-system-put ',(intern (format "%s-mac" name)) - 'query-coding-function - #'8-bit-fixed-query-coding-region) - ,(macroexpand `(loop for alias in ',aliases - do (define-coding-system-alias alias - ',name))) - (find-coding-system ',name))))) - ;; Ideally this would be in latin.el, but code-init.el uses it. -(make-8-bit-coding-system +(make-coding-system 'iso-8859-1 - (loop - for i from #x80 to #xff - collect (list i (int-char i))) ;; Identical to Latin-1. + 'fixed-width "ISO-8859-1 (Latin-1)" - '(mnemonic "Latin 1" - documentation "The most used encoding of Western Europe and the Americas." - aliases (iso-latin-1 latin-1))) + (eval-when-compile + `(unicode-map + ,(loop + for i from #x80 to #xff + collect (list i (int-char i))) ;; Identical to Latin-1. + mnemonic "Latin 1" + documentation "The most used encoding of Western Europe and the Americas." + aliases (iso-latin-1 latin-1))))
--- a/lisp/mule/thai-xtis.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/thai-xtis.el Sat Sep 19 22:53:13 2009 +0100 @@ -347,23 +347,15 @@ (repeat)))) (write-read-repeat r0)))))) -(if (featurep 'xemacs) - (progn - (make-coding-system - 'tis-620 'ccl - "TIS620 (Thai)" - `(mnemonic "TIS620" - decode ccl-decode-thai-xtis - encode ccl-encode-thai-xtis - safe-charsets (ascii thai-xtis) - documentation "external=tis620, internal=thai-xtis")) - (coding-system-put 'tis-620 'category 'iso-8-1)) - (make-coding-system - 'tis-620 4 ?T "external=tis620, internal=thai-xtis" - '(ccl-decode-thai-xtis . ccl-encode-thai-xtis) - '((safe-charsets . t))) - ) - +(make-coding-system + 'tis-620 'ccl + "TIS620 (Thai)" + `(mnemonic "TIS620" + decode ccl-decode-thai-xtis + encode ccl-encode-thai-xtis + safe-charsets (ascii thai-xtis) + documentation "external=tis620, internal=thai-xtis")) +(coding-system-put 'tis-620 'category 'iso-8-1) (set-language-info-alist "Thai-XTIS"
--- a/lisp/mule/vietnamese.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/mule/vietnamese.el Sat Sep 19 22:53:13 2009 +0100 @@ -64,144 +64,144 @@ (modify-category-entry 'vietnamese-viscii-lower ?v) (modify-category-entry 'vietnamese-viscii-upper ?v) -(make-8-bit-coding-system - 'viscii - '((#x02 ?\u1EB2) ;; CAPITAL LETTER A WITH BREVE AND HOOK ABOVE - (#x05 ?\u1EB4) ;; CAPITAL LETTER A WITH BREVE AND TILDE - (#x06 ?\u1EAA) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE - (#x14 ?\u1EF6) ;; CAPITAL LETTER Y WITH HOOK ABOVE - (#x19 ?\u1EF8) ;; CAPITAL LETTER Y WITH TILDE - (#x1E ?\u1EF4) ;; CAPITAL LETTER Y WITH DOT BELOW - (#x80 ?\u1EA0) ;; CAPITAL LETTER A WITH DOT BELOW - (#x81 ?\u1EAE) ;; CAPITAL LETTER A WITH BREVE AND ACUTE - (#x82 ?\u1EB0) ;; CAPITAL LETTER A WITH BREVE AND GRAVE - (#x83 ?\u1EB6) ;; CAPITAL LETTER A WITH BREVE AND DOT BELOW - (#x84 ?\u1EA4) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE - (#x85 ?\u1EA6) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE - (#x86 ?\u1EA8) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE - (#x87 ?\u1EAC) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW - (#x88 ?\u1EBC) ;; CAPITAL LETTER E WITH TILDE - (#x89 ?\u1EB8) ;; CAPITAL LETTER E WITH DOT BELOW - (#x8A ?\u1EBE) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE - (#x8B ?\u1EC0) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE - (#x8C ?\u1EC2) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE - (#x8D ?\u1EC4) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE - (#x8E ?\u1EC6) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW - (#x8F ?\u1ED0) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE - (#x90 ?\u1ED2) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE - (#x91 ?\u1ED4) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE - (#x92 ?\u1ED6) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE - (#x93 ?\u1ED8) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW - (#x94 ?\u1EE2) ;; CAPITAL LETTER O WITH HORN AND DOT BELOW - (#x95 ?\u1EDA) ;; CAPITAL LETTER O WITH HORN AND ACUTE - (#x96 ?\u1EDC) ;; CAPITAL LETTER O WITH HORN AND GRAVE - (#x97 ?\u1EDE) ;; CAPITAL LETTER O WITH HORN AND HOOK ABOVE - (#x98 ?\u1ECA) ;; CAPITAL LETTER I WITH DOT BELOW - (#x99 ?\u1ECE) ;; CAPITAL LETTER O WITH HOOK ABOVE - (#x9A ?\u1ECC) ;; CAPITAL LETTER O WITH DOT BELOW - (#x9B ?\u1EC8) ;; CAPITAL LETTER I WITH HOOK ABOVE - (#x9C ?\u1EE6) ;; CAPITAL LETTER U WITH HOOK ABOVE - (#x9D ?\u0168) ;; CAPITAL LETTER U WITH TILDE - (#x9E ?\u1EE4) ;; CAPITAL LETTER U WITH DOT BELOW - (#x9F ?\u1EF2) ;; CAPITAL LETTER Y WITH GRAVE - (#xA0 ?\u00D5) ;; CAPITAL LETTER O WITH TILDE - (#xA1 ?\u1EAF) ;; SMALL LETTER A WITH BREVE AND ACUTE - (#xA2 ?\u1EB1) ;; SMALL LETTER A WITH BREVE AND GRAVE - (#xA3 ?\u1EB7) ;; SMALL LETTER A WITH BREVE AND DOT BELOW - (#xA4 ?\u1EA5) ;; SMALL LETTER A WITH CIRCUMFLEX AND ACUTE - (#xA5 ?\u1EA7) ;; SMALL LETTER A WITH CIRCUMFLEX AND GRAVE - (#xA6 ?\u1EA8) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE - (#xA7 ?\u1EAD) ;; SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW - (#xA8 ?\u1EBD) ;; SMALL LETTER E WITH TILDE - (#xA9 ?\u1EB9) ;; SMALL LETTER E WITH DOT BELOW - (#xAA ?\u1EBF) ;; SMALL LETTER E WITH CIRCUMFLEX AND ACUTE - (#xAB ?\u1EC1) ;; SMALL LETTER E WITH CIRCUMFLEX AND GRAVE - (#xAC ?\u1EC3) ;; SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE - (#xAD ?\u1EC5) ;; SMALL LETTER E WITH CIRCUMFLEX AND TILDE - (#xAE ?\u1EC7) ;; SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW - (#xAF ?\u1ED1) ;; SMALL LETTER O WITH CIRCUMFLEX AND ACUTE - (#xB0 ?\u1ED3) ;; SMALL LETTER O WITH CIRCUMFLEX AND GRAVE - (#xB1 ?\u1ED5) ;; SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE - (#xB2 ?\u1ED7) ;; SMALL LETTER O WITH CIRCUMFLEX AND TILDE - (#xB3 ?\u1EE0) ;; CAPITAL LETTER O WITH HORN AND TILDE - (#xB4 ?\u01A0) ;; CAPITAL LETTER O WITH HORN - (#xB5 ?\u1ED9) ;; SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW - (#xB6 ?\u1EDD) ;; SMALL LETTER O WITH HORN AND GRAVE - (#xB7 ?\u1EDF) ;; SMALL LETTER O WITH HORN AND HOOK ABOVE - (#xB8 ?\u1ECB) ;; SMALL LETTER I WITH DOT BELOW - (#xB9 ?\u1EF0) ;; CAPITAL LETTER U WITH HORN AND DOT BELOW - (#xBA ?\u1EE8) ;; CAPITAL LETTER U WITH HORN AND ACUTE - (#xBB ?\u1EEA) ;; CAPITAL LETTER U WITH HORN AND GRAVE - (#xBC ?\u1EEC) ;; CAPITAL LETTER U WITH HORN AND HOOK ABOVE - (#xBD ?\u01A1) ;; SMALL LETTER O WITH HORN - (#xBE ?\u1EDB) ;; SMALL LETTER O WITH HORN AND ACUTE - (#xBF ?\u01AF) ;; CAPITAL LETTER U WITH HORN - (#xC0 ?\u00C0) ;; CAPITAL LETTER A WITH GRAVE - (#xC1 ?\u00C1) ;; CAPITAL LETTER A WITH ACUTE - (#xC2 ?\u00C2) ;; CAPITAL LETTER A WITH CIRCUMFLEX - (#xC3 ?\u00C3) ;; CAPITAL LETTER A WITH TILDE - (#xC4 ?\u1EA2) ;; CAPITAL LETTER A WITH HOOK ABOVE - (#xC5 ?\u0102) ;; CAPITAL LETTER A WITH BREVE - (#xC6 ?\u1EB3) ;; SMALL LETTER A WITH BREVE AND HOOK ABOVE - (#xC7 ?\u1EB5) ;; SMALL LETTER A WITH BREVE AND TILDE - (#xC8 ?\u00C8) ;; CAPITAL LETTER E WITH GRAVE - (#xC9 ?\u00C9) ;; CAPITAL LETTER E WITH ACUTE - (#xCA ?\u00CA) ;; CAPITAL LETTER E WITH CIRCUMFLEX - (#xCB ?\u1EBA) ;; CAPITAL LETTER E WITH HOOK ABOVE - (#xCC ?\u00CC) ;; CAPITAL LETTER I WITH GRAVE - (#xCD ?\u00CD) ;; CAPITAL LETTER I WITH ACUTE - (#xCE ?\u0128) ;; CAPITAL LETTER I WITH TILDE - (#xCF ?\u1EF3) ;; SMALL LETTER Y WITH GRAVE - (#xD0 ?\u0110) ;; CAPITAL LETTER D WITH STROKE - (#xD1 ?\u1EE9) ;; SMALL LETTER U WITH HORN AND ACUTE - (#xD2 ?\u00D2) ;; CAPITAL LETTER O WITH GRAVE - (#xD3 ?\u00D3) ;; CAPITAL LETTER O WITH ACUTE - (#xD4 ?\u00D4) ;; CAPITAL LETTER O WITH CIRCUMFLEX - (#xD5 ?\u1EA1) ;; SMALL LETTER A WITH DOT BELOW - (#xD6 ?\u1EF7) ;; SMALL LETTER Y WITH HOOK ABOVE - (#xD7 ?\u1EEB) ;; SMALL LETTER U WITH HORN AND GRAVE - (#xD8 ?\u1EED) ;; SMALL LETTER U WITH HORN AND HOOK ABOVE - (#xD9 ?\u00D9) ;; CAPITAL LETTER U WITH GRAVE - (#xDA ?\u00DA) ;; CAPITAL LETTER U WITH ACUTE - (#xDB ?\u1EF9) ;; SMALL LETTER Y WITH TILDE - (#xDC ?\u1EF5) ;; SMALL LETTER Y WITH DOT BELOW - (#xDD ?\u00DD) ;; CAPITAL LETTER Y WITH ACUTE - (#xDE ?\u1EE1) ;; SMALL LETTER O WITH HORN AND TILDE - (#xDF ?\u01B0) ;; SMALL LETTER U WITH HORN - (#xE0 ?\u00E0) ;; SMALL LETTER A WITH GRAVE - (#xE1 ?\u00E1) ;; SMALL LETTER A WITH ACUTE - (#xE2 ?\u00E2) ;; SMALL LETTER A WITH CIRCUMFLEX - (#xE3 ?\u00E3) ;; SMALL LETTER A WITH TILDE - (#xE4 ?\u1EA3) ;; SMALL LETTER A WITH HOOK ABOVE - (#xE5 ?\u0103) ;; SMALL LETTER A WITH BREVE - (#xE6 ?\u1EEF) ;; SMALL LETTER U WITH HORN AND TILDE - (#xE7 ?\u1EAB) ;; SMALL LETTER A WITH CIRCUMFLEX AND TILDE - (#xE8 ?\u00E8) ;; SMALL LETTER E WITH GRAVE - (#xE9 ?\u00E9) ;; SMALL LETTER E WITH ACUTE - (#xEA ?\u00EA) ;; SMALL LETTER E WITH CIRCUMFLEX - (#xEB ?\u1EBB) ;; SMALL LETTER E WITH HOOK ABOVE - (#xEC ?\u00EC) ;; SMALL LETTER I WITH GRAVE - (#xED ?\u00ED) ;; SMALL LETTER I WITH ACUTE - (#xEE ?\u0129) ;; SMALL LETTER I WITH TILDE - (#xEF ?\u1EC9) ;; SMALL LETTER I WITH HOOK ABOVE - (#xF0 ?\u0111) ;; SMALL LETTER D WITH STROKE - (#xF1 ?\u1EF1) ;; SMALL LETTER U WITH HORN AND DOT BELOW - (#xF2 ?\u00F2) ;; SMALL LETTER O WITH GRAVE - (#xF3 ?\u00F3) ;; SMALL LETTER O WITH ACUTE - (#xF4 ?\u00F4) ;; SMALL LETTER O WITH CIRCUMFLEX - (#xF5 ?\u00F5) ;; SMALL LETTER O WITH TILDE - (#xF6 ?\u1ECF) ;; SMALL LETTER O WITH HOOK ABOVE - (#xF7 ?\u1ECD) ;; SMALL LETTER O WITH DOT BELOW - (#xF8 ?\u1EE5) ;; SMALL LETTER U WITH DOT BELOW - (#xF9 ?\u00F9) ;; SMALL LETTER U WITH GRAVE - (#xFA ?\u00FA) ;; SMALL LETTER U WITH ACUTE - (#xFB ?\u0169) ;; SMALL LETTER U WITH TILDE - (#xFC ?\u1EE7) ;; SMALL LETTER U WITH HOOK ABOVE - (#xFD ?\u00FD) ;; SMALL LETTER Y WITH ACUTE - (#xFE ?\u1EE3) ;; SMALL LETTER O WITH HORN AND DOT BELOW - (#xFF ?\u1EEE)) ;; CAPITAL LETTER U WITH HORN AND TILDE - "VISCII 1.1 (Vietnamese)" - '(mnemonic "VISCII")) +(make-coding-system + 'viscii 'fixed-width "VISCII 1.1 (Vietnamese)" + '(unicode-map + ((#x02 ?\u1EB2) ;; CAPITAL LETTER A WITH BREVE AND HOOK ABOVE + (#x05 ?\u1EB4) ;; CAPITAL LETTER A WITH BREVE AND TILDE + (#x06 ?\u1EAA) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE + (#x14 ?\u1EF6) ;; CAPITAL LETTER Y WITH HOOK ABOVE + (#x19 ?\u1EF8) ;; CAPITAL LETTER Y WITH TILDE + (#x1E ?\u1EF4) ;; CAPITAL LETTER Y WITH DOT BELOW + (#x80 ?\u1EA0) ;; CAPITAL LETTER A WITH DOT BELOW + (#x81 ?\u1EAE) ;; CAPITAL LETTER A WITH BREVE AND ACUTE + (#x82 ?\u1EB0) ;; CAPITAL LETTER A WITH BREVE AND GRAVE + (#x83 ?\u1EB6) ;; CAPITAL LETTER A WITH BREVE AND DOT BELOW + (#x84 ?\u1EA4) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE + (#x85 ?\u1EA6) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE + (#x86 ?\u1EA8) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE + (#x87 ?\u1EAC) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW + (#x88 ?\u1EBC) ;; CAPITAL LETTER E WITH TILDE + (#x89 ?\u1EB8) ;; CAPITAL LETTER E WITH DOT BELOW + (#x8A ?\u1EBE) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE + (#x8B ?\u1EC0) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE + (#x8C ?\u1EC2) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE + (#x8D ?\u1EC4) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE + (#x8E ?\u1EC6) ;; CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW + (#x8F ?\u1ED0) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE + (#x90 ?\u1ED2) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE + (#x91 ?\u1ED4) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE + (#x92 ?\u1ED6) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE + (#x93 ?\u1ED8) ;; CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW + (#x94 ?\u1EE2) ;; CAPITAL LETTER O WITH HORN AND DOT BELOW + (#x95 ?\u1EDA) ;; CAPITAL LETTER O WITH HORN AND ACUTE + (#x96 ?\u1EDC) ;; CAPITAL LETTER O WITH HORN AND GRAVE + (#x97 ?\u1EDE) ;; CAPITAL LETTER O WITH HORN AND HOOK ABOVE + (#x98 ?\u1ECA) ;; CAPITAL LETTER I WITH DOT BELOW + (#x99 ?\u1ECE) ;; CAPITAL LETTER O WITH HOOK ABOVE + (#x9A ?\u1ECC) ;; CAPITAL LETTER O WITH DOT BELOW + (#x9B ?\u1EC8) ;; CAPITAL LETTER I WITH HOOK ABOVE + (#x9C ?\u1EE6) ;; CAPITAL LETTER U WITH HOOK ABOVE + (#x9D ?\u0168) ;; CAPITAL LETTER U WITH TILDE + (#x9E ?\u1EE4) ;; CAPITAL LETTER U WITH DOT BELOW + (#x9F ?\u1EF2) ;; CAPITAL LETTER Y WITH GRAVE + (#xA0 ?\u00D5) ;; CAPITAL LETTER O WITH TILDE + (#xA1 ?\u1EAF) ;; SMALL LETTER A WITH BREVE AND ACUTE + (#xA2 ?\u1EB1) ;; SMALL LETTER A WITH BREVE AND GRAVE + (#xA3 ?\u1EB7) ;; SMALL LETTER A WITH BREVE AND DOT BELOW + (#xA4 ?\u1EA5) ;; SMALL LETTER A WITH CIRCUMFLEX AND ACUTE + (#xA5 ?\u1EA7) ;; SMALL LETTER A WITH CIRCUMFLEX AND GRAVE + (#xA6 ?\u1EA8) ;; CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE + (#xA7 ?\u1EAD) ;; SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW + (#xA8 ?\u1EBD) ;; SMALL LETTER E WITH TILDE + (#xA9 ?\u1EB9) ;; SMALL LETTER E WITH DOT BELOW + (#xAA ?\u1EBF) ;; SMALL LETTER E WITH CIRCUMFLEX AND ACUTE + (#xAB ?\u1EC1) ;; SMALL LETTER E WITH CIRCUMFLEX AND GRAVE + (#xAC ?\u1EC3) ;; SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE + (#xAD ?\u1EC5) ;; SMALL LETTER E WITH CIRCUMFLEX AND TILDE + (#xAE ?\u1EC7) ;; SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW + (#xAF ?\u1ED1) ;; SMALL LETTER O WITH CIRCUMFLEX AND ACUTE + (#xB0 ?\u1ED3) ;; SMALL LETTER O WITH CIRCUMFLEX AND GRAVE + (#xB1 ?\u1ED5) ;; SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE + (#xB2 ?\u1ED7) ;; SMALL LETTER O WITH CIRCUMFLEX AND TILDE + (#xB3 ?\u1EE0) ;; CAPITAL LETTER O WITH HORN AND TILDE + (#xB4 ?\u01A0) ;; CAPITAL LETTER O WITH HORN + (#xB5 ?\u1ED9) ;; SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW + (#xB6 ?\u1EDD) ;; SMALL LETTER O WITH HORN AND GRAVE + (#xB7 ?\u1EDF) ;; SMALL LETTER O WITH HORN AND HOOK ABOVE + (#xB8 ?\u1ECB) ;; SMALL LETTER I WITH DOT BELOW + (#xB9 ?\u1EF0) ;; CAPITAL LETTER U WITH HORN AND DOT BELOW + (#xBA ?\u1EE8) ;; CAPITAL LETTER U WITH HORN AND ACUTE + (#xBB ?\u1EEA) ;; CAPITAL LETTER U WITH HORN AND GRAVE + (#xBC ?\u1EEC) ;; CAPITAL LETTER U WITH HORN AND HOOK ABOVE + (#xBD ?\u01A1) ;; SMALL LETTER O WITH HORN + (#xBE ?\u1EDB) ;; SMALL LETTER O WITH HORN AND ACUTE + (#xBF ?\u01AF) ;; CAPITAL LETTER U WITH HORN + (#xC0 ?\u00C0) ;; CAPITAL LETTER A WITH GRAVE + (#xC1 ?\u00C1) ;; CAPITAL LETTER A WITH ACUTE + (#xC2 ?\u00C2) ;; CAPITAL LETTER A WITH CIRCUMFLEX + (#xC3 ?\u00C3) ;; CAPITAL LETTER A WITH TILDE + (#xC4 ?\u1EA2) ;; CAPITAL LETTER A WITH HOOK ABOVE + (#xC5 ?\u0102) ;; CAPITAL LETTER A WITH BREVE + (#xC6 ?\u1EB3) ;; SMALL LETTER A WITH BREVE AND HOOK ABOVE + (#xC7 ?\u1EB5) ;; SMALL LETTER A WITH BREVE AND TILDE + (#xC8 ?\u00C8) ;; CAPITAL LETTER E WITH GRAVE + (#xC9 ?\u00C9) ;; CAPITAL LETTER E WITH ACUTE + (#xCA ?\u00CA) ;; CAPITAL LETTER E WITH CIRCUMFLEX + (#xCB ?\u1EBA) ;; CAPITAL LETTER E WITH HOOK ABOVE + (#xCC ?\u00CC) ;; CAPITAL LETTER I WITH GRAVE + (#xCD ?\u00CD) ;; CAPITAL LETTER I WITH ACUTE + (#xCE ?\u0128) ;; CAPITAL LETTER I WITH TILDE + (#xCF ?\u1EF3) ;; SMALL LETTER Y WITH GRAVE + (#xD0 ?\u0110) ;; CAPITAL LETTER D WITH STROKE + (#xD1 ?\u1EE9) ;; SMALL LETTER U WITH HORN AND ACUTE + (#xD2 ?\u00D2) ;; CAPITAL LETTER O WITH GRAVE + (#xD3 ?\u00D3) ;; CAPITAL LETTER O WITH ACUTE + (#xD4 ?\u00D4) ;; CAPITAL LETTER O WITH CIRCUMFLEX + (#xD5 ?\u1EA1) ;; SMALL LETTER A WITH DOT BELOW + (#xD6 ?\u1EF7) ;; SMALL LETTER Y WITH HOOK ABOVE + (#xD7 ?\u1EEB) ;; SMALL LETTER U WITH HORN AND GRAVE + (#xD8 ?\u1EED) ;; SMALL LETTER U WITH HORN AND HOOK ABOVE + (#xD9 ?\u00D9) ;; CAPITAL LETTER U WITH GRAVE + (#xDA ?\u00DA) ;; CAPITAL LETTER U WITH ACUTE + (#xDB ?\u1EF9) ;; SMALL LETTER Y WITH TILDE + (#xDC ?\u1EF5) ;; SMALL LETTER Y WITH DOT BELOW + (#xDD ?\u00DD) ;; CAPITAL LETTER Y WITH ACUTE + (#xDE ?\u1EE1) ;; SMALL LETTER O WITH HORN AND TILDE + (#xDF ?\u01B0) ;; SMALL LETTER U WITH HORN + (#xE0 ?\u00E0) ;; SMALL LETTER A WITH GRAVE + (#xE1 ?\u00E1) ;; SMALL LETTER A WITH ACUTE + (#xE2 ?\u00E2) ;; SMALL LETTER A WITH CIRCUMFLEX + (#xE3 ?\u00E3) ;; SMALL LETTER A WITH TILDE + (#xE4 ?\u1EA3) ;; SMALL LETTER A WITH HOOK ABOVE + (#xE5 ?\u0103) ;; SMALL LETTER A WITH BREVE + (#xE6 ?\u1EEF) ;; SMALL LETTER U WITH HORN AND TILDE + (#xE7 ?\u1EAB) ;; SMALL LETTER A WITH CIRCUMFLEX AND TILDE + (#xE8 ?\u00E8) ;; SMALL LETTER E WITH GRAVE + (#xE9 ?\u00E9) ;; SMALL LETTER E WITH ACUTE + (#xEA ?\u00EA) ;; SMALL LETTER E WITH CIRCUMFLEX + (#xEB ?\u1EBB) ;; SMALL LETTER E WITH HOOK ABOVE + (#xEC ?\u00EC) ;; SMALL LETTER I WITH GRAVE + (#xED ?\u00ED) ;; SMALL LETTER I WITH ACUTE + (#xEE ?\u0129) ;; SMALL LETTER I WITH TILDE + (#xEF ?\u1EC9) ;; SMALL LETTER I WITH HOOK ABOVE + (#xF0 ?\u0111) ;; SMALL LETTER D WITH STROKE + (#xF1 ?\u1EF1) ;; SMALL LETTER U WITH HORN AND DOT BELOW + (#xF2 ?\u00F2) ;; SMALL LETTER O WITH GRAVE + (#xF3 ?\u00F3) ;; SMALL LETTER O WITH ACUTE + (#xF4 ?\u00F4) ;; SMALL LETTER O WITH CIRCUMFLEX + (#xF5 ?\u00F5) ;; SMALL LETTER O WITH TILDE + (#xF6 ?\u1ECF) ;; SMALL LETTER O WITH HOOK ABOVE + (#xF7 ?\u1ECD) ;; SMALL LETTER O WITH DOT BELOW + (#xF8 ?\u1EE5) ;; SMALL LETTER U WITH DOT BELOW + (#xF9 ?\u00F9) ;; SMALL LETTER U WITH GRAVE + (#xFA ?\u00FA) ;; SMALL LETTER U WITH ACUTE + (#xFB ?\u0169) ;; SMALL LETTER U WITH TILDE + (#xFC ?\u1EE7) ;; SMALL LETTER U WITH HOOK ABOVE + (#xFD ?\u00FD) ;; SMALL LETTER Y WITH ACUTE + (#xFE ?\u1EE3) ;; SMALL LETTER O WITH HORN AND DOT BELOW + (#xFF ?\u1EEE)) ;; CAPITAL LETTER U WITH HORN AND TILDE + mnemonic "VISCII")) (set-language-info-alist "Vietnamese" '((charset vietnamese-viscii-lower vietnamese-viscii-upper)
--- a/lisp/unicode.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/unicode.el Sat Sep 19 22:53:13 2009 +0100 @@ -164,6 +164,68 @@ latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7))))) +(defconst ccl-encode-to-ucs-2 + (eval-when-compile + (let ((pre-existing + ;; This is the compiled CCL program from the assert + ;; below. Since this file is dumped and ccl.el isn't (and + ;; even when it was, it was dumped much later than this + ;; one), we can't compile the program at dump time. We can + ;; check at byte compile time that the program is as + ;; expected, though. + [1 16 131127 7 98872 65823 1307 5 -65536 65313 64833 1028 + 147513 8 82009 255 22])) + (when (featurep 'mule) + ;; Check that the pre-existing constant reflects the intended + ;; CCL program. + (assert + (equal pre-existing + (ccl-compile + `(1 + ( ;; mule-to-unicode's first argument is the + ;; charset ID, the second its first byte + ;; left shifted by 7 bits masked with its + ;; second byte. + (r1 = (r1 << 7)) + (r1 = (r1 | r2)) + (mule-to-unicode r0 r1) + (if (r0 & ,(lognot #xFFFF)) + ;; Redisplay looks in r1 and r2 for the first + ;; and second bytes of the X11 font, + ;; respectively. For non-BMP characters we + ;; display U+FFFD. + ((r1 = #xFF) + (r2 = #xFD)) + ((r1 = (r0 >> 8)) + (r2 = (r0 & #xFF)))))))) + nil + "The pre-compiled CCL program appears broken. ")) + pre-existing)) + "CCL program to transform Mule characters to UCS-2.") + +(when (featurep 'mule) + (put 'ccl-encode-to-ucs-2 'ccl-program-idx + (declare-fboundp + (register-ccl-program 'ccl-encode-to-ucs-2 ccl-encode-to-ucs-2)))) + +(defun decode-char (quote-ucs code &optional restriction) + "FSF compatibility--return Mule character with Unicode codepoint CODE. +The second argument must be 'ucs, the third argument is ignored. " + ;; We're prepared to accept invalid Unicode in unicode-to-char, but not in + ;; this function, which is the API that should actually be used, since + ;; it's available in GNU and in Mule-UCS. + (check-argument-range code #x0 #x10FFFF) + (assert (eq quote-ucs 'ucs) t + "Sorry, decode-char doesn't yet support anything but the UCS. ") + (unicode-to-char code)) + +(defun encode-char (char quote-ucs &optional restriction) + "FSF compatibility--return the Unicode code point of CHAR. +The second argument must be 'ucs, the third argument is ignored. " + (assert (eq quote-ucs 'ucs) t + "Sorry, encode-char doesn't yet support anything but the UCS. ") + (char-to-unicode char)) + (make-coding-system 'utf-16 'unicode "UTF-16" @@ -309,68 +371,6 @@ little-endian t need-bom t)) -(defun decode-char (quote-ucs code &optional restriction) - "FSF compatibility--return Mule character with Unicode codepoint CODE. -The second argument must be 'ucs, the third argument is ignored. " - ;; We're prepared to accept invalid Unicode in unicode-to-char, but not in - ;; this function, which is the API that should actually be used, since - ;; it's available in GNU and in Mule-UCS. - (check-argument-range code #x0 #x10FFFF) - (assert (eq quote-ucs 'ucs) t - "Sorry, decode-char doesn't yet support anything but the UCS. ") - (unicode-to-char code)) - -(defun encode-char (char quote-ucs &optional restriction) - "FSF compatibility--return the Unicode code point of CHAR. -The second argument must be 'ucs, the third argument is ignored. " - (assert (eq quote-ucs 'ucs) t - "Sorry, encode-char doesn't yet support anything but the UCS. ") - (char-to-unicode char)) - -(defconst ccl-encode-to-ucs-2 - (eval-when-compile - (let ((pre-existing - ;; This is the compiled CCL program from the assert - ;; below. Since this file is dumped and ccl.el isn't (and - ;; even when it was, it was dumped much later than this - ;; one), we can't compile the program at dump time. We can - ;; check at byte compile time that the program is as - ;; expected, though. - [1 16 131127 7 98872 65823 1307 5 -65536 65313 64833 1028 - 147513 8 82009 255 22])) - (when (featurep 'mule) - ;; Check that the pre-existing constant reflects the intended - ;; CCL program. - (assert - (equal pre-existing - (ccl-compile - `(1 - ( ;; mule-to-unicode's first argument is the - ;; charset ID, the second its first byte - ;; left shifted by 7 bits masked with its - ;; second byte. - (r1 = (r1 << 7)) - (r1 = (r1 | r2)) - (mule-to-unicode r0 r1) - (if (r0 & ,(lognot #xFFFF)) - ;; Redisplay looks in r1 and r2 for the first - ;; and second bytes of the X11 font, - ;; respectively. For non-BMP characters we - ;; display U+FFFD. - ((r1 = #xFF) - (r2 = #xFD)) - ((r1 = (r0 >> 8)) - (r2 = (r0 & #xFF)))))))) - nil - "The pre-compiled CCL program appears broken. ")) - pre-existing)) - "CCL program to transform Mule characters to UCS-2.") - -(when (featurep 'mule) - (put 'ccl-encode-to-ucs-2 'ccl-program-idx - (declare-fboundp - (register-ccl-program 'ccl-encode-to-ucs-2 ccl-encode-to-ucs-2)))) - ;; Now, create jit-ucs-charset-0 entries for those characters in Windows ;; Glyph List 4 that would otherwise end up in East Asian character sets. ;; @@ -613,112 +613,6 @@ ;; Sure would be nice to be able to use defface here. (copy-face 'highlight 'unicode-invalid-sequence-warning-face) -(defvar unicode-query-coding-skip-chars-arg nil ;; Set in general-late.el - "Used by `unicode-query-coding-region' to skip chars with known mappings.") - -(defun unicode-query-coding-region (begin end coding-system - &optional buffer ignore-invalid-sequencesp - errorp highlightp) - "The `query-coding-region' implementation for Unicode coding systems. - -Supports IGNORE-INVALID-SEQUENCESP, that is, XEmacs characters that reflect -invalid octets on disk will be treated as encodable if this argument is -specified, and as not encodable if it is not specified." - - ;; Potential problem here; the octets that correspond to octets from #x00 - ;; to #x7f on disk will be treated by utf-8 and utf-7 as invalid - ;; sequences, and thus, in theory, encodable. - - (check-argument-type #'coding-system-p - (setq coding-system (find-coding-system coding-system))) - (check-argument-type #'integer-or-marker-p begin) - (check-argument-type #'integer-or-marker-p end) - (let* ((skip-chars-arg (concat unicode-query-coding-skip-chars-arg - (if ignore-invalid-sequencesp - unicode-invalid-sequence-regexp-range - ""))) - (ranges (make-range-table)) - (looking-at-arg (concat "[" skip-chars-arg "]")) - (case-fold-search nil) - (invalid-sequence-lower-unicode-bound - (char-to-unicode - (aref (decode-coding-string "\xd8\x00\x00\x00" - 'utf-16-be) 3))) - (invalid-sequence-upper-unicode-bound - (char-to-unicode - (aref (decode-coding-string "\xd8\x00\x00\xFF" - 'utf-16-be) 3))) - fail-range-start fail-range-end char-after failed - extent char-unicode failed-reason previous-failed-reason) - (save-excursion - (when highlightp - (query-coding-clear-highlights begin end buffer)) - (goto-char begin buffer) - (skip-chars-forward skip-chars-arg end buffer) - (while (< (point buffer) end) - (setq char-after (char-after (point buffer) buffer) - fail-range-start (point buffer)) - (while (and - (< (point buffer) end) - (not (looking-at looking-at-arg)) - (or (and - (= -1 (setq char-unicode (char-to-unicode char-after))) - (setq failed-reason 'unencodable)) - (and (not ignore-invalid-sequencesp) - ;; The default case, with ignore-invalid-sequencesp - ;; not specified: - ;; If the character is in the Unicode range that - ;; corresponds to an invalid octet, we want to - ;; treat it as unencodable. - (<= invalid-sequence-lower-unicode-bound - char-unicode) - (<= char-unicode - invalid-sequence-upper-unicode-bound) - (setq failed-reason 'invalid-sequence))) - (or (null previous-failed-reason) - (eq previous-failed-reason failed-reason))) - (forward-char 1 buffer) - (setq char-after (char-after (point buffer) buffer) - failed t - previous-failed-reason failed-reason)) - (if (= fail-range-start (point buffer)) - ;; The character can actually be encoded by the coding - ;; system; check the characters past it. - (forward-char 1 buffer) - ;; Can't be encoded; note this. - (when errorp - (error 'text-conversion-error - (format "Cannot encode %s using coding system" - (buffer-substring fail-range-start (point buffer) - buffer)) - (coding-system-name coding-system))) - (assert - (not (null previous-failed-reason)) t - "If we've got here, previous-failed-reason should be non-nil.") - (put-range-table fail-range-start - ;; If char-after is non-nil, we're not at - ;; the end of the buffer. - (setq fail-range-end (if char-after - (point buffer) - (point-max buffer))) - previous-failed-reason ranges) - (setq previous-failed-reason nil) - (when highlightp - (setq extent (make-extent fail-range-start fail-range-end buffer)) - (set-extent-priority extent (+ mouse-highlight-priority 2)) - (set-extent-face extent 'query-coding-warning-face))) - (skip-chars-forward skip-chars-arg end buffer)) - (if failed - (values nil ranges) - (values t nil))))) - -(loop - for coding-system in (coding-system-list) - initially (unless (featurep 'mule) (return)) - do (when (eq 'unicode (coding-system-type coding-system)) - (coding-system-put coding-system 'query-coding-function - #'unicode-query-coding-region))) - (unless (featurep 'mule) ;; We do this in such a roundabout way--instead of having the above defun ;; and defvar calls inside a (when (featurep 'mule) ...) form--to have
--- a/lisp/update-elc.el Sat Sep 19 17:56:23 2009 +0200 +++ b/lisp/update-elc.el Sat Sep 19 22:53:13 2009 +0100 @@ -122,9 +122,11 @@ Files in `additional-dump-dependencies' do not need to be listed here.") (defvar additional-dump-dependencies - '("loadup.el" - "loadup-el.el" - "update-elc.el") + (nconc '("loadup.el" + "loadup-el.el" + "update-elc.el") + (if (featurep 'mule) + '("mule/make-coding-system"))) "Lisp files that are not dumped but which the dump depends on. If any of these files are changed, we need to redump.")
--- a/src/ChangeLog Sat Sep 19 17:56:23 2009 +0200 +++ b/src/ChangeLog Sat Sep 19 22:53:13 2009 +0100 @@ -1,3 +1,59 @@ +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. + 2009-09-11 Aidan Kehoe <kehoea@parhasard.net> * unicode.c (unicode_convert):
--- a/src/extents.h Sat Sep 19 17:56:23 2009 +0200 +++ b/src/extents.h Sat Sep 19 22:53:13 2009 +0100 @@ -147,6 +147,8 @@ extern int inside_undo; extern int in_modeline_generation; +extern Fixnum mouse_highlight_priority; + EXFUN (Fextent_at, 5); EXFUN (Fextent_property, 3); EXFUN (Fput_text_property, 5); @@ -164,6 +166,9 @@ EXFUN (Fset_extent_endpoints, 4); EXFUN (Fset_extent_parent, 2); EXFUN (Fset_extent_property, 3); +EXFUN (Fset_extent_priority, 2); +EXFUN (Fset_extent_face, 2); +EXFUN (Fmap_extents, 8); enum extent_at_flag {
--- a/src/file-coding.c Sat Sep 19 17:56:23 2009 +0200 +++ b/src/file-coding.c Sat Sep 19 22:53:13 2009 +0100 @@ -78,6 +78,9 @@ #include "lstream.h" #include "opaque.h" #include "file-coding.h" +#include "extents.h" +#include "rangetab.h" +#include "chartab.h" #ifdef HAVE_ZLIB #include "zlib.h" @@ -89,10 +92,17 @@ Lisp_Object Vcoding_system_for_write; Lisp_Object Vfile_name_coding_system; +Lisp_Object Qaliases, Qcharset_skip_chars_string; + #ifdef DEBUG_XEMACS Lisp_Object Vdebug_coding_detection; #endif +#ifdef MULE +extern Lisp_Object Vcharset_ascii, Vcharset_control_1, + Vcharset_latin_iso8859_1; +#endif + typedef struct coding_system_type_entry { struct coding_system_methods *meths; @@ -417,6 +427,155 @@ return decode_coding_system_type (type, ERROR_ME_NOT) != 0; } +#ifdef MULE +static Lisp_Object Vdefault_query_coding_region_chartab_cache; + +/* Non-static because it's used in INITIALIZE_CODING_SYSTEM_TYPE_WITH_DATA. */ +Lisp_Object +default_query_method (Lisp_Object codesys, struct buffer *buf, + Charbpos end, int flags) +{ + Charbpos pos = BUF_PT (buf), fail_range_start, fail_range_end; + Charbpos pos_byte = BYTE_BUF_PT (buf); + Lisp_Object safe_charsets = XCODING_SYSTEM_SAFE_CHARSETS (codesys); + Lisp_Object safe_chars = XCODING_SYSTEM_SAFE_CHARS (codesys), + result = Qnil; + enum query_coding_failure_reasons failed_reason, + previous_failed_reason = query_coding_succeeded; + + /* safe-charsets of t means the coding system can encode everything. */ + if (EQ (Qnil, safe_chars)) + { + if (EQ (Qt, safe_charsets)) + { + return Qnil; + } + + /* If we've no information on what characters the coding system can + encode, give up. */ + if (EQ (Qnil, safe_charsets) && EQ (Qnil, safe_chars)) + { + return Qunbound; + } + + safe_chars = Fgethash (safe_charsets, + Vdefault_query_coding_region_chartab_cache, + Qnil); + if (NILP (safe_chars)) + { + safe_chars = Fmake_char_table (Qgeneric); + { + EXTERNAL_LIST_LOOP_2 (safe_charset, safe_charsets) + Fput_char_table (safe_charset, Qt, safe_chars); + } + + Fputhash (safe_charsets, safe_chars, + Vdefault_query_coding_region_chartab_cache); + } + } + + if (flags & QUERY_METHOD_HIGHLIGHT && + /* If we're being called really early, live without highlights getting + cleared properly: */ + !(UNBOUNDP (XSYMBOL (Qquery_coding_clear_highlights)->function))) + { + /* It's okay to call Lisp here, the only non-stack object we may have + allocated up to this point is safe_chars, and that's + reachable from its entry in + Vdefault_query_coding_region_chartab_cache */ + call3 (Qquery_coding_clear_highlights, make_int (pos), make_int (end), + wrap_buffer (buf)); + } + + while (pos < end) + { + Ichar ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + if (!EQ (Qnil, get_char_table (ch, safe_chars))) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + fail_range_start = pos; + while ((pos < end) && + (EQ (Qnil, get_char_table (ch, safe_chars)) + && (failed_reason = query_coding_unencodable)) + && (previous_failed_reason == query_coding_succeeded + || previous_failed_reason == failed_reason)) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + previous_failed_reason = failed_reason; + } + + if (fail_range_start == pos) + { + /* The character can actually be encoded; move on. */ + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + assert (previous_failed_reason == query_coding_unencodable); + + if (flags & QUERY_METHOD_ERRORP) + { + DECLARE_EISTRING (error_details); + + eicpy_ascii (error_details, "Cannot encode "); + eicat_lstr (error_details, + make_string_from_buffer (buf, fail_range_start, + pos - + fail_range_start)); + eicat_ascii (error_details, " using coding system"); + + signal_error (Qtext_conversion_error, + (const CIbyte *)(eidata (error_details)), + XCODING_SYSTEM_NAME (codesys)); + } + + if (NILP (result)) + { + result = Fmake_range_table (Qstart_closed_end_open); + } + + fail_range_end = pos; + + Fput_range_table (make_int (fail_range_start), + make_int (fail_range_end), + Qunencodable, + result); + previous_failed_reason = query_coding_succeeded; + + if (flags & QUERY_METHOD_HIGHLIGHT) + { + Lisp_Object extent + = Fmake_extent (make_int (fail_range_start), + make_int (fail_range_end), + wrap_buffer (buf)); + + Fset_extent_priority + (extent, make_int (2 + mouse_highlight_priority)); + Fset_extent_face (extent, Qquery_coding_warning_face); + } + } + } + } + + return result; +} +#else +Lisp_Object +default_query_method (Lisp_Object UNUSED (codesys), + struct buffer * UNUSED (buf), + Charbpos UNUSED (end), int UNUSED (flags)) +{ + return Qnil; +} +#endif /* defined MULE */ + DEFUN ("valid-coding-system-type-p", Fvalid_coding_system_type_p, 1, 1, 0, /* Given a CODING-SYSTEM-TYPE, return non-nil if it is valid. Valid types depend on how XEmacs was compiled but may include @@ -982,6 +1141,16 @@ } } +DEFUN ("coding-system-canonical-name-p", Fcoding_system_canonical_name_p, + 1, 1, 0, /* +Return t if OBJECT names a coding system, and is not a coding system alias. +*/ + (object)) +{ + return CODING_SYSTEMP (Fgethash (object, Vcoding_system_hash_table, Qnil)) + ? Qt : Qnil; +} + /* Basic function to create new coding systems. For `make-coding-system', NAME-OR-EXISTING is the NAME argument, PREFIX is null, and TYPE, DESCRIPTION, and PROPS are the same. All created coding systems are put @@ -1030,7 +1199,7 @@ enum eol_type eol_wrapper = EOL_AUTODETECT; struct coding_system_methods *meths; Lisp_Object csobj; - Lisp_Object defmnem = Qnil; + Lisp_Object defmnem = Qnil, aliases = Qnil; if (NILP (type)) type = Qundecided; @@ -1119,15 +1288,55 @@ CODING_SYSTEM_POST_READ_CONVERSION (cs) = value; else if (EQ (key, Qpre_write_conversion)) CODING_SYSTEM_PRE_WRITE_CONVERSION (cs) = value; + else if (EQ (key, Qaliases)) + { + EXTERNAL_LIST_LOOP_2 (alias, value) + { + CHECK_SYMBOL (alias); + + if (!NILP (Fcoding_system_canonical_name_p (alias))) + { + invalid_change ("Symbol is the canonical name of a " + "coding system and cannot be redefined", + alias); + } + } + aliases = value; + } /* FSF compatibility */ else if (EQ (key, Qtranslation_table_for_decode)) ; else if (EQ (key, Qtranslation_table_for_encode)) ; else if (EQ (key, Qsafe_chars)) - CODING_SYSTEM_SAFE_CHARS (cs) = value; + { + CHECK_CHAR_TABLE (value); + CODING_SYSTEM_SAFE_CHARS (cs) = value; + } else if (EQ (key, Qsafe_charsets)) - CODING_SYSTEM_SAFE_CHARSETS (cs) = value; + { + if (!EQ (Qt, value) + /* Would be nice to actually do this check, but there are + some order conflicts with japanese.el and + mule-coding.el */ + && 0) + { +#ifdef MULE + EXTERNAL_LIST_LOOP_2 (safe_charset, value) + CHECK_CHARSET (Ffind_charset (safe_charset)); +#endif + } + + CODING_SYSTEM_SAFE_CHARSETS (cs) = value; + } + else if (EQ (key, Qcategory)) + { + Fput (name_or_existing, intern ("coding-system-property"), + Fplist_put (Fget (name_or_existing, + intern ("coding-system-property"), + Qnil), + Qcategory, value)); + } else if (EQ (key, Qmime_charset)) ; else if (EQ (key, Qvalid_codes)) @@ -1186,6 +1395,11 @@ csobj)); } XCODING_SYSTEM_EOL_TYPE (csobj) = eol_wrapper; + + { + EXTERNAL_LIST_LOOP_2 (alias, aliases) + Fdefine_coding_system_alias (alias, csobj); + } } return csobj; @@ -1199,339 +1413,16 @@ return make_coding_system_1 (existing, prefix, type, description, props); } -DEFUN ("make-coding-system", Fmake_coding_system, 2, 4, 0, /* -Register symbol NAME as a coding system. - -TYPE describes the conversion method used and should be one of - -nil or `undecided' - Automatic conversion. XEmacs attempts to detect the coding system - used in the file. -`chain' - Chain two or more coding systems together to make a combination coding - system. -`no-conversion' - No conversion. Use this for binary files and such. On output, - graphic characters that are not in ASCII or Latin-1 will be - replaced by a ?. (For a no-conversion-encoded buffer, these - characters will only be present if you explicitly insert them.) -`convert-eol' - Convert CRLF sequences or CR to LF. -`shift-jis' - Shift-JIS (a Japanese encoding commonly used in PC operating systems). -`unicode' - Any Unicode encoding (UCS-4, UTF-8, UTF-16, etc.). -`mswindows-unicode-to-multibyte' - (MS Windows only) Converts from Windows Unicode to Windows Multibyte - (any code page encoding) upon encoding, and the other way upon decoding. -`mswindows-multibyte' - Converts to or from Windows Multibyte (any code page encoding). - This is resolved into a chain of `mswindows-unicode' and - `mswindows-unicode-to-multibyte'. -`iso2022' - Any ISO2022-compliant encoding. Among other things, this includes - JIS (the Japanese encoding commonly used for e-mail), EUC (the - standard Unix encoding for Japanese and other languages), and - Compound Text (the encoding used in X11). You can specify more - specific information about the conversion with the PROPS argument. -`big5' - Big5 (the encoding commonly used for Mandarin Chinese in Taiwan). -`ccl' - The conversion is performed using a user-written pseudo-code - program. CCL (Code Conversion Language) is the name of this - pseudo-code. -`gzip' - GZIP compression format. -`internal' - Write out or read in the raw contents of the memory representing - the buffer's text. This is primarily useful for debugging - purposes, and is only enabled when XEmacs has been compiled with - DEBUG_XEMACS defined (via the --debug configure option). - WARNING: Reading in a file using `internal' conversion can result - in an internal inconsistency in the memory representing a - buffer's text, which will produce unpredictable results and may - cause XEmacs to crash. Under normal circumstances you should - never use `internal' conversion. - -DESCRIPTION is a short English phrase describing the coding system, -suitable for use as a menu item. (See also the `documentation' property -below.) - -PROPS is a property list, describing the specific nature of the -character set. Recognized properties are: - -`mnemonic' - String to be displayed in the modeline when this coding system is - active. - -`documentation' - Detailed documentation on the coding system. - -`eol-type' - End-of-line conversion to be used. It should be one of - - nil - Automatically detect the end-of-line type (LF, CRLF, - or CR). Also generate subsidiary coding systems named - `NAME-unix', `NAME-dos', and `NAME-mac', that are - identical to this coding system but have an EOL-TYPE - value of `lf', `crlf', and `cr', respectively. - `lf' - The end of a line is marked externally using ASCII LF. - Since this is also the way that XEmacs represents an - end-of-line internally, specifying this option results - in no end-of-line conversion. This is the standard - format for Unix text files. - `crlf' - The end of a line is marked externally using ASCII - CRLF. This is the standard format for MS-DOS text - files. - `cr' - The end of a line is marked externally using ASCII CR. - This is the standard format for Macintosh text files. - t - Automatically detect the end-of-line type but do not - generate subsidiary coding systems. (This value is - converted to nil when stored internally, and - `coding-system-property' will return nil.) - -`post-read-conversion' - The value is a function to call after some text is inserted and - decoded by the coding system itself and before any functions in - `after-change-functions' are called. (#### Not actually true in - XEmacs. `after-change-functions' will be called twice if - `post-read-conversion' changes something.) The argument of this - function is the same as for a function in - `after-insert-file-functions', i.e. LENGTH of the text inserted, - with point at the head of the text to be decoded. - -`pre-write-conversion' - The value is a function to call after all functions in - `write-region-annotate-functions' and `buffer-file-format' are - called, and before the text is encoded by the coding system itself. - The arguments to this function are the same as those of a function - in `write-region-annotate-functions', i.e. FROM and TO, specifying - a region of text. - - - -The following properties are allowed for FSF compatibility but currently -ignored: - -`translation-table-for-decode' - The value is a translation table to be applied on decoding. See - the function `make-translation-table' for the format of translation - table. This is not applicable to CCL-based coding systems. - -`translation-table-for-encode' - The value is a translation table to be applied on encoding. This is - not applicable to CCL-based coding systems. - -`mime-charset' - The value is a symbol of which name is `MIME-charset' parameter of - the coding system. - -`valid-codes' (meaningful only for a coding system based on CCL) - The value is a list to indicate valid byte ranges of the encoded - file. Each element of the list is an integer or a cons of integer. - In the former case, the integer value is a valid byte code. In the - latter case, the integers specifies the range of valid byte codes. - -The following properties are used by `default-query-coding-region', -the default implementation of `query-coding-region'. This -implementation and these properties are not used by the Unicode coding -systems, nor by those CCL coding systems created with -`make-8-bit-coding-system'. - -`safe-chars' - The value is a char table. If a character has non-nil value in it, - the character is safely supported by the coding system. - Under XEmacs, for the moment, this is used in addition to the - `safe-charsets' property. It does not override it as it does - under GNU Emacs. #### We need to consider if we should keep this - behaviour. - -`safe-charsets' - The value is a list of charsets safely supported by the coding - system. For coding systems based on ISO 2022, XEmacs may try to - encode characters outside these character sets, but outside of - East Asia and East Asian coding systems, it is unlikely that - consumers of the data will understand XEmacs' encoding. - The value t means that all XEmacs character sets handles are supported. - -The following additional property is recognized if TYPE is `convert-eol': - -`subtype' - One of `lf', `crlf', `cr' or nil (for autodetection). When decoding, - the corresponding sequence will be converted to LF. When encoding, - the opposite happens. This coding system converts characters to - characters. - - - -The following additional properties are recognized if TYPE is `iso2022': - -`charset-g0' -`charset-g1' -`charset-g2' -`charset-g3' - The character set initially designated to the G0 - G3 registers. - The value should be one of - - -- A charset object (designate that character set) - -- nil (do not ever use this register) - -- t (no character set is initially designated to - the register, but may be later on; this automatically - sets the corresponding `force-g*-on-output' property) - -`force-g0-on-output' -`force-g1-on-output' -`force-g2-on-output' -`force-g2-on-output' - If non-nil, send an explicit designation sequence on output before - using the specified register. - -`short' - If non-nil, use the short forms "ESC $ @", "ESC $ A", and - "ESC $ B" on output in place of the full designation sequences - "ESC $ ( @", "ESC $ ( A", and "ESC $ ( B". - -`no-ascii-eol' - If non-nil, don't designate ASCII to G0 at each end of line on output. - Setting this to non-nil also suppresses other state-resetting that - normally happens at the end of a line. - -`no-ascii-cntl' - If non-nil, don't designate ASCII to G0 before control chars on output. - -`seven' - If non-nil, use 7-bit environment on output. Otherwise, use 8-bit - environment. - -`lock-shift' - If non-nil, use locking-shift (SO/SI) instead of single-shift - or designation by escape sequence. - -`no-iso6429' - If non-nil, don't use ISO6429's direction specification. - -`escape-quoted' - If non-nil, literal control characters that are the same as - the beginning of a recognized ISO2022 or ISO6429 escape sequence - (in particular, ESC (0x1B), SO (0x0E), SI (0x0F), SS2 (0x8E), - SS3 (0x8F), and CSI (0x9B)) are "quoted" with an escape character - so that they can be properly distinguished from an escape sequence. - (Note that doing this results in a non-portable encoding.) This - encoding flag is used for byte-compiled files. Note that ESC - is a good choice for a quoting character because there are no - escape sequences whose second byte is a character from the Control-0 - or Control-1 character sets; this is explicitly disallowed by the - ISO2022 standard. - -`input-charset-conversion' - A list of conversion specifications, specifying conversion of - characters in one charset to another when decoding is performed. - Each specification is a list of two elements: the source charset, - and the destination charset. - -`output-charset-conversion' - A list of conversion specifications, specifying conversion of - characters in one charset to another when encoding is performed. - The form of each specification is the same as for - `input-charset-conversion'. - - - -The following additional properties are recognized (and required) -if TYPE is `ccl': - -`decode' - CCL program used for decoding (converting to internal format). - -`encode' - CCL program used for encoding (converting to external format). - - -The following additional properties are recognized if TYPE is `chain': - -`chain' - List of coding systems to be chained together, in decoding order. - -`canonicalize-after-coding' - Coding system to be returned by the detector routines in place of - this coding system. - - - -The following additional properties are recognized if TYPE is `unicode': - -`unicode-type' - One of `utf-16', `utf-8', `ucs-4', or `utf-7' (the latter is not - yet implemented). `utf-16' is the basic two-byte encoding; - `ucs-4' is the four-byte encoding; `utf-8' is an ASCII-compatible - variable-width 8-bit encoding; `utf-7' is a 7-bit encoding using - only characters that will safely pass through all mail gateways. - [[ This should be \"transformation format\". There should also be - `ucs-2' (or `bmp' -- no surrogates) and `utf-32' (range checked). ]] - -`little-endian' - If non-nil, `utf-16' and `ucs-4' will write out the groups of two - or four bytes little-endian instead of big-endian. This is required, - for example, under Windows. - -`need-bom' - If non-nil, a byte order mark (BOM, or Unicode FFFE) should be - written out at the beginning of the data. This serves both to - identify the endianness of the following data and to mark the - data as Unicode (at least, this is how Windows uses it). - [[ The correct term is \"signature\", since this technique may also - be used with UTF-8. That is the term used in the standard. ]] - - -The following additional properties are recognized if TYPE is -`mswindows-multibyte': - -`code-page' - Either a number (specifying a particular code page) or one of the - symbols `ansi', `oem', `mac', or `ebcdic', specifying the ANSI, - OEM, Macintosh, or EBCDIC code page associated with a particular - locale (given by the `locale' property). NOTE: EBCDIC code pages - only exist in Windows 2000 and later. - -`locale' - If `code-page' is a symbol, this specifies the locale whose code - page of the corresponding type should be used. This should be - one of the following: A cons of two strings, (LANGUAGE - . SUBLANGUAGE) (see `mswindows-set-current-locale'); a string (a - language; SUBLANG_DEFAULT, i.e. the default sublanguage, is - used); or one of the symbols `current', `user-default', or - `system-default', corresponding to the values of - `mswindows-current-locale', `mswindows-user-default-locale', or - `mswindows-system-default-locale', respectively. - - - -The following additional properties are recognized if TYPE is `undecided': -\[[ Doesn't GNU use \"detect-*\" for the following two? ]] - -`do-eol' - Do EOL detection. - -`do-coding' - Do encoding detection. - -`coding-system' - If encoding detection is not done, use the specified coding system - to do decoding. This is used internally when implementing coding - systems with an EOL type that specifies autodetection (the default), - so that the detector routines return the proper subsidiary. - - - -The following additional property is recognized if TYPE is `gzip': - -`level' - Compression level: 0 through 9, or `default' (currently 6). +DEFUN ("make-coding-system-internal", Fmake_coding_system_internal, 2, 4, 0, /* +See `make-coding-system'. This does much of the work of that function. + +Without Mule support, it does all the work of that function, and an alias +exists, mapping `make-coding-system' to +`make-coding-system-internal'. You'll need a non-Mule XEmacs to read the +complete docstring. Or you can just read it in make-coding-system.el; +something like the following should work: + + \\[find-function-other-window] find-file RET \\[find-file] mule/make-coding-system.el RET */ (name, type, description, props)) @@ -1577,16 +1468,6 @@ return new_coding_system; } -DEFUN ("coding-system-canonical-name-p", Fcoding_system_canonical_name_p, - 1, 1, 0, /* -Return t if OBJECT names a coding system, and is not a coding system alias. -*/ - (object)) -{ - return CODING_SYSTEMP (Fgethash (object, Vcoding_system_hash_table, Qnil)) - ? Qt : Qnil; -} - /* #### Shouldn't this really be a find/get pair? */ DEFUN ("coding-system-alias-p", Fcoding_system_alias_p, 1, 1, 0, /* @@ -2475,6 +2356,100 @@ CODING_ENCODE); } +DEFUN ("query-coding-region", Fquery_coding_region, 3, 7, 0, /* +Work out whether CODING-SYSTEM can losslessly encode a region. + +START and END are the beginning and end of the region to check. +CODING-SYSTEM is the coding system to try. + +Optional argument BUFFER is the buffer to check, and defaults to the current +buffer. + +IGNORE-INVALID-SEQUENCESP, also an optional argument, says to treat XEmacs +characters which have an unambiguous encoded representation, despite being +undefined in what they represent, as encodable. These chiefly arise with +variable-length encodings like UTF-8 and UTF-16, where an invalid sequence +is passed through to XEmacs as a sequence of characters with a defined +correspondence to the octets on disk, but no non-error semantics; see the +`invalid-sequence-coding-system' argument to `set-language-info'. + +They can also arise with fixed-length encodings like ISO 8859-7, where +certain octets on disk have undefined values, and treating them as +corresponding to the ISO 8859-1 characters with the same numerical values +may lead to data that is not understood by other applications. + +Optional argument ERRORP says to signal a `text-conversion-error' if some +character in the region cannot be encoded, and defaults to nil. + +Optional argument HIGHLIGHT says to display unencodable characters in the +region using `query-coding-warning-face'. It defaults to nil. + +This function can return multiple values; the intention is that callers use +`multiple-value-bind' or the related CL multiple value functions to deal +with it. The first result is `t' if the region can be encoded using +CODING-SYSTEM, or `nil' if not. If the region cannot be encoded using +CODING-SYSTEM, the second result is a range table describing the positions +of the unencodable characters. + +Ranges that describe characters that would be ignored were +IGNORE-INVALID-SEQUENCESP non-nil map to the symbol `invalid-sequence'; +other ranges map to the symbol `unencodable'. If IGNORE-INVALID-SEQUENCESP +is non-nil, all ranges will map to the symbol `unencodable'. See +`make-range-table' for more details of range tables. +*/ + (start, end, coding_system, buffer, ignore_invalid_sequencesp, + errorp, highlight)) +{ + Charbpos b, e; + struct buffer *buf = decode_buffer (buffer, 1); + Lisp_Object result; + int flags = 0, speccount = specpdl_depth (); + + coding_system = Fget_coding_system (coding_system); + + get_buffer_range_char (buf, start, end, &b, &e, 0); + + if (buf != current_buffer) + { + record_unwind_protect (save_current_buffer_restore, Fcurrent_buffer ()); + set_buffer_internal (buf); + } + + record_unwind_protect (save_excursion_restore, save_excursion_save ()); + + BUF_SET_PT (buf, b); + + if (!NILP (ignore_invalid_sequencesp)) + { + flags |= QUERY_METHOD_IGNORE_INVALID_SEQUENCES; + } + + if (!NILP (errorp)) + { + flags |= QUERY_METHOD_ERRORP; + } + + if (!NILP (highlight)) + { + flags |= QUERY_METHOD_HIGHLIGHT; + } + + result = XCODESYSMETH_OR_GIVEN (coding_system, query, + (coding_system, buf, e, flags), Qunbound); + + if (UNBOUNDP (result)) + { + signal_error (Qtext_conversion_error, + "Coding system doesn't say what it can encode", + XCODING_SYSTEM_NAME (coding_system)); + } + + result = (NILP (result)) ? Qt : values2 (Qnil, result); + + return unbind_to_1 (speccount, result); +} + + /************************************************************************/ /* Chain methods */ @@ -4550,7 +4525,7 @@ DEFSUBR (Fget_coding_system); DEFSUBR (Fcoding_system_list); DEFSUBR (Fcoding_system_name); - DEFSUBR (Fmake_coding_system); + DEFSUBR (Fmake_coding_system_internal); DEFSUBR (Fcopy_coding_system); DEFSUBR (Fcoding_system_canonical_name_p); DEFSUBR (Fcoding_system_alias_p); @@ -4573,6 +4548,7 @@ DEFSUBR (Fdetect_coding_region); DEFSUBR (Fdecode_coding_region); DEFSUBR (Fencode_coding_region); + DEFSUBR (Fquery_coding_region); DEFSYMBOL_MULTIWORD_PREDICATE (Qcoding_systemp); DEFSYMBOL (Qno_conversion); DEFSYMBOL (Qconvert_eol); @@ -4621,6 +4597,10 @@ DEFSYMBOL (Qescape_quoted); + DEFSYMBOL (Qquery_coding_warning_face); + DEFSYMBOL (Qaliases); + DEFSYMBOL (Qcharset_skip_chars_string); + #ifdef HAVE_ZLIB DEFSYMBOL (Qgzip); #endif @@ -4844,6 +4824,12 @@ */ ); Vdebug_coding_detection = Qnil; #endif + +#ifdef MULE + Vdefault_query_coding_region_chartab_cache + = make_lisp_hash_table (25, HASH_TABLE_NON_WEAK, HASH_TABLE_EQUAL); + staticpro (&Vdefault_query_coding_region_chartab_cache); +#endif } /* #### reformat this for consistent appearance? */ @@ -4851,7 +4837,7 @@ void complex_vars_of_file_coding (void) { - Fmake_coding_system + Fmake_coding_system_internal (Qconvert_eol_cr, Qconvert_eol, build_msg_string ("Convert CR to LF"), nconc2 (list6 (Qdocumentation, @@ -4863,9 +4849,10 @@ /* VERY IMPORTANT! Tell make-coding-system not to generate subsidiaries -- it needs the coding systems we're creating to do so! */ - list2 (Qeol_type, Qlf))); - - Fmake_coding_system + list4 (Qeol_type, Qlf, + Qsafe_charsets, Qt))); + + Fmake_coding_system_internal (Qconvert_eol_lf, Qconvert_eol, build_msg_string ("Convert LF to LF (do nothing)"), nconc2 (list6 (Qdocumentation, @@ -4876,9 +4863,10 @@ /* VERY IMPORTANT! Tell make-coding-system not to generate subsidiaries -- it needs the coding systems we're creating to do so! */ - list2 (Qeol_type, Qlf))); - - Fmake_coding_system + list4 (Qeol_type, Qlf, + Qsafe_charsets, Qt))); + + Fmake_coding_system_internal (Qconvert_eol_crlf, Qconvert_eol, build_msg_string ("Convert CRLF to LF"), nconc2 (list6 (Qdocumentation, @@ -4887,12 +4875,14 @@ "(used internally and under Unix to mark the end of a line)."), Qmnemonic, build_string ("CRLF->LF"), Qsubtype, Qcrlf), + /* VERY IMPORTANT! Tell make-coding-system not to generate subsidiaries -- it needs the coding systems we're creating to do so! */ - list2 (Qeol_type, Qlf))); - - Fmake_coding_system + list4 (Qeol_type, Qlf, + Qsafe_charsets, Qt))); + + Fmake_coding_system_internal (Qconvert_eol_autodetect, Qconvert_eol, build_msg_string ("Autodetect EOL type"), nconc2 (list6 (Qdocumentation, @@ -4903,9 +4893,10 @@ /* VERY IMPORTANT! Tell make-coding-system not to generate subsidiaries -- it needs the coding systems we're creating to do so! */ - list2 (Qeol_type, Qlf))); - - Fmake_coding_system + list4 (Qeol_type, Qlf, + Qsafe_charsets, Qt))); + + Fmake_coding_system_internal (Qundecided, Qundecided, build_msg_string ("Undecided (auto-detect)"), nconc2 (list4 (Qdocumentation, @@ -4918,7 +4909,7 @@ though, I don't think.) */ Qeol_type, Qlf))); - Fmake_coding_system + Fmake_coding_system_internal (intern ("undecided-dos"), Qundecided, build_msg_string ("Undecided (auto-detect) (CRLF)"), nconc2 (list4 (Qdocumentation, @@ -4928,7 +4919,7 @@ list4 (Qdo_coding, Qt, Qeol_type, Qcrlf))); - Fmake_coding_system + Fmake_coding_system_internal (intern ("undecided-unix"), Qundecided, build_msg_string ("Undecided (auto-detect) (LF)"), nconc2 (list4 (Qdocumentation, @@ -4938,7 +4929,7 @@ list4 (Qdo_coding, Qt, Qeol_type, Qlf))); - Fmake_coding_system + Fmake_coding_system_internal (intern ("undecided-mac"), Qundecided, build_msg_string ("Undecided (auto-detect) (CR)"), nconc2 (list4 (Qdocumentation, @@ -4949,26 +4940,42 @@ Qeol_type, Qcr))); /* Need to create this here or we're really screwed. */ - Fmake_coding_system + Fmake_coding_system_internal (Qraw_text, Qno_conversion, build_msg_string ("Raw Text"), - list4 (Qdocumentation, - build_msg_string ("Raw text converts only line-break codes, and acts otherwise like `binary'."), - Qmnemonic, build_string ("Raw"))); - - Fmake_coding_system + nconc2 (list4 (Qdocumentation, + build_msg_string ("Raw text converts only line-break " + "codes, and acts otherwise like " + "`binary'."), + Qmnemonic, build_string ("Raw")), +#ifdef MULE + list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, + Vcharset_latin_iso8859_1)))); + +#else + Qnil)); +#endif + + Fmake_coding_system_internal (Qbinary, Qno_conversion, build_msg_string ("Binary"), - list6 (Qdocumentation, - build_msg_string ( + nconc2 (list6 (Qdocumentation, + build_msg_string ( "This coding system is as close as it comes to doing no conversion.\n" "On input, each byte is converted directly into the character\n" "with the corresponding code -- i.e. from the `ascii', `control-1',\n" "or `latin-1' character sets. On output, these characters are\n" "converted back to the corresponding bytes, and other characters\n" "are converted to the default character, i.e. `~'."), - Qeol_type, Qlf, - Qmnemonic, build_string ("Binary"))); + Qeol_type, Qlf, + Qmnemonic, build_string ("Binary")), +#ifdef MULE + list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, + Vcharset_latin_iso8859_1)))); + +#else + Qnil)); +#endif /* Formerly aliased to raw-text! Completely bogus and not even the same as FSF Emacs. */
--- a/src/file-coding.h Sat Sep 19 17:56:23 2009 +0200 +++ b/src/file-coding.h Sat Sep 19 22:53:13 2009 +0100 @@ -230,7 +230,8 @@ ccl_coding_system, shift_jis_coding_system, big5_coding_system, - unicode_coding_system + unicode_coding_system, + fixed_width_coding_system }; struct coding_system_methods @@ -318,6 +319,28 @@ const unsigned char *src, unsigned_char_dynarr *dst, Bytecount n); + /* Query method: Check whether the buffer text between point and END + can be encoded by this coding system. Returns + either nil (meaning the text can be encoded by the coding system) or a + range table object describing the stretches that the coding system + cannot encode. + + Possible values for flags are below, search for + QUERY_METHOD_IGNORE_INVALID_SEQUENCES. + + Coding systems are expected to be able to behave sensibly with all + possible octets on decoding, which is why this method is only available + for encoding. */ + Lisp_Object (*query_method) (Lisp_Object coding_system, struct buffer *buf, + Charbpos end, int flags); + + /* Same as the previous method, but this works in the context of + lstreams. (Where the data do need to be copied, unfortunately.) The + intention is to implement the query method for the mswindows-multibyte + coding systems in terms of a query_lstream method. */ + Lisp_Object (*query_lstream_method) (struct coding_stream *str, + const Ibyte *start, Bytecount n); + /* Coding mark method: Mark any Lisp objects in the type-specific data attached to `struct coding_stream'. Optional. */ void (*mark_coding_stream_method) (struct coding_stream *str); @@ -387,6 +410,24 @@ int coding_data_size; }; +/* Values for flags, as passed to query_method. */ + +#define QUERY_METHOD_IGNORE_INVALID_SEQUENCES 0x0001 +#define QUERY_METHOD_ERRORP 0x0002 +#define QUERY_METHOD_HIGHLIGHT 0x0004 + +enum query_coding_failure_reasons + { + query_coding_succeeded = 0, + query_coding_unencodable = 1, + query_coding_invalid_sequence = 2 + }; + +extern Lisp_Object Qquery_coding_warning_face; + +Lisp_Object default_query_method (Lisp_Object, struct buffer *, Charbpos, + int); + /***** Calling a coding-system method *****/ #define RAW_CODESYSMETH(cs, m) ((cs)->methods->m##_method) @@ -413,7 +454,6 @@ #define XCODESYSMETH_OR_GIVEN(cs, m, args, given) \ CODESYSMETH_OR_GIVEN (XCODING_SYSTEM (cs), m, args, given) - /***** Defining new coding-system types *****/ extern const struct sized_memory_description coding_system_empty_extra_description; @@ -477,6 +517,7 @@ ty##_coding_system_methods->extra_description = \ &coding_system_empty_extra_description; \ ty##_coding_system_methods->enumtype = ty##_coding_system; \ + ty##_coding_system_methods->query_method = default_query_method; \ defsymbol_nodump (&ty##_coding_system_methods->predicate_symbol, \ pred_sym); \ add_entry_to_coding_system_type_list (ty##_coding_system_methods); \ @@ -1029,6 +1070,7 @@ #ifdef MULE DECLARE_CODING_SYSTEM_TYPE (iso2022); DECLARE_CODING_SYSTEM_TYPE (ccl); +DECLARE_CODING_SYSTEM_TYPE (fixed_width); DECLARE_CODING_SYSTEM_TYPE (shift_jis); DECLARE_CODING_SYSTEM_TYPE (big5); #endif
--- a/src/general-slots.h Sat Sep 19 17:56:23 2009 +0200 +++ b/src/general-slots.h Sat Sep 19 22:53:13 2009 +0100 @@ -235,6 +235,8 @@ SYMBOL (Qprocess); SYMBOL_KEYWORD (Q_properties); SYMBOL (Qprovide); +SYMBOL (Qquery_coding_clear_highlights); +SYMBOL (Qquery_coding_warning_face); SYMBOL (Qquestion); SYMBOL_KEYWORD (Q_question); SYMBOL (Qradio); @@ -267,6 +269,7 @@ SYMBOL_KEYWORD (Q_style); SYMBOL_KEYWORD (Q_suffix); SYMBOL (Qsubtype); +SYMBOL (Qsucceeded); SYMBOL (Qsymbol); SYMBOL (Qsyntax); SYMBOL (Qsystem_default); @@ -287,6 +290,8 @@ SYMBOL (Qtype); SYMBOL (Qundecided); SYMBOL (Qundefined); +SYMBOL (Qunencodable); +SYMBOL (Qinvalid_sequence); SYMBOL (Qunimplemented); SYMBOL (Qunicode_registries); SYMBOL (Qunicode_type);
--- a/src/intl-win32.c Sat Sep 19 17:56:23 2009 +0200 +++ b/src/intl-win32.c Sat Sep 19 22:53:13 2009 +0100 @@ -2349,7 +2349,7 @@ void complex_vars_of_intl_win32 (void) { - Fmake_coding_system + Fmake_coding_system_internal (Qmswindows_unicode, Qunicode, build_msg_string ("MS Windows Unicode"), nconc2 (list4 (Qdocumentation,
--- a/src/lisp.h Sat Sep 19 17:56:23 2009 +0200 +++ b/src/lisp.h Sat Sep 19 22:53:13 2009 +0100 @@ -4633,7 +4633,7 @@ EXFUN (Fencode_shift_jis_char, 1); EXFUN (Ffind_coding_system, 1); EXFUN (Fget_coding_system, 1); -EXFUN (Fmake_coding_system, 4); +EXFUN (Fmake_coding_system_internal, 4); EXFUN (Fset_coding_category_system, 2); EXFUN (Fset_coding_priority_list, 1); EXFUN (Fsubsidiary_coding_system, 2); @@ -5009,6 +5009,7 @@ EXFUN (Fget_range_table, 3); EXFUN (Fmake_range_table, 1); EXFUN (Fput_range_table, 4); +EXFUN (Fcopy_range_table, 1); extern Lisp_Object Qstart_closed_end_open; extern Lisp_Object Qstart_open_end_open;
--- a/src/mule-coding.c Sat Sep 19 17:56:23 2009 +0200 +++ b/src/mule-coding.c Sat Sep 19 22:53:13 2009 +0100 @@ -36,6 +36,10 @@ #include "charset.h" #include "mule-ccl.h" #include "file-coding.h" +#include "elhash.h" +#include "rangetab.h" +#include "buffer.h" +#include "extents.h" Lisp_Object Qshift_jis, Qiso2022, Qbig5, Qccl; @@ -48,6 +52,9 @@ Lisp_Object Qiso_7, Qiso_8_designate, Qiso_8_1, Qiso_8_2, Qiso_lock_shift; +Lisp_Object Qfrom_unicode, Qquery_skip_chars, Qinvalid_sequences_skip_chars; +Lisp_Object Qfixed_width; + /************************************************************************/ /* Shift-JIS methods */ @@ -3388,6 +3395,503 @@ else return Qunbound; } + +/************************************************************************/ +/* FIXED_WIDTH methods */ +/************************************************************************/ + +struct fixed_width_coding_system +{ + /* For a fixed_width coding system, these specify the CCL programs + used for decoding (input) and encoding (output). */ + Lisp_Object decode; + Lisp_Object encode; + Lisp_Object from_unicode; + Lisp_Object invalid_sequences_skip_chars; + Lisp_Object query_skip_chars; + + /* This is not directly accessible from Lisp; it is a concatenation of the + previous two strings, used for simplicity of implementation. */ + Lisp_Object invalid_and_query_skip_chars; +}; + +#define CODING_SYSTEM_FIXED_WIDTH_DECODE(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, fixed_width)->decode) +#define CODING_SYSTEM_FIXED_WIDTH_ENCODE(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, fixed_width)->encode) +#define CODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, fixed_width)->from_unicode) +#define CODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, \ + fixed_width)->invalid_sequences_skip_chars) +#define CODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, fixed_width)->query_skip_chars) +#define CODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_TYPE_DATA (codesys, \ + fixed_width)->invalid_and_query_skip_chars) + +#define XCODING_SYSTEM_FIXED_WIDTH_DECODE(codesys) \ + CODING_SYSTEM_FIXED_WIDTH_DECODE (XCODING_SYSTEM (codesys)) +#define XCODING_SYSTEM_FIXED_WIDTH_ENCODE(codesys) \ + CODING_SYSTEM_FIXED_WIDTH_ENCODE (XCODING_SYSTEM (codesys)) +#define XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE(codesys) \ + (CODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (XCODING_SYSTEM (codesys))) +#define XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS \ + (XCODING_SYSTEM (codesys))) +#define XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (XCODING_SYSTEM (codesys))) +#define XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS(codesys) \ + (CODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS \ + (XCODING_SYSTEM(codesys))) + +struct fixed_width_coding_stream +{ + /* state of the running CCL program */ + struct ccl_program ccl; +}; + +static const struct memory_description +fixed_width_coding_system_description[] = { + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, decode) }, + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, encode) }, + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, + from_unicode) }, + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, + invalid_sequences_skip_chars) }, + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, + query_skip_chars) }, + { XD_LISP_OBJECT, offsetof (struct fixed_width_coding_system, + invalid_and_query_skip_chars) }, + { XD_END } +}; + +DEFINE_CODING_SYSTEM_TYPE_WITH_DATA (fixed_width); + +static void +fixed_width_mark (Lisp_Object codesys) +{ + mark_object (XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys)); + mark_object (XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys)); + mark_object (XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (codesys)); + mark_object + (XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS (codesys)); + mark_object (XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (codesys) ); + mark_object + (XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS(codesys)); +} + +static Bytecount +fixed_width_convert (struct coding_stream *str, const UExtbyte *src, + unsigned_char_dynarr *dst, Bytecount n) +{ + struct fixed_width_coding_stream *data = + CODING_STREAM_TYPE_DATA (str, fixed_width); + Bytecount orign = n; + + data->ccl.last_block = str->eof; + /* When applying a CCL program to a stream, SRC must not be NULL -- this + is a special signal to the driver that read and write operations are + not allowed. The code does not actually look at what SRC points to if + N == 0. */ + ccl_driver (&data->ccl, src ? src : (const unsigned char *) "", + dst, n, 0, + str->direction == CODING_DECODE ? CCL_MODE_DECODING : + CCL_MODE_ENCODING); + return orign; +} + +static void +fixed_width_init_coding_stream (struct coding_stream *str) +{ + struct fixed_width_coding_stream *data = + CODING_STREAM_TYPE_DATA (str, fixed_width); + + setup_ccl_program (&data->ccl, + str->direction == CODING_DECODE ? + XCODING_SYSTEM_FIXED_WIDTH_DECODE (str->codesys) : + XCODING_SYSTEM_FIXED_WIDTH_ENCODE (str->codesys)); +} + +static void +fixed_width_rewind_coding_stream (struct coding_stream *str) +{ + fixed_width_init_coding_stream (str); +} + +static void +fixed_width_init (Lisp_Object codesys) +{ + XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys) = Qnil; + XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys) = Qnil; + XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (codesys) = Qnil; + XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS (codesys) = Qnil; + XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (codesys) = Qnil; + XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS(codesys) = Qnil; +} + +static int +fixed_width_putprop (Lisp_Object codesys, Lisp_Object key, + Lisp_Object value) +{ + struct ccl_program test_ccl; + + if (EQ (key, Qdecode) || EQ (key, Qencode)) + { + /* Check if the CCL infrastructure thinks this is a sane CCL + program: */ + if (setup_ccl_program (&test_ccl, value) < 0) + { + invalid_argument ("Invalid CCL program", value); + } + + if (EQ (key, Qdecode)) + { + XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys) = value; + } + else + { + XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys) = value; + } + } + else if (EQ (key, Qfrom_unicode)) + { + CHECK_HASH_TABLE (value); + XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (codesys) = value; + } + else if (EQ (key, Qinvalid_sequences_skip_chars)) + { + CHECK_STRING (value); + + /* Make sure Lisp can't make our data inconsistent: */ + value = Fcopy_sequence (value); + + XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS (codesys) + = value; + + XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS (codesys) + = concat2 (value, + XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (codesys)); + } + else if (EQ (key, Qquery_skip_chars)) + { + CHECK_STRING (value); + + /* Make sure Lisp can't make our data inconsistent: */ + value = Fcopy_sequence (value); + + XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (codesys) = value; + + XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS (codesys) + = concat2 (value, + XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS + (codesys)); + } + else + { + return 0; + } + + return 1; +} + +static Lisp_Object +fixed_width_getprop (Lisp_Object codesys, Lisp_Object prop) +{ + if (EQ (prop, Qdecode)) + { + return XCODING_SYSTEM_FIXED_WIDTH_DECODE (codesys); + } + else if (EQ (prop, Qencode)) + { + return XCODING_SYSTEM_FIXED_WIDTH_ENCODE (codesys); + } + else if (EQ (prop, Qfrom_unicode)) + { + return XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (codesys); + } + else if (EQ (prop, Qinvalid_sequences_skip_chars)) + { + /* Make sure Lisp can't make our data inconsistent: */ + return + Fcopy_sequence + (XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS (codesys)); + } + else if (EQ (prop, Qquery_skip_chars)) + { + return + Fcopy_sequence (XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS (codesys)); + } + + return Qunbound; +} + +static Lisp_Object Vfixed_width_query_ranges_cache; + +static Lisp_Object +fixed_width_skip_chars_data_given_strings (Lisp_Object string, + Lisp_Object query_skip_chars, + Lisp_Object + invalid_sequences_skip_chars, + Binbyte *fastmap, + int fastmap_len) +{ + Lisp_Object result = Fgethash (string, + Vfixed_width_query_ranges_cache, + Qnil); + REGISTER Ibyte *p, *pend; + REGISTER Ichar c; + + memset (fastmap, query_coding_unencodable, fastmap_len); + + if (!NILP (result)) + { + int i; + Lisp_Object ranged; + assert (RANGE_TABLEP (result)); + for (i = 0; i < fastmap_len; ++i) + { + ranged = Fget_range_table (make_int (i), result, Qnil); + + if (EQ (ranged, Qsucceeded)) + { + fastmap [i] = query_coding_succeeded; + } + else if (EQ (ranged, Qinvalid_sequence)) + { + fastmap [i] = query_coding_invalid_sequence; + } + } + return result; + } + + result = Fmake_range_table (Qstart_closed_end_closed); + + p = XSTRING_DATA (query_skip_chars); + pend = p + XSTRING_LENGTH (query_skip_chars); + + while (p != pend) + { + c = itext_ichar (p); + + INC_IBYTEPTR (p); + + if (c == '\\') + { + if (p == pend) break; + c = itext_ichar (p); + INC_IBYTEPTR (p); + } + + if (p != pend && *p == '-') + { + Ichar cend; + + /* Skip over the dash. */ + p++; + if (p == pend) break; + cend = itext_ichar (p); + + Fput_range_table (make_int (c), make_int (cend), Qsucceeded, + result); + + while (c <= cend && c < fastmap_len) + { + fastmap[c] = query_coding_succeeded; + c++; + } + + INC_IBYTEPTR (p); + } + else + { + if (c < fastmap_len) + fastmap[c] = query_coding_succeeded; + + Fput_range_table (make_int (c), make_int (c), Qsucceeded, result); + } + } + + + p = XSTRING_DATA (invalid_sequences_skip_chars); + pend = p + XSTRING_LENGTH (invalid_sequences_skip_chars); + + while (p != pend) + { + c = itext_ichar (p); + + INC_IBYTEPTR (p); + + if (c == '\\') + { + if (p == pend) break; + c = itext_ichar (p); + INC_IBYTEPTR (p); + } + + if (p != pend && *p == '-') + { + Ichar cend; + + /* Skip over the dash. */ + p++; + if (p == pend) break; + cend = itext_ichar (p); + + Fput_range_table (make_int (c), make_int (cend), Qinvalid_sequence, + result); + + while (c <= cend && c < fastmap_len) + { + fastmap[c] = query_coding_invalid_sequence; + c++; + } + + INC_IBYTEPTR (p); + } + else + { + if (c < fastmap_len) + fastmap[c] = query_coding_invalid_sequence; + + Fput_range_table (make_int (c), make_int (c), Qinvalid_sequence, + result); + } + } + + Fputhash (string, result, Vfixed_width_query_ranges_cache); + + return result; +} + +static Lisp_Object +fixed_width_query (Lisp_Object codesys, struct buffer *buf, + Charbpos end, int flags) +{ + Charbpos pos = BUF_PT (buf), fail_range_start, fail_range_end; + Charbpos pos_byte = BYTE_BUF_PT (buf); + Lisp_Object skip_chars_range_table, from_unicode, checked_unicode, + result = Qnil; + enum query_coding_failure_reasons failed_reason, + previous_failed_reason = query_coding_succeeded; + Binbyte fastmap[0xff]; + + from_unicode = XCODING_SYSTEM_FIXED_WIDTH_FROM_UNICODE (codesys); + + skip_chars_range_table = + fixed_width_skip_chars_data_given_strings + ((flags & QUERY_METHOD_IGNORE_INVALID_SEQUENCES ? + XCODING_SYSTEM_FIXED_WIDTH_INVALID_AND_QUERY_SKIP_CHARS + (codesys) : + XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS(codesys)), + XCODING_SYSTEM_FIXED_WIDTH_QUERY_SKIP_CHARS(codesys), + (flags & QUERY_METHOD_IGNORE_INVALID_SEQUENCES ? + build_string("") : + XCODING_SYSTEM_FIXED_WIDTH_INVALID_SEQUENCES_SKIP_CHARS (codesys)), + fastmap, (int)(sizeof (fastmap))); + + if (flags & QUERY_METHOD_HIGHLIGHT && + /* If we're being called really early, live without highlights getting + cleared properly: */ + !(UNBOUNDP (XSYMBOL (Qquery_coding_clear_highlights)->function))) + { + /* It's okay to call Lisp here, the only non-stack object we may have + allocated up to this point is skip_chars_range_table, and that's + reachable from its entry in Vfixed_width_query_ranges_cache. */ + call3 (Qquery_coding_clear_highlights, make_int (pos), make_int (end), + wrap_buffer (buf)); + } + + while (pos < end) + { + Ichar ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + if ((ch < (int) (sizeof(fastmap))) ? + (fastmap[ch] == query_coding_succeeded) : + (EQ (Qsucceeded, Fget_range_table (make_int (ch), + skip_chars_range_table, Qnil)))) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + fail_range_start = pos; + while ((pos < end) && + ((!(flags & QUERY_METHOD_IGNORE_INVALID_SEQUENCES) && + EQ (Qinvalid_sequence, Fget_range_table + (make_int (ch), skip_chars_range_table, Qnil)) + && (failed_reason = query_coding_invalid_sequence)) + || ((NILP ((checked_unicode = + Fgethash (Fchar_to_unicode (make_char (ch)), + from_unicode, Qnil)))) + && (failed_reason = query_coding_unencodable))) + && (previous_failed_reason == query_coding_succeeded + || previous_failed_reason == failed_reason)) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + previous_failed_reason = failed_reason; + } + + if (fail_range_start == pos) + { + /* The character can actually be encoded; move on. */ + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + assert (previous_failed_reason == query_coding_invalid_sequence + || previous_failed_reason == query_coding_unencodable); + + if (flags & QUERY_METHOD_ERRORP) + { + DECLARE_EISTRING (error_details); + + eicpy_ascii (error_details, "Cannot encode "); + eicat_lstr (error_details, + make_string_from_buffer (buf, fail_range_start, + pos - fail_range_start)); + eicat_ascii (error_details, " using coding system"); + + signal_error (Qtext_conversion_error, + (const CIbyte *)(eidata (error_details)), + XCODING_SYSTEM_NAME (codesys)); + } + + if (NILP (result)) + { + result = Fmake_range_table (Qstart_closed_end_open); + } + + fail_range_end = pos; + + Fput_range_table (make_int (fail_range_start), + make_int (fail_range_end), + (previous_failed_reason + == query_coding_unencodable ? + Qunencodable : Qinvalid_sequence), + result); + previous_failed_reason = query_coding_succeeded; + + if (flags & QUERY_METHOD_HIGHLIGHT) + { + Lisp_Object extent + = Fmake_extent (make_int (fail_range_start), + make_int (fail_range_end), + wrap_buffer (buf)); + + Fset_extent_priority + (extent, make_int (2 + mouse_highlight_priority)); + Fset_extent_face (extent, Qquery_coding_warning_face); + } + } + } + } + + return result; +} /************************************************************************/ @@ -3430,6 +3934,11 @@ DEFSYMBOL (Qiso_8_1); DEFSYMBOL (Qiso_8_2); DEFSYMBOL (Qiso_lock_shift); + + DEFSYMBOL (Qfrom_unicode); + DEFSYMBOL (Qinvalid_sequences_skip_chars); + DEFSYMBOL (Qquery_skip_chars); + DEFSYMBOL (Qfixed_width); } void @@ -3465,6 +3974,17 @@ CODING_SYSTEM_HAS_METHOD (ccl, putprop); CODING_SYSTEM_HAS_METHOD (ccl, getprop); + INITIALIZE_CODING_SYSTEM_TYPE_WITH_DATA (fixed_width, + "fixed-width-coding-system-p"); + CODING_SYSTEM_HAS_METHOD (fixed_width, mark); + CODING_SYSTEM_HAS_METHOD (fixed_width, convert); + CODING_SYSTEM_HAS_METHOD (fixed_width, query); + CODING_SYSTEM_HAS_METHOD (fixed_width, init); + CODING_SYSTEM_HAS_METHOD (fixed_width, init_coding_stream); + CODING_SYSTEM_HAS_METHOD (fixed_width, rewind_coding_stream); + CODING_SYSTEM_HAS_METHOD (fixed_width, putprop); + CODING_SYSTEM_HAS_METHOD (fixed_width, getprop); + INITIALIZE_CODING_SYSTEM_TYPE (shift_jis, "shift-jis-coding-system-p"); CODING_SYSTEM_HAS_METHOD (shift_jis, convert); @@ -3485,6 +4005,7 @@ { REINITIALIZE_CODING_SYSTEM_TYPE (iso2022); REINITIALIZE_CODING_SYSTEM_TYPE (ccl); + REINITIALIZE_CODING_SYSTEM_TYPE (fixed_width); REINITIALIZE_CODING_SYSTEM_TYPE (shift_jis); REINITIALIZE_CODING_SYSTEM_TYPE (big5); } @@ -3497,4 +4018,9 @@ void vars_of_mule_coding (void) { + /* This needs to be HASH_TABLE_EQ, there's a corner case where + HASH_TABLE_EQUAL won't work. */ + Vfixed_width_query_ranges_cache + = make_lisp_hash_table (32, HASH_TABLE_KEY_WEAK, HASH_TABLE_EQ); + staticpro (&Vfixed_width_query_ranges_cache); }
--- a/src/rangetab.c Sat Sep 19 17:56:23 2009 +0200 +++ b/src/rangetab.c Sat Sep 19 22:53:13 2009 +0100 @@ -92,6 +92,7 @@ for (i = 0; i < Dynarr_length (rt->entries); i++) mark_object (Dynarr_at (rt->entries, i).val); + return Qnil; }
--- a/src/unicode.c Sat Sep 19 17:56:23 2009 +0200 +++ b/src/unicode.c Sat Sep 19 22:53:13 2009 +0100 @@ -41,6 +41,10 @@ #include "file-coding.h" #include "opaque.h" +#include "buffer.h" +#include "rangetab.h" +#include "extents.h" + #include "sysfile.h" /* For more info about how Unicode works under Windows, see intl-win32.c. */ @@ -193,6 +197,16 @@ Lisp_Object Qutf_8_bom; +#ifdef MULE +/* These range tables are not directly accessible from Lisp: */ +static Lisp_Object Vunicode_invalid_and_query_skip_chars; +static Lisp_Object Vutf_8_invalid_and_query_skip_chars; +static Lisp_Object Vunicode_query_skip_chars; + +static Lisp_Object Vunicode_query_string, Vunicode_invalid_string, + Vutf_8_invalid_string; +#endif /* MULE */ + /* See the Unicode FAQ, http://www.unicode.org/faq/utf_bom.html#35 for this algorithm. @@ -2818,6 +2832,275 @@ write_c_string (printcharfun, ")"); } +#ifdef MULE +DEFUN ("set-unicode-query-skip-chars-args", Fset_unicode_query_skip_chars_args, + 3, 3, 0, /* +Specify strings as matching characters known to Unicode coding systems. + +QUERY-STRING is a string matching characters that can unequivocally be +encoded by the Unicode coding systems. + +INVALID-STRING is a string to match XEmacs characters that represent known +octets on disk, but that are invalid sequences according to Unicode. + +UTF-8-INVALID-STRING is a more restrictive string to match XEmacs characters +that are invalid UTF-8 octets. + +All three strings are in the format accepted by `skip-chars-forward'. +*/ + (query_string, invalid_string, utf_8_invalid_string)) +{ + CHECK_STRING (query_string); + CHECK_STRING (invalid_string); + CHECK_STRING (utf_8_invalid_string); + + Vunicode_query_string = query_string; + Vunicode_invalid_string = invalid_string; + Vutf_8_invalid_string = utf_8_invalid_string; + + return Qnil; +} + +static void +add_lisp_string_to_skip_chars_range (Lisp_Object string, Lisp_Object rtab, + Lisp_Object value) +{ + Ibyte *p, *pend; + Ichar c; + + p = XSTRING_DATA (string); + pend = p + XSTRING_LENGTH (string); + + while (p != pend) + { + c = itext_ichar (p); + + INC_IBYTEPTR (p); + + if (c == '\\') + { + if (p == pend) break; + c = itext_ichar (p); + INC_IBYTEPTR (p); + } + + if (p != pend && *p == '-') + { + Ichar cend; + + /* Skip over the dash. */ + p++; + if (p == pend) break; + cend = itext_ichar (p); + + Fput_range_table (make_int (c), make_int (cend), value, + rtab); + + INC_IBYTEPTR (p); + } + else + { + Fput_range_table (make_int (c), make_int (c), value, rtab); + } + } +} + +/* This function wouldn't be necessary if initialised range tables were + dumped properly; see + http://mid.gmane.org/18179.49815.622843.336527@parhasard.net . */ +static void +initialize_unicode_query_range_tables_from_strings (void) +{ + CHECK_STRING (Vunicode_query_string); + CHECK_STRING (Vunicode_invalid_string); + CHECK_STRING (Vutf_8_invalid_string); + + Vunicode_query_skip_chars = Fmake_range_table (Qstart_closed_end_closed); + + add_lisp_string_to_skip_chars_range (Vunicode_query_string, + Vunicode_query_skip_chars, + Qsucceeded); + + Vunicode_invalid_and_query_skip_chars + = Fcopy_range_table (Vunicode_query_skip_chars); + + add_lisp_string_to_skip_chars_range (Vunicode_invalid_string, + Vunicode_invalid_and_query_skip_chars, + Qinvalid_sequence); + + Vutf_8_invalid_and_query_skip_chars + = Fcopy_range_table (Vunicode_query_skip_chars); + + add_lisp_string_to_skip_chars_range (Vutf_8_invalid_string, + Vutf_8_invalid_and_query_skip_chars, + Qinvalid_sequence); +} + +static Lisp_Object +unicode_query (Lisp_Object codesys, struct buffer *buf, Charbpos end, + int flags) +{ + Charbpos pos = BUF_PT (buf), fail_range_start, fail_range_end; + Charbpos pos_byte = BYTE_BUF_PT (buf); + Lisp_Object skip_chars_range_table, result = Qnil; + enum query_coding_failure_reasons failed_reason, + previous_failed_reason = query_coding_succeeded; + int checked_unicode, invalid_lower_limit = UNICODE_ERROR_OCTET_RANGE_START, + invalid_upper_limit, unicode_type = XCODING_SYSTEM_UNICODE_TYPE (codesys); + + if (flags & QUERY_METHOD_HIGHLIGHT && + /* If we're being called really early, live without highlights getting + cleared properly: */ + !(UNBOUNDP (XSYMBOL (Qquery_coding_clear_highlights)->function))) + { + /* It's okay to call Lisp here, the only non-stack object we may have + allocated up to this point is skip_chars_range_table, and that's + reachable from its entry in Vfixed_width_query_ranges_cache. */ + call3 (Qquery_coding_clear_highlights, make_int (pos), make_int (end), + wrap_buffer (buf)); + } + + if (NILP (Vunicode_query_skip_chars)) + { + initialize_unicode_query_range_tables_from_strings(); + } + + if (flags & QUERY_METHOD_IGNORE_INVALID_SEQUENCES) + { + switch (unicode_type) + { + case UNICODE_UTF_8: + skip_chars_range_table = Vutf_8_invalid_and_query_skip_chars; + break; + case UNICODE_UTF_7: + /* #### See above. */ + return Qunbound; + break; + default: + skip_chars_range_table = Vunicode_invalid_and_query_skip_chars; + break; + } + } + else + { + switch (unicode_type) + { + case UNICODE_UTF_8: + invalid_lower_limit = UNICODE_ERROR_OCTET_RANGE_START + 0x80; + invalid_upper_limit = UNICODE_ERROR_OCTET_RANGE_START + 0xFF; + break; + case UNICODE_UTF_7: + /* #### Work out what to do here in reality, read the spec and decide + which octets are invalid. */ + return Qunbound; + break; + default: + invalid_lower_limit = UNICODE_ERROR_OCTET_RANGE_START; + invalid_upper_limit = UNICODE_ERROR_OCTET_RANGE_START + 0xFF; + break; + } + + skip_chars_range_table = Vunicode_query_skip_chars; + } + + while (pos < end) + { + Ichar ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + if ((ch < 0x100 ? 1 : + (!EQ (Qnil, Fget_range_table (make_int (ch), skip_chars_range_table, + Qnil))))) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + fail_range_start = pos; + while ((pos < end) && + ((checked_unicode = ichar_to_unicode (ch), + -1 == checked_unicode + && (failed_reason = query_coding_unencodable)) + || (!(flags & QUERY_METHOD_IGNORE_INVALID_SEQUENCES) && + (invalid_lower_limit <= checked_unicode) && + (checked_unicode <= invalid_upper_limit) + && (failed_reason = query_coding_invalid_sequence))) + && (previous_failed_reason == query_coding_succeeded + || previous_failed_reason == failed_reason)) + { + pos++; + INC_BYTEBPOS (buf, pos_byte); + ch = BYTE_BUF_FETCH_CHAR (buf, pos_byte); + previous_failed_reason = failed_reason; + } + + if (fail_range_start == pos) + { + /* The character can actually be encoded; move on. */ + pos++; + INC_BYTEBPOS (buf, pos_byte); + } + else + { + assert (previous_failed_reason == query_coding_invalid_sequence + || previous_failed_reason == query_coding_unencodable); + + if (flags & QUERY_METHOD_ERRORP) + { + DECLARE_EISTRING (error_details); + + eicpy_ascii (error_details, "Cannot encode "); + eicat_lstr (error_details, + make_string_from_buffer (buf, fail_range_start, + pos - + fail_range_start)); + eicat_ascii (error_details, " using coding system"); + + signal_error (Qtext_conversion_error, + (const CIbyte *)(eidata (error_details)), + XCODING_SYSTEM_NAME (codesys)); + } + + if (NILP (result)) + { + result = Fmake_range_table (Qstart_closed_end_open); + } + + fail_range_end = pos; + + Fput_range_table (make_int (fail_range_start), + make_int (fail_range_end), + (previous_failed_reason + == query_coding_unencodable ? + Qunencodable : Qinvalid_sequence), + result); + previous_failed_reason = query_coding_succeeded; + + if (flags & QUERY_METHOD_HIGHLIGHT) + { + Lisp_Object extent + = Fmake_extent (make_int (fail_range_start), + make_int (fail_range_end), + wrap_buffer (buf)); + + Fset_extent_priority + (extent, make_int (2 + mouse_highlight_priority)); + Fset_extent_face (extent, Qquery_coding_warning_face); + } + } + } + } + + return result; +} +#else /* !MULE */ +unicode_query (Lisp_Object UNUSED (codesys), + struct buffer * UNUSED (buf), + Charbpos UNUSED (end), int UNUSED (flags)) +{ + return Qnil; +} +#endif + int dfc_coding_system_is_unicode ( #ifdef WIN32_ANY @@ -2856,6 +3139,8 @@ DEFSUBR (Fload_unicode_mapping_table); + DEFSUBR (Fset_unicode_query_skip_chars_args); + DEFSYMBOL (Qccl_encode_to_ucs_2); DEFSYMBOL (Qlast_allocated_character); DEFSYMBOL (Qignore_first_column); @@ -2890,6 +3175,7 @@ INITIALIZE_CODING_SYSTEM_TYPE_WITH_DATA (unicode, "unicode-coding-system-p"); CODING_SYSTEM_HAS_METHOD (unicode, print); CODING_SYSTEM_HAS_METHOD (unicode, convert); + CODING_SYSTEM_HAS_METHOD (unicode, query); CODING_SYSTEM_HAS_METHOD (unicode, init_coding_stream); CODING_SYSTEM_HAS_METHOD (unicode, rewind_coding_stream); CODING_SYSTEM_HAS_METHOD (unicode, putprop); @@ -2980,5 +3266,24 @@ IPA.) */ ); Qunicode_registries = vector1(build_string("iso10646-1")); + + /* Initialised in lisp/mule/general-late.el, by a call to + #'set-unicode-query-skip-chars-args. Or at least they would be, but we + can't do this at dump time right now, initialised range tables aren't + dumped properly. */ + staticpro (&Vunicode_invalid_and_query_skip_chars); + Vunicode_invalid_and_query_skip_chars = Qnil; + staticpro (&Vutf_8_invalid_and_query_skip_chars); + Vutf_8_invalid_and_query_skip_chars = Qnil; + staticpro (&Vunicode_query_skip_chars); + Vunicode_query_skip_chars = Qnil; + + /* If we could dump the range table above these wouldn't be necessary: */ + staticpro (&Vunicode_query_string); + Vunicode_query_string = Qnil; + staticpro (&Vunicode_invalid_string); + Vunicode_invalid_string = Qnil; + staticpro (&Vutf_8_invalid_string); + Vutf_8_invalid_string = Qnil; #endif /* MULE */ }
--- a/tests/ChangeLog Sat Sep 19 17:56:23 2009 +0200 +++ b/tests/ChangeLog Sat Sep 19 22:53:13 2009 +0100 @@ -1,3 +1,13 @@ +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. + 2009-09-11 Aidan Kehoe <kehoea@parhasard.net> * automated/mule-tests.el (featurep):
--- a/tests/automated/mule-tests.el Sat Sep 19 17:56:23 2009 +0200 +++ b/tests/automated/mule-tests.el Sat Sep 19 22:53:13 2009 +0100 @@ -530,7 +530,7 @@ (loop for i from ?\x00 to ?\xFF collect i)) do - (when (and (coding-system-get coding-system '8-bit-fixed) + (when (and (eq 'fixed-width (coding-system-type coding-system)) ;; Don't check the coding systems with autodetect, they are ;; not round-trip compatible for the possible line-ending ;; characters.
--- a/tests/automated/query-coding-tests.el Sat Sep 19 17:56:23 2009 +0200 +++ b/tests/automated/query-coding-tests.el Sat Sep 19 22:53:13 2009 +0100 @@ -61,7 +61,10 @@ (not (memq (coding-system-type unix-coding-system) - '(undecided chain)))) + '(undecided chain + ;; #### We should be + ;; testing these too. + mswindows-multibyte)))) unix-coding-system))) (coding-system-list nil)) :test #'eq))