# define _(Text) Text
#endif
-#ifdef __MSDOS__
-typedef int uid_t;
-typedef int gid_t;
-#endif
-
#include "save-cwd.h"
#include "error.h"
+#include "quote.h"
void strip_trailing_slashes ();
if (stat (dir, &stats))
{
- error (0, saved_errno, _("cannot create directory `%s'"), dirpath);
+ error (0, saved_errno, _("cannot create directory %s"),
+ quote (dirpath));
fail = 1;
}
else if (!S_ISDIR (stats.st_mode))
{
- error (0, 0, _("`%s' exists but is not a directory"), dirpath);
+ error (0, 0, _("%s exists but is not a directory"), quote (dirpath));
fail = 1;
}
else
if (newly_created_dir)
{
if (verbose_fmt_string)
- error (0, 0, verbose_fmt_string, dirpath);
+ error (0, 0, verbose_fmt_string, quote (dirpath));
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (basename_dir, owner, group)
#endif
)
{
- error (0, errno, "%s", dirpath);
+ error (0, errno, _("cannot change owner and/or group of %s"),
+ quote (dirpath));
CLEANUP;
return 1;
}
stat and mkdir process O(n^2) file name components. */
if (do_chdir && chdir (basename_dir) < 0)
{
- error (0, errno, _("cannot chdir to directory, %s"), dirpath);
+ error (0, errno, _("cannot chdir to directory, %s"),
+ quote (dirpath));
CLEANUP;
return 1;
}
umask (oldmask);
if (verbose_fmt_string != NULL)
- error (0, 0, verbose_fmt_string, dirpath);
+ error (0, 0, verbose_fmt_string, quote (dirpath));
if (owner != (uid_t) -1 || group != (gid_t) -1)
{
#endif
)
{
- error (0, errno, _("cannot chown %s"), dirpath);
+ error (0, errno, _("cannot change owner and/or group of %s"),
+ quote (dirpath));
retval = 1;
}
}
/* The above chown may have turned off some permission bits in MODE.
Another reason we may have to use chmod here is that mkdir(2) is
required to honor only the file permission bits. In particular,
- it may not have honored the `special' bits. */
+ it need not honor the `special' bits, so if MODE includes any
+ special bits, set them here. */
if ((mode & ~S_IRWXUGO)
&& chmod (basename_dir, mode))
{
- error (0, errno, _("cannot chmod %s"), dirpath);
+ error (0, errno, _("cannot change permissions of %s"), quote (dirpath));
retval = 1;
}
*(p->dirname_end) = '\0';
if (chmod (dirpath, parent_mode))
{
- error (0, errno, "%s", dirpath);
+ error (0, errno, "cannot change permissions of %s",
+ quote (dirpath));
retval = 1;
}
}
if (!S_ISDIR (stats.st_mode))
{
- error (0, 0, _("`%s' exists but is not a directory"), dirpath);
+ error (0, 0, _("%s exists but is not a directory"), quote (dirpath));
return 1;
}
#endif
)
{
- error (0, errno, "%s", dirpath);
+ error (0, errno, _("cannot change owner and/or group of %s"),
+ quote (dirpath));
retval = 1;
}
if (chmod (dirpath, mode))
{
- error (0, errno, "%s", dirpath);
+ error (0, errno, _("cannot change permissions of %s"),
+ quote (dirpath));
retval = 1;
}
}