From 4938b09005dfcca258a684fff06ca5d402b03d48 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sat, 28 Feb 1998 19:45:46 -0800
Subject: [PATCH] should now handle multisets and mappings too...

Rev: lib/modules/Array.pmod:1.18
---
 lib/modules/Array.pmod | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod
index 874950c843..85c5796506 100644
--- a/lib/modules/Array.pmod
+++ b/lib/modules/Array.pmod
@@ -15,6 +15,9 @@ mixed map(mixed arr, mixed fun, mixed ... args)
   if(mappingp(arr))
     return mkmapping(indices(arr),map(values(arr),fun,@args));
 
+  if(multisetp(arr))
+    return mkmultiset(map(indices(arr,fun,@args)));
+
   switch(sprintf("%t",fun))
   {
   case "int":
@@ -50,7 +53,13 @@ mixed filter(mixed arr, mixed fun, mixed ... args)
     for(e=0;e<sizeof(ret);e++) if(ret[e]) r[i[e]]=v[e];
 
     return r;
-  }else{
+  }
+  if(multisetp(arr))
+  {
+    return mkmultiset(filter(indices(arr,fun,@args)));
+  }
+  else
+  {
     int d;
     ret=map(arr,fun,@args);
     for(e=0;e<sizeof(arr);e++) if(ret[e]) ret[d++]=arr[e];
-- 
GitLab