89 |
void |
void |
90 |
setup_html() |
setup_html() |
91 |
{ |
{ |
92 |
html_begin = "<HTML>"; |
html_begin = "<html>"; |
93 |
html_end = "</HTML>"; |
html_end = "</html>"; |
94 |
body_begin = "<BODY>"; |
body_begin = "<body>"; |
95 |
body_end = "</BODY>"; |
body_end = "</body>"; |
96 |
head_begin = "<HEAD>"; |
head_begin = "<head>"; |
97 |
head_end = "</HEAD>"; |
head_end = "</head>"; |
98 |
title_begin = "<H1><FONT COLOR=#cc0000>"; |
title_begin = "<h1><font color='#cc0000'>"; |
99 |
title_end = "</FONT></H1>"; |
title_end = "</font></h1>"; |
100 |
list_begin = "<OL>"; |
list_begin = "<ol>"; |
101 |
list_item = "<LI>"; |
list_item = "<li>"; |
102 |
list_end = "</OL>"; |
list_end = "</ol>"; |
103 |
table_begin = "<TABLE>"; |
table_begin = "<table>"; |
104 |
table_end = "</TABLE>"; |
table_end = "</table>"; |
105 |
comment_begin = "<I><FONT COLOR=green>"; |
comment_begin = "<i><font color='green'>"; |
106 |
comment_end = "</FONT></I>"; |
comment_end = "</font></i>"; |
107 |
sharp_begin = "<FONT COLOR=darkred>"; |
sharp_begin = "<font color='darkred'>"; |
108 |
sharp_end = "</FONT>"; |
sharp_end = "</font>"; |
109 |
brace_begin = "<FONT COLOR=blue>"; |
brace_begin = "<font color='blue'>"; |
110 |
brace_end = "</FONT>"; |
brace_end = "</font>"; |
111 |
verbatim_begin = "<PRE>"; |
verbatim_begin = "<pre>"; |
112 |
verbatim_end = "</PRE>"; |
verbatim_end = "</pre>"; |
113 |
reserved_begin = "<B>"; |
reserved_begin = "<b>"; |
114 |
reserved_end = "</B>"; |
reserved_end = "</b>"; |
115 |
position_begin = "<FONT COLOR=gray>"; |
position_begin = "<font color='gray'>"; |
116 |
position_end = "</FONT>"; |
position_end = "</font>"; |
117 |
warned_line_begin = "<SPAN STYLE=\"background-color:yellow\">"; |
warned_line_begin = "<span style='background-color:yellow'>"; |
118 |
warned_line_end = "</SPAN>"; |
warned_line_end = "</span>"; |
119 |
string_begin = "<U>"; |
string_begin = "<u>"; |
120 |
string_end = "</U>"; |
string_end = "</u>"; |
121 |
quote_great = ">"; |
quote_great = ">"; |
122 |
quote_little = "<"; |
quote_little = "<"; |
123 |
quote_amp = "&"; |
quote_amp = "&"; |
124 |
quote_space = " "; |
quote_space = " "; |
125 |
hr = "<HR>"; |
hr = "<hr>"; |
126 |
br = "<BR>"; |
br = "<br>"; |
127 |
} |
} |
128 |
/* |
/* |
129 |
* Set up XHTML tags. |
* Set up XHTML tags. |
150 |
meta_record() |
meta_record() |
151 |
{ |
{ |
152 |
static char buf[512]; |
static char buf[512]; |
153 |
char *s1 = "META NAME='ROBOTS' CONTENT='NOINDEX,NOFOLLOW'"; |
char *s1 = "meta name='robots' content='noindex,nofollow'"; |
154 |
char *s2 = "META NAME='GENERATOR'"; |
char *s2 = "meta name='generator'"; |
155 |
|
|
156 |
snprintf(buf, sizeof(buf), "<%s>\n<%s CONTENT='GLOBAL-%s'>\n", s1, s2, get_version()); |
snprintf(buf, sizeof(buf), "<%s>\n<%s content='GLOBAL-%s'>\n", s1, s2, get_version()); |
157 |
return buf; |
return buf; |
158 |
} |
} |
159 |
/* |
/* |
160 |
* Generate <Hn> ... </Hn> tag. |
* Generate <hn> ... </hn> tag. |
161 |
*/ |
*/ |
162 |
char * |
char * |
163 |
Hn(n, label) |
Hn(n, label) |
169 |
n = 1; |
n = 1; |
170 |
if (n > 5) |
if (n > 5) |
171 |
n = 5; |
n = 5; |
172 |
snprintf(buf, sizeof(buf), "<H%d>%s</H%d>", n, label, n); |
snprintf(buf, sizeof(buf), "<h%d>%s</h%d>", n, label, n); |
173 |
return buf; |
return buf; |
174 |
} |
} |
175 |
/* |
/* |
181 |
char *link; |
char *link; |
182 |
{ |
{ |
183 |
static char buf[512]; |
static char buf[512]; |
184 |
snprintf(buf, sizeof(buf), "<A HREF=%s>%s</A>", link, label); |
snprintf(buf, sizeof(buf), "<a href='%s'>%s</a>", link, label); |
185 |
return buf; |
return buf; |
186 |
} |
} |
187 |
static STRBUF * |
static STRBUF * |
205 |
{ |
{ |
206 |
STRBUF *sb = edit_buffer(); |
STRBUF *sb = edit_buffer(); |
207 |
|
|
208 |
strbuf_puts(sb, "<HEAD>\n<TITLE>"); |
strbuf_puts(sb, "<head>\n<title>"); |
209 |
strbuf_puts(sb, title); |
strbuf_puts(sb, title); |
210 |
strbuf_puts(sb, "</TITLE>\n"); |
strbuf_puts(sb, "</title>\n"); |
211 |
strbuf_puts(sb, meta_record()); |
strbuf_puts(sb, meta_record()); |
212 |
if (style_sheet) |
if (style_sheet) |
213 |
strbuf_puts(sb, style_sheet); |
strbuf_puts(sb, style_sheet); |
214 |
strbuf_puts(sb, "</HEAD>\n"); |
strbuf_puts(sb, "</head>\n"); |
215 |
return strbuf_value(sb); |
return strbuf_value(sb); |
216 |
} |
} |
217 |
|
|
226 |
if (table_list) { |
if (table_list) { |
227 |
strbuf_puts(sb, table_begin); |
strbuf_puts(sb, table_begin); |
228 |
strbuf_putc(sb, '\n'); |
strbuf_putc(sb, '\n'); |
229 |
strbuf_puts(sb, "<TR><TH NOWRAP ALIGN=left>tag</TH>"); |
strbuf_puts(sb, "<tr><th nowrap align='left'>tag</th>"); |
230 |
strbuf_puts(sb, "<TH NOWRAP ALIGN=right>line</TH>"); |
strbuf_puts(sb, "<th nowrap align='right'>line</th>"); |
231 |
strbuf_puts(sb, "<TH NOWRAP ALIGN=center>file</TH>"); |
strbuf_puts(sb, "<th nowrap align='center'>file</th>"); |
232 |
strbuf_puts(sb, "<TH NOWRAP ALIGN=left>source code</TH></TR>"); |
strbuf_puts(sb, "<th nowrap align='left'>source code</th></tr>"); |
233 |
} else { |
} else { |
234 |
strbuf_puts(sb, "<PRE>"); |
strbuf_puts(sb, "<pre>"); |
235 |
} |
} |
236 |
return strbuf_value(sb); |
return strbuf_value(sb); |
237 |
} |
} |
262 |
html = path2url(filename); |
html = path2url(filename); |
263 |
|
|
264 |
if (table_list) { |
if (table_list) { |
265 |
strbuf_sprintf(sb, "<TR><TD NOWRAP><A HREF=%s/%s#%s>%s</A></TD>", |
strbuf_sprintf(sb, "<tr><td nowrap><a href='%s/%s#%s'>%s</a></td>", |
266 |
srcdir, html, lno, name); |
srcdir, html, lno, name); |
267 |
strbuf_sprintf(sb, "<TD NOWRAP ALIGN=right>%s</TD><TD NOWRAP ALIGN=left>%s</TD><TD NOWRAP>", |
strbuf_sprintf(sb, "<td nowrap align='right'>%s</td><td nowrap align='left'>%s</td><td nowrap>", |
268 |
lno, filename); |
lno, filename); |
269 |
|
|
270 |
for (p = line; *p; p++) { |
for (p = line; *p; p++) { |
284 |
} else |
} else |
285 |
strbuf_putc(sb, c); |
strbuf_putc(sb, c); |
286 |
} |
} |
287 |
strbuf_puts(sb, "</TD></TR>"); |
strbuf_puts(sb, "</td></tr>"); |
288 |
recover(&ptable); |
recover(&ptable); |
289 |
} else { |
} else { |
290 |
int done = 0; |
int done = 0; |
291 |
|
|
292 |
strbuf_sprintf(sb, "<A HREF=%s/%s#%s>%s</A>", |
strbuf_sprintf(sb, "<a href='%s/%s#%s'>%s</a>", |
293 |
srcdir, html, lno, name); |
srcdir, html, lno, name); |
294 |
p = string + strlen(name); |
p = string + strlen(name); |
295 |
recover(&ptable); |
recover(&ptable); |
325 |
if (table_list) |
if (table_list) |
326 |
strbuf_puts(sb, table_end); |
strbuf_puts(sb, table_end); |
327 |
else |
else |
328 |
strbuf_puts(sb, "</PRE>"); |
strbuf_puts(sb, "</pre>"); |
329 |
return strbuf_value(sb); |
return strbuf_value(sb); |
330 |
} |
} |
331 |
|
|