emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#36244: closed ([PATCH] guix: canonical-newline-por


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#36244: closed ([PATCH] guix: canonical-newline-port: Fix handling of carriage return at buffer end.)
Date: Thu, 20 Jun 2019 12:18:02 +0000

Your message dated Thu, 20 Jun 2019 13:59:13 +0200
with message-id <address@hidden>
and subject line Re: [bug#36244] [PATCH] guix: canonical-newline-port: Fix 
handling of carriage return at buffer end.
has caused the debbugs.gnu.org bug report #36244,
regarding [PATCH] guix: canonical-newline-port: Fix handling of carriage return 
at buffer end.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden.)


-- 
36244: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36244
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] guix: canonical-newline-port: Fix handling of carriage return at buffer end. Date: Sun, 16 Jun 2019 16:18:29 +0200
Prior to this change the added test fails for me locally at byte
1024. It might depend on some default buffer sizes.

Fixes https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35863

* tests/utils.scm ("canonical-newline-port-1024"): Add test.
* guix/utils.scm (canonical-newline-port): Correct comments on CR/LF.
Remove CR even when they're at the end of the buffer.
---
 guix/utils.scm  | 6 +++---
 tests/utils.scm | 6 ++++++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/guix/utils.scm b/guix/utils.scm
index 709cdf9353..f480c3291f 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -718,7 +718,7 @@ environment variable name like \"XDG_CONFIG_HOME\"; SUFFIX 
is a suffix like
 
 (define (canonical-newline-port port)
   "Return an input port that wraps PORT such that all newlines consist
-  of a single carriage return."
+  of a single linefeed."
   (define (get-position)
     (if (port-has-port-position? port) (port-position port) #f))
   (define (set-position! position)
@@ -730,11 +730,11 @@ environment variable name like \"XDG_CONFIG_HOME\"; 
SUFFIX is a suffix like
     (let loop ((count 0)
                (byte (get-u8 port)))
       (cond ((eof-object? byte) count)
+            ;; XXX: consume all CRs even if not followed by LF.
+            ((eqv? byte (char->integer #\return)) (loop count (get-u8 port)))
             ((= count (- n 1))
              (bytevector-u8-set! bv (+ start count) byte)
              n)
-            ;; XXX: consume all LFs even if not followed by CR.
-            ((eqv? byte (char->integer #\return)) (loop count (get-u8 port)))
             (else
              (bytevector-u8-set! bv (+ start count) byte)
              (loop (+ count 1) (get-u8 port))))))
diff --git a/tests/utils.scm b/tests/utils.scm
index 44861384ab..f78ec356bd 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -230,6 +230,12 @@ skip these tests."
                "This is a journey\r\nInto the sound\r\nA journey ...\n")))
     (get-string-all (canonical-newline-port port))))
 
+(test-equal "canonical-newline-port-1024"
+  (string-concatenate (make-list 100 "0123456789abcde\n"))
+  (let ((port (open-string-input-port
+               (string-concatenate
+                (make-list 100 "0123456789abcde\r\n")))))
+    (get-string-all (canonical-newline-port port))))
 
 (test-equal "edit-expression"
   "(display \"GNU Guix\")\n(newline)\n"
-- 
2.20.1 (Apple Git-117)




--- End Message ---
--- Begin Message --- Subject: Re: [bug#36244] [PATCH] guix: canonical-newline-port: Fix handling of carriage return at buffer end. Date: Thu, 20 Jun 2019 13:59:13 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)
Hi Robert,

Robert Vollmert <address@hidden> skribis:

> Prior to this change the added test fails for me locally at byte
> 1024. It might depend on some default buffer sizes.
>
> Fixes https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35863
>
> * tests/utils.scm ("canonical-newline-port-1024"): Add test.
> * guix/utils.scm (canonical-newline-port): Correct comments on CR/LF.
> Remove CR even when they're at the end of the buffer.

Good catch.  I tweaked the commit log and applied it.

Thanks,
Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]