summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2019-07-29 01:45:36 +0300
committerJuri Linkov <juri@linkov.net>2019-07-29 01:45:36 +0300
commitbe16c204d6fba6c7cf2e2cb9fda5d7f6637f12f7 (patch)
treed23726f18cb1470be6cb8d5f86b16bbcfa990050
parentd69e1d7056155d7c14eac31b9303af5ac1549e35 (diff)
downloademacs-be16c204d6fba6c7cf2e2cb9fda5d7f6637f12f7.tar.gz
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)
-rw-r--r--lisp/char-fold.el21
-rw-r--r--test/lisp/char-fold-tests.el50
2 files changed, 45 insertions, 26 deletions
diff --git a/lisp/char-fold.el b/lisp/char-fold.el
index f379229e6c4..b05d37455b9 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 e519435ef05..0efbdcf988c 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
'(