Subject: bug#26013: (srfi srfi-37) chokes on empty string parameter

From: Thomas Danckaert <[email-masked]>
Date: Tue, 07 Mar 2017 16:34:54 +0100 (CET)

Hello Guilers,

It looks like Guile's srfi-37 implementation doesn't process empty 
string arguments correctly.  For example, here's a stacktrace I get 
when executing guix system list-generations "":

$ guix system list-generations ""
Backtrace:
In ice-9/boot-9.scm:
  160: 15 [catch #t #<catch-closure 188c1c0> ...]
In unknown file:
    ?: 14 [apply-smob/1 #<catch-closure 188c1c0>]
In ice-9/boot-9.scm:
   66: 13 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
  432: 12 [eval # #]
In ice-9/boot-9.scm:
2404: 11 [save-module-excursion #<procedure 18af900 at 
ice-9/boot-9.scm:4051:3 ()>]
4056: 10 [#<procedure 18af900 at ice-9/boot-9.scm:4051:3 ()>]
1727: 9 [%start-stack load-stack ...]
1732: 8 [#<procedure 18c3b70 ()>]
In unknown file:
    ?: 7 [primitive-load 
"/gnu/store/hnbqdmfh1bwma8nmpai6ci76h5j6bl7j-guix-0.12.0-4.d9da/bin/.guix-real"]
In guix/ui.scm:
1228: 6 [run-guix-command system "list-generations" ""]
In ice-9/boot-9.scm:
  160: 5 [catch srfi-34 #<procedure 47e1580 at guix/ui.scm:432:2 ()> 
...]
  160: 4 [catch system-error ...]
In guix/scripts/system.scm:
  947: 3 [#<procedure 47e2b10 at guix/scripts/system.scm:946:2 ()>]
In ice-9/boot-9.scm:
  160: 2 [catch misc-error #<procedure 47e4c00 at 
guix/scripts.scm:48:4 ()> ...]
In srfi/srfi-37.scm:
  220: 1 [next-arg]
In unknown file:
    ?: 0 [string-ref "" 0]

ERROR: In procedure string-ref:
ERROR: Value out of range: 0

cheers,

Thomas