about summary refs log tree commit diff
path: root/Src/Modules/files.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2003-05-22 09:48:25 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2003-05-22 09:48:25 +0000
commit1be7d4744d25d29b46f4a0b87a02cd9600ee6b74 (patch)
tree3cf7efa94211fea95f8175ea4f804816e954b40f /Src/Modules/files.c
parentc7a2d2225e41e38f54ace2809fd61d3867fdd43b (diff)
downloadzsh-1be7d4744d25d29b46f4a0b87a02cd9600ee6b74.tar.gz
zsh-1be7d4744d25d29b46f4a0b87a02cd9600ee6b74.tar.xz
zsh-1be7d4744d25d29b46f4a0b87a02cd9600ee6b74.zip
18559, 18562: make modules use proper option arguments
Diffstat (limited to 'Src/Modules/files.c')
-rw-r--r--Src/Modules/files.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/Src/Modules/files.c b/Src/Modules/files.c
index 51f362631..82429a986 100644
--- a/Src/Modules/files.c
+++ b/Src/Modules/files.c
@@ -74,12 +74,8 @@ bin_mkdir(char *nam, char **args, Options ops, int func)
 
     umask(oumask);
     if(OPT_ISSET(ops,'m')) {
-	char *str = *args++, *ptr;
+	char *str = OPT_ARG(ops,'m'), *ptr;
 
-	if(!*args) {
-	    zwarnnam(nam, "not enough arguments", NULL, 0);
-	    return 1;
-	}
 	mode = zstrtol(str, &ptr, 8);
 	if(!*str || *ptr) {
 	    zwarnnam(nam, "invalid mode `%s'", str, 0);
@@ -703,7 +699,7 @@ static struct builtin bintab[] = {
     BUILTIN("chgrp", 0, bin_chown, 2, -1, BIN_CHGRP, "Rs",    NULL),
     BUILTIN("chown", 0, bin_chown, 2, -1, BIN_CHOWN, "Rs",    NULL),
     BUILTIN("ln",    0, bin_ln,    1, -1, BIN_LN,    LN_OPTS, NULL),
-    BUILTIN("mkdir", 0, bin_mkdir, 1, -1, 0,         "pm",    NULL),
+    BUILTIN("mkdir", 0, bin_mkdir, 1, -1, 0,         "pm:",   NULL),
     BUILTIN("mv",    0, bin_ln,    2, -1, BIN_MV,    "fi",    NULL),
     BUILTIN("rm",    0, bin_rm,    1, -1, 0,         "dfirs", NULL),
     BUILTIN("rmdir", 0, bin_rmdir, 1, -1, 0,         NULL,    NULL),