]> git.eshelyaron.com Git - emacs.git/commitdiff
japan-util.el: Cosmetic changes
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 31 Mar 2025 14:21:58 +0000 (10:21 -0400)
committerEshel Yaron <me@eshelyaron.com>
Mon, 31 Mar 2025 18:40:02 +0000 (20:40 +0200)
* lisp/language/japan-util.el (<toplevel>): Use `pcase-dolist` and `when`.
(japanese-string-conversion): Use `point-min`.

(cherry picked from commit b148e98de37e43dd28207b696994e72808683291)

lisp/language/japan-util.el

index 0a25c373b7b81b460b99c5df9499702c3b9ea539..d5faf97174f076ed6a1b6fe36ef20baa6519c1ae 100644 (file)
@@ -64,36 +64,30 @@ HANKAKU-KATAKANA belongs to `japanese-jisx0201-kana'.")
 
 ;; Put properties 'katakana, 'hiragana, and 'jix0201 to each Japanese
 ;; kana characters for conversion among them.
-(let ((l japanese-kana-table)
-      slot hiragana katakana jisx0201)
-  (while l
-    (setq slot (car l)
-         hiragana (car slot) katakana (nth 1 slot) jisx0201 (nth 2 slot)
-         l (cdr l))
-    (if hiragana
-       (if (stringp hiragana)
-           (if (> (length hiragana) 1)
-               (let ((hira (aref hiragana 0)))
-                 (put-char-code-property
-                  hira 'kana-composition
-                  (cons (cons (aref hiragana 1) katakana)
-                        (get-char-code-property hira 'kana-composition)))))
-         (put-char-code-property hiragana 'katakana katakana)
-         (put-char-code-property hiragana 'jisx0201 jisx0201)))
-    (when (integerp katakana)
-      (put-char-code-property katakana 'hiragana hiragana)
-      (put-char-code-property katakana 'jisx0201 jisx0201))
-    (if jisx0201
-       (if (stringp jisx0201)
-           (if (> (length jisx0201) 1)
-               (let ((kana (aref jisx0201 0)))
-                 (put-char-code-property
-                  kana 'kana-composition
-                  (cons (cons (aref jisx0201 1) katakana)
-                        (get-char-code-property kana 'kana-composition)))))
-         (put-char-code-property jisx0201 'hiragana hiragana)
-         (put-char-code-property jisx0201 'katakana katakana)
-         (put-char-code-property jisx0201 'jisx0208 katakana)))))
+(pcase-dolist (`(,hiragana ,katakana ,jisx0201) japanese-kana-table)
+  (if hiragana
+      (if (stringp hiragana)
+         (if (length> hiragana 1)
+             (let ((hira (aref hiragana 0)))
+               (put-char-code-property
+                hira 'kana-composition
+                (cons (cons (aref hiragana 1) katakana)
+                      (get-char-code-property hira 'kana-composition)))))
+       (put-char-code-property hiragana 'katakana katakana)
+       (put-char-code-property hiragana 'jisx0201 jisx0201)))
+  (put-char-code-property katakana 'hiragana hiragana)
+  (put-char-code-property katakana 'jisx0201 jisx0201)
+  (if jisx0201
+      (if (stringp jisx0201)
+         (if (length> jisx0201 1)
+             (let ((kana (aref jisx0201 0)))
+               (put-char-code-property
+                kana 'kana-composition
+                (cons (cons (aref jisx0201 1) katakana)
+                      (get-char-code-property kana 'kana-composition)))))
+       (put-char-code-property jisx0201 'hiragana hiragana)
+       (put-char-code-property jisx0201 'katakana katakana)
+       (put-char-code-property jisx0201 'jisx0208 katakana))))
 
 (defconst japanese-symbol-table
   '((?\  ?\ ) (?, ?,) (?. ?.) (?、 nil ?、) (?。 nil ?。) (?・ nil ?・)
@@ -114,22 +108,15 @@ and HANKAKU belongs to `japanese-jisx0201-kana'.")
 
 ;; Put properties 'jisx0208, 'jisx0201, and 'ascii to each Japanese
 ;; symbol and ASCII characters for conversion among them.
-(let ((l japanese-symbol-table)
-      slot jisx0208 ascii jisx0201)
-  (while l
-    (setq slot (car l)
-         jisx0208 (car slot) ascii (nth 1 slot) jisx0201 (nth 2 slot)
-         l (cdr l))
-    (if ascii
-       (progn
-         (put-char-code-property jisx0208 'ascii ascii)
-         (if (encode-char jisx0208 'japanese-jisx0208)
-             (put-char-code-property ascii 'jisx0208 jisx0208))))
-    (if jisx0201
-       (progn
-         (put-char-code-property jisx0208 'jisx0201 jisx0201)
-         (if (encode-char jisx0208 'japanese-jisx0208)
-             (put-char-code-property jisx0201 'jisx0208 jisx0208))))))
+(pcase-dolist (`(,jisx0208 ,ascii ,jisx0201) japanese-symbol-table)
+  (when ascii
+    (put-char-code-property jisx0208 'ascii ascii)
+    (if (encode-char jisx0208 'japanese-jisx0208)
+       (put-char-code-property ascii 'jisx0208 jisx0208)))
+  (when jisx0201
+    (put-char-code-property jisx0208 'jisx0201 jisx0201)
+    (if (encode-char jisx0208 'japanese-jisx0208)
+        (put-char-code-property jisx0201 'jisx0208 jisx0208))))
 
 (defconst japanese-alpha-numeric-table
   '((?0 . ?0) (?1 . ?1) (?2 . ?2) (?3 . ?3) (?4 . ?4)
@@ -150,14 +137,9 @@ belongs to `japanese-jisx0208', ASCII belongs to `ascii'.")
 
 ;; Put properties 'jisx0208 and 'ascii to each Japanese alpha numeric
 ;; and ASCII characters for conversion between them.
-(let ((l japanese-alpha-numeric-table)
-      slot jisx0208 ascii)
-  (while l
-    (setq slot (car l)
-         jisx0208 (car slot) ascii (cdr slot)
-         l (cdr l))
-    (put-char-code-property jisx0208 'ascii ascii)
-    (put-char-code-property ascii 'jisx0208 jisx0208)))
+(pcase-dolist (`(,jisx0208 . ,ascii) japanese-alpha-numeric-table)
+  (put-char-code-property jisx0208 'ascii ascii)
+  (put-char-code-property ascii 'jisx0208 jisx0208))
 
 ;; Convert string STR by FUNC and return a resulting string.
 (defun japanese-string-conversion (str func &rest args)
@@ -165,7 +147,7 @@ belongs to `japanese-jisx0208', ASCII belongs to `ascii'.")
     (with-current-buffer buf
       (erase-buffer)
       (insert str)
-      (apply func 1 (point) args)
+      (apply func (point-min) (point) args)
       (buffer-string))))
 
 ;;;###autoload
@@ -222,7 +204,7 @@ The argument object is not altered--the value is a copy."
                            (if (stringp string)
                                string
                              (string string))
-                             0))
+                           0))
 
 ;;;###autoload
 (defun japanese-katakana-region (from to &optional hankaku)