Update SRFI-170 to use latest (foreign c)
This commit is contained in:
parent
458e277eec
commit
bddc6ea95a
46
srfi/170.scm
46
srfi/170.scm
|
|
@ -176,11 +176,12 @@
|
|||
(letrec* ((looper (lambda (c index result)
|
||||
(if (char=? c #\null)
|
||||
(list->string (reverse result))
|
||||
(looper (c-bytevector-char-ref pointer
|
||||
(looper (c-bytevector-ref pointer
|
||||
'char
|
||||
(+ offset index))
|
||||
(+ index 1)
|
||||
(cons c result))))))
|
||||
(looper (c-bytevector-char-ref pointer offset) 1 (list))))
|
||||
(looper (c-bytevector-ref pointer 'char offset) 1 (list))))
|
||||
|
||||
; struct dirent d_name offset on linux
|
||||
(define d-name-offset 19)
|
||||
|
|
@ -332,10 +333,10 @@
|
|||
(+ count 1)
|
||||
groups-pointer
|
||||
(append result
|
||||
(list (c-bytevector-sint-ref groups-pointer
|
||||
(list (c-bytevector-ref groups-pointer
|
||||
'int
|
||||
(* (c-type-size 'int) count)
|
||||
(native-endianness)
|
||||
(c-type-size 'int)))))))
|
||||
))))))
|
||||
|
||||
(define (user-supplementary-gids)
|
||||
(let* ((group-count (c-getgroups 0 (make-c-null)))
|
||||
|
|
@ -357,24 +358,26 @@
|
|||
(let ((password-struct (if (number? uid/name)
|
||||
(c-getpwuid uid/name)
|
||||
(c-getpwnam (string->c-utf8 uid/name)))))
|
||||
(make-user-info (c-utf8->string (c-bytevector-pointer-ref password-struct
|
||||
(make-user-info (c-utf8->string (c-bytevector-ref password-struct
|
||||
'pointer
|
||||
0))
|
||||
(c-bytevector-sint-ref password-struct
|
||||
(* (c-type-size 'pointer) 2)
|
||||
(native-endianness)
|
||||
(c-type-size 'int))
|
||||
(c-bytevector-sint-ref password-struct
|
||||
(c-bytevector-ref password-struct
|
||||
'int
|
||||
(* (c-type-size 'pointer) 2))
|
||||
(c-bytevector-ref password-struct
|
||||
'int
|
||||
(+ (* (c-type-size 'pointer) 2)
|
||||
(c-type-size 'int))
|
||||
(native-endianness)
|
||||
(c-type-size 'int))
|
||||
(c-utf8->string (c-bytevector-pointer-ref password-struct
|
||||
(c-type-size 'int)))
|
||||
(c-utf8->string (c-bytevector-ref password-struct
|
||||
'pointer
|
||||
(+ (* (c-type-size 'pointer) 3)
|
||||
(* (c-type-size 'int) 2))))
|
||||
(c-utf8->string (c-bytevector-pointer-ref password-struct
|
||||
(c-utf8->string (c-bytevector-ref password-struct
|
||||
'pointer
|
||||
(+ (* (c-type-size 'pointer) 4)
|
||||
(* (c-type-size 'int) 2))))
|
||||
(c-utf8->string (c-bytevector-pointer-ref password-struct
|
||||
(c-utf8->string (c-bytevector-ref password-struct
|
||||
'pointer
|
||||
(+ (* (c-type-size 'pointer) 2)
|
||||
(* (c-type-size 'int) 2)))))))
|
||||
|
||||
|
|
@ -390,11 +393,10 @@
|
|||
(c-getgrgid gid/name)
|
||||
(c-getgrnam (string->c-utf8 gid/name)))))
|
||||
(make-group-info
|
||||
(c-utf8->string (c-bytevector-pointer-ref group-struct 0))
|
||||
(c-bytevector-sint-ref group-struct
|
||||
(* (c-type-size 'pointer) 2)
|
||||
(native-endianness)
|
||||
(c-type-size 'int)))))
|
||||
(c-utf8->string (c-bytevector-ref group-struct 'pointer 0))
|
||||
(c-bytevector-ref group-struct
|
||||
'int
|
||||
(* (c-type-size 'pointer) 2)))))
|
||||
|
||||
(define (set-environment-variable! name value)
|
||||
(c-setenv (string->c-utf8 name) (string->c-utf8 value) 1))
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
0.1.1
|
||||
0.1.2
|
||||
|
|
|
|||
Loading…
Reference in New Issue