about summary refs log tree commit diff
path: root/maintainers/scripts/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2010-08-19 16:52:18 +0000
committerLudovic Courtès <ludo@gnu.org>2010-08-19 16:52:18 +0000
commita69596b95125702a28874f44bce3c7c6c3820740 (patch)
treef8df604a13162e20f47b385c17cce9bec4e3b617 /maintainers/scripts/gnu
parent7b9d03d596e29b4dc92f5d3fccc86c7a3d0a9cc1 (diff)
downloadnixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar.gz
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar.bz2
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar.lz
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar.xz
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.tar.zst
nixlib-a69596b95125702a28874f44bce3c7c6c3820740.zip
gnupdate: Use the latest FFI.
* maintainers/scripts/gnu/gnupdate (version-string>?): Use the new
  `string->pointer', available in 1.9.12.

svn path=/nixpkgs/trunk/; revision=23253
Diffstat (limited to 'maintainers/scripts/gnu')
-rwxr-xr-xmaintainers/scripts/gnu/gnupdate14
1 files changed, 2 insertions, 12 deletions
diff --git a/maintainers/scripts/gnu/gnupdate b/maintainers/scripts/gnu/gnupdate
index dbb3f0d528ef..b9f34a2750e3 100755
--- a/maintainers/scripts/gnu/gnupdate
+++ b/maintainers/scripts/gnu/gnupdate
@@ -623,19 +623,9 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
   (let ((strverscmp
          (let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
                         (error "could not find `strverscmp' (from GNU libc)"))))
-           (make-foreign-function int sym (list '* '*))))
-        (string->null-terminated-utf8
-         (lambda (s)
-           (let* ((utf8 (string->utf8 s))
-                  (len  (bytevector-length utf8))
-                  (nts  (make-bytevector (+ len 1))))
-             (bytevector-copy! utf8 0 nts 0 len)
-             (bytevector-u8-set! nts len 0)
-             nts))))
+           (make-foreign-function int sym (list '* '*)))))
     (lambda (a b)
-      (let ((a (bytevector->foreign (string->null-terminated-utf8 a)))
-            (b (bytevector->foreign (string->null-terminated-utf8 b))))
-        (> (strverscmp a b) 0)))))
+      (> (strverscmp (string->pointer a) (string->pointer b)) 0))))
 
 (define (latest-release project)
   ;; Return "FOO-X.Y" or #f.