/* * vim:ts=4:sw=4:expandtab */ #ifndef HEX_CONVERSION_H #define HEX_CONVERSION_H #include #include #include #ifdef DEBUGBUILD #include "output.h" #endif #define ishex_macro(c) ((c>='0' && c <= '9') || (c>='A' && c <= 'F') || (c>='a' && c <= 'f')) int convert_line(char *s); int ishex(char c); char *convert_to_binary(char *hex, char *out); char *convert_from_binary(char *bin, size_t l, char *out); /* short inline functions are fine in header */ inline int convert_line(char *s) { size_t i = 0, l = 0; if (s == NULL) return -1; l=strlen(s); for (i=0; i='0' && c <= '9') || (c>='A' && c <= 'F') || (c>='a' && c <= 'f')) { return 1; } return 0; }; inline char *convert_to_binary(char *hex, char *out) { char tmp[3] = {0,0,0}; size_t length, i; if (hex == NULL) return NULL; length=strlen(hex); if ( (length==0) || (length%2 == 1)) return NULL; for (i=0; i