|
|
|
@ -268,19 +268,20 @@ int hextoint(char c)
|
|
|
|
|
|
|
|
|
|
char *convert_query_hexchar(char *txt)
|
|
|
|
|
{
|
|
|
|
|
int d1, d2;
|
|
|
|
|
if (strlen(txt) < 3) {
|
|
|
|
|
int d1, d2, n;
|
|
|
|
|
n = strlen(txt);
|
|
|
|
|
if (n < 3) {
|
|
|
|
|
*txt = '\0';
|
|
|
|
|
return txt-1;
|
|
|
|
|
}
|
|
|
|
|
d1 = hextoint(*(txt+1));
|
|
|
|
|
d2 = hextoint(*(txt+2));
|
|
|
|
|
if (d1<0 || d2<0) {
|
|
|
|
|
strcpy(txt, txt+3);
|
|
|
|
|
memmove(txt, txt+3, n-3);
|
|
|
|
|
return txt-1;
|
|
|
|
|
} else {
|
|
|
|
|
*txt = d1 * 16 + d2;
|
|
|
|
|
strcpy(txt+1, txt+3);
|
|
|
|
|
memmove(txt+1, txt+3, n-2);
|
|
|
|
|
return txt;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|