- argc--;
- argv++;
-
- /* Parse any options */
- while (argc > 0 && **argv == '-') {
- while (i == FALSE && *++(*argv)) {
- switch (**argv) {
- case 'm':
- if (--argc == 0)
- usage(mkdir_usage);
- /* Find the specified modes */
- mode = 0;
- if (parse_mode(*(++argv), &mode) == FALSE) {
- errorMsg("Unknown mode: %s\n", *argv);
- exit FALSE;
- }
- /* Set the umask for this process so it doesn't
- * screw up whatever the user just entered. */
- umask(0);
- i = TRUE;
- break;
- case 'p':
- parentFlag = TRUE;
- break;
- default:
- usage(mkdir_usage);
- }
+ bb_applet_long_options = mkdir_long_options;
+ opt = bb_getopt_ulflags(argc, argv, "m:p", &smode);
+ if(opt & 1) {
+ mode = 0777;
+ if (!bb_parse_mode (smode, &mode)) {
+ bb_error_msg_and_die ("invalid mode `%s'", smode);