make clean_ascii a util function

This commit is contained in:
James Chambers 2017-03-03 18:04:58 -05:00
parent 4bbf5ad17d
commit d172c17ca4
3 changed files with 14 additions and 7 deletions

View file

@ -1231,7 +1231,7 @@ int CmdHF14AMfUDump(const char *Cmd){
bool manualPages = false; bool manualPages = false;
uint8_t startPage = 0; uint8_t startPage = 0;
char tempStr[50]; char tempStr[50];
char cleanASCII[4]; unsigned char cleanASCII[4];
while(param_getchar(Cmd, cmdp) != 0x00) while(param_getchar(Cmd, cmdp) != 0x00)
{ {
@ -1424,12 +1424,7 @@ int CmdHF14AMfUDump(const char *Cmd){
// convert unprintable characters and line breaks to dots // convert unprintable characters and line breaks to dots
memcpy(cleanASCII, data+i*4, 4); memcpy(cleanASCII, data+i*4, 4);
clean_ascii(cleanASCII, 4);
for (size_t clean_i = 0; clean_i < 4; clean_i++) {
if (!isprint(cleanASCII[clean_i])) {
cleanASCII[clean_i] = '.';
}
}
PrintAndLog("%3d/0x%02X | %s| %d | %.4s", i+startPage, i+startPage, sprint_hex(data + i * 4, 4), tmplockbit, cleanASCII); PrintAndLog("%3d/0x%02X | %s| %d | %.4s", i+startPage, i+startPage, sprint_hex(data + i * 4, 4), tmplockbit, cleanASCII);
} }

View file

@ -8,6 +8,7 @@
// utilities // utilities
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include <ctype.h>
#include "util.h" #include "util.h"
#define MAX_BIN_BREAK_LENGTH (3072+384+1) #define MAX_BIN_BREAK_LENGTH (3072+384+1)
@ -581,3 +582,12 @@ void rol(uint8_t *data, const size_t len){
} }
data[len-1] = first; data[len-1] = first;
} }
// Replace unprintable characters with a dot in char buffer
void clean_ascii(unsigned char *buf, size_t len) {
for (size_t i = 0; i < len; i++) {
if (!isprint(buf[i]))
buf[i] = '.';
}
}

View file

@ -76,3 +76,5 @@ void xor(unsigned char *dst, unsigned char *src, size_t len);
int32_t le24toh(uint8_t data[3]); int32_t le24toh(uint8_t data[3]);
uint32_t le32toh (uint8_t *data); uint32_t le32toh (uint8_t *data);
void rol(uint8_t *data, const size_t len); void rol(uint8_t *data, const size_t len);
void clean_ascii(unsigned char *buf, size_t len);