--- psiconv/trunk/lib/psiconv/misc.c 2004/02/21 13:24:04 216 +++ psiconv/trunk/lib/psiconv/misc.c 2004/02/22 22:24:39 217 @@ -33,29 +33,19 @@ char *psiconv_make_printable(const psiconv_config config, const psiconv_string_t input) { - int i,len; - psiconv_u8 *intermed; + int i; char *output; - int res; - if ((res = psiconv_unicode_to_chars(config,input,&intermed))) - return NULL; - - len = 0; - while (intermed[len]) - len++; - - if (!(output = malloc(sizeof(*output) * (len + 1)))) { - free(intermed); + if (!(output = malloc(sizeof(*output) * + (psiconv_unicode_strlen(input) + 1)))) { return NULL; } - for (i = 0; i < len; i ++) - if (intermed[i] < 0x20 || intermed[i] >= 0x7f) + for (i = 0; i < psiconv_unicode_strlen(input); i ++) + if (input[i] < 0x20 || input[i] >= 0x7f) output[i] = '.'; else - output[i] = intermed[i]; - output[i] = 0; - free(intermed); + output[i] = input[i]; + input[i] = 0; return output; }