const char *e = strerror(errno);
int save_error = errno; if (errno == EEXIST && !itsdir(name)) { const char *e = strerror(save_error);
mkdirs(argname)char * const	argname;{	register char *	name;	register char *	cp;	if (argname == NULL || *argname == '\0')		return 0;	cp = name = ecpyalloc(argname);	while ((cp = strchr(cp + 1, '/')) != 0) {		*cp = '\0';#ifndef unix		/*		** DOS drive specifier?		*/		if (isalpha((unsigned char) name[0]) &&			name[1] == ':' && name[2] == '\0') {				*cp = '/';				continue;		}#endif /* !defined unix */		if (!itsdir(name)) {			/*			** It doesn't seem to exist, so we try to create it.			*/			if (mkdir(name, 0755) != 0) {				const char *e = strerror(errno);				(void) fprintf(stderr,				    _("%s: Can't create directory %s: %s\n"),				    progname, name, e);				ifree(name);				return -1;			}		}		*cp = '/';	}	ifree(name);	return 0;}