/*
* Busybox main internal header file
*
- * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
- *
* Based in part on code from sash, Copyright (c) 1999 by David I. Bell
* Permission has been granted to redistribute this code under the GPL.
- *
+ *
+ * Licensed under the GPL version 2, see the file LICENSE in this tarball.
*/
#ifndef __LIBBUSYBOX_H__
#define __LIBBUSYBOX_H__ 1
#ifdef CONFIG_LOCALE_SUPPORT
#include <locale.h>
+#else
+#define setlocale(x,y)
#endif
#include "pwd_.h"
extern int bb_fclose_nonstdin(FILE *f);
extern void bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN;
-extern void xstat(const char *filename, struct stat *buf);
+extern void xstat(char *filename, struct stat *buf);
extern int xsocket(int domain, int type, int protocol);
extern pid_t spawn(char **argv);
extern pid_t xspawn(char **argv);
extern int bb_printf(const char * __restrict format, ...)
__attribute__ ((format (printf, 1, 2)));
-#if ENABLE_NITPICK
-#warning rename to xferror_filename?
-#endif
extern void xferror(FILE *fp, const char *fn);
extern void xferror_stdout(void);
extern void xfflush_stdout(void);
extern long bb_xgetlarg10_sfx(const char *arg, const struct suffix_mult *suffixes);
-#if ENABLE_NITPICK
-#warning pitchable now?
-#endif
extern unsigned long bb_xparse_number(const char *numstr,
const struct suffix_mult *suffixes);
extern int vdprintf(int d, const char *format, va_list ap);
#endif
-int nfsmount(const char *spec, const char *node, int *flags,
- char **mount_opts, int running_bg);
-
/* Include our own copy of struct sysinfo to avoid binary compatibility
* problems with Linux 2.4, which changed things. Grumble, grumble. */
struct sysinfo {
char *concat_subpath_file(const char *path, const char *filename);
char *last_char_is(const char *s, int c);
-#if ENABLE_NITPICK
-#warning yuk!
-#endif
char *fgets_str(FILE *file, const char *terminating_string);
extern int uncompress(int fd_in, int fd_out);
extern unsigned short bb_lookup_port(const char *port, const char *protocol, unsigned short default_port);
extern void bb_lookup_host(struct sockaddr_in *s_in, const char *host);
-#if ENABLE_NITPICK
-#warning wrap this?
-#endif
+// This is declared here rather than #including <libgen.h> in order to avoid
+// confusing the two versions of basename. See the dirname/basename man page
+// for details.
char *dirname (char *path);
int bb_make_directory (char *path, long mode, int flags);
extern const char *bb_applet_name;
-extern const char * const bb_msg_full_version;
-extern const char * const bb_msg_memory_exhausted;
-extern const char * const bb_msg_invalid_date;
-extern const char * const bb_msg_io_error;
-extern const char * const bb_msg_read_error;
-extern const char * const bb_msg_write_error;
-extern const char * const bb_msg_name_longer_than_foo;
-extern const char * const bb_msg_unknown;
-extern const char * const bb_msg_can_not_create_raw_socket;
-extern const char * const bb_msg_perm_denied_are_you_root;
-extern const char * const bb_msg_requires_arg;
-extern const char * const bb_msg_invalid_arg;
-extern const char * const bb_msg_standard_input;
-extern const char * const bb_msg_standard_output;
-
-extern const char * const bb_path_nologin_file;
-extern const char * const bb_path_passwd_file;
-extern const char * const bb_path_shadow_file;
-extern const char * const bb_path_gshadow_file;
-extern const char * const bb_path_group_file;
-extern const char * const bb_path_securetty_file;
-extern const char * const bb_path_motd_file;
-extern const char * const bb_path_wtmp_file;
-extern const char * const bb_dev_null;
+extern const char bb_msg_full_version[];
+extern const char bb_msg_memory_exhausted[];
+extern const char bb_msg_invalid_date[];
+extern const char bb_msg_io_error[];
+extern const char bb_msg_read_error[];
+extern const char bb_msg_write_error[];
+extern const char bb_msg_name_longer_than_foo[];
+extern const char bb_msg_unknown[];
+extern const char bb_msg_can_not_create_raw_socket[];
+extern const char bb_msg_perm_denied_are_you_root[];
+extern const char bb_msg_requires_arg[];
+extern const char bb_msg_invalid_arg[];
+extern const char bb_msg_standard_input[];
+extern const char bb_msg_standard_output[];
+
+extern const char bb_path_nologin_file[];
+extern const char bb_path_passwd_file[];
+extern const char bb_path_shadow_file[];
+extern const char bb_path_gshadow_file[];
+extern const char bb_path_group_file[];
+extern const char bb_path_securetty_file[];
+extern const char bb_path_motd_file[];
+extern const char bb_path_wtmp_file[];
+extern const char bb_dev_null[];
#ifndef BUFSIZ
#define BUFSIZ 4096
*/
#define LIBBB_DEFAULT_LOGIN_SHELL "-/bin/sh"
-extern const char * const bb_default_login_shell;
+extern const char bb_default_login_shell[];
/* "/bin/sh" */
#define DEFAULT_SHELL (bb_default_login_shell+1)
/* "sh" */
#define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+6)
-extern char bb_path_mtab_file[];
+extern const char bb_path_mtab_file[];
extern int bb_default_error_retval;
#endif
-#if ENABLE_NITPICK
-#warning put these in .o files
-#endif
/* The following devices are the same on devfs and non-devfs systems. */
#define CURRENT_TTY "/dev/tty"
#define CONSOLE_DEV "/dev/console"