busybox/include/dump.h
Denys Vlasenko 4d16161797 xxd: implement -o DISPLAYOFFSET
function                                             old     new   delta
xxd_main                                             680     710     +30
xstrtoll                                               -      30     +30
bb_dump_dump                                        1511    1531     +20
rewrite                                              941     951     +10
packed_usage                                       33629   33639     +10
.rodata                                           103250  103252      +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/0 up/down: 102/0)             Total: 102 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 23:53:30 +02:00

45 lines
1.3 KiB
C

/* vi: set sw=4 ts=4: */
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
enum dump_vflag_t { ALL, DUP, FIRST, WAIT }; /* -v values */
typedef struct PR {
struct PR *nextpr; /* next print unit */
unsigned flags; /* flag values */
int bcnt; /* byte count */
char *cchar; /* conversion character */
char *fmt; /* printf format */
char *nospace; /* no whitespace version */
} PR;
typedef struct FU {
struct FU *nextfu; /* next format unit */
struct PR *nextpr; /* next print unit */
unsigned flags; /* flag values */
int reps; /* repetition count */
int bcnt; /* byte count */
char *fmt; /* format string */
} FU;
typedef struct FS { /* format strings */
struct FS *nextfs; /* linked list of format strings */
struct FU *nextfu; /* linked list of format units */
int bcnt;
} FS;
typedef struct dumper_t {
off_t dump_skip; /* bytes to skip */
int dump_length; /* max bytes to read */
smallint dump_vflag; /*enum dump_vflag_t*/
FS *fshead;
const char *xxd_eofstring;
long long xxd_displayoff;
} dumper_t;
dumper_t* alloc_dumper(void) FAST_FUNC;
extern void bb_dump_add(dumper_t *dumper, const char *fmt) FAST_FUNC;
extern int bb_dump_dump(dumper_t *dumper, char **argv) FAST_FUNC;
POP_SAVED_FUNCTION_VISIBILITY