emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/pyim 30cb33b892 2/3: Fix previous commit.


From: ELPA Syncer
Subject: [elpa] externals/pyim 30cb33b892 2/3: Fix previous commit.
Date: Fri, 27 May 2022 23:57:52 -0400 (EDT)

branch: externals/pyim
commit 30cb33b8920e15de545322d202c1623bb227b59b
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Fix previous commit.
---
 pyim-pymap-utils.el | 100 ----------------------------------------------------
 1 file changed, 100 deletions(-)

diff --git a/pyim-pymap-utils.el b/pyim-pymap-utils.el
index be5ab95cbb..a715d744b3 100644
--- a/pyim-pymap-utils.el
+++ b/pyim-pymap-utils.el
@@ -298,106 +298,6 @@
 趯罍鼱鳠鳡鳣爟爚灈韂糵礵鹴皭龢鳤亹籥𫚭玃醾齇觿" ""))
   "常用汉字")
 
-;; ** "汉字 -> 拼音" 以及 "拼音 -> 汉字" 的转换函数
-(defun pyim-pymap-cache-create (&optional force)
-  "创建 pymap 相关的 cache."
-  (pyim-pymap-cchar2py-cache-create force)
-  (pyim-pymap-py2cchar-cache-create force))
-
-(defun pyim-pymap-py2cchar-cache-create (&optional force)
-  "构建 pinyin 到 chinese char 的缓存.
-
-用于加快搜索速度,这个函数将缓存保存到 `pyim-pymap-py2cchar-cache' 变量中,
-如果 FORCE 设置为 t, 强制更新索引。"
-  (when (or force
-            (not pyim-pymap-py2cchar-cache1)
-            (not pyim-pymap-py2cchar-cache2)
-            ;; FIXME: 我偶尔会遇到一个奇怪的问题,创建的缓存没有包含所有的汉字拼
-            ;; 音,原因未知,所以这里测试一下,看排在最后面的一个汉字拼音是否包
-            ;; 含在缓存中,如果不包含,就重新创建缓存。
-            (and pyim-pymap-py2cchar-cache1
-                 (not (gethash "zuo" pyim-pymap-py2cchar-cache1))))
-    (setq pyim-pymap-py2cchar-cache1
-          (make-hash-table :size 50000 :test #'equal))
-    (setq pyim-pymap-py2cchar-cache2
-          (make-hash-table :size 50000 :test #'equal))
-    (setq pyim-pymap-py2cchar-cache3
-          (make-hash-table :size 50000 :test #'equal))
-    (dolist (x pyim-pymap)
-      (let* ((py (car x))
-             (cchars (cdr x))
-             (n (min (length py) 7)))
-        (puthash py cchars pyim-pymap-py2cchar-cache1)
-        (puthash py (cdr (split-string (car cchars) ""))
-                 pyim-pymap-py2cchar-cache2)
-        (dotimes (i n)
-          (let* ((key (substring py 0 (+ i 1)))
-                 (orig-value (gethash key pyim-pymap-py2cchar-cache3)))
-            (puthash key (delete-dups `(,@orig-value ,@cchars))
-                     pyim-pymap-py2cchar-cache3)))))))
-
-(defun pyim-pymap-py2cchar-get (pinyin &optional equal-match return-list 
include-seperator)
-  "获取拼音与 PINYIN 想匹配的所有汉字.
-
-比如:
-
-“man” -> (\"忙茫盲芒氓莽蟒邙漭硭\" \"满慢漫曼蛮馒瞒蔓颟谩墁幔螨鞔鳗缦熳镘\")
-
-如果 EQUAL-MATCH 是 non-nil, 获取和 PINYIN 完全匹配的汉字。
-如果 RETURN-LIST 是 non-nil, 返回一个由单个汉字字符串组成的列表。
-
-(\"满\" \"慢\" \"漫\"  ...)
-
-如果 INCLUDE-SEPERATOR 是 non-nil, 返回的列表包含一个 ‘|’ 号,pyim 用这个分隔符
-来区分 3500 个常用汉字和生僻字。"
-  (pyim-pymap-py2cchar-cache-create)
-  (when (and pinyin (stringp pinyin))
-    (let ((output
-           (if equal-match
-               (if return-list
-                   (gethash pinyin pyim-pymap-py2cchar-cache2)
-                 (gethash pinyin pyim-pymap-py2cchar-cache1))
-             (gethash pinyin pyim-pymap-py2cchar-cache3))))
-      (setq output (remove "" output))
-      (if include-seperator
-          output
-        (remove "|" output)))))
-
-(defun pyim-pymap-cchar2py-get (char-or-str)
-  "获取字符或者字符串 CHAR-OR-STR 对应的拼音 code.
-
-pyim 在特定的时候需要读取一个汉字的拼音,这个工作由此完成,函数
-从 `pyim-pymap-cchar2py-cache' 查询得到一个汉字字符的拼音, 例如:
-
-(pyim-pymap-cchar2py-get ?我)
-
-结果为:
-
-(\"wo\")"
-  (pyim-pymap-cchar2py-cache-create)
-  (let ((key (if (characterp char-or-str)
-                 (char-to-string char-or-str)
-               char-or-str)))
-    (when (= (length key) 1)
-      (gethash key pyim-pymap-cchar2py-cache))))
-
-(defun pyim-pymap-cchar2py-cache-create (&optional force)
-  "Build pinyin cchar->pinyin hashtable from `pyim-pymap'.
-
-If FORCE is non-nil, FORCE build."
-  (when (or force (not pyim-pymap-cchar2py-cache))
-    (setq pyim-pymap-cchar2py-cache
-          (make-hash-table :size 50000 :test #'equal))
-    (dolist (x pyim-pymap)
-      (let ((py (car x))
-            (cchar-list (string-to-list (car (cdr x)))))
-        (dolist (cchar cchar-list)
-          (let* ((key (char-to-string cchar))
-                 (cache (gethash key pyim-pymap-cchar2py-cache)))
-            (if cache
-                (puthash key (append (list py) cache) 
pyim-pymap-cchar2py-cache)
-              (puthash key (list py) pyim-pymap-cchar2py-cache))))))))
-
 (defun pyim-pymap-cchar< (a b)
   "如果汉字 A 的使用频率大于汉字 B 的使用频率时,返回 non-nil"
   (< (or (cl-position a pyim-pymap-commonly-used-cchar :test #'equal) 1000000)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]