Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/std/thing/util.c b/std/thing/util.c
new file mode 100644
index 0000000..d434642
--- /dev/null
+++ b/std/thing/util.c
@@ -0,0 +1,111 @@
+// MorgenGrauen MUDlib
+//
+// thing/util.c -- Utilities
+//
+// $Id: util.c 6366 2007-07-15 21:06:24Z Zesstra $
+
+#define NEED_PROTOTYPES
+#include "/sys/thing/util.h"
+#include "/sys/thing/properties.h"
+
+#pragma strict_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+public void ShowPropList(string *props)
+{
+ int i,j;
+
+ j=sizeof(props);
+
+ for ( i=0; i<j ; i++)
+ {
+ write("*"+props[i]+": ");
+ PrettyDump(QueryProp(props[i]));
+ write("\n");
+ }
+}
+
+static void PrettyDump(mixed x)
+{
+ if (pointerp(x))
+ {
+ DumpArray(x);
+ }
+ else if (mappingp(x))
+ {
+ DumpMapping(x);
+ }
+ else if (objectp(x))
+ {
+ write ("OBJ("+object_name(x)+")");
+ }
+ else if (stringp(x))
+ {
+ write("\""+x+"\"");
+ }
+ else
+ {
+ write (x);
+ }
+}
+
+static void DumpArray(mixed *x)
+{
+ int i,j;
+
+ write ("({ ");
+ if ( (j=sizeof(x))>0 )
+ {
+ for ( i=0 ; i<(j-1) ; i++)
+ {
+ PrettyDump(x[i]);
+ write(", ");
+ }
+ PrettyDump(x[i]);
+ write(" ");
+ }
+ write ("})");
+}
+
+static void DumpMapping(mapping x)
+{
+ int i, c, s;
+ mixed *ind;
+
+ write("([ ");
+
+ if ( (c=sizeof(ind=m_indices(x)))<1 )
+ {
+ write(" ])");
+ return;
+ }
+
+ s=get_type_info(x,1);
+
+ DumpKeyValPair(x, ind[0], s);
+ for ( i=1 ; i<c ; i++ )
+ {
+ write(", ");
+ DumpKeyValPair(x, ind[i], s);
+ }
+ write(" ])");
+}
+
+// Lacht nicht ueber den Namen!!! -Boing
+// Nein, ueber den Namen lache ich nicht ... -Paracelsus
+static void DumpKeyValPair(mapping x, mixed key, int size)
+{ int j, vc;
+
+ PrettyDump(key);
+ write(" : ");
+ PrettyDump(x[key,0]);
+
+ for ( j=1; j<size; j++)
+ {
+ write("; ");
+ PrettyDump(x[key, j]);
+ }
+}