| // 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 |
| |
| |