Credited Christophe Boyaniqu for interactive patch to rm.
[oweals/busybox.git] / busybox.h
index aef537b2b516206e47fc8bf436bf1491fa723a4e..7ae64850190b96599ef7d6b591120647732ec50a 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;
-       int     usage_index;
 };
 /* From busybox.c */
 extern const struct BB_applet applets[];
@@ -87,19 +86,13 @@ 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 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 void perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
+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);
@@ -158,6 +151,7 @@ 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 void trim(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);
 
@@ -182,11 +176,11 @@ extern unsigned long parse_number(const char *numstr,
 /* These parse entries in /etc/passwd and /etc/group.  This is desirable
  * for BusyBox since we want to avoid using the glibc NSS stuff, which
  * increases target size and is often not needed embedded systems.  */
-extern long my_getpwnam(char *name);
-extern long my_getgrnam(char *name);
+extern long my_getpwnam(const char *name);
+extern long my_getgrnam(const char *name);
 extern void my_getpwuid(char *name, long uid);
 extern void my_getgrgid(char *group, long gid);
-extern long my_getpwnamegid(char *name);
+extern long my_getpwnamegid(const char *name);
 
 extern int device_open(char *device, int mode);
 
@@ -211,6 +205,11 @@ int nfsmount(const char *spec, const char *node, int *flags,
 #define RB_POWER_OFF   0x4321fedc
 #endif
 
+#if defined(BB_KLOGD) || defined(BB_LOGGER)
+void syslog_msg_with_name(const char *name, int facility, int pri, const char *msg);
+void syslog_msg(int facility, int pri, const char *msg);
+#endif
+
 /* Include our own copy of struct sysinfo to avoid binary compatability
  * problems with Linux 2.4, which changed things.  Grumble, grumble. */
 struct sysinfo {
@@ -240,11 +239,13 @@ extern int sysinfo (struct sysinfo* info);
 #endif
 
 #ifdef BB_FEATURE_HUMAN_READABLE
-const char *format(unsigned long val, unsigned long hr);
-#define KILOBYTE 1024
-#define MEGABYTE (KILOBYTE*1024)
-#define GIGABYTE (MEGABYTE*1024)
+const char *make_human_readable_str(unsigned long val, unsigned long hr);
 #endif
+enum {
+       KILOBYTE = 1024,
+       MEGABYTE = (KILOBYTE*1024),
+       GIGABYTE = (MEGABYTE*1024)
+};
 
 #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK
 #define RESERVE_BB_BUFFER(buffer,len)           char buffer[len]
@@ -254,4 +255,8 @@ const char *format(unsigned long val, unsigned long hr);
 #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len)
 #endif
 
+#if defined(BB_FEATURE_RM_INTERACTIVE) && defined(BB_RM)
+int ask_confirmation(void);
+#endif
+
 #endif /* _BB_INTERNAL_H_ */