Mercurial > hg > xemacs-beta
diff lisp/language/korean.el @ 159:3bb7ccffb0c0 r20-3b6
Import from CVS: tag r20-3b6
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:41:43 +0200 |
parents | |
children | acd284d43ca1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/language/korean.el Mon Aug 13 09:41:43 2007 +0200 @@ -0,0 +1,178 @@ +;;; korean.el --- Support for Korean + +;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. +;; Copyright (C) 1997 MORIOKA Tomohiko + +;; Keywords: multilingual, Korean + +;; 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., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Commentary: + +;; For Korean, the character set KSC5601 is supported. + +;;; Code: + +;; Syntax of Korean characters. +(loop for row from 33 to 34 do + (modify-syntax-entry `[korean-ksc5601 ,row] ".")) +(loop for row from 35 to 37 do + (modify-syntax-entry `[korean-ksc5601 ,row] "w")) +(loop for row from 38 to 41 do + (modify-syntax-entry `[korean-ksc5601 ,row] ".")) +(loop for row from 42 to 126 do + (modify-syntax-entry `[korean-ksc5601 ,row] "w")) + +;; Setting for coding-system and quail were moved to +;; language/korean.el. + +(make-coding-system + 'iso-2022-int-1 'iso2022 + "ISO-2022-INT-1" + '(charset-g0 ascii + charset-g1 korean-ksc5601 + short t + seven t + lock-shift t + mnemonic "INT-1")) + +;; EGG specific setup +(define-egg-environment 'korean + "Korean settings for egg" + (lambda () + (when (not (featurep 'egg-kor)) + (load "its-hangul") + (setq its:*standard-modes* + (cons (its:get-mode-map "hangul") its:*standard-modes*)) + (provide 'egg-kor)) + (setq wnn-server-type 'kserver) + (setq egg-default-startup-file "eggrc-wnn") + (setq-default its:*current-map* (its:get-mode-map "hangul")))) + +;; (make-coding-system +;; 'euc-kr 2 ?K +;; "Coding-system of Korean EUC (Extended Unix Code)." +;; '((ascii t) korean-ksc5601 nil nil +;; nil ascii-eol ascii-cntl)) + +(make-coding-system + 'euc-kr 'iso2022 + "Coding-system of Korean EUC (Extended Unix Code)." + '(charset-g0 ascii + charset-g1 korean-ksc5601 + mnemonic "ko/EUC" + eol-type lf)) + +;;(define-coding-system-alias 'euc-kr 'euc-korea) + +(copy-coding-system 'euc-kr 'korean-euc) + +;; (make-coding-system +;; 'iso-2022-kr 2 ?k +;; "MIME ISO-2022-KR" +;; '(ascii (nil korean-ksc5601) nil nil +;; nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil +;; designation-bol)) + +(make-coding-system + 'iso-2022-kr 'iso2022 + "Coding-System used for communication with mail in Korea." + '(charset-g0 ascii + charset-g1 korean-ksc5601 + force-g1-on-output t + seven t + lock-shift t + mnemonic "Ko/7bit" + eol-type lf)) + +(register-input-method + "Korean" '("quail-hangul" quail-use-package "quail/hangul")) +(register-input-method + "Korean" '("quail-hangul3" quail-use-package "quail/hangul3")) +(register-input-method + "Korean" '("quail-hanja" quail-use-package "quail/hanja")) +(register-input-method + "Korean" '("quail-symbol-ksc" quail-use-package "quail/symbol-ksc")) +(register-input-method + "Korean" '("quail-hanja-jis" quail-use-package "quail/hanja-jis")) + +(defun setup-korean-environment () + "Setup multilingual environment (MULE) for Korean." + (interactive) + (setup-english-environment) + (setq coding-category-iso-8-2 'euc-kr) + + (set-coding-priority + '(coding-category-iso-7 + coding-category-iso-8-2 + coding-category-iso-8-1)) + + (setq-default buffer-file-coding-system 'euc-kr) + + (setq default-input-method '("Korean" . "quail-hangul")) + ) + +(defun describe-korean-support () + "Describe How Emacs supports Korean." + (interactive) + (describe-language-support-internal "Korean")) + +(set-language-info-alist + "Korean" '((setup-function . setup-korean-environment) + (describe-function . describe-korean-support) + (tutorial . "TUTORIAL.kr") + (charset . (korean-ksc5601)) + (coding-system . (euc-kr iso-2022-kr)) + (sample-text . "Hangul ($(CGQ1[(B) $(C>H3gGO<<?d(B, $(C>H3gGO=J4O1n(B") + (documentation . nil))) + +;;; for XEmacs (will be obsoleted) + +(define-language-environment 'korean + "Korean" + (lambda () + (set-coding-category-system 'iso-8-2 'euc-kr) + (set-coding-priority-list '(iso-8-2 iso-7 iso-8-designate)) + (set-pathname-coding-system 'euc-kr) + (add-hook 'comint-exec-hook + (lambda () + (let ((proc (get-buffer-process (current-buffer)))) + (set-process-input-coding-system proc 'euc-kr) + (set-process-output-coding-system proc 'euc-kr)))) + (set-buffer-file-coding-system-for-read 'automatic-conversion) + (set-default-buffer-file-coding-system 'euc-kr) + (setq keyboard-coding-system 'euc-kr) + (setq terminal-coding-system 'euc-kr) + (when (eq 'x (device-type (selected-device))) + (x-use-halfwidth-roman-font 'korean-ksc5601 "ksc5636")) + + ;; EGG specific setup 97.02.05 jhod + (when (featurep 'egg) + (when (not (featurep 'egg-kor)) + (provide 'egg-kor) + (load "its/its-hangul") + (setq its:*standard-modes* + (cons (its:get-mode-map "hangul") its:*standard-modes*))) + (setq-default its:*current-map* (its:get-mode-map "hangul"))) + +;; ;; (setq-default quail-current-package +;; ;; (assoc "hangul" quail-package-alist)) + )) + +;;; korean.el ends here