chiark / gitweb /
disorder.h: more consistent approach to function attributes
[disorder] / lib / fprintf.c
index 812a93131894498a16eb80e37ba375b18a375e5a..c88dcdd6ce3e8751d5dbb56fd18e907b83a155f9 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
  */
+/** @file lib/fprintf.c
+ * @brief UTF-8 workalike for fprintf() and vfprintf()
+ */
 
 #include "common.h"
 
 #include <stddef.h>
 
 #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;