magier_ext.c-Dateireferenz

#include <wizlevels.h>
#include <logging.h>
#include <magier.h>
#include <snooping.h>
#include <player/telnetneg.h>
#include <properties.h>
#include <files.h>
Include-Abhängigkeitsdiagramm für magier_ext.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

static int _set (mixed args)
static int _pwd ()
static int _cd2 (string cmdline)
static int _cd (string cmdline)
static string _set_currentdir (string path)
private string _query_currentdir ()
void renew_prompt ()
private string _prompt_subst (string str)
static int _prompt (string args)
static int _showpresay (string cmdline)
static int _exec (string filename)
nomask int QueryAllowSnoop (object who)
static int _sallow (string str)
static int _snoop (string cmdline)
static int _mschau (string str)
static int _protect (string str)
static int _invis (string inform)
static int _vis (string inform)
static int _localcmd ()
static int _traenke (string str)
static int norm_rusage ()
static varargs void asynchron (mixed *array, closure cmd, mixed data, mixed flags, int c)
static mixed * _query_localcmds ()
static void initialize ()
static void reconnect ()

Variablen

inherit std shells magier parsing
inherit std shells magier upd
inherit std shells magier fileview
inherit std shells magier objects
inherit std shells magier fileedit
inherit std shells magier players
inherit std shells magier admin
inherit std shells magier moving
inherit std shells magier comm
static private string snoop_allowed
static private object snoopee
static int _hbstop
static int _age

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 12 der Datei magier_ext.c.


Dokumentation der Funktionen

static int _cd ( string  cmdline  )  [static]

Definiert in Zeile 136 der Datei magier_ext.c.

Benutzt _cd2() und _unparsed_args().

00137 {
00138   return _cd2(_unparsed_args());
00139 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static int _cd2 ( string  cmdline  )  [static]

Definiert in Zeile 90 der Datei magier_ext.c.

Benutzt CD_L, CD_OPTS, CD_S, dest(), file_list(), FILESIZE, flags, FSIZE_DIR, FULLNAME, IS_WIZARD, MODE_CD, notify_fail(), P_CURRENTDIR, P_VARIABLES, parseargs(), QueryProp() und SetProp().

Wird benutzt von _cd().

00091 {
00092   string dest,tmp;
00093   int flags;
00094   mixed *args;
00095   
00096   args=parseargs(cmdline,&flags,CD_OPTS,1);
00097   if (flags==-1) return 0;
00098   if (sizeof(args)>1)
00099     return notify_fail("Man kann sich (leider) nur in einem "
00100                        "Verzeichnis gleichzeitig befinden.\n"),0;
00101   if (!sizeof(args))
00102   {
00103     if (IS_WIZARD(this_object()))
00104       dest="/players/"+getuid(this_object());
00105     else
00106       dest="/doc";
00107   }
00108   else
00109   {
00110     dest=args[0];
00111     if (dest!="/")
00112     {
00113       args=file_list(({dest}),MODE_CD,0,"/");
00114       args = filter(args, function int (mixed arr)
00115           { return arr[FILESIZE] == FSIZE_DIR; } );
00116 
00117       if (!sizeof(args))
00118         return notify_fail("cd: "+dest+
00119                          ": Kein solches Verzeichnis gefunden.\n"),0;
00120       if (sizeof(args)>1)
00121         return notify_fail("cd: "+dest+": Maske ist nicht eindeutig.\n"),0;
00122       dest=args[0][FULLNAME];
00123     }
00124     if (!IS_WIZARD(this_object())&&dest[0..3]!="/doc") dest="/doc";
00125   }
00126   printf("Aktuelles Verzeichnis ist jetzt: %s\n",SetProp(P_CURRENTDIR,dest));
00127   tmp="";
00128   if (((flags&CD_L)||
00129        ((!m_contains(&tmp,QueryProp(P_VARIABLES),"CD_SHORT")||
00130          tmp!="1")&&(!(flags&CD_S)))))
00131     tell_object(this_object(),
00132                 read_file(dest+(dest[<1]=='/'?".readme":"/.readme"))||"");
00133   return 1;
00134 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static int _exec ( string  filename  )  [static]

Definiert in Zeile 274 der Datei magier_ext.c.

00275 {
00276   object ob;
00277   if (!IS_LORD(this_object())) return 0;
00278   if (this_player()!=this_interactive()) return 0;
00279   if (this_player()!=this_object()) return 0;
00280   if (!(filename=_unparsed_args())) return USAGE("exec <objektname>");
00281   filename=(string)"secure/master"->_get_path(filename,getuid());
00282   if (file_size(filename)<0&&(!to_filename(filename+".c"))||
00283       file_size(to_filename(filename+".c"))<0)
00284   {
00285     printf("exec: %s: Datei nicht vorhanden oder ein Verzeichnis.\n",filename);
00286     return 1;
00287   }
00288   if (catch(call_other(filename,"????"))) 
00289   {
00290     printf("exec: Fehler beim Laden von %s.\n",filename);
00291     return 1;
00292   }
00293   if (!(ob=clone_object(filename))) return 0;
00294   if (getuid(ob) != getuid(this_object()))
00295   {
00296     printf("exec: UID-Konflikt: %s <-> %s.\n",getuid(ob),
00297            getuid(this_object()));
00298     destruct(ob);
00299     return 1;
00300   }
00301   log_file(SHELLLOG("EXEC"),
00302          sprintf("%12.12s %40.40s %25.25s\n",
00303                  capitalize(getuid(this_object())),filename,dtime(time())[4..]));
00304   disable_commands();
00305   exec(ob,this_object());
00306   if (interactive(this_object())||!interactive(ob))
00307   {
00308     enable_commands();
00309     printf("Fehler bei EXEC: Uebertragung der Shell "
00310            "nicht moeglich.\n");
00311     return 1;
00312   }
00313   ob->start_player(capitalize(getuid(this_object())));
00314   remove();
00315   return 1;
00316 }

static int _invis ( string  inform  )  [static]

Definiert in Zeile 451 der Datei magier_ext.c.

00452 {
00453 
00454   if (QueryProp(P_INVIS))
00455     return printf("Du bist doch schon unsichtbar!\n"),1;
00456   tell_room(environment(),sprintf("%s %s.\n",capitalize(Name()),
00457             QueryProp(P_MMSGOUT)),({ this_object() }));
00458   if (inform=="e") "/secure/merlin"->notify_player_leave(getuid());
00459   SetProp(P_INVIS, QueryProp(P_AGE));
00460   printf("Du bist jetzt unsichtbar.\n");
00461   return 1;
00462 }

static int _localcmd (  )  [static]

Definiert in Zeile 481 der Datei magier_ext.c.

00482 {
00483   int size,more;
00484   string *verbs,result;
00485 
00486   // Per Umweg ueber Mapping doppelte Werte einstampfen
00487   size=sizeof(verbs=m_indices(mkmapping(query_actions(this_object()))));
00488   verbs-=({""});
00489   more=(size>sizeof(verbs));
00490   if (!sizeof(verbs))
00491   {
00492     if (more)
00493       printf("Die vorhandenen Befehle koennen nicht angezeigt werden, "
00494              "da sie per 'add_action(\"funktion\",\"\",1)' definiert "
00495              "wurden.\n");
00496     else
00497       printf("Dir stehen keine Befehle zur Verfuegung ... eigenartig!\n");
00498     return 1;
00499   }
00500   verbs=sort_array(verbs,#'>);
00501   result=break_string(sprintf("\'%s\'",implode(verbs,"' '")),78);
00502   return printf("\n%'-'78.78s\nDie fuer Dich aktuell verfuegbaren "
00503                 "Befehle sind:\n\n%s\n%s%'-'78.78s\n","",result,
00504                 more?"Zudem wurden Befehle per 'add_action("
00505                 "\"funktion\",\"\",1)' definiert.\n":"",""),1;
00506 }

static int _mschau ( string  str  )  [static]

Definiert in Zeile 399 der Datei magier_ext.c.

00400 {
00401   if (this_interactive()!=this_object()) return 0;
00402   if (str=="ja"||str=="an"||str=="ein")
00403   {
00404     if ( QueryProp(P_WANTS_TO_LEARN) )
00405       printf("Du hast den Magier-Modus doch schon eingeschaltet!\n");
00406     else
00407     {
00408       printf("Du hast jetzt den Magier-Modus eingeschaltet.\n" );
00409       SetProp(P_WANTS_TO_LEARN, 1);
00410     }
00411     return 1;
00412   }
00413   if (str=="nein"||str=="aus")
00414   {
00415     if (QueryProp(P_WANTS_TO_LEARN))
00416     {
00417       printf( "Du schaltest den Magier-Modus aus.\n");
00418       set_heart_beat(1);
00419       SetProp(P_WANTS_TO_LEARN,0);
00420     }
00421     else
00422       printf("Du hast den Magier-Modus doch schon ausgeschaltet.\n");
00423     return 1;
00424   }
00425   return USAGE("mschau [an|ein|ja|aus|nein]\n");
00426 }

static int _prompt ( string  args  )  [static]

Definiert in Zeile 223 der Datei magier_ext.c.

Benutzt _unparsed_args() und USAGE.

00224 {
00225   string *pargs;
00226 
00227   args=(extern_call()?_unparsed_args():args);
00228   if (!strlen(args)) args="> ";
00229   if (args[0]=='"') args=args[1..<2];     //");
00230   if(!sizeof(pargs = regexplode(args, "\\\\[huwn]")))
00231     return USAGE("prompt \"<Eingabeaufforderungsdefinition>\"");
00232   pargs=map(pargs,#'_prompt_subst);
00233   SetProp(P_PROMPT,implode(pargs,""));
00234   _set_currentdir(_query_currentdir());  // Pfad einfuegen
00235   return 1;
00236 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

private string _prompt_subst ( string  str  ) 

Definiert in Zeile 206 der Datei magier_ext.c.

Benutzt MUDNAME.

00207 {
00208   switch(str)
00209   {
00210     case "\\h": return strlen(MUDNAME)?MUDNAME:"Mud ohne Namen";
00211     case "\\u": return capitalize(getuid(this_object()));
00212     case "\\n": return "\n";
00213   }
00214   return str;
00215 }

static int _protect ( string  str  )  [static]

Definiert in Zeile 432 der Datei magier_ext.c.

00433 {
00434  
00435   if (this_object()!=this_interactive()) return 0;
00436   if (!strlen(str))
00437     return USAGE("protect <propertyname>\n");
00438   Set(str, PROTECTED, F_MODE);
00439   return printf("Deine Property %s ist jetzt %sgeschuetzt.\n",
00440                 str,(Query(str,F_MODE) & PROTECTED?"":"nicht mehr ")),1;
00441 }

static int _pwd (  )  [static]

Definiert in Zeile 84 der Datei magier_ext.c.

Benutzt P_CURRENTDIR und QueryProp().

00085 {
00086   printf("Aktuelles Verzeichnis: %s\n",QueryProp(P_CURRENTDIR));
00087   return 1;
00088 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

private string _query_currentdir (  ) 

Definiert in Zeile 177 der Datei magier_ext.c.

Benutzt c, P_CURRENTDIR, Query() und Set().

Wird benutzt von renew_prompt().

00178 {
00179   string c;
00180   if(!c=Query(P_CURRENTDIR))
00181     return Set(P_CURRENTDIR, "/players/"+getuid(this_object()));
00182   return c;
00183 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static mixed* _query_localcmds (  )  [static]

Definiert in Zeile 602 der Datei magier_ext.c.

00603 {
00604   return ({
00605     ({"set","_set",0,LEARNER_LVL}),
00606     ({"pwd","_pwd",0,LEARNER_LVL}),
00607     ({"cd","_cd",0,LEARNER_LVL}),
00608     ({"prompt","_prompt",0,LEARNER_LVL}),
00609     ({"showpresay","_showpresay",0,LEARNER_LVL}),
00610     ({"exec","_exec",0,ARCH_LVL}),
00611     ({"sallow","_sallow",0,LEARNER_LVL}),
00612     ({"snoop","_snoop",0,WIZARD_LVL}),
00613     ({"mschau","_mschau",0,LEARNER_LVL}),
00614     ({"protect","_protect",0,WIZARD_LVL}),
00615     ({"invis","_invis",0,LEARNER_LVL}),
00616     ({"vis","_vis",0,LEARNER_LVL}),
00617     ({"localcmd","_localcmd",0,LEARNER_LVL}),
00618     ({"traenke","_traenke",0,DOMAINMEMBER_LVL})})
00619     +fileview::_query_localcmds()
00620     +upd::_query_localcmds()
00621     +objects::_query_localcmds()
00622     +fileedit::_query_localcmds()
00623 //    +todo::_query_localcmds()
00624     +players::_query_localcmds()
00625     +admin::_query_localcmds()
00626     +moving::_query_localcmds()
00627     +comm::_query_localcmds();
00628 }

static int _sallow ( string  str  )  [static]

Definiert in Zeile 329 der Datei magier_ext.c.

00330 {
00331   object ob;
00332 
00333   if (!strlen(str))
00334   {
00335     if (!snoop_allowed) return USAGE("sallow [<name>]\n");
00336     str=snoop_allowed;
00337     snoop_allowed=0;
00338     printf("Du entziehst %s die Erlaubnis zum Snoopen.\n",capitalize(str));
00339     ob=query_snoop(this_player());
00340     if (!ob||(getuid(ob)!=str)) return 1;
00341     tell_object(ob,break_string(sprintf("%s entzieht Dir die "
00342             "Erlaubnis zum snoopen und zwingt Dich so dazu, mit "
00343             "dem Snoopen aufzuhoeren.\n",capitalize(getuid()))));
00344     snoop(ob);
00345     return 1;
00346   }
00347   if (snoop_allowed) _sallow(""); // Erstmal abschalten
00348   ob=find_player(lower_case(str));
00349   str=capitalize(str);
00350   if (!ob) return
00351       printf("sallow: Spieler %s konnte nicht gefunden werden.\n",str),1;
00352   if (query_wiz_grp(ob)>query_wiz_grp(this_player()))
00353     return printf("sallow: %s hat einen hoeheren Rang als Du und kann "
00354                   "Dich daher ohnehin snoopen.\n",str),1;
00355   snoop_allowed=getuid(ob);
00356   return printf("sallow: Du erlaubst %s, Dich zu snoopen.\n",str),1;
00357 }

static int _set ( mixed  args  )  [static]

Definiert in Zeile 41 der Datei magier_ext.c.

Benutzt _unparsed_args(), m_delete(), P_VARIABLES, QueryProp(), USAGE und vars().

00042 {
00043   int pos;
00044   string var;
00045   mixed val;
00046   mapping vars;
00047 
00048   if(!args=_unparsed_args())
00049   {
00050     if(!sizeof(vars=QueryProp(P_VARIABLES))) 
00051       printf("Du hast noch keine Variablen definiert!\n");
00052     else
00053     {
00054       printf("Du hast die folgenden Variablen definiert:\n");
00055       walk_mapping(vars,((: printf(" %-20s = %s\n",$1,
00056                                  pointerp($2)?implode($2,":"):$2) :)));
00057 
00058     }
00059     return 1;
00060   }
00061   pos = member(args,' ');
00062   if(pos == -1)
00063     if(strlen(args))
00064       {
00065         efun::m_delete(QueryProp(P_VARIABLES), args);
00066         printf("Variable %s wurde geloescht.\n",args);
00067         return 1;
00068       }
00069     else return USAGE("set <variable> <wert>");
00070   var = args[0..pos-1];
00071   val = (member(args[pos+1..],':')>-1?
00072          explode(args[pos+1..], ":") :
00073          args[pos+1..]);
00074   vars=QueryProp(P_VARIABLES);
00075   vars+= ([var : val]);
00076   printf("Variable gesetzt: %s = %s\n",var,args[pos+1..]);
00077   return 1;
00078 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static string _set_currentdir ( string  path  )  [static]

Definiert in Zeile 141 der Datei magier_ext.c.

Benutzt ctime(), DO, EOR, IAC, P_CURRENTDIR, P_PROMPT, query_telnet_neg(), QueryProp(), Set(), TELOPT_EOR und TN.

Wird benutzt von renew_prompt().

00142 {
00143     string promptstring;
00144     mapping TN;
00145 
00146     if( !(promptstring = QueryProp(P_PROMPT)) || promptstring == "" )
00147         promptstring = "> ";
00148     else
00149         promptstring = implode( explode(promptstring, "\\w"), path );
00150 
00151     TN=query_telnet_neg();
00152 
00153     if ( mappingp(TN) && mappingp(TN["received"])
00154          && (TN["received"][TELOPT_EOR,1] == DO) )
00155         set_prompt(lambda(({}),
00156       ({ #'efun::binary_message,
00157          ({ #'+,
00158             ({ #'to_array,
00159                ({ #'implode,
00160                     ({ #'explode,promptstring,"\\t" }),
00161                         ({ #'[..],({ #'ctime }),11, 15 })
00162                })
00163             }),'({ IAC, EOR })
00164          })
00165       })), this_object());
00166   else
00167     set_prompt(
00168                lambda(({}),
00169                        ({ #'implode,
00170                                ({ #'explode,promptstring, "\\t" }),
00171                                ({ #'[..],({ #'ctime }),11, 15 })
00172                        })), this_object());
00173 
00174   return Set(P_CURRENTDIR, path);
00175 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static int _showpresay ( string  cmdline  )  [static]

Definiert in Zeile 242 der Datei magier_ext.c.

00243 {
00244   int presay;
00245   presay=QueryProp(P_CAN_FLAGS)&CAN_PRESAY;
00246   cmdline=_unparsed_args(0);
00247   if (!strlen(cmdline))
00248   {
00249     printf("Dein Presay wird im Moment %sangezeigt.\n"
00250            "%sschalten mit \'showpresay %s\'.\n",
00251            presay?"":"nicht ",presay?"Aus":"Ein",
00252            presay?"aus":"ein");
00253     return 1;
00254   }
00255   if (cmdline=="ein"||cmdline=="an")
00256   {
00257     printf("Dein Presay wird jetzt angezeigt.\n");
00258     SetProp(P_CAN_FLAGS,QueryProp(P_CAN_FLAGS)|CAN_PRESAY);
00259     return 1;
00260   }
00261   if (cmdline=="aus")
00262   {
00263     printf("Dein Presay wird jetzt nicht mehr angezeigt.\n");
00264     SetProp(P_CAN_FLAGS,QueryProp(P_CAN_FLAGS)&~CAN_PRESAY);
00265     return 1;
00266   }
00267   return USAGE("showpresay [ein|an|aus]");
00268 }

static int _snoop ( string  cmdline  )  [static]

Definiert in Zeile 359 der Datei magier_ext.c.

00360 {
00361   object ob;
00362   int flags;
00363   string *args;
00364 
00365   if (!strlen(cmdline=_unparsed_args())||
00366       sizeof(args=parseargs(cmdline,&flags,SNOOP_OPTS,0))!=1||flags==-1)
00367   {
00368     if (!snoop(this_object())) return USAGE("snoop [-" SNOOP_OPTS
00369                                             "] [<spieler>]\n");
00370     if (snoopee)
00371       printf("Du snoopst %s jetzt nicht mehr.\n",capitalize(getuid(snoopee)));
00372     else
00373     {
00374       printf("Du hoerst auf zu snoopen.\n");
00375     // evtl. irgendetwas loggen ... sollte eigentlich nicht passieren.
00376     }
00377     snoopee=(object)0;
00378     return 1;
00379   }
00380   SetProp(P_SNOOPFLAGS,flags); // FUNKTIONIERT NUR, WENN magier.h und
00381                                // snooping.h abgeglichen sind
00382   if (!(ob = find_player(args[0])))
00383     return printf("snoop: Konnte keinen Spieler '%s' finden.\n",
00384                   capitalize(args[0])),1;
00385   if (!snoop(this_player(),ob))
00386     return printf("snoop: Der Versuch, %s zu snoopen, ist "
00387                   "fehlgeschlagen.\n%s",capitalize(args[0]),
00388                   ((~flags)&SNOOP_F)?"Eventuell funktioniert es mit dem "
00389                   "Flag '-f'.\n":""),1;
00390   snoopee=ob;
00391   return printf("Du snoopst jetzt %s.\n",capitalize(getuid(ob))),1;
00392 }

static int _traenke ( string  str  )  [static]

Definiert in Zeile 512 der Datei magier_ext.c.

Benutzt P_TRANK_FINDEN, QueryProp() und SetProp().

00513 {
00514   if(SetProp(P_TRANK_FINDEN, !QueryProp(P_TRANK_FINDEN)))
00515     write("Du kannst jetzt Zaubertraenke finden.\n");
00516   else
00517     write("Du findest jetzt keine Zaubertraenke mehr.\n");
00518   return 1;
00519 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static int _vis ( string  inform  )  [static]

Definiert in Zeile 464 der Datei magier_ext.c.

00465 {
00466   if (!QueryProp(P_INVIS))
00467     return printf("Du bist doch schon sichtbar.\n"),1;
00468    tell_room(environment(),sprintf("%s %s.\n",capitalize(Name()),
00469             QueryProp(P_MMSGIN)),({ this_object() }));
00470   SetProp(P_INVIS, 0);
00471   if (inform=="e") "/secure/merlin"->notify_player_enter(getuid());
00472   printf("Du bist jetzt sichtbar.\n");
00473   return 1;
00474 }

static varargs void asynchron ( mixed *  array,
closure  cmd,
mixed  data,
mixed  flags,
int  c 
) [static]

Definiert in Zeile 540 der Datei magier_ext.c.

Benutzt call_out(), i, norm_rusage(), RET_DELETE, RET_JUMP, SUBDIRSIZE und UPD_LOAD.

Wird benutzt von _upd().

00541 {
00542   int i, j, k;
00543   mixed ret_val;
00544   string cmd_string;
00545 
00546   k = norm_rusage()+5;
00547   j = sizeof(array);
00548   i=0;
00549   
00550   switch (cmd_string=explode(sprintf("%O",cmd),"->")[1])
00551   {
00552     case "_make":     cmd_string=(data&UPD_LOAD?"load":"upd");break;
00553     case "cp_file":   cmd_string =(data?"mv":"cp"); break;
00554     case "grep_file": cmd_string = "grep"; break;
00555     case "rm_file":   cmd_string = "rm"; break;
00556     default: break;
00557   }
00558   
00559   while(i < j && get_eval_cost() > 200000 && norm_rusage()<k)
00560     // Sowohl Too-Long-Eval als auch Lag verhindern
00561   {
00562     ret_val=apply(cmd,array[i],data, flags);
00563     if (closurep(ret_val))
00564     {
00565       if(c) tell_object(this_object(),
00566                sprintf("%s: Verlasse Asynchronen Modus.\n",cmd_string));
00567       funcall(ret_val,array[i..],data,flags);
00568       return;
00569     }
00570     if (ret_val==RET_DELETE)
00571     {
00572       array[i+array[i][SUBDIRSIZE]+1..i+array[i][SUBDIRSIZE]]=
00573         ({ (array[i][0..5]+({0})) });
00574     }
00575     if (ret_val==RET_JUMP) i+=array[i][SUBDIRSIZE];
00576     i++;
00577   }
00578   if(sizeof(array = array[i..])) 
00579   {  
00580     if(!c) tell_object(this_object(),
00581               sprintf("%s: Asynchroner Modus aktiviert!\n", cmd_string));
00582     call_out(#'asynchron, 1, array, cmd, data,flags, 1);
00583   }
00584   else
00585   {
00586     if(c) tell_object(this_object(),
00587                       sprintf("%s: abgeschlossen.\n",cmd_string));
00588       else if (query_verb()) tell_object(this_object(),
00589             sprintf("%s: abgeschlossen.\n",query_verb()));
00590   }
00591   return;                                                    
00592 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void initialize (  )  [static]

Definiert in Zeile 634 der Datei magier_ext.c.

00635 {
00636   Set(P_PROMPT, SAVE, F_MODE_AS);
00637   Set(P_VARIABLES,SAVE,F_MODE_AS);
00638   Set("filesys",SAVE,F_MODE_AD);   // P_FILESYS ist obsolet
00639   Set("short_cwd",SAVE,F_MODE_AD); // P_SHORT_CWD auch
00640   if(!mappingp(QueryProp(P_VARIABLES)))
00641     SetProp(P_VARIABLES, ([]));
00642   _prompt(QueryProp(P_PROMPT));
00643 //  todo::initialize();
00644   _cd2("");
00645   return;
00646 }

static int norm_rusage (  )  [static]

Definiert in Zeile 521 der Datei magier_ext.c.

Benutzt rusage().

Wird benutzt von asynchron().

00521                          {
00522                 mixed* r;
00523   r = rusage();
00524   return r[0]/100 + r[1]/100;
00525 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

nomask int QueryAllowSnoop ( object  who  ) 

Definiert in Zeile 324 der Datei magier_ext.c.

00325 {
00326   return (getuid(who) == snoop_allowed);
00327 }

static void reconnect (  )  [static]

Definiert in Zeile 648 der Datei magier_ext.c.

00648 { _cd(QueryProp(P_CURRENTDIR)); }

void renew_prompt (  ) 

Definiert in Zeile 194 der Datei magier_ext.c.

Benutzt _query_currentdir() und _set_currentdir().

00195 {
00196     _set_currentdir(_query_currentdir());
00197 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:


Variablen-Dokumentation

int _age [static]

Definiert in Zeile 449 der Datei magier_ext.c.

Wird benutzt von FinalSetup() und upd_my_age().

int _hbstop [static]

Definiert in Zeile 448 der Datei magier_ext.c.

Wird benutzt von FinalSetup() und upd_my_age().

inherit std shells magier admin

Definiert in Zeile 25 der Datei magier_ext.c.

inherit std shells magier comm

Definiert in Zeile 27 der Datei magier_ext.c.

inherit std shells magier fileedit

Definiert in Zeile 22 der Datei magier_ext.c.

inherit std shells magier fileview

Definiert in Zeile 20 der Datei magier_ext.c.

inherit std shells magier moving

Definiert in Zeile 26 der Datei magier_ext.c.

inherit std shells magier objects

Definiert in Zeile 21 der Datei magier_ext.c.

inherit std shells magier parsing

Definiert in Zeile 18 der Datei magier_ext.c.

inherit std shells magier players

Definiert in Zeile 24 der Datei magier_ext.c.

private string snoop_allowed [static]

Definiert in Zeile 321 der Datei magier_ext.c.

private object snoopee [static]

Definiert in Zeile 322 der Datei magier_ext.c.

inherit std shells magier upd

Definiert in Zeile 19 der Datei magier_ext.c.

Wird benutzt von create() und reset().

Erzeugt am Thu Jun 3 14:43:14 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3