diff options
| author | Kenichi Handa | 1997-12-09 04:19:13 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1997-12-09 04:19:13 +0000 |
| commit | dee169ce38d6e1e236fc0a6fa9c6d7422f3ea566 (patch) | |
| tree | 5a8ea040ae7b375a87af8c0453af9eb98a3fc895 /lisp/language | |
| parent | 6cf2c8267ab5edaae01dbeca3ca9fefd9b2004d7 (diff) | |
| download | emacs-dee169ce38d6e1e236fc0a6fa9c6d7422f3ea566.tar.gz emacs-dee169ce38d6e1e236fc0a6fa9c6d7422f3ea566.zip | |
Initial revision
Diffstat (limited to 'lisp/language')
| -rw-r--r-- | lisp/language/korea-util.el | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/lisp/language/korea-util.el b/lisp/language/korea-util.el new file mode 100644 index 00000000000..c9ca349776d --- /dev/null +++ b/lisp/language/korea-util.el | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | ;;; korea-util.el --- utilities for Korean | ||
| 2 | |||
| 3 | ;; Copyright (C) 1997 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Keywords: mule, multilingual, Korean | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software; you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation; either version 2, or (at your option) | ||
| 12 | ;; any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 21 | ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 22 | ;; Boston, MA 02111-1307, USA. | ||
| 23 | |||
| 24 | ;;; Code: | ||
| 25 | |||
| 26 | ;;;###autoload | ||
| 27 | (defvar default-korean-keyboard "" | ||
| 28 | "*The kind of Korean keyboard for Korean input method. | ||
| 29 | \"\" for 2, \"3\" for 3.") | ||
| 30 | |||
| 31 | ;; functions useful for Korean text input | ||
| 32 | |||
| 33 | (defun toggle-korean-input-method () | ||
| 34 | "Turn on or off a Korean text input method for the current buffer." | ||
| 35 | (interactive) | ||
| 36 | (if current-input-method | ||
| 37 | (inactivate-input-method) | ||
| 38 | (activate-input-method | ||
| 39 | (concat "korean-hangul" default-korean-keyboard)))) | ||
| 40 | |||
| 41 | (defun quail-hangul-switch-symbol-ksc (&rest ignore) | ||
| 42 | "Swith to/from Korean symbol package." | ||
| 43 | (interactive "i") | ||
| 44 | (and current-input-method | ||
| 45 | (if (string-equal current-input-method "korean-symbol") | ||
| 46 | (activate-input-method (concat "korean-hangul" | ||
| 47 | default-korean-keyboard)) | ||
| 48 | (activate-input-method "korean-symbol")))) | ||
| 49 | |||
| 50 | (defun quail-hangul-switch-hanja (&rest ignore) | ||
| 51 | "Swith to/from Korean hanja package." | ||
| 52 | (interactive "i") | ||
| 53 | (and current-input-method | ||
| 54 | (if (string-match "korean-hanja" current-input-method) | ||
| 55 | (activate-input-method (concat "korean-hangul" | ||
| 56 | default-korean-keyboard)) | ||
| 57 | (activate-input-method (concat "korean-hanja" | ||
| 58 | default-korean-keyboard))))) | ||
| 59 | |||
| 60 | ;; Information for exiting Korean environment. | ||
| 61 | (defvar exit-korean-environment-data nil) | ||
| 62 | |||
| 63 | ;;;###autoload | ||
| 64 | (defun setup-korean-environment () | ||
| 65 | "Setup multilingual environment (MULE) for Korean." | ||
| 66 | (interactive) | ||
| 67 | (setup-english-environment) | ||
| 68 | (setq coding-category-iso-8-2 'korean-iso-8bit) | ||
| 69 | |||
| 70 | (set-coding-priority | ||
| 71 | '(coding-category-iso-7 | ||
| 72 | coding-category-iso-8-2 | ||
| 73 | coding-category-iso-8-1)) | ||
| 74 | |||
| 75 | (set-default-coding-systems 'korean-iso-8bit) | ||
| 76 | |||
| 77 | (setq default-input-method "korean-hangul") | ||
| 78 | |||
| 79 | (let ((key-bindings '(([?\S- ] . toggle-korean-input-method) | ||
| 80 | ([C-f9] . quail-hangul-switch-symbol-ksc) | ||
| 81 | ([f9] . quail-hangul-switch-hanja)))) | ||
| 82 | (while key-bindings | ||
| 83 | (let ((prev-binding (global-key-binding (car (car key-bindings))))) | ||
| 84 | (setq exit-korean-environment-data | ||
| 85 | (cons (cons (car (car key-bindings)) prev-binding) | ||
| 86 | exit-korean-environment-data))) | ||
| 87 | (global-set-key (car (car key-bindings)) (cdr (car key-bindings))) | ||
| 88 | (setq key-bindings (cdr key-bindings))))) | ||
| 89 | |||
| 90 | (defun exit-korean-environment () | ||
| 91 | "Exit Korean language environment." | ||
| 92 | (while exit-korean-environment-data | ||
| 93 | (global-set-key (car (car exit-korean-environment-data)) | ||
| 94 | (cdr (car exit-korean-environment-data))) | ||
| 95 | (setq exit-korean-environment-data | ||
| 96 | (cdr exit-korean-environment-data)))) | ||
| 97 | |||
| 98 | ;; | ||
| 99 | (provide 'korea-util) | ||
| 100 | |||
| 101 | ;;; korean-util.el ends here | ||