view uptools/libcoding/hexdump.c @ 470:1d5bd9a06781

rvinterf tree Makefiles: split CPPFLAGS from CFLAGS This change is in preparation for allowing CFLAGS to be overridden by users and package builders.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 12 Feb 2019 00:00:18 +0000
parents ead4ee22ef62
children
line wrap: on
line source

/*
 * This library module implements a simple hex dump facility.
 */

#include <sys/types.h>
#include <stdio.h>

msg_bits_hexdump(dumpbuf, dumplen)
	u_char *dumpbuf;
	unsigned dumplen;
{
	u_char *buf = dumpbuf;
	unsigned lineoff, linelen, i, c;

	for (lineoff = 0; lineoff < dumplen; ) {
		linelen = dumplen - lineoff;
		if (linelen > 16)
			linelen = 16;
		printf("%02X:  ", lineoff);
		for (i = 0; i < 16; i++) {
			if (i < linelen)
				printf("%02X ", buf[i]);
			else
				fputs("   ", stdout);
			if (i == 7 || i == 15)
				putchar(' ');
		}
		for (i = 0; i < linelen; i++) {
			c = buf[i];
			if (c < ' ' || c > '~')
				c = '.';
			putchar(c);
		}
		putchar('\n');
		buf += linelen;
		lineoff += linelen;
	}
}