mkdir: allow 'mkdir -p' with trailing '/'
Let's suppose that /usr/tmp exists and one wants /usr/tmp/a/b If one runs "mkdir -p /usr/tmp/a/b/" (the '/' at the end is important), then a "File exists" error comes up. Example: $ rm -rf /usr/tmp/a $ mkdir -p /usr/tmp/a/b/ /usr/tmp/a/b/: File exists This breaks gcc47 installation when C++ is enabled, and this isn't the behaviour of mkdir on NetBSD nor Linix. This patch fixes the above issue by dropping the trailing '/'.
This commit is contained in:
parent
58c4a9b5f4
commit
940bbe18b6
1 changed files with 4 additions and 0 deletions
|
@ -231,6 +231,10 @@ char *fordir;
|
|||
int makedir(dirname)
|
||||
char *dirname;
|
||||
{
|
||||
while (strlen(dirname) > 1 && dirname[strlen(dirname) - 1] == '/') {
|
||||
dirname[strlen(dirname) - 1] = '\0'; /* trim trailing '/' */
|
||||
}
|
||||
|
||||
if (mkdir(dirname, DEFAULT_MODE)) {
|
||||
if (!pflag) {
|
||||
perror(dirname);
|
||||
|
|
Loading…
Reference in a new issue