#endif
#ifndef lint
-static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-ascii.c,v 1.9 2002-08-01 08:53:00 risso Exp $";
+static const char rcsid[] _U_ =
+ "@(#) $Header: /tcpdump/master/tcpdump/print-ascii.c,v 1.16 2004-07-21 22:00:10 guy Exp $";
#endif
#include <tcpdump-stdinc.h>
#include <stdio.h>
(HEXDUMP_HEXSTUFF_PER_SHORT * HEXDUMP_SHORTS_PER_LINE)
void
-ascii_print_with_offset(register const u_char *cp, register u_int length,
+ascii_print_with_offset(register const char *ident, register const u_char *cp, register u_int length,
register u_int oset)
{
register u_int i;
register int nshorts;
char hexstuff[HEXDUMP_SHORTS_PER_LINE*HEXDUMP_HEXSTUFF_PER_SHORT+1], *hsp;
char asciistuff[ASCII_LINELENGTH+1], *asp;
- int maxlength = (Aflag ? ASCII_LINELENGTH : HEXDUMP_SHORTS_PER_LINE);
+ u_int maxlength = (Aflag ? ASCII_LINELENGTH : HEXDUMP_SHORTS_PER_LINE);
nshorts = length / sizeof(u_short);
i = 0;
if (Aflag) {
(void)printf("%s", asciistuff);
} else {
- (void)printf("\n0x%04x\t%-*s\t%s",
- oset, HEXDUMP_HEXSTUFF_PER_LINE,
+ (void)printf("%s0x%04x: %-*s %s",
+ ident, oset, HEXDUMP_HEXSTUFF_PER_LINE,
hexstuff, asciistuff);
}
i = 0; hsp = hexstuff; asp = asciistuff;
if (i > 0) {
*hsp = *asp = '\0';
if (Aflag) {
- (void)printf("\n%s", asciistuff);
+ (void)printf("%s%s", ident, asciistuff);
} else {
- (void)printf("\n0x%04x\t%-*s\t%s",
- oset, HEXDUMP_HEXSTUFF_PER_LINE,
+ (void)printf("%s0x%04x: %-*s %s",
+ ident, oset, HEXDUMP_HEXSTUFF_PER_LINE,
hexstuff, asciistuff);
}
}
}
void
-ascii_print(register const u_char *cp, register u_int length)
+ascii_print(register const char *ident, register const u_char *cp, register u_int length)
{
- ascii_print_with_offset(cp, length, 0);
+ ascii_print_with_offset(ident, cp, length, 0);
}
/*
* telnet_print() wants this. It is essentially default_print_unaligned()
*/
void
-hex_print_with_offset(register const u_char *cp, register u_int length,
+hex_print_with_offset(register const char *ident, register const u_char *cp, register u_int length,
register u_int oset)
{
register u_int i, s;
i = 0;
while (--nshorts >= 0) {
if ((i++ % 8) == 0) {
- (void)printf("\n0x%04x\t", oset);
+ (void)printf("%s0x%04x: ", ident, oset);
oset += HEXDUMP_BYTES_PER_LINE;
}
s = *cp++;
}
if (length & 1) {
if ((i % 8) == 0)
- (void)printf("\n0x%04x\t", oset);
+ (void)printf("%s0x%04x: ", ident, oset);
(void)printf(" %02x", *cp);
}
}
* just for completeness
*/
void
-hex_print(register const u_char *cp, register u_int length)
+hex_print(register const char *ident, register const u_char *cp, register u_int length)
{
- hex_print_with_offset(cp, length, 0);
+ hex_print_with_offset(ident, cp, length, 0);
}
#ifdef MAIN
exit(0);
}
#endif /* MAIN */
+
+