annotate man/libirccd-subst.3 @ 1078:d0adbcc0768e

irccd: fix plugin-load command
author David Demelier <markand@malikania.fr>
date Thu, 15 Jul 2021 09:33:33 +0200
parents c30f0dc9d614
children f06e9761cc90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1017
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 .\"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 .\" Copyright (c) 2013-2021 David Demelier <markand@malikania.fr>
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 .\"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 .\" Permission to use, copy, modify, and/or distribute this software for any
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 .\" purpose with or without fee is hereby granted, provided that the above
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 .\" copyright notice and this permission notice appear in all copies.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 .\"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 .\"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 .Dd @IRCCD_MAN_DATE@
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 .Dt LIBIRCCD-SUBST 3
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 .Os
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 .\" NAME
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .Sh NAME
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 .Nm libirccd-subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 .Nd create templated string
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 .\" SYNOPSIS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 .Sh SYNOPSIS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 .In irccd/subst.h
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 .Ft ssize_t
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 .Fo irc_subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 .Fa "char *dst"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 .Fa "size_t dstsz"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 .Fa "const char *template"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 .Fa "const struct irc_subst *subst"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 .Fc
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 .\" DESCRIPTION
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 .Sh DESCRIPTION
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 This header provides functions to generate templated strings using a custom
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 format as defined in
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 .Xr irccd-templates 7 .
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 The
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 .Vt "struct irc_subst_keyword"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 and
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 .Vt "struct irc_subst"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 are declared as:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 .Bd -literal
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 struct irc_subst_keyword {
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 const char *key;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 const char *value;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 };
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 .Ed
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 .Bd -literal
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 struct irc_subst {
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 time_t time;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 enum irc_subst_flags flags;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 const struct irc_subst_keyword *keywords;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 size_t keywordsz;
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 };
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 .Ed
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 The fields of
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 .Vt "struct irc_subst_keyword"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 are:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 .Bl -tag -width 10n
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 .It Va key
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 The keyword name.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 .It Va value
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 The keyword value.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 .El
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 The fields of
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 .Vt "struct irc_subst"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 are:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 .Bl -tag -width 10n
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 .It Va time
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 The timestamp if the template contains time formatting and
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 .Dv IRC_SUBST_DATE
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 is present in
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 .Va flags .
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 .It Va flags
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 The allowed formats in the source string as an OR'ed combination, see below.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 .It Va keywords
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 An array of user keywords to replace in the source string.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 .It Va keywordsz
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 The number of elements present in
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 .Va keywords
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 field.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 .El
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 The
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 .Vt "enum irc_subst_flags"
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 is declared as:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 .Bd -literal
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 enum irc_subst_flags {
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 IRC_SUBST_DATE = (1 << 0),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 IRC_SUBST_KEYWORDS = (1 << 1),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 IRC_SUBST_ENV = (1 << 2),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 IRC_SUBST_SHELL = (1 << 3),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 IRC_SUBST_IRC_ATTRS = (1 << 4),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 IRC_SUBST_SHELL_ATTRS = (1 << 5)
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 };
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 .Ed
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 The following enumerators are available:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 .Bl -tag -width IRC_SUBST_SHELL_ATTRS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 .It Dv IRC_SUBST_DATE
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 Allows date formatting. In that case the
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 .Va time
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 field should not be 0.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 .It Dv IRC_SUBST_KEYWORDS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 Allows keywords substitutions, the fields
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 .Va keywords
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 and
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 .Va keywordsz
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 should be set but are still optional.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 .It Dv IRC_SUBST_ENV
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 Allows environment variables substitution.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 .It Dv IRC_SUBST_IRC_ATTRS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 Allows IRC colors and attributes. This is mutually exclusive with
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 .Dv IRC_SUBST_SHELL_ATTRS .
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 .It Dv IRC_SUBST_SHELL_ATTRS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 Allows shell escape sequences for color and attributes. This is mutually
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 exclusive with
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 .Dv IRC_SUBST_IRC_ATTRS .
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 .El
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 .Pp
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 The
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 .Fn irc_subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 functions convert the NUL terminated string
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 .Fa template
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 and store the result into the non-NULL
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 .Fa dst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 buffer of
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 .Fa dstsz
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 max size. The function never writes more than
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 .Fa dstsz
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 bytes including the NUL terminator. The non-NULL
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 .Fa subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 argument controls the substitution parameters and allowed flags.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 .\" RETURN VALUES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 .Sh RETURN VALUES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 The
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 .Fn irc_subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 function return the number of bytes written in
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 .Fa dst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 not including the NUL terminator. If an error occurs, -1 is returned and
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 .Va errno
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 is set to indicate the error.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 .\" ERRORS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 .Sh ERRORS
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 The function
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 .Fn irc_subst
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 may set one of the following error:
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 .Bl -tag -width Er
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 .It Bq Er ENOMEM
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 Not enough space was available in
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 .Fa dst .
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 .It Bq Er EINVAL
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 The source string contain invalid escape sequences or syntax.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 .El
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 .\" EXAMPLES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 .Sh EXAMPLES
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 This call will replace the keywords
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 .Dq fruit
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 and
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 .Dq dessert
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 along with the time formatting.
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 .Bd -literal
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 struct irc_subst subst = {
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 .time = time(NULL),
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 .flags = IRC_SUBST_KEYWORDS | IRC_SUBST_DATE,
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 .keywordsz = 2,
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 .keywords = (const struct irc_subst_keyword[]) {
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 { "fruit", "orange" },
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 { "dessert", "tiramisu" }
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 }
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 };
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 char output[512];
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 const char *input = "You've eaten #{fruit} and #{dessert} on %H:%M";
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
178
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 irc_subst(output, sizeof (output), input, &subst);
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 /* output == You've eaten orange and tiramisu on 23:23 */
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 .Ed
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 .\" SEE ALSO
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 .Sh SEE ALSO
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 .Xr irccd-templates 7 ,
c30f0dc9d614 man: add libirccd-subst.3 manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 .Xr libirccd 3