Diff for /gforth/mkdir.fs between versions 1.1 and 1.3

version 1.1, 2008/08/19 20:18:58 version 1.3, 2008/10/06 20:40:32
Line 1 Line 1
 \ socket interface  \ mkdir wrapper
   
 \ Copyright (C) 2008 Free Software Foundation, Inc.  \ Copyright (C) 2008 Free Software Foundation, Inc.
   
Line 21  require cstr.fs Line 21  require cstr.fs
 c-library mkdir  c-library mkdir
 \c #include <sys/stat.h>  \c #include <sys/stat.h>
 \c #include <sys/types.h>  \c #include <sys/types.h>
 c-function mkdir1 mkdir a n -- n ( pathname\0 mode -- f )  c-function mkdir mkdir a n -- n ( pathname\0 mode -- f )
 \c #include <errno.h>  \c #include <errno.h>
 \c #define IOR(flag)    ((flag)? -512-errno : 0)  \c #define IOR(flag)    ((flag)? -512-errno : 0)
 c-function f>ior IOR n -- n ( f -- ior )  c-function f>ior IOR n -- n ( f -- ior )
   
 : mkdir ( c-addr u mode -- ior )  : =mkdir ( c-addr u mode -- ior )
     >r 1 tilde_cstr r> mkdir1 f>ior ;      >r 1 tilde_cstr r> mkdir f>ior ;
 end-c-library  end-c-library
   
   : mkdir-p { c-addr u mode -- ior }
       \G create the directory @i{c-addr u} and all it's parents with
       \G mode @i{mode} (modified by umask)
       c-addr u begin { d: s }
           s 1 /string '/' scan 2dup while ( s1 s1addr )
               c-addr tuck - mode =mkdir drop
       repeat
       drop 2drop
       c-addr u mode =mkdir ;
   
           
   

Removed from v.1.1  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>