const char * encoding_iconv(iconv_t iconv_cd, const char *string) { char *instr = strdup(string); const char *ret = encoding_convert_string(iconv_cd, instr); free(instr); return ret == instr ? string : ret; }
const char * encoding_iconv(iconv_t iconv_cd, const char *string, size_t length) { char *instr = strndup(string, length); struct buffer buf = { instr, length }; const char *ret = buf.data && encoding_convert_string(iconv_cd, &buf) ? buf.data : string; free(instr); return ret == instr ? string : ret; }
char * encoding_convert(struct encoding *encoding, char *line) { return encoding_convert_string(encoding->cd, line); }
bool encoding_convert(struct encoding *encoding, struct buffer *buf) { return encoding_convert_string(encoding->cd, buf); }