Subject: Re: [bug#55615] [PATCH] gnu: Add r-pscbs.

From: Ricardo Wurmus <[email-masked]>
Date: Fri, 27 May 2022 10:12:51 +0200

zimoun <[email-masked]> writes:

> Hi,
>
> On Tue, 24 May 2022 at 23:30, Ricardo Wurmus <[email-masked]> wrote:
>
>> Applied with formatting changes.  Thanks!
>
> Indeed, sorry.  I reformatted the output of "guix import" but then I
> forgot to reformat again the phase modification (my bad!).  And I ran
> "guix lint" which reported nothing.   But "guix style" reformats;
> which I do not use (yet).
>
> Well, it is many manual error-prone steps.  My questions are :
>
>  1. Could we adapted "guix import cran" to output something using the
> format of "guix style"?

How about this:

>From a10afc4c60ce734941c3c080cf13ec6636f0be33 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <[email-masked]>
Date: Fri, 27 May 2022 10:07:26 +0200
Subject: [PATCH] scripts/import: Use pretty printer from (guix scripts style).

* guix/scripts/import.scm (guix-import): Use pretty-print-with-comments.
(newline-rewriting-port): Remove procedure.
---
 guix/scripts/import.scm | 39 +++------------------------------------
 1 file changed, 3 insertions(+), 36 deletions(-)

diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
index fa79f3211e..62aa7bdbc5 100644
--- a/guix/scripts/import.scm
+++ b/guix/scripts/import.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2020, 2021 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2014 David Thompson <[email-masked]>
 ;;; Copyright © 2018 Kyle Meyer <[email-masked]>
-;;; Copyright © 2019 Ricardo Wurmus <[email-masked]>
+;;; Copyright © 2019, 2022 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2021 Simon Tournier <[email-masked]>
 ;;; Copyright © 2021 Xinglu Chen <[email-masked]>
 ;;; Copyright © 2022 Philip McGrath <[email-masked]>
@@ -25,6 +25,7 @@
 (define-module (guix scripts import)
   #:use-module (guix ui)
   #:use-module (guix scripts)
+  #:use-module (guix scripts style)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
@@ -32,41 +33,9 @@ (define-module (guix scripts import)
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 pretty-print)
   #:export (%standard-import-options
             guix-import))
 
-
-;;;
-;;; Helper.
-;;;
-
-(define (newline-rewriting-port output)
-  "Return an output port that rewrites strings containing the \\n escape
-to an actual newline.  This works around the behavior of `pretty-print'
-and `write', which output these as \\n instead of actual newlines,
-whereas we want the `description' field to contain actual newlines
-rather than \\n."
-  (define (write-string str)
-    (let loop ((chars (string->list str)))
-      (match chars
-        (()
-         #t)
-        ((#\\ #\n rest ...)
-         (newline output)
-         (loop rest))
-        ((chr rest ...)
-         (write-char chr output)
-         (loop rest)))))
-
-  (make-soft-port (vector (cut write-char <>)
-                          write-string
-                          (lambda _ #t)           ; flush
-                          #f
-                          (lambda _ #t)           ; close
-                          #f)
-                  "w"))
-
 
 ;;;
 ;;; Command line options.
@@ -119,9 +88,7 @@ (define-command (guix-import . args)
     ((importer args ...)
      (if (member importer importers)
          (let ((print (lambda (expr)
-                        (pretty-print expr (newline-rewriting-port
-                                            (current-output-port))
-                                      #:max-expr-width 80))))
+                        (pretty-print-with-comments (current-output-port) expr))))
            (match (apply (resolve-importer importer) args)
              ((and expr (or ('package _ ...)
                             ('let _ ...)
-- 
2.36.1

-- 
Ricardo