Skip to content

Commit

Permalink
Merge pull request #325 from monaka/pr-refactor-hex_to_str
Browse files Browse the repository at this point in the history
Refactor hex_to_str().
  • Loading branch information
matz committed Jun 26, 2012
2 parents 8f5017e + 568af55 commit 42e1f0c
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions src/load.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,13 +608,11 @@ static char*
hex_to_str(char *hex, char *str, uint16_t *str_len)
{
char *src, *dst;
uint16_t hex_len = strlen(hex);
int escape = 0;

*str_len = 0;

for (src = hex, dst = str; hex_len > 0; (*str_len)++, hex_len--) {
if (*src == '\\' && hex_len > 1) {
src++; hex_len--;
for (src = hex, dst = str; *src != '\0'; src++) {
if (escape) {
switch(*src) {
case 'a': *dst++ = '\a'/* BEL */; break;
case 'b': *dst++ = '\b'/* BS */; break;
Expand All @@ -629,12 +627,18 @@ hex_to_str(char *hex, char *str, uint16_t *str_len)
case '\\': *dst++ = *src; break;
default:break;
}
src++;
escape = 0;
} else {
*dst++ = *src++;
if (*src == '\\') {
escape = 1;
} else {
escape = 0;
*dst++ = *src;
}
}
if (!escape) {
(*str_len)++;
}
}

return str;
}

0 comments on commit 42e1f0c

Please sign in to comment.