1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-10-01 03:36:26 -04:00

Add parameters unsigned char *html, unsigned char *eof, and unsigned

char **end to element_handler_T.
This commit is contained in:
Miciah Dashiel Butler Masters 2005-11-25 00:30:13 +00:00 committed by Miciah Dashiel Butler Masters
parent 94e6b2def5
commit 08c1cdf9d4
5 changed files with 140 additions and 77 deletions

View File

@ -36,7 +36,9 @@
void
html_form(struct html_context *html_context, unsigned char *a)
html_form(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al;
struct form *form;
@ -138,7 +140,8 @@ init_form_control(enum form_type type, unsigned char *attr,
}
void
html_button(struct html_context *html_context, unsigned char *a)
html_button(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al;
struct form_control *fc;
@ -179,7 +182,8 @@ no_type_attr:
}
void
html_input(struct html_context *html_context, unsigned char *a)
html_input(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
int i;
unsigned char *al;
@ -296,7 +300,8 @@ hid:
}
void
html_select(struct html_context *html_context, unsigned char *a)
html_select(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* Note I haven't seen this code in use, do_html_select() seems to take
* care of bussiness. --FF */
@ -314,7 +319,8 @@ html_select(struct html_context *html_context, unsigned char *a)
}
void
html_option(struct html_context *html_context, unsigned char *a)
html_option(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
struct form_control *fc;
unsigned char *val;
@ -562,7 +568,8 @@ end_parse:
}
void
html_textarea(struct html_context *html_context, unsigned char *a)
html_textarea(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
INTERNAL("This should be never called");
}

View File

@ -41,48 +41,56 @@
void
html_span(struct html_context *html_context, unsigned char *a)
html_span(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
}
void
html_bold(struct html_context *html_context, unsigned char *a)
html_bold(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_BOLD;
}
void
html_italic(struct html_context *html_context, unsigned char *a)
html_italic(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_ITALIC;
}
void
html_underline(struct html_context *html_context, unsigned char *a)
html_underline(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_UNDERLINE;
}
void
html_fixed(struct html_context *html_context, unsigned char *a)
html_fixed(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_FIXED;
}
void
html_subscript(struct html_context *html_context, unsigned char *a)
html_subscript(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_SUBSCRIPT | AT_UPDATE_SUB;
}
void
html_superscript(struct html_context *html_context, unsigned char *a)
html_superscript(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_SUPERSCRIPT | AT_UPDATE_SUP;
}
void
html_font(struct html_context *html_context, unsigned char *a)
html_font(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al = get_attr_val(a, "size", html_context->options);
@ -110,7 +118,8 @@ html_font(struct html_context *html_context, unsigned char *a)
}
void
html_body(struct html_context *html_context, unsigned char *a)
html_body(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
get_color(html_context, a, "text", &format.style.fg);
get_color(html_context, a, "link", &format.clink);
@ -151,7 +160,8 @@ html_apply_canvas_bgcolor(struct html_context *html_context)
}
void
html_script(struct html_context *html_context, unsigned char *a)
html_script(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
#ifdef CONFIG_ECMASCRIPT
/* We did everything (even possibly html_skip()) in do_html_script(). */
@ -161,13 +171,15 @@ html_script(struct html_context *html_context, unsigned char *a)
}
void
html_style(struct html_context *html_context, unsigned char *a)
html_style(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
html_skip(html_context, a);
}
void
html_html(struct html_context *html_context, unsigned char *a)
html_html(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* This is here just to get CSS stuff applied. */
@ -180,14 +192,16 @@ html_html(struct html_context *html_context, unsigned char *a)
}
void
html_head(struct html_context *html_context, unsigned char *a)
html_head(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* This makes sure it gets to the stack and helps tame down unclosed
* <title>. */
}
void
html_meta(struct html_context *html_context, unsigned char *a)
html_meta(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* html_handle_body_meta() does all the work. */
}
@ -207,14 +221,16 @@ html_handle_body_meta(struct html_context *html_context, unsigned char *meta,
}
void
html_title(struct html_context *html_context, unsigned char *a)
html_title(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
html_top.invisible = 1;
html_top.type = ELEMENT_WEAK;
}
void
html_center(struct html_context *html_context, unsigned char *a)
html_center(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
par_format.align = ALIGN_CENTER;
if (!html_context->table_level)
@ -222,7 +238,8 @@ html_center(struct html_context *html_context, unsigned char *a)
}
void
html_linebrk(struct html_context *html_context, unsigned char *a)
html_linebrk(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al = get_attr_val(a, "align", html_context->options);
@ -239,9 +256,10 @@ html_linebrk(struct html_context *html_context, unsigned char *a)
}
void
html_br(struct html_context *html_context, unsigned char *a)
html_br(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
if (html_context->was_br)
ln_break(html_context, 2);
else
@ -249,23 +267,26 @@ html_br(struct html_context *html_context, unsigned char *a)
}
void
html_p(struct html_context *html_context, unsigned char *a)
html_p(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
int_lower_bound(&par_format.leftmargin, html_context->margin);
int_lower_bound(&par_format.rightmargin, html_context->margin);
/*par_format.align = ALIGN_LEFT;*/
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
}
void
html_address(struct html_context *html_context, unsigned char *a)
html_address(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
par_format.leftmargin++;
par_format.align = ALIGN_LEFT;
}
void
html_blockquote(struct html_context *html_context, unsigned char *a)
html_blockquote(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
par_format.leftmargin += 2;
par_format.align = ALIGN_LEFT;
@ -273,10 +294,11 @@ html_blockquote(struct html_context *html_context, unsigned char *a)
void
html_h(int h, unsigned char *a,
enum format_align default_align, struct html_context *html_context)
enum format_align default_align, struct html_context *html_context,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
if (!par_format.align) par_format.align = default_align;
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
h -= 2;
if (h < 0) h = 0;
@ -300,44 +322,51 @@ html_h(int h, unsigned char *a,
}
void
html_h1(struct html_context *html_context, unsigned char *a)
html_h1(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
format.style.attr |= AT_BOLD;
html_h(1, a, ALIGN_CENTER, html_context);
html_h(1, a, ALIGN_CENTER, html_context, html, eof, end);
}
void
html_h2(struct html_context *html_context, unsigned char *a)
html_h2(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_h(2, a, ALIGN_LEFT, html_context);
html_h(2, a, ALIGN_LEFT, html_context, html, eof, end);
}
void
html_h3(struct html_context *html_context, unsigned char *a)
html_h3(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_h(3, a, ALIGN_LEFT, html_context);
html_h(3, a, ALIGN_LEFT, html_context, html, eof, end);
}
void
html_h4(struct html_context *html_context, unsigned char *a)
html_h4(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_h(4, a, ALIGN_LEFT, html_context);
html_h(4, a, ALIGN_LEFT, html_context, html, eof, end);
}
void
html_h5(struct html_context *html_context, unsigned char *a)
html_h5(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_h(5, a, ALIGN_LEFT, html_context);
html_h(5, a, ALIGN_LEFT, html_context, html, eof, end);
}
void
html_h6(struct html_context *html_context, unsigned char *a)
html_h6(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_h(6, a, ALIGN_LEFT, html_context);
html_h(6, a, ALIGN_LEFT, html_context, html, eof, end);
}
void
html_pre(struct html_context *html_context, unsigned char *a)
html_pre(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
format.style.attr |= AT_PREFORMATTED;
par_format.leftmargin = (par_format.leftmargin > 1);
@ -345,14 +374,16 @@ html_pre(struct html_context *html_context, unsigned char *a)
}
void
html_xmp(struct html_context *html_context, unsigned char *a)
html_xmp(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_context->was_xmp = 1;
html_pre(html_context, a);
html_pre(html_context, a, html, eof, end);
}
void
html_hr(struct html_context *html_context, unsigned char *a)
html_hr(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
int i/* = par_format.width - 10*/;
unsigned char r = (unsigned char) BORDER_DHLINE;
@ -363,7 +394,7 @@ html_hr(struct html_context *html_context, unsigned char *a)
par_format.align = ALIGN_CENTER;
mem_free_set(&format.link, NULL);
format.form = NULL;
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
if (par_format.align == ALIGN_JUSTIFY) par_format.align = ALIGN_CENTER;
par_format.leftmargin = par_format.rightmargin = html_context->margin;
@ -380,29 +411,33 @@ html_hr(struct html_context *html_context, unsigned char *a)
}
void
html_table(struct html_context *html_context, unsigned char *a)
html_table(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
par_format.leftmargin = par_format.rightmargin = html_context->margin;
par_format.align = ALIGN_LEFT;
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
format.style.attr = 0;
}
void
html_tt(struct html_context *html_context, unsigned char *a)
html_tt(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
}
void
html_tr(struct html_context *html_context, unsigned char *a)
html_tr(struct html_context *html_context, unsigned char *a,
unsigned char *html, unsigned char *eof, unsigned char **end)
{
html_linebrk(html_context, a);
html_linebrk(html_context, a, html, eof, end);
}
void
html_th(struct html_context *html_context, unsigned char *a)
html_th(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/*html_linebrk(html_context, a);*/
/*html_linebrk(html_context, a, html, eof, end);*/
kill_html_stack_until(html_context, 1,
"TD", "TH", "", "TR", "TABLE", NULL);
format.style.attr |= AT_BOLD;
@ -410,9 +445,10 @@ html_th(struct html_context *html_context, unsigned char *a)
}
void
html_td(struct html_context *html_context, unsigned char *a)
html_td(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/*html_linebrk(html_context, a);*/
/*html_linebrk(html_context, a, html, eof, end);*/
kill_html_stack_until(html_context, 1,
"TD", "TH", "", "TR", "TABLE", NULL);
format.style.attr &= ~AT_BOLD;
@ -420,7 +456,8 @@ html_td(struct html_context *html_context, unsigned char *a)
}
void
html_base(struct html_context *html_context, unsigned char *a)
html_base(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al;
@ -443,7 +480,8 @@ html_base(struct html_context *html_context, unsigned char *a)
}
void
html_ul(struct html_context *html_context, unsigned char *a)
html_ul(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al;
@ -469,7 +507,8 @@ html_ul(struct html_context *html_context, unsigned char *a)
}
void
html_ol(struct html_context *html_context, unsigned char *a)
html_ol(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *al;
int st;
@ -555,7 +594,8 @@ roman(unsigned char *p, unsigned n)
}
void
html_li(struct html_context *html_context, unsigned char *a)
html_li(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* When handling the code <li><li> @was_li will be 1 and it means we
* have to insert a line break since no list item content has done it
@ -635,7 +675,8 @@ html_li(struct html_context *html_context, unsigned char *a)
}
void
html_dl(struct html_context *html_context, unsigned char *a)
html_dl(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
par_format.flags &= ~P_COMPACT;
if (has_attr(a, "compact", html_context->options))
@ -653,7 +694,8 @@ html_dl(struct html_context *html_context, unsigned char *a)
}
void
html_dt(struct html_context *html_context, unsigned char *a)
html_dt(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
kill_html_stack_until(html_context, 0, "", "DL", NULL);
par_format.align = ALIGN_LEFT;
@ -664,7 +706,8 @@ html_dt(struct html_context *html_context, unsigned char *a)
}
void
html_dd(struct html_context *html_context, unsigned char *a)
html_dd(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
kill_html_stack_until(html_context, 0, "", "DL", NULL);
@ -680,7 +723,8 @@ html_dd(struct html_context *html_context, unsigned char *a)
void
html_noframes(struct html_context *html_context, unsigned char *a)
html_noframes(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
struct html_element *element;
@ -693,7 +737,8 @@ html_noframes(struct html_context *html_context, unsigned char *a)
}
void
html_frame(struct html_context *html_context, unsigned char *a)
html_frame(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *name, *src, *url;
@ -732,7 +777,8 @@ html_frame(struct html_context *html_context, unsigned char *a)
}
void
html_frameset(struct html_context *html_context, unsigned char *a)
html_frameset(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
struct frameset_param fp;
unsigned char *cols, *rows;
@ -800,7 +846,8 @@ free_and_return:
}
void
html_noscript(struct html_context *html_context, unsigned char *a)
html_noscript(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
/* We shouldn't throw <noscript> away until our ECMAScript support is
* halfway decent. */

View File

@ -40,7 +40,8 @@
void
html_a(struct html_context *html_context, unsigned char *a)
html_a(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *href;
@ -344,7 +345,8 @@ html_img_do(unsigned char *a, unsigned char *object_src,
}
void
html_img(struct html_context *html_context, unsigned char *a)
html_img(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
html_img_do(a, NULL, html_context);
}
@ -372,7 +374,8 @@ put_link_line(unsigned char *prefix, unsigned char *linkname,
void
html_applet(struct html_context *html_context, unsigned char *a)
html_applet(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *code, *alt;
@ -428,13 +431,15 @@ html_iframe_do(unsigned char *a, unsigned char *object_src,
}
void
html_iframe(struct html_context *html_context, unsigned char *a)
html_iframe(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
html_iframe_do(a, NULL, html_context);
}
void
html_object(struct html_context *html_context, unsigned char *a)
html_object(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *type, *url;
@ -483,7 +488,8 @@ html_object(struct html_context *html_context, unsigned char *a)
}
void
html_embed(struct html_context *html_context, unsigned char *a)
html_embed(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
unsigned char *type, *extension;
unsigned char *object_src;
@ -769,7 +775,8 @@ html_link_parse(struct html_context *html_context, unsigned char *a,
}
void
html_link(struct html_context *html_context, unsigned char *a)
html_link(struct html_context *html_context, unsigned char *a,
unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5)
{
int link_display = html_context->options->meta_link_display;
unsigned char *name;

View File

@ -895,7 +895,7 @@ start_element(struct element_info *ei,
* that's what the display: property plays with. */
#endif
ELEMENT_RENDER_PROLOGUE
if (ei->func) ei->func(html_context, attr);
if (ei->func) ei->func(html_context, attr, html, eof, &html);
#ifdef CONFIG_CSS
if (selector && html_top.options) {
/* Call it now to override default colors of the elements. */

View File

@ -47,7 +47,9 @@ void parse_html(unsigned char *html, unsigned char *eof, struct part *part, unsi
/* Interface for element handlers */
typedef void (element_handler_T)(struct html_context *, unsigned char *);
typedef void (element_handler_T)(struct html_context *, unsigned char *attr,
unsigned char *html, unsigned char *eof,
unsigned char **end);
/* Interface for the table handling */