libbb: rename execable -> executable. No code changes
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 2 May 2014 15:15:58 +0000 (17:15 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 2 May 2014 15:15:58 +0000 (17:15 +0200)
English speakers complained that it sounded awfully broken.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
debianutils/which.c
docs/ifupdown_design.txt
include/libbb.h
libbb/Kbuild.src
libbb/execable.c [deleted file]
libbb/executable.c [new file with mode: 0644]
networking/ifupdown.c

index 15fd598b782f7076ab59dbf27730518affaf3d0c..760bcdcadf152af7529ecd98515838d2eba1c5b4 100644 (file)
@@ -46,7 +46,7 @@ int which_main(int argc UNUSED_PARAM, char **argv)
 #if ENABLE_DESKTOP
 /* Much bloat just to support -a */
                if (strchr(*argv, '/')) {
-                       if (execable_file(*argv)) {
+                       if (file_is_executable(*argv)) {
                                puts(*argv);
                                continue;
                        }
@@ -55,7 +55,7 @@ int which_main(int argc UNUSED_PARAM, char **argv)
                        char *path2 = xstrdup(path);
                        char *tmp = path2;
 
-                       p = find_execable(*argv, &tmp);
+                       p = find_executable(*argv, &tmp);
                        if (!p)
                                status = EXIT_FAILURE;
                        else {
@@ -65,7 +65,7 @@ int which_main(int argc UNUSED_PARAM, char **argv)
                                if (opt) {
                                        /* -a: show matches in all PATH components */
                                        if (tmp) {
-                                               p = find_execable(*argv, &tmp);
+                                               p = find_executable(*argv, &tmp);
                                                if (p)
                                                        goto print;
                                        }
@@ -76,14 +76,14 @@ int which_main(int argc UNUSED_PARAM, char **argv)
 #else
 /* Just ignoring -a */
                if (strchr(*argv, '/')) {
-                       if (execable_file(*argv)) {
+                       if (file_is_executable(*argv)) {
                                puts(*argv);
                                continue;
                        }
                } else {
                        char *path2 = xstrdup(path);
                        char *tmp = path2;
-                       p = find_execable(*argv, &tmp);
+                       p = find_executable(*argv, &tmp);
                        free(path2);
                        if (p) {
                                puts(p);
index 8ab4e51adc444c2efb33fc91c5edffdb11cc4e03..39e28a9f455fb2176730b55239431dd2f9c3ae4e 100644 (file)
@@ -21,7 +21,7 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
 #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
        int i ;
        for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
-               if (exists_execable(ext_dhcp_clients[i].name))
+               if (executable_exists(ext_dhcp_clients[i].name))
                        return execute(ext_dhcp_clients[i].stopcmd, ifd, exec);
        }
        bb_error_msg("no dhcp clients found, using static interface shutdown");
index 29cf6bc6d8e290a5ac63ddf1eaa79e82985a278b..afdee38c412b7a8889e4e762f9977bfa5c2ec41e 100644 (file)
@@ -912,9 +912,9 @@ void FAST_FUNC update_utmp(pid_t pid, int new_type, const char *tty_name, const
 #endif
 
 
-int execable_file(const char *name) FAST_FUNC;
-char *find_execable(const char *filename, char **PATHp) FAST_FUNC;
-int exists_execable(const char *filename) FAST_FUNC;
+int file_is_executable(const char *name) FAST_FUNC;
+char *find_executable(const char *filename, char **PATHp) FAST_FUNC;
+int executable_exists(const char *filename) FAST_FUNC;
 
 /* BB_EXECxx always execs (it's not doing NOFORK/NOEXEC stuff),
  * but it may exec busybox and call applet instead of searching PATH.
index a6468f17176a39cff0364ee3d9b2f837ff895ca0..6578d117181f79fbc862a69546f0a918b3b97318 100644 (file)
@@ -30,7 +30,7 @@ lib-y += crc32.o
 lib-y += default_error_retval.o
 lib-y += device_open.o
 lib-y += dump.o
-lib-y += execable.o
+lib-y += executable.o
 lib-y += fclose_nonstdin.o
 lib-y += fflush_stdout_and_exit.o
 lib-y += fgets_str.o
diff --git a/libbb/execable.c b/libbb/execable.c
deleted file mode 100644 (file)
index a3caea6..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Utility routines.
- *
- * Copyright (C) 2006 Gabriel Somlo <somlo at cmu.edu>
- *
- * Licensed under GPLv2 or later, see file LICENSE in this source tree.
- */
-
-#include "libbb.h"
-
-/* check if path points to an executable file;
- * return 1 if found;
- * return 0 otherwise;
- */
-int FAST_FUNC execable_file(const char *name)
-{
-       struct stat s;
-       return (!access(name, X_OK) && !stat(name, &s) && S_ISREG(s.st_mode));
-}
-
-/* search (*PATHp) for an executable file;
- * return allocated string containing full path if found;
- *  PATHp points to the component after the one where it was found
- *  (or NULL),
- *  you may call find_execable again with this PATHp to continue
- *  (if it's not NULL).
- * return NULL otherwise; (PATHp is undefined)
- * in all cases (*PATHp) contents will be trashed (s/:/NUL/).
- */
-char* FAST_FUNC find_execable(const char *filename, char **PATHp)
-{
-       /* About empty components in $PATH:
-        * http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html
-        * 8.3 Other Environment Variables - PATH
-        * A zero-length prefix is a legacy feature that indicates the current
-        * working directory. It appears as two adjacent colons ( "::" ), as an
-        * initial colon preceding the rest of the list, or as a trailing colon
-        * following the rest of the list.
-        */
-       char *p, *n;
-
-       p = *PATHp;
-       while (p) {
-               n = strchr(p, ':');
-               if (n)
-                       *n++ = '\0';
-               p = concat_path_file(
-                       p[0] ? p : ".", /* handle "::" case */
-                       filename
-               );
-               if (execable_file(p)) {
-                       *PATHp = n;
-                       return p;
-               }
-               free(p);
-               p = n;
-       } /* on loop exit p == NULL */
-       return p;
-}
-
-/* search $PATH for an executable file;
- * return 1 if found;
- * return 0 otherwise;
- */
-int FAST_FUNC exists_execable(const char *filename)
-{
-       char *path = xstrdup(getenv("PATH"));
-       char *tmp = path;
-       char *ret = find_execable(filename, &tmp);
-       free(path);
-       free(ret);
-       return ret != NULL;
-}
-
-#if ENABLE_FEATURE_PREFER_APPLETS
-/* just like the real execvp, but try to launch an applet named 'file' first */
-int FAST_FUNC BB_EXECVP(const char *file, char *const argv[])
-{
-       if (find_applet_by_name(file) >= 0)
-               execvp(bb_busybox_exec_path, argv);
-       return execvp(file, argv);
-}
-#endif
-
-int FAST_FUNC BB_EXECVP_or_die(char **argv)
-{
-       BB_EXECVP(argv[0], argv);
-       /* SUSv3-mandated exit codes */
-       xfunc_error_retval = (errno == ENOENT) ? 127 : 126;
-       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
-}
diff --git a/libbb/executable.c b/libbb/executable.c
new file mode 100644 (file)
index 0000000..85ecc3e
--- /dev/null
@@ -0,0 +1,92 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 2006 Gabriel Somlo <somlo at cmu.edu>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+#include "libbb.h"
+
+/* check if path points to an executable file;
+ * return 1 if found;
+ * return 0 otherwise;
+ */
+int FAST_FUNC file_is_executable(const char *name)
+{
+       struct stat s;
+       return (!access(name, X_OK) && !stat(name, &s) && S_ISREG(s.st_mode));
+}
+
+/* search (*PATHp) for an executable file;
+ * return allocated string containing full path if found;
+ *  PATHp points to the component after the one where it was found
+ *  (or NULL),
+ *  you may call find_executable again with this PATHp to continue
+ *  (if it's not NULL).
+ * return NULL otherwise; (PATHp is undefined)
+ * in all cases (*PATHp) contents will be trashed (s/:/NUL/).
+ */
+char* FAST_FUNC find_executable(const char *filename, char **PATHp)
+{
+       /* About empty components in $PATH:
+        * http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html
+        * 8.3 Other Environment Variables - PATH
+        * A zero-length prefix is a legacy feature that indicates the current
+        * working directory. It appears as two adjacent colons ( "::" ), as an
+        * initial colon preceding the rest of the list, or as a trailing colon
+        * following the rest of the list.
+        */
+       char *p, *n;
+
+       p = *PATHp;
+       while (p) {
+               n = strchr(p, ':');
+               if (n)
+                       *n++ = '\0';
+               p = concat_path_file(
+                       p[0] ? p : ".", /* handle "::" case */
+                       filename
+               );
+               if (file_is_executable(p)) {
+                       *PATHp = n;
+                       return p;
+               }
+               free(p);
+               p = n;
+       } /* on loop exit p == NULL */
+       return p;
+}
+
+/* search $PATH for an executable file;
+ * return 1 if found;
+ * return 0 otherwise;
+ */
+int FAST_FUNC executable_exists(const char *filename)
+{
+       char *path = xstrdup(getenv("PATH"));
+       char *tmp = path;
+       char *ret = find_executable(filename, &tmp);
+       free(path);
+       free(ret);
+       return ret != NULL;
+}
+
+#if ENABLE_FEATURE_PREFER_APPLETS
+/* just like the real execvp, but try to launch an applet named 'file' first */
+int FAST_FUNC BB_EXECVP(const char *file, char *const argv[])
+{
+       if (find_applet_by_name(file) >= 0)
+               execvp(bb_busybox_exec_path, argv);
+       return execvp(file, argv);
+}
+#endif
+
+int FAST_FUNC BB_EXECVP_or_die(char **argv)
+{
+       BB_EXECVP(argv[0], argv);
+       /* SUSv3-mandated exit codes */
+       xfunc_error_retval = (errno == ENOENT) ? 127 : 126;
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
+}
index e1ea351a419f5cd020f00d34c2428c9ac9ff51d1..c35d97a1aae5f82b93b0692b1f9af22f2cd09fcb 100644 (file)
@@ -555,7 +555,7 @@ static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec)
                return 0;
 #  endif
        for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
-               if (exists_execable(ext_dhcp_clients[i].name))
+               if (executable_exists(ext_dhcp_clients[i].name))
                        return execute(ext_dhcp_clients[i].startcmd, ifd, exec);
        }
        bb_error_msg("no dhcp clients found");
@@ -592,7 +592,7 @@ static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
        unsigned i;
 
        for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
-               if (exists_execable(ext_dhcp_clients[i].name)) {
+               if (executable_exists(ext_dhcp_clients[i].name)) {
                        result = execute(ext_dhcp_clients[i].stopcmd, ifd, exec);
                        if (result)
                                break;