summaryrefslogtreecommitdiff
path: root/src/z-form.hpp
blob: 11d61ae3b460f848f68eca72836966cef8a63650 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include "h-basic.hpp"

#include <cstdarg>

/*
 * This file provides functions very similar to "sprintf()", but which
 * not only parse some additional "format sequences", but also enforce
 * bounds checking, and allow repeated "appends" to the same buffer.
 *
 * See "z-form.c" for more detailed information about the routines,
 * including a list of the legal "format sequences".
 *
 * This file makes use "z-util.c"
 */


/**** Available Functions ****/

/* Format arguments into given bounded-length buffer */
unsigned int vstrnfmt(char *buf, unsigned int max, const char *fmt, va_list vp);

/* Simple interface to "vstrnfmt()" */
unsigned int strnfmt(char *buf, unsigned int max, const char *fmt, ...);

/* Simple interface to "vformat()" */
char *format(const char *fmt, ...);

/* Vararg interface to "quit()", using "format()" */
void quit_fmt(const char *fmt, ...);