From aa2efe15ff9686acddc52c9e8f08cc281256ef28 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Fri, 14 Jan 2000 01:05:01 +0100 Subject: [PATCH] Added get_extra(). Rev: src/modules/Parser/html.c:1.67 --- src/modules/Parser/html.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/modules/Parser/html.c b/src/modules/Parser/html.c index 79464206e9..fab48d8fad 100644 --- a/src/modules/Parser/html.c +++ b/src/modules/Parser/html.c @@ -3772,14 +3772,33 @@ static void html_clone(INT32 args) static void html_set_extra(INT32 args) { - f_aggregate(args); if (THIS->extra_args) free_array(THIS->extra_args); - THIS->extra_args=sp[-1].u.array; - sp--; + if (args) { + f_aggregate(args); + THIS->extra_args=sp[-1].u.array; + sp--; + } + else THIS->extra_args=NULL; dmalloc_touch_svalue(sp); ref_push_object(THISOBJ); } +/* +**! method array get_extra() +**! Gets the extra arguments set by <ref>set_extra</ref>(). +**! +**! returns the called object +*/ + +static void html_get_extra(INT32 args) +{ + pop_n_elems(args); + if (THIS->extra_args) + ref_push_array (THIS->extra_args); + else + ref_push_array (&empty_array); +} + /* **! method int case_insensitive_tag(void|int value) **! method int lazy_entity_end(void|int value) @@ -4004,6 +4023,8 @@ void init_parser_html(void) ADD_FUNCTION("set_extra",html_set_extra, tFuncV(tNone,tMix,tObjImpl_PARSER_HTML),0); + ADD_FUNCTION("get_extra",html_get_extra, + tFunc(tNone,tArray),0); ADD_FUNCTION("case_insensitive_tag",html_case_insensitive_tag, tFunc(tOr(tVoid,tInt),tInt),0); -- GitLab