diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2000-08-04 07:09:12 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2000-08-04 07:09:12 +0000 |
commit | 22cbf1b2719c99c2f17a34859520dbead03e5799 (patch) | |
tree | ab0c326c9a8a69c3acab21f9b880b6d3b59dfce4 /Src/Modules/files.c | |
parent | 55b07cb525388bca7c0dbaf057483c493ff0b053 (diff) | |
download | zsh-22cbf1b2719c99c2f17a34859520dbead03e5799.tar.gz zsh-22cbf1b2719c99c2f17a34859520dbead03e5799.tar.xz zsh-22cbf1b2719c99c2f17a34859520dbead03e5799.zip |
15216: Rewrite pathconf() support.
Diffstat (limited to 'Src/Modules/files.c')
-rw-r--r-- | Src/Modules/files.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/Src/Modules/files.c b/Src/Modules/files.c index b5e0b5f62..d01a59b03 100644 --- a/Src/Modules/files.c +++ b/Src/Modules/files.c @@ -71,9 +71,6 @@ bin_mkdir(char *nam, char **args, char *ops, int func) mode_t oumask = umask(0); mode_t mode = 0777 & ~oumask; int err = 0; -#ifdef HAVE_PATHCONF - int pathmax = 0; -#endif umask(oumask); if(ops['m']) { @@ -94,21 +91,11 @@ bin_mkdir(char *nam, char **args, char *ops, int func) while(ptr > *args + (**args == '/') && *--ptr == '/') *ptr = 0; -#ifdef HAVE_PATHCONF - errno = 0; - if(((pathmax = pathconf(*args,_PC_PATH_MAX)) == -1) && errno) { - zwarnnam(nam, "%s: %e", *args, errno); - err = 1; - continue; - } - else if((ztrlen(*args) > pathmax - 1) && errno != -1) { -#else - if(ztrlen(*args) > PATH_MAX - 1) { -#endif - zwarnnam(nam, "%s: %e", *args, ENAMETOOLONG); + if(zpathmax(unmeta(*args)) < 0) { + zwarnnam(nam, "%s: %e", *args, errno); err = 1; continue; - } + } if(ops['p']) { char *ptr = *args; |