emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master be16c20: Move some uncontroversial char-folding pai


From: Juri Linkov
Subject: [Emacs-diffs] master be16c20: Move some uncontroversial char-folding pairs from test data to default values
Date: Sun, 28 Jul 2019 18:46:17 -0400 (EDT)

branch: master
commit be16c204d6fba6c7cf2e2cb9fda5d7f6637f12f7
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>

    Move some uncontroversial char-folding pairs from test data to default 
values
    
    * lisp/char-fold.el (char-fold--default-include)
    (char-fold--default-exclude): Add some default values.
    
    * test/lisp/char-fold-tests.el (char-fold--test-without-customization)
    (char-fold--test-with-customization): Move some test data to
    default values.  Add more data for tests to pass.   (Bug#35689)
---
 lisp/char-fold.el            | 21 +++++++++++++------
 test/lisp/char-fold-tests.el | 50 ++++++++++++++++++++++++++------------------
 2 files changed, 45 insertions(+), 26 deletions(-)

diff --git a/lisp/char-fold.el b/lisp/char-fold.el
index f379229..b05d374 100644
--- a/lisp/char-fold.el
+++ b/lisp/char-fold.el
@@ -27,12 +27,20 @@
   (defconst char-fold--default-include
     '((?\" """ "“" "”" "”" "„" "⹂" "〞" "‟" "‟" "❞" "❝" "❠" "“" "„" "〝" "〟" "🙷" 
"🙶" "🙸" "«" "»")
       (?' "❟" "❛" "❜" "‘" "’" "‚" "‛" "‚" "󠀢" "❮" "❯" "‹" "›")
-      (?` "❛" "‘" "‛" "󠀢" "❮" "‹")))
-  (defconst char-fold--default-exclude nil)
+      (?` "❛" "‘" "‛" "󠀢" "❮" "‹")
+      (?ß "ss") ;; de
+      (?ι "ΐ")  ;; el for (?ΐ "ΐ") decomposition
+      (?υ "ΰ")  ;; el for (?ΰ "ΰ") decomposition
+      ))
+  (defconst char-fold--default-exclude
+    '(
+      (?и "й")  ;; ru
+      ))
   (defconst char-fold--default-symmetric nil)
-  (defconst char-fold--previous (list char-fold--default-include
-                                      char-fold--default-exclude
-                                      char-fold--default-symmetric)))
+  (defvar char-fold--previous
+    (list char-fold--default-include
+          char-fold--default-exclude
+          char-fold--default-symmetric)))
 
 
 (eval-and-compile
@@ -221,12 +229,13 @@ Exceptionally for the space character (32), ALIST is 
ignored.")
 
 
 (defun char-fold-update-table ()
+  "Update char-fold-table only when one of the options changes its value."
   (let ((new (list (or (bound-and-true-p char-fold-include)
                        char-fold--default-include)
                    (or (bound-and-true-p char-fold-exclude)
                        char-fold--default-exclude)
                    (or (bound-and-true-p char-fold-symmetric)
-                      char-fold--default-symmetric))))
+                       char-fold--default-symmetric))))
     (unless (equal char-fold--previous new)
       (setq char-fold-table (char-fold-make-table)
             char-fold--previous new))))
diff --git a/test/lisp/char-fold-tests.el b/test/lisp/char-fold-tests.el
index e519435..0efbdcf 100644
--- a/test/lisp/char-fold-tests.el
+++ b/test/lisp/char-fold-tests.el
@@ -150,47 +150,57 @@
 (ert-deftest char-fold--test-without-customization ()
   (let* ((matches
           '(
+            ("'" "’")
             ("e" "ℯ" "ḗ" "ë" "ë")
             ("ι"
              "ί" ;; 1 level decomposition
              "ί" ;; 2 level decomposition
-             ;; FIXME:
-             ;; "ΐ" ;; 3 level decomposition
+             "ΐ" ;; 3 level decomposition
              )
+            ("ß" "ss")
+            ))
+         (no-matches
+          '(
+            ("и" "й")
             )))
     (dolist (strings matches)
-      (apply 'char-fold--test-match-exactly strings))))
+      (apply 'char-fold--test-match-exactly strings))
+    (dolist (strings no-matches)
+      (apply 'char-fold--test-no-match-exactly strings))))
 
 (ert-deftest char-fold--test-with-customization ()
   :tags '(:expensive-test)
+  ;; FIXME: move some language-specific settings to defaults
   (let* ((char-fold-include
-          '(
-            (?ß "ss") ;; de
-            (?o "ø")  ;; da no nb nn
-            (?l "ł")  ;; pl
-            ))
-         ;; FIXME: move language-specific settings to defaults
+          (append char-fold-include
+                  '(
+                    (?o "ø") ;; da no nb nn
+                    (?l "ł") ;; pl
+                    (?æ "ae")
+                    (?→ "->")
+                    (?⇒ "=>")
+                    )))
          (char-fold-exclude
-          '(
-            (?a "å") ;; sv da no nb nn
-            (?a "ä") ;; sv fi et
-            (?o "ö") ;; sv fi et
-            (?n "ñ") ;; es
-            (?и "й") ;; ru
-            ))
+          (append char-fold-exclude
+                  '(
+                    (?a "å") ;; da no nb nn sv
+                    (?a "ä") ;; et fi sv
+                    (?o "ö") ;; et fi sv
+                    (?n "ñ") ;; es
+                    )))
          (char-fold-symmetric t)
          (char-fold-table (char-fold-make-table))
          (matches
           '(
             ("e" "ℯ" "ḗ" "ë" "ë")
             ("е" "ё" "ё")
-            ("ι" "ί" "ί"
-             ;; FIXME: "ΐ"
-             )
+            ("ι" "ί" "ί" "ΐ")
             ("ß" "ss")
             ("o" "ø")
             ("l" "ł")
-
+            ("æ" "ae")
+            ("→" "->")
+            ("⇒" "=>")
             ))
          (no-matches
           '(



reply via email to

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