hush: get rid of charmap[]
[oweals/busybox.git] / include / dump.h
1 /* vi: set sw=4 ts=4: */
2
3 #if __GNUC_PREREQ(4,1)
4 # pragma GCC visibility push(hidden)
5 #endif
6
7 #define F_IGNORE        0x01            /* %_A */
8 #define F_SETREP        0x02            /* rep count set, not default */
9 #define F_ADDRESS       0x001           /* print offset */
10 #define F_BPAD          0x002           /* blank pad */
11 #define F_C             0x004           /* %_c */
12 #define F_CHAR          0x008           /* %c */
13 #define F_DBL           0x010           /* %[EefGf] */
14 #define F_INT           0x020           /* %[di] */
15 #define F_P             0x040           /* %_p */
16 #define F_STR           0x080           /* %s */
17 #define F_U             0x100           /* %_u */
18 #define F_UINT          0x200           /* %[ouXx] */
19 #define F_TEXT          0x400           /* no conversions */
20
21 enum dump_vflag_t { ALL, DUP, FIRST, WAIT };    /* -v values */
22
23 typedef struct PR {
24         struct PR *nextpr;              /* next print unit */
25         unsigned flags;                 /* flag values */
26         int bcnt;                       /* byte count */
27         char *cchar;                    /* conversion character */
28         char *fmt;                      /* printf format */
29         char *nospace;                  /* no whitespace version */
30 } PR;
31
32 typedef struct FU {
33         struct FU *nextfu;              /* next format unit */
34         struct PR *nextpr;              /* next print unit */
35         unsigned flags;                 /* flag values */
36         int reps;                       /* repetition count */
37         int bcnt;                       /* byte count */
38         char *fmt;                      /* format string */
39 } FU;
40
41 typedef struct FS {                     /* format strings */
42         struct FS *nextfs;              /* linked list of format strings */
43         struct FU *nextfu;              /* linked list of format units */
44         int bcnt;
45 } FS;
46
47 typedef struct dumper_t {
48         off_t dump_skip;                /* bytes to skip */
49         int dump_length;                /* max bytes to read */
50         smallint dump_vflag; /*enum dump_vflag_t*/
51         FS *fshead;
52 } dumper_t;
53
54 dumper_t* alloc_dumper(void) FAST_FUNC;
55 extern void bb_dump_add(dumper_t *dumper, const char *fmt) FAST_FUNC;
56 extern int bb_dump_dump(dumper_t *dumper, char **argv) FAST_FUNC;
57
58 #if __GNUC_PREREQ(4,1)
59 # pragma GCC visibility pop
60 #endif