195 |
char *title; |
char *title; |
196 |
int subdir; |
int subdir; |
197 |
{ |
{ |
198 |
static STRBUF *sb = NULL; |
STATIC_STRBUF(sb); |
199 |
char *dir = subdir ? "../" : ""; |
char *dir = subdir ? "../" : ""; |
200 |
|
|
201 |
if (sb == NULL) |
strbuf_init(sb); |
|
sb = strbuf_open(0); |
|
|
else |
|
|
strbuf_reset(sb); |
|
202 |
if (enable_xhtml) { |
if (enable_xhtml) { |
203 |
strbuf_puts(sb, "<?xml version='1.0' encoding='ISO-8859-1'?>\n"); |
strbuf_puts(sb, "<?xml version='1.0' encoding='ISO-8859-1'?>\n"); |
204 |
strbuf_sprintf(sb, "<?xml-stylesheet type='text/css' href='%sstyle.css'?>\n", dir); |
strbuf_sprintf(sb, "<?xml-stylesheet type='text/css' href='%sstyle.css'?>\n", dir); |
303 |
const char *title; |
const char *title; |
304 |
const char *target; |
const char *target; |
305 |
{ |
{ |
306 |
static STRBUF *sb = NULL; |
STATIC_STRBUF(sb); |
307 |
|
|
308 |
if (sb == NULL) |
strbuf_init(sb); |
|
sb = strbuf_open(0); |
|
|
else |
|
|
strbuf_reset(sb); |
|
309 |
/* |
/* |
310 |
* Construct URL. |
* Construct URL. |
311 |
* href='dir/file.suffix#key' |
* href='dir/file.suffix#key' |
415 |
char *srcdir; |
char *srcdir; |
416 |
char *string; |
char *string; |
417 |
{ |
{ |
418 |
static STRBUF *sb = NULL; |
STATIC_STRBUF(sb); |
419 |
char *name, *lno, *filename, *line, *fid; |
char *name, *lno, *filename, *line, *fid; |
420 |
char *p; |
char *p; |
421 |
SPLIT ptable; |
SPLIT ptable; |
422 |
|
|
423 |
if (sb == NULL) |
strbuf_init(sb); |
|
sb = strbuf_open(0); |
|
|
else |
|
|
strbuf_reset(sb); |
|
424 |
if (split(string, 4, &ptable) < 4) { |
if (split(string, 4, &ptable) < 4) { |
425 |
recover(&ptable); |
recover(&ptable); |
426 |
die("too small number of parts in list_body().\n'%s'", string); |
die("too small number of parts in list_body().\n'%s'", string); |
576 |
encode(url) |
encode(url) |
577 |
char *url; |
char *url; |
578 |
{ |
{ |
579 |
static STRBUF *sb = NULL; |
STATIC_STRBUF(sb); |
580 |
char *p; |
char *p; |
581 |
|
|
582 |
if (sb) |
strbuf_init(sb); |
|
strbuf_reset(sb); |
|
|
else |
|
|
sb = strbuf_open(0); |
|
583 |
for (p = url; *p; p++) { |
for (p = url; *p; p++) { |
584 |
int c = (unsigned char)*p; |
int c = (unsigned char)*p; |
585 |
|
|