Mercurial > irccd
annotate man/libirccd-subst.3 @ 1091:52be05336310
irccdctl: misc cleanups
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 21 Jul 2021 16:06:36 +0200 |
parents | c30f0dc9d614 |
children | f06e9761cc90 |
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 |