Typen gefixt

Change-Id: I29d1b7a3bcf291881993a371a3fde9b634d8f9cb
diff --git a/secure/materialdb.c b/secure/materialdb.c
index 11d3554..94c57b6 100644
--- a/secure/materialdb.c
+++ b/secure/materialdb.c
@@ -147,10 +147,10 @@
     if (pointerp(dif=props[P_RECOC])
 && (!intp(idinf)||idinf<100) ) { // 100=exakte Erkennung
       int i, n, recval;
-      mixed *grps, tmp, x;
+      mixed tmp, x;
 
       recval=0;
-      grps=props[P_MG_FRACTIONS];
+      mapping grps=props[P_MG_FRACTIONS];
       if (!pointerp(idinf))
         idinf=({idinf});
 
diff --git a/secure/news.c b/secure/news.c
index 76e1ba1..2f9e6aa 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -297,7 +297,7 @@
 
 int WriteNote(mixed message,mixed keepname)
 {
-  mixed *group;
+  mixed group;
   int uidok,tmp;
   string name;
 
@@ -326,7 +326,7 @@
 int RemoveNote(string name, int note)
 {
   int num;
-  mixed *group;
+  mixed group;
 
   if ((note<0) && (name=="dwnews"))
   {
@@ -368,7 +368,7 @@
 
 mixed GetNotes(string name)
 {
-  mixed *group;
+  mixed group;
   
   if (!pointerp(group=load_group(name))) return -2;
   if (!allowed(name, F_READ)) return -2;
@@ -389,7 +389,7 @@
 // etime ist anfangs in Tagen und bezeichnet das max. Alter, was Artikel in
 // der Gruppe haben duerfen.
 {
-  mixed *group;
+  mixed group;
 
   if (!pointerp(group=load_group(grp))) return;
   if (etime)
@@ -430,7 +430,7 @@
 void dump_group(string grp)
 {
   int to_expire,size,last;
-  mixed *group;
+  mixed group;
 
   if (!ARCH_SECURITY || process_call()) return;
   if (!pointerp(group=load_group(grp))) return;
@@ -518,7 +518,7 @@
 
 int AskAllowedWrite(string n)
 {
-  mixed *group;
+  mixed group;
 
   if (!member(grouplist,n)) return -2;
   if (!pointerp(group=load_group(n))) return -2;
diff --git a/secure/udp/www.news.c b/secure/udp/www.news.c
index ce068db..1e4588b 100644
--- a/secure/udp/www.news.c
+++ b/secure/udp/www.news.c
@@ -115,11 +115,11 @@
 
 string ArticleList(string group)
 {
-  string *list, ret;
+  string ret;
   mapping t;
   int i;
 
-  list = NEWSD->GetNotes(group = old_explode(group, ":")[0]);
+  mixed list = NEWSD->GetNotes(group = old_explode(group, ":")[0]);
   if (!pointerp(list)) {
   return "<H2>Gruppe: "+group+"</H2>"
     "<H3>existiert nicht.</H3>"
diff --git a/secure/udp/www.who.c b/secure/udp/www.who.c
index 6646569..013e87b 100644
--- a/secure/udp/www.who.c
+++ b/secure/udp/www.who.c
@@ -11,7 +11,7 @@
 #include <properties.h>
 #include <www.h>
 
-string MakeLink(mixed entry)
+string MakeLink(<object|string>* entry)
 {
   string nm;
   int idx;
@@ -30,12 +30,18 @@
 
 string Request(mapping cmds)
 {
-  string *who, *list; int i, s;
-  if (!sizeof(cmds)) return ERROR("Anfrage ung&uuml;ltig!");
-  who = allocate(s = sizeof(list = WHO));
-  for(i = s; i--; i > 0) 
-    who[i] = MakeLink(list[s - i - 1]);
-  // who = map(WHO, #'MakeLink/*'*/);
+  if (!sizeof(cmds))
+    return ERROR("Anfrage ung&uuml;ltig!");
+  // Wer-Liste abfragen
+  <object|string>** list = WHO;
+  int size=sizeof(list);
+  string *who = allocate(size);
+
+  // Listenreihenfolge umkehren.
+  foreach(int i : size) {
+    who[i] = MakeLink(list[<i+1]);
+  }
+
   return "<H2>Wer ist gerade in "MUDNAME"?</H2><HR>"
        + "<OL><LI>"+implode(who, "\n<LI>")+"</OL>";
 }