*q = from_hex(*p++) * 16; if (*p)
*q = (char) (from_hex(*p++) * 16); if (*p) {
PUBLIC char * HTUnEscape ARGS1(	char *, 	str){    char * p = str;    char * q = str;    if (!(p && *p))	return str;    while (*p != '\0') {	if (*p == HEX_ESCAPE &&	    /*	     *	Tests shouldn't be needed, but better safe than sorry.	     */	    p[1] && p[2] &&	    isxdigit((unsigned char)p[1]) &&	    isxdigit((unsigned char)p[2])) {	    p++;	    if (*p)	        *q = from_hex(*p++) * 16;	    if (*p)		/*		** Careful!  FROMASCII() may evaluate its arg more than once!		*/  /* S/390 -- gil -- 0221 */		*q =           *q + from_hex(*p++) ;		*q = FROMASCII(*q                 );	    q++;	} else {	    *q++ = *p++;	}    }    *q++ = '\0';    return str;} /* HTUnEscape */