Merge from emacs-24
[bpt/emacs.git] / lisp / language / japan-util.el
index a97656e..9be3c44 100644 (file)
@@ -1,9 +1,8 @@
 ;;; japan-util.el --- utilities for Japanese -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 2001-2012  Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009
+;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
@@ -109,10 +108,10 @@ HANKAKU-KATAKANA belongs to `japanese-jisx0201-kana'.")
     (?\e$B!w\e(B ?@)
     ;; cp932-2-byte
     (#x2015 ?-) (#xFF5E ?~) (#xFF0D ?-))
-  "Japanese JISX0208 symbol character table.
+  "Japanese JISX0208 and CP932 symbol character table.
   Each element is of the form (SYMBOL ASCII HANKAKU), where SYMBOL
-belongs to `japanese-jisx0208', ASCII belongs to `ascii', and HANKAKU
-belongs to `japanese-jisx0201-kana'.")
+belongs to `japanese-jisx0208' or `cp932', ASCII belongs to `ascii',
+and HANKAKU belongs to `japanese-jisx0201-kana'.")
 
 ;; Put properties 'jisx0208, 'jisx0201, and 'ascii to each Japanese
 ;; symbol and ASCII characters for conversion among them.
@@ -125,11 +124,13 @@ belongs to `japanese-jisx0201-kana'.")
     (if ascii
        (progn
          (put-char-code-property jisx0208 'ascii ascii)
-         (put-char-code-property ascii 'jisx0208 jisx0208)))
+         (if (encode-char jisx0208 'japanese-jisx0208)
+             (put-char-code-property ascii 'jisx0208 jisx0208))))
     (if jisx0201
        (progn
          (put-char-code-property jisx0208 'jisx0201 jisx0201)
-         (put-char-code-property jisx0201 'jisx0208 jisx0208)))))
+         (if (encode-char jisx0208 'japanese-jisx0208)
+             (put-char-code-property jisx0201 'jisx0208 jisx0208))))))
 
 (defconst japanese-alpha-numeric-table
   '((?\e$B#0\e(B . ?0) (?\e$B#1\e(B . ?1) (?\e$B#2\e(B . ?2) (?\e$B#3\e(B . ?3) (?\e$B#4\e(B . ?4)
@@ -162,8 +163,7 @@ belongs to `japanese-jisx0208', ASCII belongs to `ascii'.")
 ;; Convert string STR by FUNC and return a resulting string.
 (defun japanese-string-conversion (str func &rest args)
   (let ((buf (get-buffer-create " *Japanese work*")))
-    (save-excursion
-      (set-buffer buf)
+    (with-current-buffer buf
       (erase-buffer)
       (insert str)
       (apply func 1 (point) args)
@@ -324,5 +324,4 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading."
 ;;
 (provide 'japan-util)
 
-;; arch-tag: b579595c-c9ad-4b57-9314-98cd8b214f89
 ;;; japan-util.el ends here