summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/home/services.scm2
-rw-r--r--tests/guix-home.sh7
2 files changed, 6 insertions, 3 deletions
diff --git a/gnu/home/services.scm b/gnu/home/services.scm
index c442da374c..b17a34d19d 100644
--- a/gnu/home/services.scm
+++ b/gnu/home/services.scm
@@ -192,7 +192,7 @@ ensures variable values are properly quoted."
(list->string (string-fold-right
(lambda (chr lst)
(if (memq chr quoted-chars)
- (append (list chr #\\) lst)
+ (append (list #\\ chr) lst)
(cons chr lst)))
'()
value))))
diff --git a/tests/guix-home.sh b/tests/guix-home.sh
index 83ca6e72c8..3151f66683 100644
--- a/tests/guix-home.sh
+++ b/tests/guix-home.sh
@@ -84,8 +84,9 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
home-environment-variables-service-type
`(("TODAY" . "26 messidor")
("SHELL" . ,(file-append bash "/bin/bash"))
- ("BUILDHOSTTIME" . ,#~(strftime "%c"
- (localtime (current-time))))
+ ("BUILDHOST_TIME" . ,#~(strftime "%c"
+ (localtime (current-time))))
+ ("STRING_WITH_ESCAPES" . "chars: \" /\\")
("LITERAL" . ,(literal-string "${abc}"))))
(simple-service 'home-bash-service-extension-test
@@ -157,6 +158,8 @@ EOF
( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" )
( . "${HOME}/.guix-home/setup-environment"; test "$LITERAL" = '${abc}' )
( . "${HOME}/.guix-home/setup-environment";
+ test "$STRING_WITH_ESCAPES" = "chars: \" /\\")
+ ( . "${HOME}/.guix-home/setup-environment";
echo "$SHELL" | grep "/gnu/store/.*/bin/bash" )
# This one should still be here.