annotate util.h @ 85:478d96a4b039 default tip @

pasterd: use a thread as more portable
author David Demelier <markand@malikania.fr>
date Fri, 17 Mar 2023 11:43:36 +0100
parents 52029a52a385
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * util.h -- various utilities
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
72
1a98bc0daa49 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 71
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
77
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
5 *
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
77
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
9 *
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef PASTER_UTIL_H
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define PASTER_UTIL_H
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
51
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
22 #include <stddef.h>
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
23 #include <time.h>
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
24
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
25 #define NELEM(x) (sizeof (x) / sizeof (x)[0])
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
5
f455893bf0b0 pasterd: show dates in /
David Demelier <markand@malikania.fr>
parents: 1
diff changeset
27 struct tm;
73
6792975da9a0 pasterd: start removing themes
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
28 struct kreq;
5
f455893bf0b0 pasterd: show dates in /
David Demelier <markand@malikania.fr>
parents: 1
diff changeset
29
77
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
30 struct duration {
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
31 const char *title;
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
32 long long int secs;
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
33 };
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
34
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
35 extern const char * const languages[];
51
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
36 extern const size_t languagesz;
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
37
77
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
38 extern const struct duration durations[];
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
39 extern const size_t durationsz;
fe78b16c694d pasterd: refactor json utilities
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
40
71
d3d3937c5756 misc: remove deprecated noreturn
David Demelier <markand@malikania.fr>
parents: 60
diff changeset
41 void
1
836a698946f8 pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
42 die(const char *, ...);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 char *
1
836a698946f8 pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
45 estrdup(const char *);
836a698946f8 pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
46
73
6792975da9a0 pasterd: start removing themes
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
47 void *
6792975da9a0 pasterd: start removing themes
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
48 ecalloc(size_t, size_t);
6792975da9a0 pasterd: start removing themes
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
49
1
836a698946f8 pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
50 const char *
836a698946f8 pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
51 bprintf(const char *, ...);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
5
f455893bf0b0 pasterd: show dates in /
David Demelier <markand@malikania.fr>
parents: 1
diff changeset
53 const char *
f455893bf0b0 pasterd: show dates in /
David Demelier <markand@malikania.fr>
parents: 1
diff changeset
54 bstrftime(const char *, const struct tm *);
f455893bf0b0 pasterd: show dates in /
David Demelier <markand@malikania.fr>
parents: 1
diff changeset
55
51
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
56 const char *
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
57 path(const char *);
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
58
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
59 void
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
60 replace(char **, const char *);
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
61
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
62 const char *
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
63 ttl(time_t, long long int);
07b6887d3557 pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents: 5
diff changeset
64
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 #endif /* !PASTER_UTIL_H */