projects
/
pspp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a4c0401
)
dump: Make raw dumps include file offsets.
author
Ben Pfaff
<blp@cs.stanford.edu>
Mon, 27 Jul 2015 05:02:12 +0000
(22:02 -0700)
committer
Ben Pfaff
<blp@cs.stanford.edu>
Mon, 27 Jul 2015 05:07:11 +0000
(22:07 -0700)
dump.c
patch
|
blob
|
history
diff --git
a/dump.c
b/dump.c
index 8ec7e56ae1c8335ddf92ae995dba1748e4c46baf..a600e41ae772ec15b72cc18727fa5b2b9efce15f 100644
(file)
--- a/
dump.c
+++ b/
dump.c
@@
-107,7
+107,13
@@
match_byte_assert(uint8_t b, const char *where)
#define match_byte_assert(b) match_byte_assert(b, WHERE)
static void
#define match_byte_assert(b) match_byte_assert(b, WHERE)
static void
-dump_raw(FILE *stream, int start, int end, const char *separator)
+newline(FILE *stream, int pos)
+{
+ fprintf(stream, "\n%08x: ", pos);
+}
+
+static void
+dump_raw(FILE *stream, int start, int end)
{
for (size_t i = start; i < end; )
{
{
for (size_t i = start; i < end; )
{
@@
-119,7
+125,8
@@
dump_raw(FILE *stream, int start, int end, const char *separator)
&& i + 4 + data[i] + data[i + 1] * 256 <= end
&& all_ascii(&data[i + 4], data[i] + data[i + 1] * 256))
{
&& i + 4 + data[i] + data[i + 1] * 256 <= end
&& all_ascii(&data[i + 4], data[i] + data[i + 1] * 256))
{
- fprintf(stream, "%s\"", separator);
+ newline(stream, i);
+ fprintf(stream, "\"");
fwrite(&data[i + 4], 1, data[i] + data[i + 1] * 256, stream);
fputs("\" ", stream);
fwrite(&data[i + 4], 1, data[i] + data[i + 1] * 256, stream);
fputs("\" ", stream);
@@
-133,8
+140,9
@@
dump_raw(FILE *stream, int start, int end, const char *separator)
double d;
memcpy (&d, &data[i + 4], 8);
double d;
memcpy (&d, &data[i + 4], 8);
- fprintf (stream, "F40.%d(%.*f)
%s", data[i], data[i], d, separator
);
+ fprintf (stream, "F40.%d(%.*f)
", data[i], data[i], d
);
i += 12;
i += 12;
+ newline (stream, i);
}
else if (i + 12 <= end
&& data[i + 1] == 40
}
else if (i + 12 <= end
&& data[i + 1] == 40
@@
-144,8
+152,9
@@
dump_raw(FILE *stream, int start, int end, const char *separator)
double d;
memcpy (&d, &data[i + 4], 8);
double d;
memcpy (&d, &data[i + 4], 8);
- fprintf (stream, "PCT40.%d(%.*f)
%s", data[i], data[i], d, separator
);
+ fprintf (stream, "PCT40.%d(%.*f)
", data[i], data[i], d
);
i += 12;
i += 12;
+ newline(stream, i);
}
else if (i + 4 <= end
&& (data[i] && data[i] != 88 && data[i] != 0x41)
}
else if (i + 4 <= end
&& (data[i] && data[i] != 88 && data[i] != 0x41)
@@
-871,7
+880,7
@@
main(int argc, char *argv[])
else
start = 0x27;
else
start = 0x27;
- dump_raw(stdout, start, n
, "\n"
);
+ dump_raw(stdout, start, n);
return 0;
}
return 0;
}