mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 07:11:54 +00:00
- Fixed: strbin ate the character following a \x sequence and placed one-digit sequences into the high nibble of the output character.
SVN r3625 (trunk)
This commit is contained in:
parent
432aa7e6bb
commit
88fcd743b4
1 changed files with 26 additions and 22 deletions
|
@ -600,18 +600,20 @@ int strbin (char *str)
|
||||||
case 'x':
|
case 'x':
|
||||||
case 'X':
|
case 'X':
|
||||||
c = 0;
|
c = 0;
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
p++;
|
p++;
|
||||||
for (i = 0; i < 2; i++) {
|
|
||||||
c <<= 4;
|
|
||||||
if (*p >= '0' && *p <= '9')
|
if (*p >= '0' && *p <= '9')
|
||||||
c += *p-'0';
|
c = (c << 4) + *p-'0';
|
||||||
else if (*p >= 'a' && *p <= 'f')
|
else if (*p >= 'a' && *p <= 'f')
|
||||||
c += 10 + *p-'a';
|
c = (c << 4) + 10 + *p-'a';
|
||||||
else if (*p >= 'A' && *p <= 'F')
|
else if (*p >= 'A' && *p <= 'F')
|
||||||
c += 10 + *p-'A';
|
c = (c << 4) + 10 + *p-'A';
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
p--;
|
||||||
break;
|
break;
|
||||||
p++;
|
}
|
||||||
}
|
}
|
||||||
*str++ = c;
|
*str++ = c;
|
||||||
break;
|
break;
|
||||||
|
@ -698,18 +700,20 @@ FString strbin1 (const char *start)
|
||||||
case 'x':
|
case 'x':
|
||||||
case 'X':
|
case 'X':
|
||||||
c = 0;
|
c = 0;
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
p++;
|
p++;
|
||||||
for (i = 0; i < 2; i++) {
|
|
||||||
c <<= 4;
|
|
||||||
if (*p >= '0' && *p <= '9')
|
if (*p >= '0' && *p <= '9')
|
||||||
c += *p-'0';
|
c = (c << 4) + *p-'0';
|
||||||
else if (*p >= 'a' && *p <= 'f')
|
else if (*p >= 'a' && *p <= 'f')
|
||||||
c += 10 + *p-'a';
|
c = (c << 4) + 10 + *p-'a';
|
||||||
else if (*p >= 'A' && *p <= 'F')
|
else if (*p >= 'A' && *p <= 'F')
|
||||||
c += 10 + *p-'A';
|
c = (c << 4) + 10 + *p-'A';
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
p--;
|
||||||
break;
|
break;
|
||||||
p++;
|
}
|
||||||
}
|
}
|
||||||
result << c;
|
result << c;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue