* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
@ 2016-12-19 12:28 Reuben Thomas
2016-12-19 16:23 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-19 12:28 UTC (permalink / raw)
To: 25230
[-- Attachment #1.1: Type: text/plain, Size: 703 bytes --]
I noticed that I had not quite finished the work of commit 854ed8a, which
removed the test for support for POSIX character classes, as that is now
guaranteed.
In ispell-set-spellchecker-params, there is code that used to be run
conditionally on support for POSIX character classes, which sets all the
CASECHARS and NOT-CASECHARS entries for built-in dictionaries to
[[:alpha:]] and [^[:alpha:]] respectively.
There is no point doing this unconditionally, so instead, put these
character classes directly into the initial values used in
ispell-dictionary-base-alist. This change also makes the variable's
initialization easier to read.
The attached patch makes these changes.
--
http://rrt.sc3d.org
[-- Attachment #1.2: Type: text/html, Size: 1270 bytes --]
[-- Attachment #2: 0001-Use-alpha-by-default-for-ispell-built-in-dictionarie.patch --]
[-- Type: text/x-patch, Size: 12545 bytes --]
From 73101807ff3abd052b137fb8f881953b9beaa4a7 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <rrt@sc3d.org>
Date: Mon, 19 Dec 2016 12:17:44 +0000
Subject: [PATCH 1/4] Use [:alpha:] by default for ispell built-in dictionaries
* lisp/textmodes/ispell.el (ispell-dictionary-base-alist)
(ispell-set-spellchecker-params): Since Emacs is now guaranteed to
support named character classes in regexps, use `[:alpha:]' directly
in ispell-dictionary-base-alist rather than setting it in
ispell-set-spellchecker-params. (This used to be done conditionally
until commit 854ed8a, of which this patch is a logical completion.)
---
lisp/textmodes/ispell.el | 116 +++++++++++++++--------------------------------
1 file changed, 36 insertions(+), 80 deletions(-)
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 23ee412..0aced0c 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -436,114 +436,70 @@ ispell-dictionary-base-alist
;; The default dictionary. It may be English.aff, or any other
;; dictionary depending on locale and such things. We should probably
;; ask ispell what dictionary it's using, but until we do that, let's
- ;; just use a minimal regexp. [:alpha:] will later be set if possible.
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ ;; just use a minimal regexp.
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("american" ; Yankee English
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("brasileiro" ; Brazilian mode
- "[A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
- "[^A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
- "[']" nil nil nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1)
("british" ; British version
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("castellano" ; Spanish mode
- "[A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[^A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[-]" nil ("-B") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-]" nil ("-B") "~tex" iso-8859-1)
("castellano8" ; 8 bit Spanish mode
- "[A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[^A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[-]" nil ("-B" "-d" "castellano") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-]" nil ("-B" "-d" "castellano") "~latin1" iso-8859-1)
("czech"
- "[A-Za-z\301\311\314\315\323\332\331\335\256\251\310\330\317\253\322\341\351\354\355\363\372\371\375\276\271\350\370\357\273\362]"
- "[^A-Za-z\301\311\314\315\323\332\331\335\256\251\310\330\317\253\322\341\351\354\355\363\372\371\375\276\271\350\370\357\273\362]"
- "" nil ("-B") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil iso-8859-2)
("dansk" ; Dansk.aff
- "[A-Z\306\330\305a-z\346\370\345]" "[^A-Z\306\330\305a-z\346\370\345]"
- "[']" nil ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-C") nil iso-8859-1)
("deutsch" ; Deutsch.aff
- "[a-zA-Z\"]" "[^a-zA-Z\"]" "[']" t ("-C") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~tex" iso-8859-1)
("deutsch8"
- "[a-zA-Z\304\326\334\344\366\337\374]"
- "[^a-zA-Z\304\326\334\344\366\337\374]"
- "[']" t ("-C" "-d" "deutsch") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C" "-d" "deutsch") "~latin1" iso-8859-1)
("english" ; make English explicitly selectable
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("esperanto"
- "[A-Za-z\246\254\266\274\306\330\335\336\346\370\375\376]"
- "[^A-Za-z\246\254\266\274\306\330\335\336\346\370\375\376]"
- "[-']" t ("-C") "~latin3" iso-8859-3)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-']" t ("-C") "~latin3" iso-8859-3)
("esperanto-tex"
- "[A-Za-z^\\]" "[^A-Za-z^\\]"
- "[-'`\"]" t ("-C" "-d" "esperanto") "~tex" iso-8859-3)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'`\"]" t ("-C" "-d" "esperanto") "~tex" iso-8859-3)
("finnish"
- "[A-Za-z\345\344\366\305\304\326]"
- "[^A-Za-z\345\344\366\305\304\326]"
- "[:]" nil ("-C") "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[:]" nil ("-C") "~list" iso-8859-1)
("francais7"
- "[A-Za-z]" "[^A-Za-z]" "[`'^-]" t nil nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[`'^-]" t nil nil iso-8859-1)
("francais" ; Francais.aff
- "[A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374]"
- "[^A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374]"
- "[-'.@]" t nil "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'.@]" t nil "~list" iso-8859-1)
("francais-tex" ; Francais.aff
- "[A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374\\]"
- "[^A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374\\]"
- "[-'^`\".@]" t nil "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'^`\".@]" t nil "~tex" iso-8859-1)
("german" ; german.aff
- "[a-zA-Z\"]" "[^a-zA-Z\"]" "[']" t ("-C") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~tex" iso-8859-1)
("german8" ; german.aff
- "[a-zA-Z\304\326\334\344\366\337\374]"
- "[^a-zA-Z\304\326\334\344\366\337\374]"
- "[']" t ("-C" "-d" "german") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C" "-d" "german") "~latin1" iso-8859-1)
("italiano" ; Italian.aff
- "[A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
- "[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
- "[-.]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-.]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
("nederlands" ; Nederlands.aff
- "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[']" t ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") nil iso-8859-1)
("nederlands8" ; Dutch8.aff
- "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[']" t ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") nil iso-8859-1)
("norsk" ; 8 bit Norwegian mode
- "[A-Za-z\305\306\307\310\311\322\324\330\345\346\347\350\351\362\364\370]"
- "[^A-Za-z\305\306\307\310\311\322\324\330\345\346\347\350\351\362\364\370]"
- "[\"]" nil nil "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[\"]" nil nil "~list" iso-8859-1)
("norsk7-tex" ; 7 bit Norwegian TeX mode
- "[A-Za-z{}\\'^`]" "[^A-Za-z{}\\'^`]"
- "[\"]" nil ("-d" "norsk") "~plaintex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[\"]" nil ("-d" "norsk") "~plaintex" iso-8859-1)
("polish" ; Polish mode
- "[A-Za-z\241\243\246\254\257\261\263\266\274\277\306\312\321\323\346\352\361\363]"
- "[^A-Za-z\241\243\246\254\257\261\263\266\274\277\306\312\321\323\346\352\361\363]"
- "[.]" nil nil nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "[.]" nil nil nil iso-8859-2)
("portugues" ; Portuguese mode
- "[a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
- "[^a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
- "[']" t ("-C") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~latin1" iso-8859-1)
("russian" ; Russian.aff (KOI8-R charset)
- "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
- "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
- "" nil nil nil koi8-r)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil nil nil koi8-r)
("russianw" ; russianw.aff (CP1251 charset)
- "[\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
- "[^\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
- "" nil nil nil windows-1251)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil nil nil windows-1251)
("slovak" ; Slovakian
- "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "" nil ("-B") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil iso-8859-2)
("slovenian" ; Slovenian
- "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "" nil ("-B" "-d" "slovenian") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B" "-d" "slovenian") nil iso-8859-2)
("svenska" ; Swedish mode
- "[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
- "[^A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
- "[']" nil ("-C") "~list" iso-8859-1)
- ("hebrew" "[\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "[^\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "" nil ("-B") nil cp1255))
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-C") "~list" iso-8859-1)
+ ("hebrew"
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil cp1255))
"Base value for `ispell-dictionary-alist'.")
(defvar ispell-dictionary-alist nil
@@ -1290,8 +1246,8 @@ ispell-set-spellchecker-params
(cl-pushnew (if (cadr adict) ;; Do not touch hunspell uninitialized entries
(list
(nth 0 adict) ; dict name
- "[[:alpha:]]" ; casechars
- "[^[:alpha:]]" ; not-casechars
+ (nth 1 adict) ; casechars
+ (nth 2 adict) ; not-casechars
(nth 3 adict) ; otherchars
(nth 4 adict) ; many-otherchars-p
(nth 5 adict) ; ispell-args
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-19 12:28 bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries Reuben Thomas
@ 2016-12-19 16:23 ` Eli Zaretskii
2016-12-19 21:17 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-12-19 16:23 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
> From: Reuben Thomas <rrt@sc3d.org>
> Date: Mon, 19 Dec 2016 12:28:57 +0000
>
> In ispell-set-spellchecker-params, there is code that used to be run conditionally on support for POSIX
> character classes, which sets all the CASECHARS and NOT-CASECHARS entries for built-in dictionaries to
> [[:alpha:]] and [^[:alpha:]] respectively.
>
> There is no point doing this unconditionally, so instead, put these character classes directly into the initial
> values used in ispell-dictionary-base-alist. This change also makes the variable's initialization easier to read.
>
> The attached patch makes these changes.
>
> - "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
> + ;; just use a minimal regexp.
> + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
You are assuming that [[:alpha:]] and [A-Za-z] are identical. But
they are far from being identical, not since Emacs 25.1. I mentioned
this in another thread today.
> ("brasileiro" ; Brazilian mode
> - "[A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
> - "[^A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
> - "[']" nil nil nil iso-8859-1)
> + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1)
Same here: [[:alpha:]] is much broader now than any set of characters
supported by a single language.
In any case, these settings are for Ispell, which only supports
single-byte encodings. We cannot use arbitrary characters with it.
IOW, I don't think this patch is in the right direction.
Thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-19 16:23 ` Eli Zaretskii
@ 2016-12-19 21:17 ` Reuben Thomas
2016-12-20 15:37 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-19 21:17 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1: Type: text/plain, Size: 838 bytes --]
On 19 December 2016 at 16:23, Eli Zaretskii <eliz@gnu.org> wrote:
>
> You are assuming that [[:alpha:]] and [A-Za-z] are identical.
No, because my patch does not change the current behaviour of the code.
The assumption that [:alpha:] is OK to use here instead of A-Za-z is
already in the code.
IOW, I don't think this patch is in the right direction.
>
From the conversation on other bugs, I think that the correct thing to do
here is to remove the first part of my patch (so that the hardwired
dictionaries keep their individual casechars and not-casechars settings),
and keep the second part of the patch (so that
ispell-set-spellchecker-params does not change them all to [:alpha:].
Does that sound plausible? If so, I'll prepare a modified patch for your
consideration.
--
http://rrt.sc3d.org
[-- Attachment #2: Type: text/html, Size: 1704 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-19 21:17 ` Reuben Thomas
@ 2016-12-20 15:37 ` Eli Zaretskii
2016-12-20 18:42 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-12-20 15:37 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
> From: Reuben Thomas <rrt@sc3d.org>
> Date: Mon, 19 Dec 2016 21:17:17 +0000
> Cc: 25230@debbugs.gnu.org
>
> You are assuming that [[:alpha:]] and [A-Za-z] are identical.
>
> No, because my patch does not change the current behaviour of the code. The assumption that [:alpha:] is OK to use here instead of A-Za-z is already in the code.
Can you point out where in the code you see that assumption?
> From the conversation on other bugs, I think that the correct thing to do here is to remove the first part of my patch (so that the hardwired dictionaries keep their individual casechars and not-casechars settings), and keep the second part of the patch (so that ispell-set-spellchecker-params does not change them all to [:alpha:].
>
> Does that sound plausible?
I think so, but we should make sure the hard-wired values work with
Aspell, before we make that change. If they don't, we should provide
something that works for Aspell.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-20 15:37 ` Eli Zaretskii
@ 2016-12-20 18:42 ` Reuben Thomas
2016-12-20 19:37 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-20 18:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1: Type: text/plain, Size: 1731 bytes --]
On 20 December 2016 at 15:37, Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Reuben Thomas <rrt@sc3d.org>
> > Date: Mon, 19 Dec 2016 21:17:17 +0000
> > Cc: 25230@debbugs.gnu.org
> >
> > You are assuming that [[:alpha:]] and [A-Za-z] are identical.
> >
> > No, because my patch does not change the current behaviour of the code.
> The assumption that [:alpha:] is OK to use here instead of A-Za-z is
> already in the code.
>
> Can you point out where in the code you see that assumption?
>
The current code in about line 1300 (ispell-set-spellchecker-params)
unconditionally overrides all the built-in dictionaries' values for
casechars and not-casechars with [:alpha:] in the loop that starts
(dolist (adict ispell-dictionary-alist) …)
At this point, ispell-dictionary-alist already contains
ispell-dictionary-base-alist (see a few lines above). Therefore, the
original values in the intializer are never used. (Hence my original patch.)
> > From the conversation on other bugs, I think that the correct thing to
> do here is to remove the first part of my patch (so that the hardwired
> dictionaries keep their individual casechars and not-casechars settings),
> and keep the second part of the patch (so that
> ispell-set-spellchecker-params does not change them all to [:alpha:].
> >
> > Does that sound plausible?
>
> I think so, but we should make sure the hard-wired values work with
> Aspell, before we make that change. If they don't, we should provide
> something that works for Aspell.
>
I thought the hard-wired values were only for ispell dictionaries (for
aspell, the dictionaries are searched for on the computer)…
--
http://rrt.sc3d.org
[-- Attachment #2: Type: text/html, Size: 2936 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-20 18:42 ` Reuben Thomas
@ 2016-12-20 19:37 ` Eli Zaretskii
2016-12-20 21:45 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-12-20 19:37 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
> From: Reuben Thomas <rrt@sc3d.org>
> Date: Tue, 20 Dec 2016 18:42:05 +0000
> Cc: 25230@debbugs.gnu.org
>
> > No, because my patch does not change the current behaviour of the code. The assumption that
> [:alpha:] is OK to use here instead of A-Za-z is already in the code.
>
> Can you point out where in the code you see that assumption?
>
> The current code in about line 1300 (ispell-set-spellchecker-params) unconditionally overrides all the built-in
> dictionaries' values for casechars and not-casechars with [:alpha:] in the loop that starts
>
> (dolist (adict ispell-dictionary-alist) …)
That's the place where you suggested to keep the original values. I
thought there were other places, but it's good to know there are none.
> I think so, but we should make sure the hard-wired values work with
> Aspell, before we make that change. If they don't, we should provide
> something that works for Aspell.
>
> I thought the hard-wired values were only for ispell dictionaries (for aspell, the dictionaries are searched for on
> the computer)…
But if we find that an installed dictionary is one of those in the
data base of the hard-wired values, we use those values, right?
Because AFAIK Aspell provides only one of the 3 character sets we need
in its dictionaries, the other 2 need to be somehow guessed or
provided by the user.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-20 19:37 ` Eli Zaretskii
@ 2016-12-20 21:45 ` Reuben Thomas
2016-12-21 0:20 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-20 21:45 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1: Type: text/plain, Size: 1805 bytes --]
On 20 December 2016 at 19:37, Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Reuben Thomas <rrt@sc3d.org>
> > Date: Tue, 20 Dec 2016 18:42:05 +0000
> > Cc: 25230@debbugs.gnu.org
> >
> > > No, because my patch does not change the current behaviour of the
> code. The assumption that
> > [:alpha:] is OK to use here instead of A-Za-z is already in the code.
> >
> > Can you point out where in the code you see that assumption?
> >
> > The current code in about line 1300 (ispell-set-spellchecker-params)
> unconditionally overrides all the built-in
> > dictionaries' values for casechars and not-casechars with [:alpha:] in
> the loop that starts
> >
> > (dolist (adict ispell-dictionary-alist) …)
>
> That's the place where you suggested to keep the original values. I
> thought there were other places, but it's good to know there are none.
>
I believe not, indeed.
> I think so, but we should make sure the hard-wired values work with
> > Aspell, before we make that change. If they don't, we should provide
> > something that works for Aspell.
> >
> > I thought the hard-wired values were only for ispell dictionaries (for
> aspell, the dictionaries are searched for on
> > the computer)…
>
> But if we find that an installed dictionary is one of those in the
> data base of the hard-wired values, we use those values, right?
>
No, for aspell, we should only be using aspell dictionaries (found by
ispell-find-aspell-dictionaries).
> Because AFAIK Aspell provides only one of the 3 character sets we need
> in its dictionaries, the other 2 need to be somehow guessed or
> provided by the user.
>
They are guessed as [:alpha:], because we don't have better information
(that I know of).
--
http://rrt.sc3d.org
[-- Attachment #2: Type: text/html, Size: 2999 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-20 21:45 ` Reuben Thomas
@ 2016-12-21 0:20 ` Reuben Thomas
2016-12-21 17:15 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-21 0:20 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1.1: Type: text/plain, Size: 350 bytes --]
Here's an updated patch, which simply removes the overriding of the
built-in CASECHARS/NOT-CASECHARS settings for ispell dictionaries. It
assumes that all other dictionaries (either configured by the user or found
by the various auto-scanning functions) will have sensible
CASECHARS/NOT-CASECHARS values, which is expected to be the case at present.
[-- Attachment #1.2: Type: text/html, Size: 466 bytes --]
[-- Attachment #2: 0001-Keep-default-CASECHARS-NOT-CASECHARS-for-ispell-buil.patch --]
[-- Type: text/x-patch, Size: 11767 bytes --]
From 00b66a9599cf65e2188dd590d256c301e978c6a2 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <rrt@sc3d.org>
Date: Mon, 19 Dec 2016 12:17:44 +0000
Subject: [PATCH 1/6] Keep default CASECHARS/NOT-CASECHARS for ispell built-in
dictionaries
* lisp/textmodes/ispell.el (ispell-set-spellchecker-params): Do not
override CASECHARS and NOT-CASECHARS. The ispell dictionaries
retain their hardwired values, and all other dictionaries are given
sensible defaults.
---
lisp/textmodes/ispell.el | 112 ++++++++++++++---------------------------------
1 file changed, 34 insertions(+), 78 deletions(-)
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 23ee412..82e5c2b 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -436,114 +436,70 @@ ispell-dictionary-base-alist
;; The default dictionary. It may be English.aff, or any other
;; dictionary depending on locale and such things. We should probably
;; ask ispell what dictionary it's using, but until we do that, let's
- ;; just use a minimal regexp. [:alpha:] will later be set if possible.
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ ;; just use a minimal regexp.
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("american" ; Yankee English
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("brasileiro" ; Brazilian mode
- "[A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
- "[^A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
- "[']" nil nil nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1)
("british" ; British version
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("castellano" ; Spanish mode
- "[A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[^A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[-]" nil ("-B") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-]" nil ("-B") "~tex" iso-8859-1)
("castellano8" ; 8 bit Spanish mode
- "[A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[^A-Z\301\311\315\321\323\332\334a-z\341\351\355\361\363\372\374]"
- "[-]" nil ("-B" "-d" "castellano") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-]" nil ("-B" "-d" "castellano") "~latin1" iso-8859-1)
("czech"
- "[A-Za-z\301\311\314\315\323\332\331\335\256\251\310\330\317\253\322\341\351\354\355\363\372\371\375\276\271\350\370\357\273\362]"
- "[^A-Za-z\301\311\314\315\323\332\331\335\256\251\310\330\317\253\322\341\351\354\355\363\372\371\375\276\271\350\370\357\273\362]"
- "" nil ("-B") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil iso-8859-2)
("dansk" ; Dansk.aff
- "[A-Z\306\330\305a-z\346\370\345]" "[^A-Z\306\330\305a-z\346\370\345]"
- "[']" nil ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-C") nil iso-8859-1)
("deutsch" ; Deutsch.aff
- "[a-zA-Z\"]" "[^a-zA-Z\"]" "[']" t ("-C") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~tex" iso-8859-1)
("deutsch8"
- "[a-zA-Z\304\326\334\344\366\337\374]"
- "[^a-zA-Z\304\326\334\344\366\337\374]"
- "[']" t ("-C" "-d" "deutsch") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C" "-d" "deutsch") "~latin1" iso-8859-1)
("english" ; make English explicitly selectable
- "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
("esperanto"
- "[A-Za-z\246\254\266\274\306\330\335\336\346\370\375\376]"
- "[^A-Za-z\246\254\266\274\306\330\335\336\346\370\375\376]"
- "[-']" t ("-C") "~latin3" iso-8859-3)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-']" t ("-C") "~latin3" iso-8859-3)
("esperanto-tex"
- "[A-Za-z^\\]" "[^A-Za-z^\\]"
- "[-'`\"]" t ("-C" "-d" "esperanto") "~tex" iso-8859-3)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'`\"]" t ("-C" "-d" "esperanto") "~tex" iso-8859-3)
("finnish"
- "[A-Za-z\345\344\366\305\304\326]"
- "[^A-Za-z\345\344\366\305\304\326]"
- "[:]" nil ("-C") "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[:]" nil ("-C") "~list" iso-8859-1)
("francais7"
- "[A-Za-z]" "[^A-Za-z]" "[`'^-]" t nil nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[`'^-]" t nil nil iso-8859-1)
("francais" ; Francais.aff
- "[A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374]"
- "[^A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374]"
- "[-'.@]" t nil "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'.@]" t nil "~list" iso-8859-1)
("francais-tex" ; Francais.aff
- "[A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374\\]"
- "[^A-Za-z\300\302\306\307\310\311\312\313\316\317\324\331\333\334\340\342\347\350\351\352\353\356\357\364\371\373\374\\]"
- "[-'^`\".@]" t nil "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-'^`\".@]" t nil "~tex" iso-8859-1)
("german" ; german.aff
- "[a-zA-Z\"]" "[^a-zA-Z\"]" "[']" t ("-C") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~tex" iso-8859-1)
("german8" ; german.aff
- "[a-zA-Z\304\326\334\344\366\337\374]"
- "[^a-zA-Z\304\326\334\344\366\337\374]"
- "[']" t ("-C" "-d" "german") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C" "-d" "german") "~latin1" iso-8859-1)
("italiano" ; Italian.aff
- "[A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
- "[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
- "[-.]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[-.]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
("nederlands" ; Nederlands.aff
- "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[']" t ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") nil iso-8859-1)
("nederlands8" ; Dutch8.aff
- "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
- "[']" t ("-C") nil iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") nil iso-8859-1)
("norsk" ; 8 bit Norwegian mode
- "[A-Za-z\305\306\307\310\311\322\324\330\345\346\347\350\351\362\364\370]"
- "[^A-Za-z\305\306\307\310\311\322\324\330\345\346\347\350\351\362\364\370]"
- "[\"]" nil nil "~list" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[\"]" nil nil "~list" iso-8859-1)
("norsk7-tex" ; 7 bit Norwegian TeX mode
- "[A-Za-z{}\\'^`]" "[^A-Za-z{}\\'^`]"
- "[\"]" nil ("-d" "norsk") "~plaintex" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[\"]" nil ("-d" "norsk") "~plaintex" iso-8859-1)
("polish" ; Polish mode
- "[A-Za-z\241\243\246\254\257\261\263\266\274\277\306\312\321\323\346\352\361\363]"
- "[^A-Za-z\241\243\246\254\257\261\263\266\274\277\306\312\321\323\346\352\361\363]"
- "[.]" nil nil nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "[.]" nil nil nil iso-8859-2)
("portugues" ; Portuguese mode
- "[a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
- "[^a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
- "[']" t ("-C") "~latin1" iso-8859-1)
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-C") "~latin1" iso-8859-1)
("russian" ; Russian.aff (KOI8-R charset)
- "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
- "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
- "" nil nil nil koi8-r)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil nil nil koi8-r)
("russianw" ; russianw.aff (CP1251 charset)
- "[\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
- "[^\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
- "" nil nil nil windows-1251)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil nil nil windows-1251)
("slovak" ; Slovakian
- "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "" nil ("-B") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil iso-8859-2)
("slovenian" ; Slovenian
- "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
- "" nil ("-B" "-d" "slovenian") nil iso-8859-2)
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B" "-d" "slovenian") nil iso-8859-2)
("svenska" ; Swedish mode
- "[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
- "[^A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
- "[']" nil ("-C") "~list" iso-8859-1)
- ("hebrew" "[\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "[^\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "" nil ("-B") nil cp1255))
+ "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-C") "~list" iso-8859-1)
+ ("hebrew"
+ "[[:alpha:]]" "[^[:alpha:]]" "" nil ("-B") nil cp1255))
"Base value for `ispell-dictionary-alist'.")
(defvar ispell-dictionary-alist nil
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-21 0:20 ` Reuben Thomas
@ 2016-12-21 17:15 ` Eli Zaretskii
2016-12-21 17:31 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-12-21 17:15 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
> From: Reuben Thomas <rrt@sc3d.org>
> Date: Wed, 21 Dec 2016 00:20:27 +0000
> Cc: 25230@debbugs.gnu.org
>
> Here's an updated patch, which simply removes the overriding of the built-in
> CASECHARS/NOT-CASECHARS settings for ispell dictionaries. It assumes that all other dictionaries (either
> configured by the user or found by the various auto-scanning functions) will have sensible
> CASECHARS/NOT-CASECHARS values, which is expected to be the case at present.
Looks like you sent the wrong patch, as this:
> diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
> index 23ee412..82e5c2b 100644
> --- a/lisp/textmodes/ispell.el
> +++ b/lisp/textmodes/ispell.el
> @@ -436,114 +436,70 @@ ispell-dictionary-base-alist
> ;; The default dictionary. It may be English.aff, or any other
> ;; dictionary depending on locale and such things. We should probably
> ;; ask ispell what dictionary it's using, but until we do that, let's
> - ;; just use a minimal regexp. [:alpha:] will later be set if possible.
> - "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
> + ;; just use a minimal regexp.
> + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
> ("american" ; Yankee English
> - "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
> + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
> ("brasileiro" ; Brazilian mode
> - "[A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
> - "[^A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\334\302\312\324a-z\341\351\355\363\372\340\350\354\362\371\343\365\347\374\342\352\364]"
> - "[']" nil nil nil iso-8859-1)
> + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1)
leaves the overriding in place. Am I missing something?
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-21 17:15 ` Eli Zaretskii
@ 2016-12-21 17:31 ` Reuben Thomas
2016-12-21 18:03 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-21 17:31 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1.1: Type: text/plain, Size: 2384 bytes --]
On 21 December 2016 at 17:15, Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Reuben Thomas <rrt@sc3d.org>
> > Date: Wed, 21 Dec 2016 00:20:27 +0000
> > Cc: 25230@debbugs.gnu.org
> >
> > Here's an updated patch, which simply removes the overriding of the
> built-in
> > CASECHARS/NOT-CASECHARS settings for ispell dictionaries. It assumes
> that all other dictionaries (either
> > configured by the user or found by the various auto-scanning functions)
> will have sensible
> > CASECHARS/NOT-CASECHARS values, which is expected to be the case at
> present.
>
> Looks like you sent the wrong patch, as this:
>
> > diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
> > index 23ee412..82e5c2b 100644
> > --- a/lisp/textmodes/ispell.el
> > +++ b/lisp/textmodes/ispell.el
> > @@ -436,114 +436,70 @@ ispell-dictionary-base-alist
> > ;; The default dictionary. It may be English.aff, or any other
> > ;; dictionary depending on locale and such things. We should
> probably
> > ;; ask ispell what dictionary it's using, but until we do that,
> let's
> > - ;; just use a minimal regexp. [:alpha:] will later be set if
> possible.
> > - "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
> > + ;; just use a minimal regexp.
> > + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
> > ("american" ; Yankee English
> > - "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
> > + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
> > ("brasileiro" ; Brazilian mode
> > - "[A-Z\301\311\315\323\332\300\310\314\322\331\303\325\307\
> 334\302\312\324a-z\341\351\355\363\372\340\350\354\362\
> 371\343\365\347\374\342\352\364]"
> > - "[^A-Z\301\311\315\323\332\300\310\314\322\331\303\325\
> 307\334\302\312\324a-z\341\351\355\363\372\340\350\354\
> 362\371\343\365\347\374\342\352\364]"
> > - "[']" nil nil nil iso-8859-1)
> > + "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1)
>
> leaves the overriding in place. Am I missing something?
>
I'm baffled, I somehow inverted the sense of what I meant to do,
discarding the correct bit of the patch and keeping the incorrect bit.
Sorry about that. I attach what should now be the correct patch.
--
http://rrt.sc3d.org
[-- Attachment #1.2: Type: text/html, Size: 3631 bytes --]
[-- Attachment #2: 0001-Keep-default-CASECHARS-NOT-CASECHARS-for-ispell-buil.patch --]
[-- Type: text/x-patch, Size: 1332 bytes --]
From bdc58ec43c7ca6fcb232ba00ac936fc62ccff58d Mon Sep 17 00:00:00 2001
From: Reuben Thomas <rrt@sc3d.org>
Date: Wed, 21 Dec 2016 17:30:44 +0000
Subject: [PATCH 1/6] Keep default CASECHARS/NOT-CASECHARS for ispell built-in
dictionaries
* lisp/textmodes/ispell.el (ispell-set-spellchecker-params): Do not
override CASECHARS and NOT-CASECHARS. The ispell dictionaries
retain their hardwired values, and all other dictionaries are given
sensible defaults.
---
lisp/textmodes/ispell.el | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 23ee412..7551d2f 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1290,8 +1290,8 @@ ispell-set-spellchecker-params
(cl-pushnew (if (cadr adict) ;; Do not touch hunspell uninitialized entries
(list
(nth 0 adict) ; dict name
- "[[:alpha:]]" ; casechars
- "[^[:alpha:]]" ; not-casechars
+ (nth 1 adict) ; casechars
+ (nth 2 adict) ; not-casechars
(nth 3 adict) ; otherchars
(nth 4 adict) ; many-otherchars-p
(nth 5 adict) ; ispell-args
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-21 17:31 ` Reuben Thomas
@ 2016-12-21 18:03 ` Eli Zaretskii
2016-12-21 22:33 ` Reuben Thomas
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-12-21 18:03 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
> From: Reuben Thomas <rrt@sc3d.org>
> Date: Wed, 21 Dec 2016 17:31:46 +0000
> Cc: 25230@debbugs.gnu.org
>
> I'm baffled, I somehow inverted the sense of what I meant to do, discarding the correct bit of the patch and
> keeping the incorrect bit.
Mysteries of Git...
> Sorry about that. I attach what should now be the correct patch.
That looks good, thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-21 18:03 ` Eli Zaretskii
@ 2016-12-21 22:33 ` Reuben Thomas
2019-06-24 23:08 ` Lars Ingebrigtsen
0 siblings, 1 reply; 13+ messages in thread
From: Reuben Thomas @ 2016-12-21 22:33 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25230
[-- Attachment #1: Type: text/plain, Size: 626 bytes --]
On 21 December 2016 at 18:03, Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Reuben Thomas <rrt@sc3d.org>
> > Date: Wed, 21 Dec 2016 17:31:46 +0000
> > Cc: 25230@debbugs.gnu.org
> >
> > I'm baffled, I somehow inverted the sense of what I meant to do,
> discarding the correct bit of the patch and
> > keeping the incorrect bit.
>
> Mysteries of Git...
>
Mysteries of magit in this case, which seems appropriate!
> > Sorry about that. I attach what should now be the correct patch.
>
> That looks good, thanks.
>
Good, I've installed it. Thanks for the review.
--
http://rrt.sc3d.org
[-- Attachment #2: Type: text/html, Size: 1534 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries
2016-12-21 22:33 ` Reuben Thomas
@ 2019-06-24 23:08 ` Lars Ingebrigtsen
0 siblings, 0 replies; 13+ messages in thread
From: Lars Ingebrigtsen @ 2019-06-24 23:08 UTC (permalink / raw)
To: Reuben Thomas; +Cc: 25230
Reuben Thomas <rrt@sc3d.org> writes:
> That looks good, thanks.
>
> Good, I've installed it. Thanks for the review.
As far as I can tell, the issue in this bug report was resolved, but the
report wasn't closed, so I'm doing that now. If that's a mistake,
please reopen.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-06-24 23:08 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-19 12:28 bug#25230: Patch to ispell.el to simplify use of [:alpha:] for CASECHARS in built-in dictionaries Reuben Thomas
2016-12-19 16:23 ` Eli Zaretskii
2016-12-19 21:17 ` Reuben Thomas
2016-12-20 15:37 ` Eli Zaretskii
2016-12-20 18:42 ` Reuben Thomas
2016-12-20 19:37 ` Eli Zaretskii
2016-12-20 21:45 ` Reuben Thomas
2016-12-21 0:20 ` Reuben Thomas
2016-12-21 17:15 ` Eli Zaretskii
2016-12-21 17:31 ` Reuben Thomas
2016-12-21 18:03 ` Eli Zaretskii
2016-12-21 22:33 ` Reuben Thomas
2019-06-24 23:08 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).