Added silc_snprintf, silc_vsnprintf, silc_asprintf, silc_vasprintf
[crypto.git] / lib / silcutil / silcsnprintf.h
diff --git a/lib/silcutil/silcsnprintf.h b/lib/silcutil/silcsnprintf.h
new file mode 100644 (file)
index 0000000..d15b1c9
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+
+  silcsnprintf.h
+
+  Author: Pekka Riikonen <priikone@silcnet.org>
+
+  Copyright (C) 2007 Pekka Riikonen
+
+  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
+  the Free Software Foundation; version 2 of the License.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+*/
+
+#ifndef SILCSNPRINTF_H
+#define SILCSNPRINTF_H
+
+/****f* silcutil/SilcSnprintf/silc_snprintf
+ *
+ * SYNOPSIS
+ *
+ *    int silc_snprintf(char *str, size_t count, const char *fmt, ...);
+ *
+ * DESCRIPTION
+ *
+ *    Outputs string into `str' of maximum of size `count' including the
+ *    trailing '\0' according to the `fmt'.  The `fmt' is equivalent to
+ *    snprintf(3) and printf(3) formatting.  Returns the number of character
+ *    in `str' or negative value on error.
+ *
+ ***/
+int silc_snprintf(char *str, size_t count, const char *fmt, ...);
+
+/****f* silcutil/SilcSnprintf/silc_vsnprintf
+ *
+ * SYNOPSIS
+ *
+ *    int silc_vsnprintf(char *str, size_t count, const char *fmt,
+ *                       va_list args)
+ *
+ * DESCRIPTION
+ *
+ *    Same as silc_snprintf but takes the argument for the formatting from
+ *    the `args' variable argument list.
+ *
+ ***/
+int silc_vsnprintf(char *str, size_t count, const char *fmt, va_list args);
+
+/****f* silcutil/SilcSnprintf/silc_asprintf
+ *
+ * SYNOPSIS
+ *
+ *    int silc_asprintf(char **ptr, const char *format, ...)
+ *
+ * DESCRIPTION
+ *
+ *    Same as silc_snprintf but allocates a string large enough to hold the
+ *    output including the trailing '\0'.  The caller must free the `ptr'.
+ *
+ ***/
+int silc_asprintf(char **ptr, const char *format, ...);
+
+/****f* silcutil/SilcSnprintf/silc_vasprintf
+ *
+ * SYNOPSIS
+ *
+ *    int silc_vasprintf(char **ptr, const char *format, va_list ap)
+ *
+ * DESCRIPTION
+ *
+ *    Same as silc_asprintf but takes the argument from the `ap' variable
+ *    argument list.
+ *
+ ***/
+int silc_vasprintf(char **ptr, const char *format, va_list ap);
+
+#endif /* SILCSNPRINTF_H */