Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/sys/magier.h b/sys/magier.h
new file mode 100644
index 0000000..33cd98f
--- /dev/null
+++ b/sys/magier.h
@@ -0,0 +1,225 @@
+// MorgenGrauen MUDlib
+//
+// magier.h -- Magiererweiterung der Shell
+//
+// $Id: magier.h 9553 2016-05-03 20:22:47Z Zesstra $
+
+#ifndef _MAGIER_H_
+#define _MAGIER_H_
+
+#define SHELLDEBUGGER "zesstra"
+
+#define MAX_ARRAY_SIZE   3000 // MUSS EIGENTLICH NACH /sys/config.h oder so
+
+#define ERROR(msg, arg, res)   (printf(msg, arg),res)
+
+#define NO_READ         "%s: Keine Leserechte!\n"
+#define NO_WRITE        "%s: Keine Schreibrechte!\n"
+#define DOESNT_EXIST    "%s: Datei existiert nicht!\n"
+#define ALREADY_EXISTS  "%s: Datei existiert schon.\n"
+#define NO_DIRS          "%s ist ein Verzeichnis.\n"
+#define SAME_FILE        "%s: Gleiches Quell- und Zielfile: uebergangen.\n"
+#define NO_CREATE_DIR   "%s: Verzeichnis konnte nicht erstellt werden.\n"
+#define DEST_IS_DIR     "%s: Zieldatei ist ein Verzeichnis.\n"
+#define DEST_NO_DELETE  "%s: Zieldatei konnte nicht geloescht werden.\n"
+#define NO_MOVE         "%s: Datei konnte nicht verschoben werden.\n"
+#define NO_COPY         "%s: Datei konnte nicht kopiert werden.\n"
+#define FILE_COPIED     "%s: kopiert.\n"
+#define DIR_CREATED     "%s: Verzeichnis erzeugt.\n"
+#define FILE_MOVED      "%s: verschoben.\n"
+#define FILE_DELETED    "%s wurde geloescht.\n"
+#define NO_DELETE       "%s konnte nicht geloescht werden.\n"
+
+#define MAY_READ(x)   call_other(__MASTER_OBJECT__,"valid_read",x,getuid(this_object()))
+#define MAY_WRITE(x)  call_other(__MASTER_OBJECT__,"valid_write",x,getuid(this_object()))
+#define MAY_DELETE(x) call_other(__MASTER_OBJECT__,"remove_file",x,getuid(this_object()))
+
+#define MAXLEN  50000
+
+#define P_VARIABLES "variables"
+
+#define MAN_OPTS   "mri"
+#define MAN_M            1           // Matchen des Begriffs
+#define MAN_R            2           // Regexp-Matchen
+#define MAN_I            4           // Interaktive Hilfe (deaktiviert)
+
+#define MKDIR_OPTS "vrp"
+#define MKDIR_V          1           // Verbose: Ausgeben, was gemacht wird
+#define MKDIR_R          2           // Rekursiv alle hoeheren
+                                     // Verzeichnisse erstellen
+#define MKDIR_P          2           // das gleiche wie MKDIR_R
+
+#define RMDIR_OPTS "v"
+#define RMDIR_V          1           // Verbose: Ausgeben, was gemacht wird
+
+#define RM_OPTS   "vrmi"
+#define RM_V            1            // Verbose: Ausgeben, was gemacht wird
+#define RM_R            2            // Verzeichnisse rekursiv loeschen
+#define RM_M            4            // DateiMASKE beachten
+#define RM_I            8            // Interaktiv loeschen (immer fragen)
+
+#define UPD_OPTS  "afilrmbvcdhsC"
+#define UPD_A            1           // Alle Instanzen bearbeiten
+#define UPD_F            2           // Alle Instanzen finden und anzeigen
+#define UPD_I            4           // Geerbte Klassen aktualisieren
+#define UPD_L            8           // zerstoeren und neu laden
+#define UPD_R           16           // neu laden, falls zerstoert
+#define UPD_M           32           // alle geerbten Klassen auf
+                                     // aktualitaet Testen und
+                                     // ggf. aktualisieren
+#define UPD_B           64           // Backtrace bei Fehlern
+#define UPD_V          128           // Erbschaftslisten mit ausgeben
+#define UPD_C          256           // Properties erhalten
+#define UPD_D          512           // Objektinhalt komplett destructen
+#define UPD_H         1024           // Hard-Destruct (kein remove())
+#define UPD_S         2048           // Silent
+#define UPD_CONF      4096           // Configure() erzwingen (d.h. kein Update,
+                                     // wenn Configure() nicht definiert ist)
+#define UPD_LOAD      8192           // laden, falls nicht geladen (nur
+                                     // intern fuer 'load)
+
+#define CP_OPTS         "vrfmi"
+#define CP_V            1            // Verbose: Ausgeben, was gemacht wird
+#define CP_R            2            // Rekursiv kopieren
+#define CP_F            4            // Force (nie fragen)
+#define CP_M            8            // DateiMASKE beachten
+#define CP_I           16            // Interaktiv kopieren (immer fragen)
+
+#define MV_OPTS         "vrfmi"
+#define MV_V            1            // Verbose: Ausgeben, was gemacht wird
+#define MV_R            2            // Immer auch Dateien im Dir moven
+#define MV_F            4            // Force (nie fragen)
+#define MV_M            8            // DateiMASKE beachten
+#define MV_I           16            // Interaktiv bewegen (immer fragen)
+
+#define CD_OPTS         "ls"
+#define CD_L            1            // .readme ausgeben
+#define CD_S            2            // .readme unterdruecken
+#define CD_B            4            // Zurueck zum letzten Verzeichnis
+
+#define LS_OPTS         "alrtsug"
+#define LS_A            1            // ALLE Files anzeigen
+#define LS_L            2            // Lange Ausgabe
+#define LS_R            4            // Rueckwaerts ausgeben
+#define LS_T            8            // Nach Zeit ordnen
+#define LS_S            16           // Nach Größe ordnen
+#define LS_U            32           // UID anzeigen
+#define LS_G            64           // Gruppe anzeigen
+
+#define CLONE_OPTS      "f"
+#define CLONE_F         1            // Auf jeden Fall versuchen zu clonen
+
+#define GREP_OPTS       "chilnvrmf"
+#define GREP_C          1            // Nur Zahl der Zeilen ausgeben
+#define GREP_H          2            // Dateinamen nicht mit ausgeben
+#define GREP_I          4            // Gross-/Kleinschreibung ignorieren
+#define GREP_L          8            // Dateinamen immer mit ausgeben
+#define GREP_N          16           // Zeilennummern mit ausgeben
+#define GREP_V          32           // Nur Zeilen matchen, die NICHT passen
+#define GREP_R          64           // Rekursiv suchen
+#define GREP_M          128          // Dateimaske angegeben
+#define GREP_F          256          // Ausgabe in Datei
+
+#define ACCESS_OPTS     "arlfgm"
+#define ACCESS_A        1            // Berechtigung hinzufuegen
+#define ACCESS_R        2            // Berechtigung entfernen
+#define ACCESS_L        4            // Berechtigungen anzeigen
+#define ACCESS_F        8            // Berechtigung fuer Dateien anzeigen
+#define ACCESS_G        16           // Das ganze fuer Gruppen
+#define ACCESS_M        32           // Das ganze fuer Gruppenleiter
+
+// Funktioniert nur, wenn SNOOP_L == SF_LOCKED und SNOOP_F == SF_FORCE
+// (Definitionen aus /sys/snooping.h)
+#define SNOOP_OPTS      "lf"
+#define SNOOP_L         1            // Niedriger Magier kann sich nicht
+                                     // dazwischenklinken
+#define SNOOP_F         2            // Snoope snoopenden Magier, wenn der
+                                     // Charakter schon gesnoopt wird
+
+#define NO_CHECK        M_GO|M_SILENT|M_NO_SHOW|M_NO_ATTACK|M_NOCHECK
+
+#define INV_SAVE        "/room/void.c"
+
+#define USAGE(str)      (_notify_fail(break_string(sprintf("Syntax: %s\n", str),77)), 0)
+
+#define BASENAME 0
+#define FILESIZE 1
+#define FILEDATE 2
+#define FULLNAME 3
+#define PATHNAME 4
+#define DESTNAME 5
+#define SUBDIRSIZE 6
+
+#define RET_OK 1
+#define RET_FAIL 0
+#define RET_JUMP -1
+#define RET_DELETE -2
+
+#define MODE_LSA   0
+#define MODE_LSB   1
+#define MODE_CP    2
+#define MODE_MV    3
+#define MODE_RM    4
+#define MODE_CD    5
+#define MODE_CAT   6
+#define MODE_GREP  7
+#define MODE_ED    8
+#define MODE_UPD   9
+#define MODE_MORE  10
+#define MODE_RMDIR 11
+#define MODE_CLONE 12
+
+#define COLORS ([ "none": ANSI_NORMAL, \
+                  "bold": ANSI_BOLD, \
+                  "blink": ANSI_BLINK, \
+                  "invers": ANSI_INVERS, \
+                  "black": ANSI_BLACK, \
+                  "red": ANSI_RED, \
+                  "green": ANSI_GREEN, \
+                  "yellow": ANSI_YELLOW, \
+                  "blue": ANSI_BLUE, \
+                  "purple": ANSI_PURPLE, \
+                  "cyan": ANSI_CYAN, \
+                  "white": ANSI_WHITE, \
+                  "bblack": ANSI_BG_BLACK, \
+                  "bred": ANSI_BG_RED, \
+                  "bgreen": ANSI_BG_GREEN, \
+                  "byellow": ANSI_BG_YELLOW, \
+                  "bblue": ANSI_BG_BLUE, \
+                  "bpurple": ANSI_BG_PURPLE, \
+                  "bcyan": ANSI_BG_CYAN, \
+                  "bwhite": ANSI_BG_WHITE, \
+                ])
+
+#define VALID_READ_CL  symbol_function("valid_read",__MASTER_OBJECT__)
+#define VALID_WRITE_CL symbol_function("valid_write",__MASTER_OBJECT__)
+#define CREATOR_CL  symbol_function("creator_file",__MASTER_OBJECT__)
+
+#define DIR "directory"
+#define OBJ "loaded"
+#define VC  "virtual"
+
+#ifdef DEBUG
+#undef DEBUG
+#endif
+#define DEBUG(x) if (find_player(SHELLDEBUGGER)) \
+                     tell_object(find_player(SHELLDEBUGGER),x+"\n")
+
+#endif // _MAGIER_H_
+
+
+#ifdef NEED_PROTOTYPES
+#ifndef _MAGIER_H_PROTOS_
+#define _MAGIER_H_PROTOS_
+static string *parseargs(string cmdline,int flags,string opts,int build_fn);
+static varargs void asynchron(mixed* array, closure cmd, mixed data, mixed flags, int c);
+static varargs mixed *file_list(string *files, int mode, int recursive, string dest, string mask);
+static mixed to_filename(string str);
+static int _verfolge(string str);
+static string glob2regexp(string str);
+
+varargs public void More(string txt, int file,mixed ctrl, mixed *ctrlargs, int flags);
+#endif // _MAGIER_H_PROTOS_
+#endif // NEED_PROTOTYPES
+
+