Opened 9 years ago
Closed 8 years ago
#1270 closed change request (fixed)
process procedures should expect their env parameter in the same format get-environment-variables uses
Reported by: | Christian Kellermann | Owned by: | |
---|---|---|---|
Priority: | not urgent at all | Milestone: | 5.0 |
Component: | core libraries | Version: | 4.11.0 |
Keywords: | Cc: | ||
Estimated difficulty: | easy |
Description
The current posix unit uses alists in get-environment-variables but expects lists of strings ("VAR=VAL" "VAR2"="VAL2") as the environment variable.
The reason for this is that they will get handed through to the libc's execve function.
My proposal is to change this behaviour to take alists as these are easier to handle in scheme and feel more natural.
Currently every user program needs to do this on its own, for example:
(define (update-environment updates) (let ((env (get-environment-variables))) (map (lambda (e) (string-append (car e) "=" (cdr e))) (fold (lambda (u env) (alist-update (car u) (cdr u) env equal?)) env updates))))
Potentially this will break a lot of code, therefore I propose this for CHICKEN 5.
Change History (2)
comment:1 Changed 8 years ago by
Estimated difficulty: | → easy |
---|---|
Version: | 4.10.x → 4.11.0 |
comment:2 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
Done in the chicken-5 branch, commit: 83010488d7649aafc577344182dd518015ac6fdf