X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmakepath.c;h=e61579021c204d7a613dae11b92091610003131c;hb=6b89992dbb9ec71f4505b47447bde264e3035056;hp=5c6112414ca8fe90e03e26f35e281cfd511a60e4;hpb=d87c39464604e74f580c7fae835be31a4c125c36;p=gnulib.git diff --git a/lib/makepath.c b/lib/makepath.c index 5c6112414..e61579021 100644 --- a/lib/makepath.c +++ b/lib/makepath.c @@ -43,15 +43,22 @@ char *alloca (); #endif #ifdef STDC_HEADERS -#include #include -#else +#endif + +#ifdef HAVE_ERRNO_H +#include +#endif + +#ifndef STDC_HEADERS extern int errno; #endif -#if defined(USG) || defined(STDC_HEADERS) +#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) #include +#ifndef index #define index strchr +#endif #else #include #endif @@ -93,7 +100,7 @@ make_path (argpath, mode, parent_mode, owner, group, verbose_fmt_string) int retval = 0; int oldmask = umask (0); - dirpath = alloca (strlen (argpath) + 1); + dirpath = (char *) alloca (strlen (argpath) + 1); strcpy (dirpath, argpath); if (stat (dirpath, &stats)) @@ -127,7 +134,7 @@ make_path (argpath, mode, parent_mode, owner, group, verbose_fmt_string) slash = dirpath; while (*slash == '/') slash++; - while (slash = index (slash, '/')) + while ((slash = index (slash, '/'))) { *slash = '\0'; if (stat (dirpath, &stats)) @@ -145,7 +152,7 @@ make_path (argpath, mode, parent_mode, owner, group, verbose_fmt_string) if (owner != (uid_t) -1 && group != (gid_t) -1 && chown (dirpath, owner, group) -#ifdef AFS +#if defined(AFS) && defined (EPERM) && errno != EPERM #endif )