Make 'grep -l' work
[oweals/busybox.git] / applets.h
index cb744567a68f0369cdcda9cde0a867c21d471e93..c3037973d1598494fced9f36382bddd175d6a275 100644 (file)
--- a/applets.h
+++ b/applets.h
 #undef APPLET_ODDNAME
 #undef APPLET_NOUSAGE
 
+
 #if defined(PROTOTYPES)
-#define APPLET(a,b,c) \
-       extern int b(int argc, char **argv);
-#define APPLET_ODDNAME(a,b,c,d,e) APPLET(a,b,c)
-#define APPLET_NOUSAGE(a,b,c) \
-       extern int b(int argc, char **argv);
+  #define APPLET(a,b,c) extern int b(int argc, char **argv);
+  #define APPLET_NOUSAGE(a,b,c) extern int b(int argc, char **argv);
+  #define APPLET_ODDNAME(a,b,c,d) extern int b(int argc, char **argv);
+  extern const char usage_messages[];
+#elif defined(MAKE_USAGE)
+  #ifdef BB_FEATURE_VERBOSE_USAGE
+    #define APPLET(a,b,c) a##_trivial_usage "\n\n" a##_full_usage "\0"
+    #define APPLET_NOUSAGE(a,b,c) "\0"
+    #define APPLET_ODDNAME(a,b,c,d) d##_trivial_usage "\n\n" d##_full_usage "\0"
+  #else
+    #define APPLET(a,b,c) a##_trivial_usage "\0"
+    #define APPLET_NOUSAGE(a,b,c) "\0"
+    #define APPLET_ODDNAME(a,b,c,d) d##_trivial_usage "\0"
+  #endif
 #elif defined(MAKE_LINKS)
-#define APPLET(a,b,c) LINK c #a
-#define APPLET_ODDNAME(a,b,c,d,e) LINK c a
-#define APPLET_NOUSAGE(a,b,c) LINK c #a
-#elif defined(APPLET_ENUM)
-#define APPLET(a,b,c) a##_applet_number,
-#define APPLET_ODDNAME(a,b,c,d,e) e##_applet_number,
-#define APPLET_NOUSAGE(a,b,c) a##applet_number,
+#  define APPLET(a,b,c) LINK c a
+#  define APPLET_NOUSAGE(a,b,c) LINK c a
+#  define APPLET_ODDNAME(a,b,c,d) LINK c a
 #else
-#define USAGE_ENUM
-#include "usage.h"
-const struct BB_applet applets[] = {
-#define APPLET(a,b,c) {#a,b,c,a##_usage_index},
-#define APPLET_ODDNAME(a,b,c,d,e) {a,b,c,d},
-#define APPLET_NOUSAGE(a,b,c) {#a,b,c,-1},
-#define zcat_usage_index gunzip_usage_index
-#define sh_usage_index shell_usage_index
+  const struct BB_applet applets[] = {
+  #define APPLET(a,b,c) {#a,b,c},
+  #define APPLET_NOUSAGE(a,b,c) {a,b,c},
+  #define APPLET_ODDNAME(a,b,c,d) {a,b,c},
 #endif
 
+
+
 #ifdef BB_TEST
-       APPLET_ODDNAME("[", test_main, _BB_DIR_USR_BIN, test_usage_index, open_bracket)
+       APPLET_NOUSAGE("[", test_main, _BB_DIR_USR_BIN)
+#endif
+#ifdef BB_ADJTIMEX
+       APPLET(adjtimex, adjtimex_main, _BB_DIR_SBIN)
 #endif
 #ifdef BB_AR
        APPLET(ar, ar_main, _BB_DIR_USR_BIN)
@@ -48,7 +55,7 @@ const struct BB_applet applets[] = {
 #ifdef BB_BASENAME
        APPLET(basename, basename_main, _BB_DIR_USR_BIN)
 #endif
-       APPLET_NOUSAGE(busybox, busybox_main, _BB_DIR_BIN)
+       APPLET_NOUSAGE("busybox", busybox_main, _BB_DIR_BIN)
 #ifdef BB_CAT
        APPLET(cat, cat_main, _BB_DIR_BIN)
 #endif
@@ -107,7 +114,7 @@ const struct BB_applet applets[] = {
        APPLET(dpkg, dpkg_main, _BB_DIR_USR_BIN)
 #endif
 #ifdef BB_DPKG_DEB
-       APPLET_ODDNAME("dpkg-deb", dpkg_deb_main, _BB_DIR_USR_BIN, dpkg_deb_usage_index, dpkg_deb)
+       APPLET_ODDNAME("dpkg-deb", dpkg_deb_main, _BB_DIR_USR_BIN, dpkg_deb)
 #endif
 #ifdef BB_DU
        APPLET(du, du_main, _BB_DIR_USR_BIN)
@@ -121,6 +128,12 @@ const struct BB_applet applets[] = {
 #ifdef BB_ECHO
        APPLET(echo, echo_main, _BB_DIR_BIN)
 #endif
+#if defined(BB_FEATURE_GREP_EGREP_ALIAS) && defined(BB_GREP)
+       APPLET_NOUSAGE("egrep", grep_main, _BB_DIR_BIN)
+#endif
+#ifdef BB_ENV
+       APPLET(env, env_main, _BB_DIR_USR_BIN)
+#endif
 #ifdef BB_EXPR
        APPLET(expr, expr_main, _BB_DIR_USR_BIN)
 #endif
@@ -128,7 +141,7 @@ const struct BB_applet applets[] = {
        APPLET(false, false_main, _BB_DIR_BIN)
 #endif
 #ifdef BB_FBSET
-       APPLET_NOUSAGE(fbset, fbset_main, _BB_DIR_USR_SBIN)
+       APPLET(fbset, fbset_main, _BB_DIR_USR_SBIN)
 #endif
 #ifdef BB_FDFLUSH
        APPLET(fdflush, fdflush_main, _BB_DIR_BIN)
@@ -143,7 +156,7 @@ const struct BB_applet applets[] = {
        APPLET(freeramdisk, freeramdisk_main, _BB_DIR_SBIN)
 #endif
 #ifdef BB_FSCK_MINIX
-       APPLET_ODDNAME("fsck.minix", fsck_minix_main, _BB_DIR_SBIN, fsck_minix_usage_index, fsck_minix)
+       APPLET_ODDNAME("fsck.minix", fsck_minix_main, _BB_DIR_SBIN, fsck_minix)
 #endif
 #ifdef BB_GETOPT
        APPLET(getopt, getopt_main, _BB_DIR_BIN)
@@ -187,11 +200,14 @@ const struct BB_applet applets[] = {
 #ifdef BB_KILLALL
        APPLET(killall, kill_main, _BB_DIR_USR_BIN)
 #endif
+#ifdef BB_KLOGD
+       APPLET(klogd, klogd_main, _BB_DIR_SBIN)
+#endif
 #ifdef BB_LENGTH
        APPLET(length, length_main, _BB_DIR_USR_BIN)
 #endif
-#ifdef BB_LINUXRC
-       APPLET_NOUSAGE(linuxrc, init_main, _BB_DIR_ROOT)
+#ifdef BB_FEATURE_LINUXRC
+       APPLET_NOUSAGE("linuxrc", init_main, _BB_DIR_ROOT)
 #endif
 #ifdef BB_LN
        APPLET(ln, ln_main, _BB_DIR_BIN)
@@ -211,6 +227,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_LOGNAME
        APPLET(logname, logname_main, _BB_DIR_USR_BIN)
 #endif
+#ifdef BB_LOGREAD
+       APPLET(logread, logread_main, _BB_DIR_SBIN)
+#endif
 #ifdef BB_LS
        APPLET(ls, ls_main, _BB_DIR_BIN)
 #endif
@@ -230,7 +249,7 @@ const struct BB_applet applets[] = {
        APPLET(mkfifo, mkfifo_main, _BB_DIR_USR_BIN)
 #endif
 #ifdef BB_MKFS_MINIX
-       APPLET_ODDNAME("mkfs.minix", mkfs_minix_main, _BB_DIR_SBIN, mkfs_minix_usage_index, mkfs_minix)
+       APPLET_ODDNAME("mkfs.minix", mkfs_minix_main, _BB_DIR_SBIN, mkfs_minix)
 #endif
 #ifdef BB_MKNOD
        APPLET(mknod, mknod_main, _BB_DIR_BIN)
@@ -352,6 +371,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_TEST
        APPLET(test, test_main, _BB_DIR_USR_BIN)
 #endif
+#ifdef BB_TFTP
+       APPLET(tftp, tftp_main, _BB_DIR_USR_BIN)
+#endif
 #ifdef BB_TOUCH
        APPLET(touch, touch_main, _BB_DIR_BIN)
 #endif
@@ -374,7 +396,7 @@ const struct BB_applet applets[] = {
        APPLET(uniq, uniq_main, _BB_DIR_USR_BIN)
 #endif
 #ifdef BB_UNIX2DOS
-       APPLET(unix2dos, unix2dos_main, _BB_DIR_USR_BIN)
+       APPLET(unix2dos, dos2unix_main, _BB_DIR_USR_BIN)
 #endif
 #ifdef BB_UPDATE
        APPLET(update, update_main, _BB_DIR_SBIN)
@@ -391,6 +413,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_UUENCODE
        APPLET(uuencode, uuencode_main, _BB_DIR_USR_BIN)
 #endif
+#ifdef BB_VI
+       APPLET(vi, vi_main, _BB_DIR_BIN)
+#endif
 #ifdef BB_WATCHDOG
        APPLET(watchdog, watchdog_main, _BB_DIR_SBIN)
 #endif
@@ -416,11 +441,8 @@ const struct BB_applet applets[] = {
        APPLET(zcat, gunzip_main, _BB_DIR_BIN)
 #endif
 
-#if !defined(PROTOTYPES) && !defined(MAKE_LINKS) && !defined(APPLET_ENUM)
-       { 0,NULL,0,-1}
+#if !defined(PROTOTYPES) && !defined(MAKE_USAGE)
+       { 0,NULL,0 }
 };
 
-/* The -1 arises because of the {0,NULL,0,-1} entry above. */
-size_t NUM_APPLETS = (sizeof (applets) / sizeof (struct BB_applet) - 1);
-
 #endif