ntpd: default to FEATURE_NTP_AUTH=y
[oweals/busybox.git] / coreutils / install.c
index c01750f81c9d89cfe4abcb5dd87a950164bdcf76..8270490bd47c00cc563408bcf9036d2066f63147 100644 (file)
@@ -140,13 +140,16 @@ int install_main(int argc, char **argv)
 #endif
        };
 
-       opt_complementary = "t--d:d--t:s--d:d--s" IF_FEATURE_INSTALL_LONG_OPTIONS(IF_SELINUX(":Z--\xff:\xff--Z"));
        /* -c exists for backwards compatibility, it's needed */
        /* -b is ignored ("make a backup of each existing destination file") */
-       opts = GETOPT32(argv, "cvb" "Ddpsg:m:o:t:" IF_SELINUX("Z:"),
-                       LONGOPTS
-                       &gid_str, &mode_str, &uid_str, &last
-                       IF_SELINUX(, &scontext)
+       opts = GETOPT32(argv, "^"
+               "cvb" "Ddpsg:m:o:t:" IF_SELINUX("Z:")
+               "\0"
+               "t--d:d--t:s--d:d--s"
+               IF_FEATURE_INSTALL_LONG_OPTIONS(IF_SELINUX(":Z--\xff:\xff--Z")),
+               LONGOPTS
+               &gid_str, &mode_str, &uid_str, &last
+               IF_SELINUX(, &scontext)
        );
        argc -= optind;
        argv += optind;
@@ -211,7 +214,11 @@ int install_main(int argc, char **argv)
                        dest = last;
                        if (opts & OPT_MKDIR_LEADING) {
                                char *ddir = xstrdup(dest);
-                               bb_make_directory(dirname(ddir), 0755, mkdir_flags);
+                               /*
+                                * -D -t DIR1/DIR2/F3 FILE: create DIR1/DIR2/F3, copy FILE there
+                                * -D FILE DIR1/DIR2/F3: create DIR1/DIR2, copy FILE there as F3
+                                */
+                               bb_make_directory((opts & OPT_TARGET) ? ddir : dirname(ddir), 0755, mkdir_flags);
                                /* errors are not checked. copy_file
                                 * will fail if dir is not created.
                                 */