* Wrapper for fprintf and returns the total number of columns required * for the printed string, assuming that the string is utf8. */
| 457 | * for the printed string, assuming that the string is utf8. |
| 458 | */ |
| 459 | int utf8_fprintf(FILE *stream, const char *format, ...) |
| 460 | { |
| 461 | struct strbuf buf = STRBUF_INIT; |
| 462 | va_list arg; |
| 463 | int columns; |
| 464 | |
| 465 | va_start(arg, format); |
| 466 | strbuf_vaddf(&buf, format, arg); |
| 467 | va_end(arg); |
| 468 | |
| 469 | columns = fputs(buf.buf, stream); |
| 470 | if (0 <= columns) /* keep the error from the I/O */ |
| 471 | columns = utf8_strwidth(buf.buf); |
| 472 | strbuf_release(&buf); |
| 473 | return columns; |
| 474 | } |
| 475 | |
| 476 | /* |
| 477 | * Given a buffer and its encoding, return it re-encoded |
no test coverage detected