extern void usage(const char *usage)
{
- fprintf(stderr, "%s\n\n", full_version);
- fprintf(stderr, "Usage: %s\n", usage);
+ fprintf(stderr, "%s\n\nUsage: %s\n", full_version, usage);
exit(EXIT_FAILURE);
}
fflush(stdout);
fprintf(stderr, "%s: ", applet_name);
vfprintf(stderr, s, p);
- fflush(stderr);
}
extern void error_msg(const char *s, ...)
static void vperror_msg(const char *s, va_list p)
{
- fflush(stdout);
- fprintf(stderr, "%s: ", applet_name);
- if (s && *s) {
- vfprintf(stderr, s, p);
- fputs(": ", stderr);
- }
- fprintf(stderr, "%s\n", strerror(errno));
- fflush(stderr);
+ int err=errno;
+ if(s == 0) s = "";
+ verror_msg(s, p);
+ if (*s) s = ": ";
+ fprintf(stderr, "%s%s\n", s, strerror(err));
}
extern void perror_msg(const char *s, ...)
exit(EXIT_FAILURE);
}
-#if defined BB_INIT || defined BB_MKSWAP || defined BB_MOUNT
+#if defined BB_INIT || defined BB_MKSWAP || defined BB_MOUNT || defined BB_NFSMOUNT
/* Returns kernel version encoded as major*65536 + minor*256 + patch,
* so, for example, to check if the kernel is greater than 2.2.11:
* if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
#if defined BB_MOUNT || defined BB_UMOUNT
#ifndef __NR_umount2
-#define __NR_umount2 52
+static const int __NR_umount2 = 52;
#endif
/* Include our own version of <sys/mount.h>, since libc5 doesn't
#if defined BB_INSMOD || defined BB_LSMOD
#ifndef __NR_query_module
-#define __NR_query_module 167
+static const int __NR_query_module = 167;
#endif
_syscall5(int, query_module, const char *, name, int, which,
void *, buf, size_t, bufsize, size_t*, ret);
}
#endif
-#if defined (BB_AR) || defined BB_CP_MV
+#if defined BB_AR || defined BB_CP_MV
/*
* Copy chunksize bytes between two file descriptors
*/
}
#endif /* BB_TAR || BB_AR */
-#if defined BB_AR || defined BB_CP_MV || defined BB_DD || defined BB_NC || defined BB_TAR
+#if defined BB_DD || defined BB_NC || defined BB_TAIL || defined BB_TAR || defined BB_AR || defined BB_CP_MV
/*
* Write all of the supplied buffer out to a file.
* This does multiple writes as necessary.
#if (defined BB_CHVT) || (defined BB_DEALLOCVT) || (defined BB_SETKEYCODES)
/* From <linux/kd.h> */
-#define KDGKBTYPE 0x4B33 /* get keyboard type */
-#define KB_84 0x01
-#define KB_101 0x02 /* this is what we always answer */
+static const int KDGKBTYPE = 0x4B33; /* get keyboard type */
+static const int KB_84 = 0x01;
+static const int KB_101 = 0x02; /* this is what we always answer */
int is_a_console(int fd)
{
}
#endif
-#if defined BB_FEATURE_NFSMOUNT || defined BB_LS || defined BB_SH || defined BB_WGET
+#if defined BB_NFSMOUNT || defined BB_LS || defined BB_SH || defined BB_WGET || \
+ defined BB_DPKG_DEB || defined BB_TAR
# ifndef DMALLOC
extern char * xstrdup (const char *s) {
char *t;
# endif
#endif
-#if defined BB_FEATURE_NFSMOUNT
+#if defined BB_NFSMOUNT
extern char * xstrndup (const char *s, int n) {
char *t;
}
#endif
-#if defined BB_BASENAME || defined BB_LN || defined BB_SH || defined BB_INIT || defined BB_FEATURE_USE_PROCFS
+#if defined BB_BASENAME || defined BB_LN || defined BB_SH || defined BB_INIT || \
+ defined BB_FEATURE_USE_PROCFS || defined BB_WGET
char *get_last_path_component(char *path)
{
char *s=path+strlen(path)-1;
#endif
#if defined BB_HOSTNAME || defined BB_LOADACM || defined BB_MORE \
- || defined BB_SED || defined BB_SH || defined BB_UNIQ \
- || defined BB_WC || defined BB_CMP
+ || defined BB_SED || defined BB_SH || defined BB_TAR || defined BB_UNIQ \
+ || defined BB_WC || defined BB_CMP || defined BB_SORT
FILE *xfopen(const char *path, const char *mode)
{
FILE *fp;
}
#endif
-#if defined BB_DD || defined BB_NC
+#if defined BB_DD || defined BB_NC || defined BB_TAIL
ssize_t safe_read(int fd, void *buf, size_t count)
{
ssize_t n;
}
#endif
+#ifdef BB_FEATURE_HUMAN_READABLE
+char *format(unsigned long val, unsigned long hr)
+{
+ static char str[10] = "\0";
+
+ if(val == 0)
+ return("0");
+ if(hr)
+ snprintf(str, 9, "%ld", val/hr);
+ else if(val >= GIGABYTE)
+ snprintf(str, 9, "%.1LfG", ((long double)(val)/GIGABYTE));
+ else if(val >= MEGABYTE)
+ snprintf(str, 9, "%.1LfM", ((long double)(val)/MEGABYTE));
+ else if(val >= KILOBYTE)
+ snprintf(str, 9, "%.1Lfk", ((long double)(val)/KILOBYTE));
+ else
+ snprintf(str, 9, "%ld", (val));
+ return(str);
+}
+#endif
+
/* END CODE */
/*
Local Variables: