From: "Ludovic Courtès" <ludo@gnu.org>
To: 40149@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#40149] [PATCH 2/5] ui: Add 'indented-string'.
Date: Fri, 20 Mar 2020 15:09:07 +0100 [thread overview]
Message-ID: <20200320140910.28439-2-ludo@gnu.org> (raw)
In-Reply-To: <20200320140910.28439-1-ludo@gnu.org>
* guix/scripts/pull.scm (display-news-entry): Remove extra space in
format string for 'indented-string'.
(indented-string): Remove.
(display-new/upgraded-packages)[pretty]: Pass #:initial-indent? to
'indented-string'.
* guix/ui.scm (indented-string): New procedure.
---
guix/scripts/pull.scm | 17 ++---------------
guix/ui.scm | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 51d4da209a..1db5ab7237 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -269,7 +269,7 @@ code, to PORT."
(let ((body (or (assoc-ref body language)
(assoc-ref body (%default-message-language))
"")))
- (format port " ~a~%"
+ (format port "~a~%"
(indented-string
(parameterize ((%text-width (- (%text-width) 4)))
(string-trim-right
@@ -523,19 +523,6 @@ true, display what would be built without actually building it."
;;; Queries.
;;;
-(define (indented-string str indent)
- "Return STR with each newline preceded by IDENT spaces."
- (define indent-string
- (make-list indent #\space))
-
- (list->string
- (string-fold-right (lambda (chr result)
- (if (eqv? chr #\newline)
- (cons chr (append indent-string result))
- (cons chr result)))
- '()
- str)))
-
(define profile-package-alist
(mlambda (profile)
"Return a name/version alist representing the packages in PROFILE."
@@ -592,7 +579,7 @@ Return true when there is more package info to display."
(define (pretty str column)
(indented-string (fill-paragraph str (- (%text-width) 4)
column)
- 4))
+ 4 #:initial-indent? #f))
(define concise/max-item-count
;; Maximum number of items to display when CONCISE? is true.
diff --git a/guix/ui.scm b/guix/ui.scm
index 6f1ca9c0b2..698111dd9a 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -103,6 +103,7 @@
read/eval
read/eval-package-expression
check-available-space
+ indented-string
fill-paragraph
%text-width
texi->plain-text
@@ -1163,6 +1164,23 @@ replacement if PORT is not Unicode-capable."
(lambda ()
body ...)))))
+(define* (indented-string str indent
+ #:key (initial-indent? #t))
+ "Return STR with each newline preceded by IDENT spaces. When
+INITIAL-INDENT? is true, the first line is also indented."
+ (define indent-string
+ (make-list indent #\space))
+
+ (list->string
+ (string-fold-right (lambda (chr result)
+ (if (eqv? chr #\newline)
+ (cons chr (append indent-string result))
+ (cons chr result)))
+ '()
+ (if initial-indent?
+ (string-append (list->string indent-string) str)
+ str))))
+
(define* (fill-paragraph str width #:optional (column 0))
"Fill STR such that each line contains at most WIDTH characters, assuming
that the first character is at COLUMN.
--
2.25.1
next prev parent reply other threads:[~2020-03-20 14:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 14:04 [bug#40149] [PATCH 0/5] Assorted 'guix deploy' improvements Ludovic Courtès
2020-03-20 14:09 ` [bug#40149] [PATCH 1/5] machine: ssh: Make sanity checks in a single round trip Ludovic Courtès
2020-03-20 14:09 ` Ludovic Courtès [this message]
2020-03-20 14:09 ` [bug#40149] [PATCH 3/5] deploy: Show what machines will be deployed Ludovic Courtès
2020-03-20 14:09 ` [bug#40149] [PATCH 4/5] deploy: Write a message upon successful deployment Ludovic Courtès
2020-03-20 14:09 ` [bug#40149] [PATCH 5/5] machine: ssh: Better report missing initrd modules Ludovic Courtès
2020-03-23 9:49 ` bug#40149: [PATCH 0/5] Assorted 'guix deploy' improvements Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200320140910.28439-2-ludo@gnu.org \
--to=ludo@gnu.org \
--cc=40149@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).