#include <stdlib.h>
#include <stdio.h>
#include <time.h>
-#include "data.h"
#ifdef _WIN32
#include <windows.h>
char *tmp = (char *)buf;
size_t i;
+ memset(tmp, 0x00, hex_max_len);
int maxLen = ( hex_len > hex_max_len) ? hex_max_len : hex_len;
return buf;
}
+char * printBitsPar(const uint8_t *b, size_t len) {
+ static char buf1[512] = {0};
+ static char buf2[512] = {0};
+ static char *buf;
+ if (buf != buf1)
+ buf = buf1;
+ else
+ buf = buf2;
+ memset(buf, 0x00, 512);
+
+ for (int i = 0; i < len; i++) {
+ buf[i] = ((b[i / 8] << (i % 8)) & 0x80) ? '1':'0';
+ }
+ return buf;
+}
+
+
// -------------------------------------------------------------------------
// string parameters lib
// -------------------------------------------------------------------------
return 1;
for(i = 0; i < hexcnt; i += 2) {
- if (!(isxdigit(line[bg + i]) && isxdigit(line[bg + i + 1])) ) return 1;
+ if (!(isxdigit((unsigned char)line[bg + i]) && isxdigit((unsigned char)line[bg + i + 1])) ) return 1;
sscanf((char[]){line[bg + i], line[bg + i + 1], 0}, "%X", &temp);
data[i / 2] = temp & 0xff;
return 1;
for(i = 0; i < *hexcnt; i += 2) {
- if (!(isxdigit(line[bg + i]) && isxdigit(line[bg + i + 1])) ) return 1;
+ if (!(isxdigit((unsigned char)line[bg + i]) && isxdigit((unsigned char)line[bg + i + 1])) ) return 1;
sscanf((char[]){line[bg + i], line[bg + i + 1], 0}, "%X", &temp);
data[i / 2] = temp & 0xff;
continue;
}
- if (isxdigit(line[indx])) {
+ if (isxdigit((unsigned char)line[indx])) {
buf[strlen(buf) + 1] = 0x00;
buf[strlen(buf)] = line[indx];
} else {
else if (x >= 'A' && x <= 'F')
x -= 'A' - 10;
else {
- printf("Discovered unknown character %c %d at idx %d of %s\n", x, x, source - start, start);
+ printf("Discovered unknown character %c %d at idx %tu of %s\n", x, x, source - start, start);
return 0;
}
// output