Skip to content

Instantly share code, notes, and snippets.

@Tatsh
Created May 10, 2014 03:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tatsh/54d5096e8400a6fe6d19 to your computer and use it in GitHub Desktop.
Save Tatsh/54d5096e8400a6fe6d19 to your computer and use it in GitHub Desktop.
dumps bytes to something readable
#include "show_dump.h"
void show_dump(unsigned char *data, unsigned int len, FILE *stream) {
const static char hex[] = "0123456789abcdef";
static unsigned char buff[67]; /* HEX CHAR\n */
unsigned char chr,
*bytes,
*p,
*limit,
*glimit = data + len;
memset(buff + 2, ' ', 48);
while(data < glimit) {
limit = data + 16;
if(limit > glimit) {
limit = glimit;
memset(buff, ' ', 48);
}
p = buff;
bytes = p + 50;
while(data < limit) {
chr = *data;
*p++ = hex[chr >> 4];
*p++ = hex[chr & 15];
p++;
*bytes++ = ((chr < ' ') || (chr >= 0x7f)) ? '.' : chr;
data++;
}
*bytes++ = '\n';
fwrite(buff, bytes - buff, 1, stream);
}
}
// Copyright 2005,2006,2007,2008,2009,2010 Luigi Auriemma
//
// Patched for -Werror and GNU C99 standard. Copyright 2014 Andrew Udvare
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// http://www.gnu.org/licenses/gpl-2.0.txt
#ifndef SHOW_DUMP_H
#define SHOW_DUMP_H
#include <stdio.h>
#include <string.h>
void show_dump(unsigned char *data, unsigned int len, FILE *stream);
#endif // SHOW_DUMP_H
// Copyright 2005,2006,2007,2008,2009,2010 Luigi Auriemma
//
// Patched for -Werror and GNU C99 standard. Copyright 2014 Andrew Udvare
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// http://www.gnu.org/licenses/gpl-2.0.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment