This one should be able to deal with the USAGE macros a little
[oweals/busybox.git] / busybox.h
index e332ed41282a31db92c2a6e1dfff7b09adc73965..8d4976a4b8f77e25f70234ab5cff85ea6bedeb7a 100644 (file)
--- a/busybox.h
+++ b/busybox.h
@@ -72,7 +72,6 @@ struct BB_applet {
        const   char*   name;
        int     (*main)(int argc, char** argv);
        enum    Location        location;
-       const   char*   usage;
 };
 /* From busybox.c */
 extern const struct BB_applet applets[];
@@ -88,13 +87,12 @@ extern const struct BB_applet applets[];
 #undef PROTOTYPES
 
 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 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 void perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
+extern void show_usage(void) __attribute__ ((noreturn));
+extern void error_msg(const char *s, ...);
+extern void error_msg_and_die(const char *s, ...) __attribute__ ((noreturn));
+extern void perror_msg(const char *s, ...);
+extern void perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn));
 
 const char *mode_string(int mode);
 const char *time_string(time_t timeVal);
@@ -153,6 +151,8 @@ 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);
@@ -161,13 +161,15 @@ extern void *xcalloc(size_t nmemb, 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
@@ -231,7 +233,7 @@ extern int sysinfo (struct sysinfo* info);
 #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)