From f2807af39d225223aa8beb892e859e17a763c703 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sat, 15 Jan 2000 22:02:28 -0800
Subject: [PATCH] added support for treating WMML data more like mappings

Rev: tutorial/Sgml.pmod:1.18
---
 tutorial/Sgml.pmod | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/tutorial/Sgml.pmod b/tutorial/Sgml.pmod
index 69c17d14f4..d314ef4415 100644
--- a/tutorial/Sgml.pmod
+++ b/tutorial/Sgml.pmod
@@ -42,6 +42,29 @@ class Tag
     return "pos "+pos+" in file "+file; 
   }
 
+
+  static mapping(string:array(string|object(Tag))) data_cache=([]);
+  static array(string|object(Tag)) last_data;
+
+  array(string|object(Tag)) find(string tag)
+    {
+      if(last_data != data)
+      {
+	data_cache=([]);
+	foreach(data, Tag t)
+	  {
+	    if(data_cache[t->tag])
+	    {
+	      data_cache[t->tag]+=({t});
+	    }else{
+	      data_cache[t->tag]=({t});
+	    }
+	  }
+	last_data=data;
+      }
+      return data_cache[tag];
+    }
+
   void create(string t,
 	      void|mapping p,
 	      void|int po, 
@@ -57,6 +80,10 @@ class Tag
   }
 };
 
+class PropTag
+{
+};
+
 #define TAG object(Tag)|string
 #define SGML array(TAG)
 
-- 
GitLab