1 : /* Copyright (c) 2007 Paul Rosenfeld
2 : James Antill -- See LICENSE file for terms. */
3 : #ifndef USTR_INS_H
4 : #define USTR_INS_H 1
5 :
6 : #ifndef USTR_MAIN_H
7 : # error " You should include ustr-main.h before this file, or just ustr.h"
8 : #endif
9 :
10 : #define USTR_INS_OBJ(x, y, z) ustr_ins_buf(x, y, z, sizeof(z))
11 : #define USTR_INS_OSTR(x, y, z) ustr_ins_buf(x, y, z, sizeof(z) - 1)
12 :
13 : #define USTRP_INS_OBJ(p, x, y, z) ustrp_ins_buf(p, x, y, z, sizeof(z))
14 : #define USTRP_INS_OSTR(p, x, y, z) ustrp_ins_buf(p, x, y, z, sizeof(z) - 1)
15 :
16 :
17 : USTR_CONF_E_PROTO int ustr_ins_undef(struct Ustr **, size_t, size_t)
18 : USTR__COMPILE_ATTR_NONNULL_A();
19 : USTR_CONF_E_PROTO int ustr_ins_buf(struct Ustr **, size_t, const void *, size_t)
20 : USTR__COMPILE_ATTR_NONNULL_A();
21 : USTR_CONF_E_PROTO int ustr_ins(struct Ustr **, size_t, const struct Ustr *)
22 : USTR__COMPILE_ATTR_NONNULL_A();
23 : USTR_CONF_EI_PROTO int ustr_ins_cstr(struct Ustr **, size_t, const char *)
24 : USTR__COMPILE_ATTR_NONNULL_A();
25 : USTR_CONF_E_PROTO
26 : int ustr_ins_subustr(struct Ustr **, size_t, const struct Ustr *, size_t,size_t)
27 : USTR__COMPILE_ATTR_NONNULL_A();
28 : USTR_CONF_E_PROTO int ustr_ins_rep_chr(struct Ustr **, size_t, char, size_t)
29 : USTR__COMPILE_ATTR_NONNULL_A();
30 :
31 : USTR_CONF_E_PROTO
32 : int ustrp_ins_undef(struct Ustr_pool *, struct Ustrp **, size_t, size_t)
33 : USTR__COMPILE_ATTR_NONNULL_L((2));
34 : USTR_CONF_E_PROTO int ustrp_ins_buf(struct Ustr_pool *, struct Ustrp **, size_t,
35 : const void *, size_t)
36 : USTR__COMPILE_ATTR_NONNULL_L((2, 4));
37 : USTR_CONF_E_PROTO
38 : int ustrp_ins(struct Ustr_pool *, struct Ustrp **, size_t, const struct Ustrp *)
39 : USTR__COMPILE_ATTR_NONNULL_L((2, 4));
40 : USTR_CONF_EI_PROTO
41 : int ustrp_ins_cstr(struct Ustr_pool *, struct Ustrp **, size_t, const char *)
42 : USTR__COMPILE_ATTR_NONNULL_L((2, 4));
43 : USTR_CONF_E_PROTO
44 : int ustrp_ins_subustrp(struct Ustr_pool *, struct Ustrp **, size_t,
45 : const struct Ustrp *, size_t, size_t)
46 : USTR__COMPILE_ATTR_NONNULL_L((2, 4));
47 : USTR_CONF_E_PROTO
48 : int ustrp_ins_rep_chr(struct Ustr_pool *, struct Ustrp **, size_t, char, size_t)
49 : USTR__COMPILE_ATTR_NONNULL_L((2));
50 :
51 : #ifdef USTR_FMT_H
52 : # if USTR_CONF_HAVE_VA_COPY
53 : USTR_CONF_E_PROTO
54 : int ustr_ins_vfmt_lim(struct Ustr **, size_t, size_t, const char *, va_list)
55 : USTR__COMPILE_ATTR_NONNULL_L((1, 4)) USTR__COMPILE_ATTR_FMT(4, 0);
56 : USTR_CONF_E_PROTO
57 : int ustr_ins_vfmt(struct Ustr **, size_t, const char *, va_list)
58 : USTR__COMPILE_ATTR_NONNULL_L((1, 3)) USTR__COMPILE_ATTR_FMT(3, 0);
59 :
60 : USTR_CONF_E_PROTO
61 : int ustrp_ins_vfmt_lim(struct Ustr_pool *, struct Ustrp **, size_t, size_t,
62 : const char *, va_list)
63 : USTR__COMPILE_ATTR_NONNULL_L((2, 5)) USTR__COMPILE_ATTR_FMT(5, 0);
64 : USTR_CONF_E_PROTO int ustrp_ins_vfmt(struct Ustr_pool *, struct Ustrp **,size_t,
65 : const char *, va_list)
66 : USTR__COMPILE_ATTR_NONNULL_L((2, 4)) USTR__COMPILE_ATTR_FMT(4, 0);
67 : USTR_CONF_E_PROTO
68 : int ustr_ins_fmt_lim(struct Ustr **, size_t, size_t, const char *, ...)
69 : USTR__COMPILE_ATTR_NONNULL_L((1, 4)) USTR__COMPILE_ATTR_FMT(4, 5);
70 : USTR_CONF_E_PROTO int ustr_ins_fmt(struct Ustr **, size_t, const char *, ...)
71 : USTR__COMPILE_ATTR_NONNULL_L((1, 3)) USTR__COMPILE_ATTR_FMT(3, 4);
72 :
73 : USTR_CONF_E_PROTO
74 : int ustrp_ins_fmt_lim(struct Ustr_pool *, struct Ustrp **, size_t, size_t,
75 : const char *, ...)
76 : USTR__COMPILE_ATTR_NONNULL_L((2, 5)) USTR__COMPILE_ATTR_FMT(5, 6);
77 : USTR_CONF_E_PROTO
78 : int ustrp_ins_fmt(struct Ustr_pool *, struct Ustrp **,size_t, const char *, ...)
79 : USTR__COMPILE_ATTR_NONNULL_L((2, 4)) USTR__COMPILE_ATTR_FMT(4, 5);
80 : # endif
81 : #endif
82 :
83 : #if USTR_CONF_INCLUDE_INTERNAL_HEADERS
84 : # include "ustr-ins-internal.h"
85 : #endif
86 :
87 : #if USTR_CONF_INCLUDE_CODEONLY_HEADERS
88 : # include "ustr-ins-code.h"
89 : #endif
90 :
91 : #if USTR_CONF_COMPILE_USE_INLINE
92 : USTR_CONF_II_PROTO int ustr_ins_cstr(struct Ustr **s1, size_t p, const char *c)
93 12 : { return (ustr_ins_buf(s1, p, c, strlen(c))); }
94 : USTR_CONF_II_PROTO int
95 : ustrp_ins_cstr(struct Ustr_pool *x, struct Ustrp **s1, size_t p, const char *c)
96 4 : { return (ustrp_ins_buf(x, s1, p, c, strlen(c))); }
97 : #endif
98 :
99 :
100 : #endif
|