← Commit list

459903bd4

Denis Vlasenko
Denis Vlasenko
2006-11-27
FAILED Duration: 4s

Subject

Provide our own isdigit macro. saves more than 400 bytes.

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/head.c+2 -3
@@ -49,9 +49,8 @@ int head_main(int argc, char **argv)
#if !ENABLE_DEBUG_YANK_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
/* Allow legacy syntax of an initial numeric option without -n. */
- if ((argc > 1) && (argv[1][0] == '-')
- /* && (isdigit)(argv[1][1]) */
- && (((unsigned int)(argv[1][1] - '0')) <= 9)
+ if (argc > 1 && argv[1][0] == '-'
+ && isdigit(argv[1][1])
) {
--argc;
++argv;
coreutils/od.c+1 -1
@@ -21,7 +21,7 @@
#include "busybox.h"
#include "dump.h"
-#define isdecdigit(c) (isdigit)(c)
+#define isdecdigit(c) isdigit(c)
#define ishexdigit(c) (isxdigit)(c)
static void
coreutils/tail.c+4 -5
@@ -93,7 +93,7 @@ static const char header_fmt[] = "\n==> %s <==\n";
int tail_main(int argc, char **argv)
{
long count = 10;
- unsigned int sleep_period = 1;
+ unsigned sleep_period = 1;
int from_top = 0;
int follow = 0;
int header_threshhold = 1;
@@ -110,10 +110,9 @@ int tail_main(int argc, char **argv)
#if !ENABLE_DEBUG_YANK_SUSv2 || ENABLE_FEATURE_FANCY_TAIL
/* Allow legacy syntax of an initial numeric option without -n. */
- if (argc >=2 && ((argv[1][0] == '+') || ((argv[1][0] == '-')
- /* && (isdigit)(argv[1][1]) */
- && (((unsigned int)(argv[1][1] - '0')) <= 9))))
- {
+ if (argc >= 2 && (argv[1][0] == '+' || argv[1][0] == '-')
+ && isdigit(argv[1][1])
+ ) {
optind = 2;
optarg = argv[1];
goto GET_COUNT;
include/libbb.h+5 -1
@@ -666,7 +666,6 @@ extern const char bb_default_login_shell[];
#undef isascii
#undef isblank
#undef iscntrl
-#undef isdigit
#undef isgraph
#undef islower
#undef isprint
@@ -675,6 +674,11 @@ extern const char bb_default_login_shell[];
#undef isupper
#undef isxdigit
+/* This one is more efficient - we save ~400 bytes */
+#undef isdigit
+#define isdigit(a) ((unsigned)((a) - '0') <= 9)
+
+
#ifdef DMALLOC
#include <dmalloc.h>
#endif
sysklogd/syslogd.c+1 -1
@@ -468,7 +468,7 @@ static int serveConnection(char *tmpbuf, int n_read)
/* Parse the magic priority number. */
num_lt++;
pri = 0;
- while (isdigit(*(++p))) {
+ while (isdigit(*++p)) {
pri = 10 * pri + (*p - '0');
}
if (pri & ~(LOG_FACMASK | LOG_PRIMASK)) {