Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/obj/tools/lisp/knete.c b/obj/tools/lisp/knete.c
new file mode 100644
index 0000000..1dc1432
--- /dev/null
+++ b/obj/tools/lisp/knete.c
@@ -0,0 +1,190 @@
+// KNETE.C -- CommandLine Frontend to the Lisp2Closure compiler
+// (c) 1994 by Hate@MorgenGrauen, TUBmud, NightFall
+// --
+// Copy, change and distribute this bit of software as much as you like,
+// but keep the name of the original author in the header.
+
+#include "tweak.h"
+
+static inherit HOME("lisp");
+
+#ifdef ALATIA
+# define TUBMUD
+#endif
+// TUBMUD is a COMPAT mode game! (well sort of, its a NATIVE/COMPAT mixture)
+// the following defines should be the only ones to change
+// define ENGLISH if you don't want german messages ;)
+#if (defined(TUBMUD) || defined(TAPPMUD) || defined(UNItopia) || \
+ defined(ADAMANT))
+# ifdef ADAMANT
+# include <config.h>
+ inherit "/lib/obj";
+# define WIZLOCAL "/wiz/"
+# define ID(x) set_name(x)
+# define SHORT(x) set_short(x)
+# define LONG(x) set_long(x)
+# define ISWIZARD(pl) (LEVELMASTER->is_wizard(pl->query_real_name()))
+# endif
+# ifdef TUBMUD
+# include <kernel.h>
+# include <wizlevels.h>
+ inherit ACCESS;
+ inherit "/complex/item";
+ inherit "/basic/autoload";
+# define WIZLOCAL "/players/"
+# define ID(x) add_id(x)
+# define ISWIZARD(pl) (pl->query_level() >= WL_WIZARD)
+# endif
+# ifdef TAPPMUD
+# include <levels.h>
+ inherit "/obj/thing";
+# define WIZLOCAL "/w/"
+# define ID(x) set_alias(x)
+# define ISWIZARD(pl) (pl->query_level() >= LVL_WIZARD)
+# endif
+# define ENGLISH
+# ifdef UNItopia
+# undef ENGLISH
+# ifdef FinalFrontier
+# include <level.h>
+# else
+# include <levels.h>
+# endif
+ inherit "/i/item";
+ inherit "/i/install";
+# define WIZLOCAL "/w/"
+# define ID(x) add_id(x)
+# define ISWIZARD(pl) wizp(pl)
+# endif
+# define WIZHOME (WIZLOCAL+this_player()->query_real_name())
+# define LONG(x) set_long(x)
+# define SHORT(x) set_short(x)
+#else
+ inherit "/std/thing";
+# ifdef NIGHTFALL
+# define ENGLISH
+# endif
+# include <properties.h>
+# include <wizlevels.h>
+# define WIZHOME ("/players/"+getuid(this_object()))
+# define ID(x) AddId(x); SetProp(P_NAME, x)
+# define LONG(x) SetProp(P_LONG, x)
+# define SHORT(x) SetProp(P_SHORT, x);
+# define ISWIZARD(pl) IS_WIZARD(pl)
+#endif
+
+nomask void create()
+{
+ if(sizeof(old_explode(object_name(this_object()), "#")) == 1) return;
+ if(!interactive(this_player())) destruct(this_object());
+#ifndef MORGENGRAUEN
+ if((this_player() != find_player("hate") &&
+ interactive(find_player("hate"))) &&
+ old_explode(object_name(this_object()), "#")[0] == HOME("knete"))
+ {
+#ifdef TUBMUD
+ if(check_privilege("hate")) set_privilege("hate");
+ else set_privilege(0);
+#else
+ printf("*ERROR: do not clone this file!\n"
+ +" create a file with the following line in you home:\n"
+ +"inherit \""+HOME("knete")+"\";\n");
+ destruct(this_object());
+ return;
+#endif
+ }
+#endif
+#if (defined(TUBMUD) || defined(UNItopia))
+ item::create();
+#elif (defined(ADAMANT))
+ obj::create();
+#else
+ thing::create();
+#endif
+#ifdef ENGLISH
+ ID("dough");
+ ID("lisp");
+ SHORT("A piece of dough\n");
+ LONG("This piece of dough can be formed to your own convenience.\n");
+#else
+# ifdef UNItopia
+ set_name("Knete");
+# endif
+ ID("knete");
+ ID("lisp");
+ SHORT("Ein Stueck Knete");
+ LONG(
+ "Dieses Stueck Knete kann man sehr schoen an seinen persoenlichen Geschmack\n"
+ +"anpassen.\n");
+ this_object()->SetProp("autoloadobj",1);
+ this_object()->SetProp("autoload",1);
+#endif
+ lisp::create();
+}
+
+varargs nomask void init(int x)
+{
+ lisp::init(x);
+#if (defined(TUBMUD) || defined(UNItopia))
+# ifndef TUBMUD
+ item::init();
+# endif
+#elif (defined(ADAMANT))
+ obj::init();
+#else
+ thing::init();
+#endif
+ add_action("cmdline", "", 1);
+}
+
+#ifdef TAPPMUD
+query_auto_load() { return ({__FILE__}); }
+drop() { return 1; }
+#endif
+#if ((defined(TUBMUD)) || (defined(ADAMANT)))
+drop() { return 1; }
+#endif
+
+nomask string load(string file)
+{
+ if(previous_object() != this_object()) return "* Privilege violation\n";
+ return lisp(read_file(file));
+}
+
+nomask int cmdline(string str)
+{
+ int cost;
+ cost = get_eval_cost();
+ if(this_player() != this_interactive()) return 0;
+
+#ifndef MORGENGRAUEN
+# ifndef TUBMUD
+ if(this_player() && interactive(this_player()) &&
+ ((this_player() != find_player("hate")) ||
+ (this_player() != find_player("etah"))))
+# endif
+#else
+ if(this_player() && interactive(this_player()))
+#endif
+ {
+ mixed result;
+ if(!ISWIZARD(this_player())) return 0;
+#ifdef TAPPMUD
+ notify_fail(lambda(({}), ({#'lisp/*'*/,
+ query_verb()+(str?(" "+str):""), 1})));
+#else
+# ifdef MORGENGRAUEN
+ str = this_player()->_unparsed_args();
+# endif
+ result = lisp(query_verb()+(str?(" "+str):""), 1);
+ if(result != -1 && cost >= 990000) {
+ if(stringp(result))
+ notify_fail(result);
+ else
+ if(result) notify_fail(sprintf("%O\n", result));
+ else return 1;
+ return 0;
+ }
+#endif
+ }
+}