--- gforth/mkdir.fs 2008/10/06 21:21:20 1.4 +++ gforth/mkdir.fs 2012/03/13 19:33:31 1.8 @@ -1,6 +1,6 @@ \ mkdir wrapper -\ Copyright (C) 2008 Free Software Foundation, Inc. +\ Copyright (C) 2008,2010 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -18,18 +18,26 @@ \ along with this program. If not, see http://www.gnu.org/licenses/. \ there is now a primitive =MKDIR -\ require cstr.fs -\ c-library mkdir -\ \c #include -\ \c #include -\ c-function mkdir mkdir a n -- n ( pathname\0 mode -- f ) -\ \c #include -\ \c #define IOR(flag) ((flag)? -512-errno : 0) -\ c-function f>ior IOR n -- n ( f -- ior ) - -\ : =mkdir ( c-addr u mode -- ior ) -\ >r 1 tilde_cstr r> mkdir f>ior ; -\ end-c-library +[IFUNDEF] =mkdir + [IFUNDEF] c-library + \ define dummy mkdir + : =mkdir ( c-addr u mode -- ior ) + 2drop drop 0 ; + [ELSE] + require cstr.fs + c-library mkdir + \c #include + \c #include + c-function mkdir mkdir a n -- n ( pathname\0 mode -- f ) + \c #include + \c #define IOR(flag) ((flag)? -512-errno : 0) + c-function f>ior IOR n -- n ( f -- ior ) + + : =mkdir ( c-addr u mode -- ior ) + >r 1 tilde_cstr r> over >r mkdir r> free drop f>ior ; + end-c-library + [THEN] +[THEN] : mkdir-parents { c-addr u mode -- ior } \G create the directory @i{c-addr u} and all its parents with @@ -40,5 +48,3 @@ repeat drop 2drop c-addr u mode =mkdir ; - - \ No newline at end of file