Mercurial > hg > xemacs-beta
annotate lisp/mule/korean.el @ 5607:1a507c4c6c42
Refactor out sequence-oriented builtins from fns.c to the new sequence.c.
src/ChangeLog addition:
2011-12-04 Aidan Kehoe <kehoea@parhasard.net>
* Makefile.in.in (objs):
* depend:
Add sequence.o to the list of objects and dependencies.
* alloc.c:
* alloc.c (mark_bit_vector):
* alloc.c (print_bit_vector):
* alloc.c (bit_vector_equal):
* alloc.c (internal_bit_vector_equalp_hash):
* alloc.c (bit_vector_hash):
* alloc.c (init_alloc_once_early):
Move the implementation of the bit vector type here from fns.c.
* emacs.c (main_1):
Call syms_of_sequence() here, now sequence.c is included.
* fns.c (Fold_rassq):
Move this together with the rest of the Fold_* functions.
* fns.c:
* fns.c (syms_of_fns):
Move most functions dealing with sequences generally, and
especially those taking key arguments, to a separate file,
sequence.c.
* general-slots.h:
Qyes_or_no_p belong here, not fns.c.
* lisp.h:
Make Flist_length available here, it's used by sequence.c
* sequence.c:
* sequence.c (check_sequence_range):
* sequence.c (Flength):
* sequence.c (check_other_nokey):
* sequence.c (check_other_key):
* sequence.c (check_if_key):
* sequence.c (check_match_eq_key):
* sequence.c (check_match_eql_key):
* sequence.c (check_match_equal_key):
* sequence.c (check_match_equalp_key):
* sequence.c (check_match_other_key):
* sequence.c (check_lss_key):
* sequence.c (check_lss_key_car):
* sequence.c (check_string_lessp_key):
* sequence.c (check_string_lessp_key_car):
* sequence.c (get_check_match_function_1):
* sequence.c (get_merge_predicate):
* sequence.c (count_with_tail):
* sequence.c (list_count_from_end):
* sequence.c (string_count_from_end):
* sequence.c (Fcount):
* sequence.c (Fsubseq):
* sequence.c (list_position_cons_before):
* sequence.c (FmemberX):
* sequence.c (Fadjoin):
* sequence.c (FassocX):
* sequence.c (FrassocX):
* sequence.c (position):
* sequence.c (Fposition):
* sequence.c (Ffind):
* sequence.c (delq_no_quit_and_free_cons):
* sequence.c (FdeleteX):
* sequence.c (FremoveX):
* sequence.c (list_delete_duplicates_from_end):
* sequence.c (Fdelete_duplicates):
* sequence.c (Fremove_duplicates):
* sequence.c (Fnreverse):
* sequence.c (Freverse):
* sequence.c (list_merge):
* sequence.c (array_merge):
* sequence.c (list_array_merge_into_list):
* sequence.c (list_list_merge_into_array):
* sequence.c (list_array_merge_into_array):
* sequence.c (Fmerge):
* sequence.c (list_sort):
* sequence.c (array_sort):
* sequence.c (FsortX):
* sequence.c (Ffill):
* sequence.c (mapcarX):
* sequence.c (shortest_length_among_sequences):
* sequence.c (Fmapconcat):
* sequence.c (FmapcarX):
* sequence.c (Fmapvector):
* sequence.c (Fmapcan):
* sequence.c (Fmap):
* sequence.c (Fmap_into):
* sequence.c (Fsome):
* sequence.c (Fevery):
* sequence.c (Freduce):
* sequence.c (replace_string_range_1):
* sequence.c (Freplace):
* sequence.c (Fnsubstitute):
* sequence.c (Fsubstitute):
* sequence.c (subst):
* sequence.c (sublis):
* sequence.c (Fsublis):
* sequence.c (nsublis):
* sequence.c (Fnsublis):
* sequence.c (Fsubst):
* sequence.c (Fnsubst):
* sequence.c (tree_equal):
* sequence.c (Ftree_equal):
* sequence.c (mismatch_from_end):
* sequence.c (mismatch_list_list):
* sequence.c (mismatch_list_string):
* sequence.c (mismatch_list_array):
* sequence.c (mismatch_string_array):
* sequence.c (mismatch_string_string):
* sequence.c (mismatch_array_array):
* sequence.c (get_mismatch_func):
* sequence.c (Fmismatch):
* sequence.c (Fsearch):
* sequence.c (venn):
* sequence.c (nvenn):
* sequence.c (Funion):
* sequence.c (Fset_exclusive_or):
* sequence.c (Fnset_exclusive_or):
* sequence.c (syms_of_sequence):
Add this file, containing those general functions that dealt with
sequences that were in fns.c.
* symsinit.h:
Make syms_of_sequence() available here.
man/ChangeLog addition:
2011-12-04 Aidan Kehoe <kehoea@parhasard.net>
* internals/internals.texi (Basic Lisp Modules):
Document sequence.c here too.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 04 Dec 2011 18:42:50 +0000 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 ;;; korean.el --- Support for Korean -*- coding: iso-2022-7bit; -*- |
2 | |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
4 ;; Licensed to the Free Software Foundation. | |
5 ;; Copyright (C) 1997 MORIOKA Tomohiko | |
6 | |
7 ;; Keywords: multilingual, Korean | |
8 | |
9 ;; This file is part of XEmacs. | |
10 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
11 ;; XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
12 ;; under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
13 ;; Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
14 ;; option) any later version. |
428 | 15 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
16 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
17 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
18 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
19 ;; for more details. |
428 | 20 |
21 ;; You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4568
diff
changeset
|
22 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
428 | 23 |
24 ;;; Commentary: | |
25 | |
26 ;; For Korean, the character set KSC5601 is supported. | |
27 | |
28 ;;; Code: | |
29 | |
778 | 30 ; (make-charset 'korean-ksc5601 |
31 ; "KSC5601 Korean Hangul and Hanja: ISO-IR-149" | |
32 ; '(dimension | |
33 ; 2 | |
34 ; registry "KSC5601.1989" | |
35 ; chars 94 | |
36 ; columns 2 | |
37 ; direction l2r | |
38 ; final ?C | |
39 ; graphic 0 | |
40 ; short-name "KSC5601" | |
41 ; long-name "KSC5601 (Korean): ISO-IR-149" | |
42 ; )) | |
43 | |
428 | 44 ;; Syntax of Korean characters. |
45 (loop for row from 33 to 34 do | |
46 (modify-syntax-entry `[korean-ksc5601 ,row] ".")) | |
47 (loop for row from 38 to 41 do | |
48 (modify-syntax-entry `[korean-ksc5601 ,row] ".")) | |
49 | |
50 ;; Setting for coding-system and quail were moved to | |
51 ;; language/korean.el. | |
52 | |
53 (make-coding-system | |
54 'iso-2022-int-1 'iso2022 | |
771 | 55 "ISO-2022-INT-1 (Korean)" |
428 | 56 '(charset-g0 ascii |
57 charset-g1 korean-ksc5601 | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4072
diff
changeset
|
58 safe-charsets (ascii korean-ksc5601) |
428 | 59 short t |
60 seven t | |
61 lock-shift t | |
62 mnemonic "INT-1")) | |
63 | |
64 ;; EGG specific setup | |
65 (define-egg-environment 'korean | |
66 "Korean settings for egg" | |
67 (lambda () | |
771 | 68 (with-boundp '(its:*standard-modes* its:*current-map* wnn-server-type |
69 egg-default-startup-file) | |
70 (with-fboundp 'its:get-mode-map | |
71 (when (not (featurep 'egg-kor)) | |
72 (load "its-hangul") | |
73 (setq its:*standard-modes* | |
74 (cons (its:get-mode-map "hangul") its:*standard-modes*)) | |
75 (provide 'egg-kor)) | |
76 (setq wnn-server-type 'kserver) | |
77 (setq egg-default-startup-file "eggrc-wnn") | |
78 (setq-default its:*current-map* (its:get-mode-map "hangul")))))) | |
428 | 79 |
80 ;; (make-coding-system | |
81 ;; 'korean-iso-8bit 2 ?K | |
82 ;; "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)" | |
83 ;; '(ascii korean-ksc5601 nil nil | |
84 ;; nil ascii-eol ascii-cntl) | |
85 ;; '((safe-charsets ascii korean-ksc5601) | |
86 ;; (mime-charset . euc-kr))) | |
87 | |
88 (make-coding-system | |
89 'euc-kr 'iso2022 | |
771 | 90 "Korean EUC" |
428 | 91 '(charset-g0 ascii |
92 charset-g1 korean-ksc5601 | |
93 mnemonic "ko/EUC" | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4072
diff
changeset
|
94 safe-charsets (ascii korean-ksc5601) |
771 | 95 documentation |
96 "Korean EUC (Extended Unix Code), the standard Korean encoding on Unix. | |
97 This follows the same overall EUC principles (see the description under | |
98 Japanese EUC), but specifies different character sets: | |
99 | |
100 G0: ASCII | |
101 G1: Korean-KSC5601" | |
428 | 102 eol-type nil)) |
103 | |
104 ;;(define-coding-system-alias 'euc-kr 'euc-korea) | |
105 | |
106 (define-coding-system-alias 'korean-euc 'euc-kr) | |
107 | |
108 ;; (make-coding-system | |
109 ;; 'iso-2022-kr 2 ?k | |
110 ;; "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)." | |
111 ;; '(ascii (nil korean-ksc5601) nil nil | |
112 ;; nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil | |
113 ;; designation-bol) | |
114 ;; '((safe-charsets ascii korean-ksc5601) | |
115 ;; (mime-charset . iso-2022-kr))) | |
116 | |
117 (make-coding-system | |
118 'iso-2022-kr 'iso2022 | |
771 | 119 "ISO-2022-KR (Korean mail)" |
428 | 120 '(charset-g0 ascii |
121 charset-g1 korean-ksc5601 | |
122 force-g1-on-output t | |
123 seven t | |
124 lock-shift t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4072
diff
changeset
|
125 safe-charsets (ascii korean-ksc5601) |
428 | 126 mnemonic "Ko/7bit" |
771 | 127 documentation "Coding-System used for communication with mail in Korea." |
428 | 128 eol-type lf)) |
129 | |
130 ;; (define-coding-system-alias 'korean-iso-7bit-lock 'iso-2022-kr) | |
131 | |
132 (set-language-info-alist | |
133 "Korean" '((setup-function . setup-korean-environment-internal) | |
134 (exit-function . exit-korean-environment) | |
135 (tutorial . "TUTORIAL.ko") | |
136 (charset korean-ksc5601) | |
137 (coding-system euc-kr iso-2022-kr) | |
138 (coding-priority euc-kr iso-2022-kr) | |
771 | 139 (locale "ko_KR.eucKR" "ko_KR.EUC" "ko_KR.euc" "ko_KR" "ko") |
140 (native-coding-system euc-kr) | |
428 | 141 (input-method . "korean-hangul") |
142 (features korea-util) | |
143 (sample-text . "Hangul ($(CGQ1[(B) $(C>H3gGO<<?d(B, $(C>H3gGO=J4O1n(B") | |
144 (documentation . "\ | |
145 The following key bindings are available while using Korean input methods: | |
146 Shift-SPC: toggle-korean-input-mthod | |
147 Control-F9: quail-hangul-switch-symbol-ksc | |
148 F9: quail-hangul-switch-hanja") | |
149 )) | |
150 | |
151 ;;; korean.el ends here |