X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..refs/heads/master:/lib/fprintf.c
diff --git a/lib/fprintf.c b/lib/fprintf.c
index 812a931..c88dcdd 100644
--- a/lib/fprintf.c
+++ b/lib/fprintf.c
@@ -1,6 +1,6 @@
/*
* This file is part of DisOrder
- * Copyright (C) 2004, 2007, 2008 Richard Kettlewell
+ * Copyright (C) 2004, 2007-2009 Richard Kettlewell
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -15,6 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
+/** @file lib/fprintf.c
+ * @brief UTF-8 workalike for fprintf() and vfprintf()
+ */
#include "common.h"
@@ -22,12 +25,29 @@
#include
#include "printf.h"
+#include "log.h"
#include "sink.h"
+#include "mem.h"
+/** @brief vfprintf() workalike that always accepts UTF-8
+ * @param fp Stream to write to
+ * @param fmt Format string
+ * @param ap Format arguments
+ * @return -1 on error or bytes written on success
+ */
int byte_vfprintf(FILE *fp, const char *fmt, va_list ap) {
- return byte_vsinkprintf(sink_stdio(0, fp), fmt, ap);
+ struct sink *s = sink_stdio(0, fp);
+ int rc = byte_vsinkprintf(s, fmt, ap);
+ xfree(s);
+ return rc;
}
+/** @brief fprintf() workalike that always accepts UTF-8
+ * @param fp Stream to write to
+ * @param fmt Format string
+ * @param ... Format arguments
+ * @return -1 on error or bytes written on success
+ */
int byte_fprintf(FILE *fp, const char *fmt, ...) {
int n;
va_list ap;