From 3c1ea8dcef3342dba9fb1456effb31eb106a189a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Mar 2020 16:07:04 +0100 Subject: ui: Restore line wrapping for 'package->recutils'. Fixes a regression introduced when switching to Guile 3.0.0 whereby monkey-patching 'wrap*' wouldn't have any effects due to inlining. * guix/ui.scm (%text-width): Define in terms of the '*line-width*' fluid when it's defined. : Set (@@ (texinfo plain-text) wrap*) only when '*line-width*' is undefined. --- guix/ui.scm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index fbe2b70485..6f1ca9c0b2 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1218,16 +1218,23 @@ converted to a space; sequences of more than one line break are preserved." ;;; (define %text-width - (make-parameter (terminal-columns))) - -(set! (@@ (texinfo plain-text) wrap*) - ;; XXX: Monkey patch this private procedure to let 'package->recutils' - ;; parameterize the fill of description field correctly. - (lambda strings - (let ((indent (fluid-ref (@@ (texinfo plain-text) *indent*)))) - (fill-string (string-concatenate strings) - #:line-width (%text-width) #:initial-indent indent - #:subsequent-indent indent)))) + ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1. On older versions of + ;; Guile, monkey-patch 'wrap*' below. + (if (defined? '*line-width*) + (let ((parameter (fluid->parameter *line-width*))) + (parameter (terminal-columns)) + parameter) + (make-parameter (terminal-columns)))) + +(unless (defined? '*line-width*) ;Guile < 2.2.7 + (set! (@@ (texinfo plain-text) wrap*) + ;; XXX: Monkey patch this private procedure to let 'package->recutils' + ;; parameterize the fill of description field correctly. + (lambda strings + (let ((indent (fluid-ref (@@ (texinfo plain-text) *indent*)))) + (fill-string (string-concatenate strings) + #:line-width (%text-width) #:initial-indent indent + #:subsequent-indent indent))))) (define (texi->plain-text str) "Return a plain-text representation of texinfo fragment STR." -- cgit v1.2.3