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