const char* name;
int (*main)(int argc, char** argv);
enum Location location;
- const char* usage;
+ int usage_index;
};
/* From busybox.c */
extern const struct BB_applet applets[];
#include "applets.h"
#undef PROTOTYPES
+#define APPLET_ENUM
+enum APPLET_INDEX_NUMBERS {
+#include "applets.h"
+};
+#undef APPLET_ENUM
+
extern const char *applet_name;
-extern int applet_name_compare(const void *x, const void *y);
-extern void usage(const char *usage) __attribute__ ((noreturn));
+extern void show_usage(void) __attribute__ ((noreturn));
extern void error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
extern void error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
extern void perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
extern char *get_last_path_component(char *path);
extern FILE *wfopen(const char *path, const char *mode);
extern FILE *xfopen(const char *path, const char *mode);
+extern void chomp(char *s);
+extern struct BB_applet *find_applet_by_name(const char *name);
+void run_applet_by_name(const char *name, int argc, char **argv);
#ifndef DMALLOC
extern void *xmalloc (size_t size);
extern char *xstrdup (const char *s);
#endif
extern char *xstrndup (const char *s, int n);
+extern char * safe_strncpy(char *dst, const char *src, size_t size);
struct suffix_mult {
char *suffix;
int mult;
};
-extern unsigned long parse_number(const char *numstr, struct suffix_mult *suffixes);
+extern unsigned long parse_number(const char *numstr,
+ const struct suffix_mult *suffixes);
/* These parse entries in /etc/passwd and /etc/group. This is desirable
#endif
#ifdef BB_FEATURE_HUMAN_READABLE
-char *format(unsigned long val, unsigned long hr);
+const char *format(unsigned long val, unsigned long hr);
#define KILOBYTE 1024
#define MEGABYTE (KILOBYTE*1024)
#define GIGABYTE (MEGABYTE*1024)