summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2023-05-26 12:34:11 +0200
committerDenys Vlasenko2023-05-26 12:34:11 +0200
commit3c6f6382eef14b880550cbf28ac5a517d0a075fc (patch)
treefa4a969aabbc2514c13279176add39441b341972
parentaa4d303a3139107919f73cece4eaf85a7dc75db6 (diff)
downloadbusybox-3c6f6382eef14b880550cbf28ac5a517d0a075fc.zip
busybox-3c6f6382eef14b880550cbf28ac5a517d0a075fc.tar.gz
libbb/dump: conditionalize code used only by xxd and od
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--coreutils/od.c2
-rw-r--r--include/dump.h4
-rw-r--r--libbb/dump.c6
3 files changed, 10 insertions, 2 deletions
diff --git a/coreutils/od.c b/coreutils/od.c
index 3fd241d..46aba5a 100644
--- a/coreutils/od.c
+++ b/coreutils/od.c
@@ -223,7 +223,7 @@ int od_main(int argc, char **argv)
return bb_dump_dump(dumper, argv);
}
-#endif /* ENABLE_DESKTOP */
+#endif /* !ENABLE_DESKTOP */
/*-
* Copyright (c) 1990 The Regents of the University of California.
diff --git a/include/dump.h b/include/dump.h
index 11dcf45..8fb92f0 100644
--- a/include/dump.h
+++ b/include/dump.h
@@ -33,8 +33,12 @@ typedef struct dumper_t {
int dump_length; /* max bytes to read */
smallint dump_vflag; /*enum dump_vflag_t*/
FS *fshead;
+#if ENABLE_XXD
const char *xxd_eofstring;
+#endif
+#if ENABLE_OD
const char *od_eofstring;
+#endif
off_t address; /* address/offset in stream */
long long xxd_displayoff;
} dumper_t;
diff --git a/libbb/dump.c b/libbb/dump.c
index 77d7661..21c6c70 100644
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -563,17 +563,21 @@ static NOINLINE void display(priv_dumper_t* dumper)
if (dumper->eaddress
&& dumper->pub.address >= dumper->eaddress
) {
+#if ENABLE_XXD
if (dumper->pub.xxd_eofstring) {
/* xxd support: requested to not pad incomplete blocks */
fputs_stdout(dumper->pub.xxd_eofstring);
return;
}
+#endif
+#if ENABLE_OD
if (dumper->pub.od_eofstring) {
/* od support: requested to not pad incomplete blocks */
/* ... but do print final offset */
fputs_stdout(dumper->pub.od_eofstring);
goto endfu;
}
+#endif
if (!(pr->flags & (F_TEXT | F_BPAD)))
bpad(pr);
}
@@ -637,7 +641,7 @@ static NOINLINE void display(priv_dumper_t* dumper)
goto skip;
}
printf(pr->fmt, value);
- skip:
+ IF_OD(skip:)
break;
}
case F_P: