[emacs] Fix for emacs bug #13460, ispell-change dictionary hunspell issue (#903151)

Jochen Schmitt s4504kr at fedoraproject.org
Sat Feb 2 11:29:07 UTC 2013


commit 66891062cd885360ee23e8c4a868f103b2c64bfc
Author: Jochen Schmitt <Jochen at herr-schmitt.de>
Date:   Mon Jan 21 19:17:39 2013 +0100

    Fix for emacs bug #13460, ispell-change dictionary hunspell issue (#903151)

 emacs-24.2-hunspell.patch |  102 +++++++++++++++++++++++++++++++++++++++++++++
 emacs-spellchecker.patch  |    2 +-
 emacs.spec                |   12 ++++-
 3 files changed, 113 insertions(+), 3 deletions(-)
---
diff --git a/emacs-24.2-hunspell.patch b/emacs-24.2-hunspell.patch
new file mode 100644
index 0000000..dc90b2f
--- /dev/null
+++ b/emacs-24.2-hunspell.patch
@@ -0,0 +1,102 @@
+diff -up emacs-24.2/lisp/textmodes/ispell.el.hunspell emacs-24.2/lisp/textmodes/ispell.el
+--- emacs-24.2/lisp/textmodes/ispell.el.hunspell	2013-01-21 18:45:01.743335126 +0100
++++ emacs-24.2/lisp/textmodes/ispell.el	2013-01-21 18:51:02.082010837 +0100
+@@ -572,6 +572,40 @@ re-start Emacs."
+ 		       (coding-system :tag "Coding System")))
+   :group 'ispell)
+ 
++(defvar ispell-hunspell-dictionary-equivs-alist
++  '(("american"      "en_US")
++    ("brasileiro"    "pt_BR")
++    ("british"       "en_GB")
++    ("castellano"    "es_ES")
++    ("castellano8"   "es_ES")
++    ("czech"         "cs_CZ")
++    ("dansk"         "da_DK")
++    ("deutsch"       "de_DE")
++    ("deutsch8"      "de_DE")
++    ("english"       "en_US")
++    ("esperanto"     "eo")
++    ("esperanto-tex" "eo")
++    ("finnish"       "fi_FI")
++    ("francais7"     "fr_FR")
++    ("francais"      "fr_FR")
++    ("francais-tex"  "fr_FR")
++    ("german"        "de_DE")
++    ("german8"       "de_DE")
++    ("italiano"      "it_IT")
++    ("nederlands"    "nl_NL")
++    ("nederlands8"   "nl_NL")
++    ("norsk"         "nn_NO")
++    ("norsk7-tex"    "nn_NO")
++    ("polish"        "pl_PL")
++    ("portugues"     "pt_PT")
++    ("russian"       "ru_RU")
++    ("russianw"      "ru_RU")
++    ("slovak"        "sk_SK")
++    ("slovenian"     "sl_SI")
++    ("svenska"       "sv_SE")
++    ("hebrew"        "he_IL"))
++  "Alist with matching hunspell dict names for standard dict names in
++  `ispell-dictionary-base-alist'.")
+ 
+ (defvar ispell-dictionary-base-alist
+   '((nil
+@@ -1106,9 +1140,57 @@ aspell is used along with Emacs).")
+ 		    ispell-encoding8-command)
+ 	       ispell-aspell-dictionary-alist
+ 	     nil))
++	  (ispell-dictionary-base-alist ispell-dictionary-base-alist)
+ 	  ispell-base-dicts-override-alist ; Override only base-dicts-alist
+ 	  all-dicts-alist)
+ 
++      ;; While ispell and aspell (through aliases) use the traditional
++      ;; dict naming originally expected by ispell.el, hunspell
++      ;; uses locale based names with no alias.  We need to map
++      ;; standard names to locale based names to make default dict
++      ;; definitions available for hunspell.
++      (if ispell-really-hunspell
++	  (let (tmp-dicts-alist)
++	    (dolist (adict ispell-dictionary-base-alist)
++	      (let* ((dict-name (nth 0 adict))
++		     (dict-equiv
++		      (cadr (assoc dict-name
++				   ispell-hunspell-dictionary-equivs-alist)))
++		     (ispell-args (nth 5 adict))
++		     (ispell-args-has-d (member "-d" ispell-args))
++		     skip-dict)
++		;; Remove "-d" option from `ispell-args' if present
++		(if ispell-args-has-d
++		    (let ((ispell-args-after-d
++			   (cdr (cdr ispell-args-has-d)))
++			  (ispell-args-before-d
++			   (butlast ispell-args (length ispell-args-has-d))))
++		      (setq ispell-args
++			    (nconc ispell-args-before-d
++				   ispell-args-after-d))))
++		;; Unless default dict, re-add "-d" option with the mapped value
++		(if dict-name
++		    (if dict-equiv
++			(nconc ispell-args (list "-d" dict-equiv))
++		      (message
++		       "ispell-set-spellchecker-params: Missing hunspell equiv for \"%s\". Skipping."
++		       dict-name)
++		      (setq skip-dict t)))
++
++		(unless skip-dict
++		  (add-to-list 'tmp-dicts-alist
++			       (list
++				dict-name      ; dict name
++				(nth 1 adict)  ; casechars
++				(nth 2 adict)  ; not-casechars
++				(nth 3 adict)  ; otherchars
++				(nth 4 adict)  ; many-otherchars-p
++				ispell-args    ; ispell-args
++				(nth 6 adict)  ; extended-character-mode
++				(nth 7 adict)  ; dict encoding
++				))))
++	      (setq ispell-dictionary-base-alist tmp-dicts-alist))))
++
+       (run-hooks 'ispell-initialize-spellchecker-hook)
+ 
+       ;; Add dicts to ``ispell-dictionary-alist'' unless already present.
diff --git a/emacs-spellchecker.patch b/emacs-spellchecker.patch
index e6b48d0..cc2003b 100644
--- a/emacs-spellchecker.patch
+++ b/emacs-spellchecker.patch
@@ -1,4 +1,4 @@
-diff -up emacs-23.3/lisp/textmodes/ispell.el.spellcheck emacs-23.3/lisp/textmodes/ispell.el
+qdiff -up emacs-23.3/lisp/textmodes/ispell.el.spellcheck emacs-23.3/lisp/textmodes/ispell.el
 --- emacs-23.3/lisp/textmodes/ispell.el.spellcheck	2011-11-16 10:54:57.363513864 +0100
 +++ emacs-23.3/lisp/textmodes/ispell.el	2011-11-16 10:55:17.209577635 +0100
 @@ -348,9 +348,9 @@ Must be greater than 1."
diff --git a/emacs.spec b/emacs.spec
index b804fb5..e196d39 100644
--- a/emacs.spec
+++ b/emacs.spec
@@ -3,7 +3,7 @@ Summary: GNU Emacs text editor
 Name: emacs
 Epoch: 1
 Version: 24.2
-Release: 8%{?dist}
+Release: 9%{?dist}
 License: GPLv3+
 URL: http://www.gnu.org/software/emacs/
 Group: Applications/Editors
@@ -20,8 +20,10 @@ Source7: emacs-terminal.sh
 Patch7: emacs-spellchecker.patch
 # rhbz#830162, fixed in org-mode upstream
 Patch8: emacs-locate-library.patch
-# Fix for Emacs bug #11580.
+# Fix for Emacs bug #111500.
 Patch9: emacs-bz11580-eudc-bbdb.patch
+# Fix for emacs bug #13460.
+Patch100: emacs-24.2-hunspell.patch
 
 BuildRequires: atk-devel cairo-devel freetype-devel fontconfig-devel dbus-devel giflib-devel glibc-devel libpng-devel
 BuildRequires: libjpeg-devel libtiff-devel libX11-devel libXau-devel libXdmcp-devel libXrender-devel libXt-devel
@@ -154,6 +156,8 @@ packages that add functionality to Emacs.
 %patch8 -p1 -b .locate-library
 %patch9 -p1 -b .emacs-bz11580-eudc-bbdb
 
+%patch100 -p1 -b .hunspell
+
 # We prefer our emacs.desktop file
 cp %SOURCE1 etc/emacs.desktop
 
@@ -189,6 +193,7 @@ ln -s ../../%{name}/%{version}/etc/NEWS doc
 %build
 # Remove unpatched files as all files in the lisp directory are
 # installed.
+rm lisp/textmodes/ispell.el.hunspell
 rm lisp/textmodes/ispell.el.spellchecker
 
 export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS"
@@ -427,6 +432,9 @@ update-desktop-database &> /dev/null || :
 %dir %{_datadir}/emacs/site-lisp/site-start.d
 
 %changelog
+* Mon Jan 21 2013 Jochen Schmitt <Jochen herr-schmitt de> - 1:24.2-9
+- Fix for emacs bug #13460, ispell-change dictionary hunspell issue (#903151)
+
 * Fri Jan 18 2013 Adam Tkac <atkac redhat com> - 1:24.2-8
 - rebuild due to "jpeg8-ABI" feature drop
 


More information about the scm-commits mailing list