Date: Sat, 13 Jan 2001 09:54:57 +0000 From: "W.H.Scholten" <whs@xs4all.nl> To: Alfred Perlstein <bright@wintelcom.net> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: pppd & mkdir diff Message-ID: <3A6025F1.794BDF32@xs4all.nl> References: <3A5C843C.794BDF32@xs4all.nl> <20010111132509.J7240@fw.wintelcom.net> <3A5EE6B1.41C67EA6@xs4all.nl> <20010112081422.U7240@fw.wintelcom.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Alfred Perlstein wrote:
[ mkdir ]
> I'll commit the patch shortly.
Here's a better patch, it checks for multiple slashes, so mkdir
/tmp/aa///bb//// will give:
mkdir: /tmp/aa: No such file or directory
Also, renamed the function to dirname as it does the same as dirname(1).
Regards,
Wouter
[-- Attachment #2 --]
diff -ruN /usr/src/bin/mkdir.orig/mkdir.c /usr/src/bin/mkdir/mkdir.c
--- /usr/src/bin/mkdir.orig/mkdir.c Sat Sep 4 05:19:38 1999
+++ /usr/src/bin/mkdir/mkdir.c Sat Jan 13 10:45:07 2001
@@ -58,6 +58,8 @@
int build __P((char *, mode_t));
void usage __P((void));
+char *dirname __P((char *));
+
int vflag;
@@ -108,7 +110,10 @@
if (build(*argv, omode))
success = 0;
} else if (mkdir(*argv, omode) < 0) {
- warn("%s", *argv);
+ if (errno == ENOTDIR || errno == ENOENT)
+ warn("%s", dirname(*argv));
+ else
+ warn("%s", *argv);
success = 0;
} else if (vflag)
(void)printf("%s\n", *argv);
@@ -129,6 +134,22 @@
}
exit(exitval);
}
+
+
+char *dirname(char *path) {
+ char *slash;
+
+ while (path[ strlen(path)-1 ] == '/') path[ strlen(path)-1 ] = 0;
+
+ slash = strrchr(path, '/');
+ if (slash) {
+ *slash = 0;
+ while (path[ strlen(path)-1 ] == '/') path[ strlen(path)-1 ] = 0;
+ }
+
+ return path;
+}
+
int
build(path, omode)
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A6025F1.794BDF32>
