~ruther/guix-local

091191c3dcbfb9f01070d26bf15cb2c4dd07b1b5 — Ludovic Courtès 8 years ago 1c27f72
list-runtime-root: Fix off-by-one in 'strip-drop' call.

Fixes <https://bugs.gnu.org/29862>.
Reported by Danny Milosavljevic <dannym@scratchpost.org>.

* nix/scripts/list-runtime-roots.in (canonicalize-store-item): Define
'store' with a trailing "/".  Have the 'string-prefix?' call match the
'string-drop' call.
1 files changed, 4 insertions(+), 3 deletions(-)

M nix/scripts/list-runtime-roots.in
M nix/scripts/list-runtime-roots.in => nix/scripts/list-runtime-roots.in +4 -3
@@ 130,12 130,13 @@ or the empty list."
                         (< (string->number a) (string->number b))))))

(define canonicalize-store-item
  (let ((prefix (+ 1 (string-length %store-directory))))
  (let* ((store  (string-append %store-directory "/"))
         (prefix (string-length store)))
    (lambda (file)
      "Return #f if FILE is not a store item; otherwise, return the store file
name without any sub-directory components."
      (and (string-prefix? %store-directory file)
           (string-append %store-directory "/"
      (and (string-prefix? store file)
           (string-append store
                          (let ((base (string-drop file prefix)))
                            (match (string-index base #\/)
                              (#f    base)