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.
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
This patch changes the default value of 'dict-dir' to correspond
 | 
						|
to ~/.guix-profile/lib/aspell rather than $prefix/lib/aspell-X.Y.
 | 
						|
 | 
						|
This is not strictly necessary for the 'aspell' program itself since
 | 
						|
one can simply set "ASPELL_CONF=dict-dir $HOME/.guix-profile/lib/aspell".
 | 
						|
However it is necessary for applications that use libaspell since
 | 
						|
'ASPELL_CONF' is not honored in this case.  See <https://bugs.gnu.org/25836>.
 | 
						|
 | 
						|
--- a/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 {
 | 
						|
 #  define REPL     ".aspell.<lang>.prepl"
 | 
						|
 #endif
 | 
						|
 
 | 
						|
+#undef DICT_DIR
 | 
						|
+#define DICT_DIR "<$ASPELL_DICT_DIR|$HOME/.guix-profile/lib/aspell>"
 | 
						|
+
 | 
						|
   static const KeyInfo config_keys[] = {
 | 
						|
     // the description should be under 50 chars
 | 
						|
     {"actual-dict-dir", KeyInfoString, "<dict-dir^master>", 0}
 |