Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/GetMatMembership b/doc/lfun/GetMatMembership
new file mode 100644
index 0000000..8859a38
--- /dev/null
+++ b/doc/lfun/GetMatMembership
@@ -0,0 +1,55 @@
+GetMatMembership()
+FUNKTION:
+     string *GetMatMembership(string mat)
+
+DEFINIERT IN:
+     /p/daemon/materialdb.c (MATERIALDB)
+
+ARGUMENTE:
+     string mat - ein Material
+
+BESCHREIBUNG:
+     Gibt alle Gruppen, denen das Material angehoert zurueck. Geeignet, um
+     die Eigenschaften eines Materials zu ueberpruefen.
+
+RUECKGABEWERT:
+     Array von Strings mit Materialiengruppen oder ({})
+
+BEISPIELE:
+     // ein weiser Schmied:
+     int i;
+     string *mat, mname, mgroup;
+     mat=m_indices(ob->QueryProp(P_MATERIAL));
+     i=sizeof(mat);
+
+     write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
+     while(i--) {
+      // den Namen erkennen/aussprechen:
+      // Materialien werden allgemein etwas besser erkannt (zu 5%), aber
+      // alles aus Metall wird zu +100% besser erkannt ...
+      mname=MATERIALDB->MaterialName(mat[i], WER,
+	     ({5, ([MATRGROUP_METAL, 100])}));
+
+      // und nur Metalle analysieren ...
+      if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
+       int j;
+       string *mgr;
+       mgr=MATERIALDB->GetMatMembership(mat[i]);
+       j=sizeof(mgr);
+       mgroup=" gehoert zu ";
+       while(j--) {
+        mgroup+=MATERIALDB->GroupName(mgr[j]);
+        if(j>0) mgroup+=", ";
+       }
+      } else mgroup=" kenne ich nicht";
+      printf("%-12.12s: %s\n",mname, mgroup);
+     }
+
+SIEHE AUCH:
+     Konzepte:	  material, materialerkennung
+     Grundlegend: P_MATERIAL, /sys/thing/material.h
+     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
+		  GroupName(), MaterialName(),
+		  GetGroupMembers()
+
+7. Mai 2004 Gloinson
\ No newline at end of file