ls: make --color more compatible with coreutils
[oweals/busybox.git] / coreutils / chroot.c
index 16c743fef37e0172e0a28e9c93e80c44a70b0411..9b3d700444cd47749142029b0d5ad298b518e376 100644 (file)
@@ -9,9 +9,9 @@
 
 /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */
 
-#include "busybox.h"
+#include "libbb.h"
 
-int chroot_main(int argc, char **argv);
+int chroot_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int chroot_main(int argc, char **argv)
 {
        if (argc < 2) {
@@ -19,20 +19,19 @@ int chroot_main(int argc, char **argv)
        }
 
        ++argv;
-       if (chroot(*argv)) {
-               bb_perror_msg_and_die("cannot change root directory to %s", *argv);
-       }
+       xchroot(*argv);
        xchdir("/");
 
        ++argv;
        if (argc == 2) {
                argv -= 2;
-               if (!(*argv = getenv("SHELL"))) {
-                       *argv = (char *) DEFAULT_SHELL;
+               argv[0] = getenv("SHELL");
+               if (!argv[0]) {
+                       argv[0] = (char *) DEFAULT_SHELL;
                }
                argv[1] = (char *) "-i";
        }
 
-       execvp(*argv, argv);
-       bb_perror_msg_and_die("cannot execute %s", *argv);
+       BB_EXECVP(*argv, argv);
+       bb_perror_msg_and_die("can't execute '%s'", *argv);
 }