void printHex()

in src/rewrite_query.c [259:287]


void printHex(void *buffer, const unsigned int n) {
	char* data = (char*) buffer;
	unsigned int i = 0;
	char line[17] = { };
	printf("%.8lX | ", (uintptr_t) data);
	while (i < n) {
		line[i % 16] = *(data + i);
		if ((line[i % 16] < 32) || (line[i % 16] > 126)) {
			line[i % 16] = '.';
		}
		printf("%.2X", (unsigned char) *(data + i));
		i++;
		if (i % 4 == 0) {
			if (i % 16 == 0) {
				if (i < n - 1)
					printf(" | %s\n%.8lX | ", (char *) &line,
							(uintptr_t) data + i);
			} else {
				printf(" ");
			}
		}
	}
	while (i % 16 > 0) {
		(i % 4 == 0) ? printf("   ") : printf("  ");
		line[i % 16] = ' ';
		i++;
	}
	printf(" | %s\n", (char *) &line);
}