X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=coreutils%2Fmkdir.c;h=d78f57e2bb4786288d729528189416d62d27ea86;hb=2e6c87876353cf5e038d8430c076f645be51da75;hp=b0a2d57d630526021043a63e5b78ad87602901c5;hpb=61677feff7f549a48267c2c0c50a7420de6e2599;p=oweals%2Fbusybox.git diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c index b0a2d57d6..d78f57e2b 100644 --- a/coreutils/mkdir.c +++ b/coreutils/mkdir.c @@ -2,7 +2,7 @@ /* * Mini mkdir implementation for busybox * - * Copyright (C) 1999,2000 by Lineo, inc. + * Copyright (C) 1999,2000,2001 by Lineo, inc. * Written by Erik Andersen , * * This program is free software; you can redistribute it and/or modify @@ -21,22 +21,11 @@ * */ -#include "internal.h" -#define bb_need_name_too_long -#define BB_DECLARE_EXTERN -#include "messages.c" - #include #include -#include /* for PATH_MAX */ - -static const char mkdir_usage[] = - "mkdir [OPTION] DIRECTORY...\n\n" - "Create the DIRECTORY(ies), if they do not already exist\n\n" - "Options:\n" - - "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" - "\t-p\tno error if existing, make parent directories as needed\n"; +#include +#include +#include "busybox.h" static int parentFlag = FALSE; @@ -56,12 +45,11 @@ extern int mkdir_main(int argc, char **argv) switch (**argv) { case 'm': if (--argc == 0) - usage(mkdir_usage); + show_usage(); /* Find the specified modes */ mode = 0; if (parse_mode(*(++argv), &mode) == FALSE) { - fprintf(stderr, "Unknown mode: %s\n", *argv); - exit FALSE; + error_msg_and_die("Unknown mode: %s", *argv); } /* Set the umask for this process so it doesn't * screw up whatever the user just entered. */ @@ -72,7 +60,7 @@ extern int mkdir_main(int argc, char **argv) parentFlag = TRUE; break; default: - usage(mkdir_usage); + show_usage(); } } argc--; @@ -80,35 +68,32 @@ extern int mkdir_main(int argc, char **argv) } if (argc < 1) { - usage(mkdir_usage); + show_usage(); } while (argc > 0) { int status; struct stat statBuf; - char buf[PATH_MAX + 1]; + char buf[BUFSIZ + 1]; - if (strlen(*argv) > PATH_MAX - 1) { - fprintf(stderr, name_too_long, "mkdir"); - exit FALSE; + if (strlen(*argv) > BUFSIZ - 1) { + error_msg_and_die(name_too_long); } strcpy(buf, *argv); status = stat(buf, &statBuf); if (parentFlag == FALSE && status != -1 && errno != ENOENT) { - fprintf(stderr, "%s: File exists\n", buf); - exit FALSE; + error_msg_and_die("%s: File exists", buf); } if (parentFlag == TRUE) { strcat(buf, "/"); - createPath(buf, mode); + create_path(buf, mode); } else { if (mkdir(buf, mode) != 0 && parentFlag == FALSE) { - perror(buf); - exit FALSE; + perror_msg_and_die(buf); } } argc--; argv++; } - exit TRUE; + return EXIT_SUCCESS; }