gnu: aspell: Truly honor $ASPELL_DICT_DIR.
Fixes <https://bugs.gnu.org/29686>. Reported by Oleg Pykhalov <go.wigust@gmail.com>. * gnu/packages/aspell.scm (aspell)[arguments]: Remove 'wrap-aspell' phase. * gnu/packages/patches/aspell-default-dict-dir.patch: Add hunk to expand the right-hand size of '|' in values like "<$FOO|$BAR/baz>". Change DICT_DIR to refer to "$HOME" on the right-hand side.
This commit is contained in:
parent
bb750fa021
commit
4554d6b77e
2 changed files with 24 additions and 10 deletions
gnu/packages
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||||
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
|
@ -65,14 +65,6 @@
|
||||||
(("\"filter-path(.*)DICT_DIR" _ middle)
|
(("\"filter-path(.*)DICT_DIR" _ middle)
|
||||||
(string-append "\"filter-path" middle
|
(string-append "\"filter-path" middle
|
||||||
"\"" libdir "\"")))
|
"\"" libdir "\"")))
|
||||||
#t)))
|
|
||||||
(add-after 'install 'wrap-aspell
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(let ((bin/aspell (string-append (assoc-ref outputs "out")
|
|
||||||
"/bin/aspell")))
|
|
||||||
(wrap-program bin/aspell
|
|
||||||
'("ASPELL_CONF" "" =
|
|
||||||
("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}")))
|
|
||||||
#t))))))
|
#t))))))
|
||||||
(inputs `(("perl" ,perl)))
|
(inputs `(("perl" ,perl)))
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,34 @@ However it is necessary for applications that use libaspell since
|
||||||
|
|
||||||
--- a/common/config.cpp
|
--- a/common/config.cpp
|
||||||
+++ b/common/config.cpp
|
+++ b/common/config.cpp
|
||||||
|
@@ -651,7 +651,20 @@ namespace acommon {
|
||||||
|
} else { // sep == '|'
|
||||||
|
assert(replace[0] == '$');
|
||||||
|
const char * env = getenv(replace.c_str()+1);
|
||||||
|
- final_str += env ? env : second;
|
||||||
|
+ if (env) {
|
||||||
|
+ final_str += env;
|
||||||
|
+ } else if (second[0] == '$') {
|
||||||
|
+ // Expand the right-hand side of '|', which starts with a
|
||||||
|
+ // reference to an environment variable.
|
||||||
|
+ auto slash = second.find('/');
|
||||||
|
+ String variable = second.substr(1, slash - 1);
|
||||||
|
+ const char * env = getenv(variable.c_str());
|
||||||
|
+ String value = env ? String(env) : "";
|
||||||
|
+ value += second.substr(slash, second.size() - slash);
|
||||||
|
+ final_str += value;
|
||||||
|
+ } else {
|
||||||
|
+ final_str += second;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
replace = "";
|
||||||
|
in_replace = false;
|
||||||
@@ -1349,6 +1349,9 @@ namespace acommon {
|
@@ -1349,6 +1349,9 @@ namespace acommon {
|
||||||
# define REPL ".aspell.<lang>.prepl"
|
# define REPL ".aspell.<lang>.prepl"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
+#undef DICT_DIR
|
+#undef DICT_DIR
|
||||||
+#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>"
|
+#define DICT_DIR "<$ASPELL_DICT_DIR|$HOME/.guix-profile/lib/aspell>"
|
||||||
+
|
+
|
||||||
static const KeyInfo config_keys[] = {
|
static const KeyInfo config_keys[] = {
|
||||||
// the description should be under 50 chars
|
// the description should be under 50 chars
|
||||||
|
|
Reference in a new issue