mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
user/group-information should return #f for unknown users
This commit is contained in:
parent
56ef426dfa
commit
19c7d4fec2
2 changed files with 9 additions and 8 deletions
|
@ -17,11 +17,12 @@
|
||||||
(else
|
(else
|
||||||
(export user-information group-information)
|
(export user-information group-information)
|
||||||
(body
|
(body
|
||||||
|
(define (safe-car x) (and (pair? x) (car x)))
|
||||||
(define (user-information user)
|
(define (user-information user)
|
||||||
(car (if (string? user)
|
(safe-car (if (string? user)
|
||||||
(getpwnam_r user (make-string 1024))
|
(getpwnam_r user (make-string 1024))
|
||||||
(getpwuid_r user (make-string 1024)))))
|
(getpwuid_r user (make-string 1024)))))
|
||||||
(define (group-information group)
|
(define (group-information group)
|
||||||
(car (if (string? group)
|
(safe-car (if (string? group)
|
||||||
(getgrnam_r group (make-string 1024))
|
(getgrnam_r group (make-string 1024))
|
||||||
(getgrgid_r group (make-string 1024)))))))))
|
(getgrgid_r group (make-string 1024)))))))))
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
#u8(0 0 0 0 0 0 0 0 0 0 0 0)))
|
#u8(0 0 0 0 0 0 0 0 0 0 0 0)))
|
||||||
|
|
||||||
(define (file-owner-or-nobody uid)
|
(define (file-owner-or-nobody uid)
|
||||||
(or (user-name (user-information uid)) "nobody"))
|
(or (cond ((user-information uid) => user-name) (else #f)) "nobody"))
|
||||||
(define (file-group-or-nobody gid)
|
(define (file-group-or-nobody gid)
|
||||||
(or (group-name (group-information gid)) "nobody"))
|
(or (cond ((group-information gid) => group-name) (else #f)) "nobody"))
|
||||||
|
|
||||||
(define (make-tar file mode uid gid size mod-time type . o)
|
(define (make-tar file mode uid gid size mod-time type . o)
|
||||||
(let* ((link (if (pair? o) (car o) ""))
|
(let* ((link (if (pair? o) (car o) ""))
|
||||||
|
|
Loading…
Add table
Reference in a new issue