sed: n cmd must reset "we had successful subst" flag. closes bug 1214.
[oweals/busybox.git] / modutils / rmmod.c
index f78f96ccc82344851201dc37802f45d170666cb3..61cfbd1473ae6bfcd7e488c96d3240667c9f1f2f 100644 (file)
@@ -10,7 +10,7 @@
 #include "libbb.h"
 #include <sys/syscall.h>
 
-#ifdef CONFIG_FEATURE_2_6_MODULES
+#if ENABLE_FEATURE_2_6_MODULES
 static inline void filename2modname(char *modname, const char *afterslash)
 {
        unsigned int i;
@@ -38,7 +38,7 @@ void filename2modname(char *modname, const char *afterslash);
 int query_module(const char *name, int which, void *buf,
                        size_t bufsize, size_t *ret);
 
-int rmmod_main(int argc, char **argv);
+int rmmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int rmmod_main(int argc, char **argv)
 {
        int n, ret = EXIT_SUCCESS;
@@ -47,7 +47,7 @@ int rmmod_main(int argc, char **argv)
 #define misc_buf bb_common_bufsiz1
 
        /* Parse command line. */
-       n = getopt32(argc, argv, "wfa");
+       n = getopt32(argv, "wfa");
        if (n & 1)      // --wait
                flags &= ~O_NONBLOCK;
        if (n & 2)      // --force
@@ -81,16 +81,11 @@ int rmmod_main(int argc, char **argv)
 
        for (n = optind; n < argc; n++) {
                if (ENABLE_FEATURE_2_6_MODULES) {
-                       const char *afterslash;
-
-                       afterslash = strrchr(argv[n], '/');
-                       if (!afterslash) afterslash = argv[n];
-                       else afterslash++;
-                       filename2modname(misc_buf, afterslash);
+                       filename2modname(misc_buf, bb_basename(argv[n]));
                }
 
                if (syscall(__NR_delete_module, ENABLE_FEATURE_2_6_MODULES ? misc_buf : argv[n], flags)) {
-                       bb_perror_msg("%s", argv[n]);
+                       bb_simple_perror_msg(argv[n]);
                        ret = EXIT_FAILURE;
                }
        }