BIO_snprintf(tmphex, 11, "\\U%04lX", c);
BIO_snprintf(tmphex, sizeof tmphex, "\\U%04lX", c);
static int do_esc_char(unsigned long c, unsigned char flags, char *do_quotes, char_io *io_ch, void *arg){	unsigned char chflgs, chtmp;	char tmphex[11];	if(c > 0xffff) {		BIO_snprintf(tmphex, 11, "\\W%08lX", c);		if(!io_ch(arg, tmphex, 10)) return -1;		return 10;	}	if(c > 0xff) {		BIO_snprintf(tmphex, 11, "\\U%04lX", c);		if(!io_ch(arg, tmphex, 6)) return -1;		return 6;	}	chtmp = (unsigned char)c;	if(chtmp > 0x7f) chflgs = flags & ASN1_STRFLGS_ESC_MSB;	else chflgs = char_type[chtmp] & flags;	if(chflgs & CHARTYPE_BS_ESC) {		/* If we don't escape with quotes, signal we need quotes */		if(chflgs & ASN1_STRFLGS_ESC_QUOTE) {			if(do_quotes) *do_quotes = 1;			if(!io_ch(arg, &chtmp, 1)) return -1;			return 1;		}		if(!io_ch(arg, "\\", 1)) return -1;		if(!io_ch(arg, &chtmp, 1)) return -1;		return 2;	}	if(chflgs & (ASN1_STRFLGS_ESC_CTRL|ASN1_STRFLGS_ESC_MSB)) {		BIO_snprintf(tmphex, 11, "\\%02X", chtmp);		if(!io_ch(arg, tmphex, 3)) return -1;		return 3;	}	if(!io_ch(arg, &chtmp, 1)) return -1;	return 1;}