diff --git a/basis/libc/libc.factor b/basis/libc/libc.factor index fe56c83516..e935d49748 100644 --- a/basis/libc/libc.factor +++ b/basis/libc/libc.factor @@ -9,8 +9,14 @@ IN: libc : errno ( -- int ) int "factor" "err_no" { } alien-invoke ; +: set-errno ( int -- ) + void "factor" "set_err_no" { int } alien-invoke ; + : clear-errno ( -- ) - void "factor" "clear_err_no" { } alien-invoke ; + 0 set-errno ; + +: preserve-errno ( quot -- ) + errno [ call ] dip set-errno ; inline