summaryrefslogtreecommitdiffstats
path: root/text-utils/hexdump-parse.c
diff options
context:
space:
mode:
authorOndrej Oprala2013-11-08 17:13:14 +0100
committerKarel Zak2013-12-02 13:44:24 +0100
commit1f77e9c3ad0b41640a82f2aca6eff18c98483610 (patch)
treead820f7cfa957d004b19ad3b5904623d454634ed /text-utils/hexdump-parse.c
parenthexdump: add __attribute__ ((__noreturn__)) to bad*() functions (diff)
downloadkernel-qcow2-util-linux-1f77e9c3ad0b41640a82f2aca6eff18c98483610.tar.gz
kernel-qcow2-util-linux-1f77e9c3ad0b41640a82f2aca6eff18c98483610.tar.xz
kernel-qcow2-util-linux-1f77e9c3ad0b41640a82f2aca6eff18c98483610.zip
hexdump: Create struct hexdump containing previously global variables.
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Diffstat (limited to 'text-utils/hexdump-parse.c')
-rw-r--r--text-utils/hexdump-parse.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/text-utils/hexdump-parse.c b/text-utils/hexdump-parse.c
index ed94bb839..17dd77343 100644
--- a/text-utils/hexdump-parse.c
+++ b/text-utils/hexdump-parse.c
@@ -72,7 +72,7 @@ static void __attribute__ ((__noreturn__)) badconv(const char *ch)
struct hexdump_fu *endfu; /* format at end-of-data */
-void addfile(char *name)
+void addfile(char *name, struct hexdump *hex)
{
char *fmt, *buf = NULL;
FILE *fp;
@@ -89,14 +89,14 @@ void addfile(char *name)
if (!*fmt || *fmt == '#')
continue;
- add_fmt(fmt);
+ add_fmt(fmt, hex);
}
free(buf);
fclose(fp);
}
-void add_fmt(const char *fmt)
+void add_fmt(const char *fmt, struct hexdump *hex)
{
const char *p, *savep;
struct hexdump_fs *tfs;
@@ -106,7 +106,7 @@ void add_fmt(const char *fmt)
tfs = xcalloc(1, sizeof(struct hexdump_fs));
INIT_LIST_HEAD(&tfs->fslist);
INIT_LIST_HEAD(&tfs->fulist);
- list_add_tail(&tfs->fslist, &fshead);
+ list_add_tail(&tfs->fslist, &hex->fshead);
/* Take the format string and break it up into format units. */
p = fmt;
@@ -217,7 +217,7 @@ int block_size(struct hexdump_fs *fs)
return(cursize);
}
-void rewrite_rules(struct hexdump_fs *fs)
+void rewrite_rules(struct hexdump_fs *fs, struct hexdump *hex)
{
enum { NOTOKAY, USEBCNT, USEPREC } sokay;
struct hexdump_pr *pr;
@@ -431,9 +431,9 @@ isint: cs[2] = '\0';
fu = list_entry(p, struct hexdump_fu, fulist);
if (list_entry_is_last(&fu->fulist, &fs->fulist) &&
- fs->bcnt < blocksize &&
+ fs->bcnt < hex->blocksize &&
!(fu->flags&F_SETREP) && fu->bcnt)
- fu->reps += (blocksize - fs->bcnt) / fu->bcnt;
+ fu->reps += (hex->blocksize - fs->bcnt) / fu->bcnt;
if (fu->reps > 1) {
if (!list_empty(&fu->prlist)) {
pr = list_last_entry(&fu->prlist,