FreeCalypso > hg > sms-coding-utils
annotate libcoding/hexdump.c @ 27:7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
that are needed for sms-pdu-decode & pcm-sms-decode
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 13 Jun 2024 02:29:29 +0000 |
parents | |
children |
rev | line source |
---|---|
27
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This library module implements a simple hex dump facility. |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <sys/types.h> |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdio.h> |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 msg_bits_hexdump(dumpbuf, dumplen) |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 u_char *dumpbuf; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 unsigned dumplen; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 { |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 u_char *buf = dumpbuf; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 unsigned lineoff, linelen, i, c; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 for (lineoff = 0; lineoff < dumplen; ) { |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 linelen = dumplen - lineoff; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 if (linelen > 16) |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 linelen = 16; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 printf("%02X: ", lineoff); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 for (i = 0; i < 16; i++) { |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 if (i < linelen) |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 printf("%02X ", buf[i]); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 else |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 fputs(" ", stdout); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 if (i == 7 || i == 15) |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 putchar(' '); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 } |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 for (i = 0; i < linelen; i++) { |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 c = buf[i]; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 if (c < ' ' || c > '~') |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 c = '.'; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 putchar(c); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 } |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 putchar('\n'); |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 buf += linelen; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 lineoff += linelen; |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 } |
7418ca2e9949
libcoding: add functions from freecalypso-tools/uptools/libcoding
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 } |