summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2023-04-24 20:43:01 +0200
committerAndreas Enge <andreas@enge.fr>2023-04-24 20:43:01 +0200
commit92dd588b81e2b07eff8a083e998224963cfe2959 (patch)
tree1e437c7e0cbde691defe81c465ddf7d23d3313a1 /guix
parent09d2976c86f2cb1841ebe0685164912bfedfeeb5 (diff)
parentc7cdd4a6c7e795575c1baf6a655cb317f56fcf81 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'guix')
-rw-r--r--guix/read-print.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/read-print.scm b/guix/read-print.scm
index 515eb7669c..d834105dce 100644
--- a/guix/read-print.scm
+++ b/guix/read-print.scm
@@ -420,11 +420,18 @@ particular newlines, is left as is."
(define (printed-string str context)
"Return the read syntax for STR depending on CONTEXT."
+ (define (preserve-newlines? str)
+ (and (> (string-length str) 40)
+ (string-index str #\newline)))
+
(match context
(()
- (object->string str))
+ (if (preserve-newlines? str)
+ (escaped-string str)
+ (object->string str)))
((head . _)
- (if (memq head %natural-whitespace-string-forms)
+ (if (or (memq head %natural-whitespace-string-forms)
+ (preserve-newlines? str))
(escaped-string str)
(object->string str)))))