70322ae3 |
1 | /* |
2 | * html.h: HTML output format for agedu. |
3 | */ |
4 | |
f2e52893 |
5 | struct html_config { |
6 | /* |
7 | * If "format" is non-NULL, it is treated as an sprintf format |
8 | * string which must contain exactly one %lu and no other |
9 | * formatting directives (other than %%, which doesn't count); |
10 | * this will be used to construct URLs to use in hrefs |
11 | * pointing to queries of other related (parent and child) |
12 | * pathnames. |
13 | */ |
14 | const char *format; |
15 | |
16 | /* |
00c5e40c |
17 | * If "rootpage" is non-NULL, it overrides "format" to give a |
18 | * special name (e.g. "index.html") to the top-level page of the |
19 | * index. |
20 | */ |
21 | const char *rootpage; |
22 | |
23 | /* |
f2e52893 |
24 | * Time stamps to assign to the extreme ends of the colour |
25 | * scale. If "autoage" is true, they are ignored and the time |
26 | * stamps are derived from the limits of the age data stored |
27 | * in the index. |
28 | */ |
29 | int autoage; |
30 | time_t oldest, newest; |
16139d21 |
31 | |
32 | /* |
33 | * Specify whether to show individual files as well as |
34 | * directories in the report. |
35 | */ |
36 | int showfiles; |
f2e52893 |
37 | }; |
38 | |
70322ae3 |
39 | /* |
40 | * Generate an HTML document containing the results of a query |
41 | * against the pathname at a given index. Returns a dynamically |
42 | * allocated piece of memory containing the entire HTML document, |
43 | * as an ordinary C zero-terminated string. |
00c5e40c |
44 | * |
45 | * 'downlink' is TRUE if hyperlinks should be generated for |
46 | * subdirectories. (This can also be disabled by setting cfg->format |
47 | * to NULL, but that also disables the upward hyperlinks to parent |
48 | * directories. Setting cfg->format to non-NULL but downlink to NULL |
49 | * will generate uplinks but no downlinks.) |
70322ae3 |
50 | */ |
f2e52893 |
51 | char *html_query(const void *t, unsigned long index, |
00c5e40c |
52 | const struct html_config *cfg, int downlink); |
53 | |
54 | /* |
55 | * Recursively output a dump of lots of HTML files which crosslink |
56 | * to each other. cfg->format and cfg->rootpath will be used to |
57 | * generate the filenames for both the hyperlinks and the output |
58 | * file names; the file names will have "pathprefix" prepended to |
59 | * them before being opened. |
60 | * |
61 | * "index" and "endindex" point to the region of index file that |
62 | * should be generated by the dump, which must be a subdirectory. |
63 | * |
64 | * "maxdepth" limits the depth of recursion. Setting it to zero |
65 | * outputs only one page, 1 outputs the current directory and its |
66 | * immediate children but no further, and so on. Making it negative |
67 | * gives unlimited depth. |
68 | * |
69 | * Return value is 0 on success, or 1 if an error occurs during |
70 | * output. |
71 | */ |
72 | int html_dump(const void *t, unsigned long index, unsigned long endindex, |
73 | int maxdepth, const struct html_config *cfg, |
74 | const char *pathprefix); |