todo.c-Dateireferenz

#include <wizlevels.h>
#include <defines.h>
#include <magier.h>
#include <player.h>
Include-Abhängigkeitsdiagramm für todo.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES
#define SAVEFILENAME   sprintf("/players/%s/.todoliste",getuid())

Funktionen

static mixed * _query_localcmds ()
private void todo_save ()
static void initialize ()
static void _todo_neu2 (string input, string carry)
private int _todo_neu (string cmdline)
private int _todo_loeschen (string cmdline)
private int _todo_anzeigen (string cmdline)
private int _todo_verschieben (string cmdline)
private int _todo_hilfe ()
static int _todo (string cmdline)

Variablen

static private status todo_initialized
static private mixed * todo_data
mixed * todo_data_public

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 10 der Datei todo.c.

#define SAVEFILENAME   sprintf("/players/%s/.todoliste",getuid())

Definiert in Zeile 14 der Datei todo.c.


Dokumentation der Funktionen

static mixed* _query_localcmds (  )  [static]

Definiert in Zeile 19 der Datei todo.c.

Benutzt WIZARD_LVL.

00020 {
00021   return ({
00022     ({"todo","_todo",0,WIZARD_LVL})});
00023 }

static int _todo ( string  cmdline  )  [static]

Definiert in Zeile 202 der Datei todo.c.

Benutzt _todo_anzeigen(), _todo_hilfe(), _todo_loeschen(), _todo_neu(), _todo_verschieben(), _unparsed_args() und notify_fail().

00203 {
00204   string *args;
00205   
00206   cmdline=_unparsed_args(1);
00207   notify_fail("Falsche Syntax. 'todo hilfe' zeigt eine Hilfe an.\n");
00208   if (strlen(cmdline))
00209   {
00210     args=explode(cmdline," ");
00211     switch(args[0])
00212     {
00213       case "neu":         return _todo_neu(cmdline);
00214       case "loeschen":    return _todo_loeschen(cmdline);
00215       case "anzeigen":    return _todo_anzeigen(cmdline);
00216       case "verschieben": return _todo_verschieben(cmdline);
00217       case "hilfe":       return _todo_hilfe();
00218      default:            return 0;
00219     }
00220   }
00221   return 0;
00222 }

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

private int _todo_anzeigen ( string  cmdline  ) 

Definiert in Zeile 116 der Datei todo.c.

Benutzt break_string(), BS_LEAVE_MY_LFS, dtime(), More(), notify_fail(), output und todo_data.

Wird benutzt von _todo().

00117 {
00118   int nr1,nr2;
00119   string output;
00120   if (!sizeof(todo_data))
00121     return notify_fail("Deine Todo-Liste hat keine Eintraege.\n"),0;
00122   switch(sscanf(cmdline,"anzeigen %d bis %d",nr1,nr2)) 
00123   {
00124   case 0: nr1=1; nr2=sizeof(todo_data); break;
00125   case 1: nr2=nr1; break;
00126   case 2: break;
00127   }
00128   if (nr1<0) nr1=sizeof(todo_data)+nr1+1;
00129   if (nr2<0) nr2=sizeof(todo_data)+nr2+1;
00130   if (nr1<1||nr2<1||nr1>sizeof(todo_data)||nr2>sizeof(todo_data))
00131     return notify_fail(sprintf("Deine Todo-Liste hat (gluecklicherweise) "
00132                                "nur %d Eintra%s.\n",sizeof(todo_data),
00133                                (sizeof(todo_data)>1?"ege":"g"))),0;
00134   output="\n-----------------------------------------------------------------------------\n";
00135   if (nr1>nr2) // Rueckwaerts
00136   {
00137     while(nr1>=nr2)
00138       output+=sprintf("Eintrag Nr. %d von %s:\n%s\n\n",nr1--,
00139            dtime(todo_data[nr1][0]),break_string(todo_data[nr1][1],78,5,
00140                                        BS_LEAVE_MY_LFS));
00141   }
00142   else
00143   {
00144     nr1--;
00145     while (nr1<nr2)
00146       output+=sprintf("\nEintrag Nr. %d von %s:\n%s\n",(nr1+1),
00147            dtime(todo_data[nr1][0]),break_string(todo_data[nr1++][1],78,5,
00148                                        BS_LEAVE_MY_LFS));
00149   }
00150   More(output+"-----------------------------------------------------------------------------\n");
00151   return 1;
00152 }

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

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

private int _todo_hilfe (  ) 

Definiert in Zeile 187 der Datei todo.c.

Wird benutzt von _todo().

00188 {
00189   printf(
00190   "-------------------------------------------------------------------------------\n\n"
00191   " Die Todo-Liste laesst sich mit den folgenden Befehlen steuern:\n\n"
00192   " todo neu                                - Legt einen neuen Eintrag an.\n"
00193   " todo loeschen <nummer>                  - Loescht einen Eintrag.\n"
00194   " todo anzeigen [<nummer> [bis <nummer>]] - Zeigt die Todo-Liste an.\n"
00195   " todo verschieben <nummer> nach <ziel>   - Verschiebt einen Eintrag.\n\n"
00196   " <ziel> kann eine Zahl oder die Worte 'oben' oder 'unten' sein.\n"
00197   "-------------------------------------------------------------------------------\n");
00198   return 1;
00199 }

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

private int _todo_loeschen ( string  cmdline  ) 

Definiert in Zeile 94 der Datei todo.c.

Benutzt notify_fail(), todo_data und todo_save().

Wird benutzt von _todo().

00095 {
00096   int nr;
00097   if (!sscanf(cmdline,"loeschen %d",nr))
00098     return notify_fail("Welchen Eintrag moechtest Du loeschen?\n"),0;
00099   if (!sizeof(todo_data))
00100     return notify_fail("Deine Todo-Liste hat ja ueberhaupt keinen "
00101                        "Eintrag!\n"),0;
00102   if (nr>sizeof(todo_data))
00103   {
00104     printf("Deine Todo-Liste hat nur %d Eintra%s.\n",sizeof(todo_data),
00105            (sizeof(todo_data)==1?"g":"ege"));
00106     return 1;
00107   }
00108   todo_data[nr-1]=0;
00109   todo_data-=({0});
00110   todo_save();
00111   printf("Eintrag Nummer %d wurde geloescht. Da hast Du ja ordentlich "
00112          "was geschafft...\noder geschickt delegiert ;-)\n",nr);
00113   return 1;
00114 }

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

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

private int _todo_neu ( string  cmdline  ) 

Definiert in Zeile 85 der Datei todo.c.

Benutzt input_to().

Wird benutzt von _todo().

00086 {
00087   if (cmdline!="neu") return 0;
00088   printf("Was musst Du noch machen? (Abbruch mit 'q', "
00089          "Ende mit '.')\n]");
00090   input_to("_todo_neu2",0,"");
00091   return 1;
00092 }

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

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

static void _todo_neu2 ( string  input,
string  carry 
) [static]

Definiert in Zeile 66 der Datei todo.c.

Benutzt input_to(), todo_data und todo_save().

00067 {
00068   if (input=="q"||(input=="."&&!strlen(carry)))
00069   {
00070     printf("Abbruch!");
00071     return;
00072   }
00073   if (input!=".")
00074   {
00075     printf("]");
00076     input_to("_todo_neu2",0,carry+input+"\n");
00077     return;
00078   }
00079   todo_data+=({ ({ time(), carry }) });
00080   todo_save();
00081   printf("Eintrag angelegt. Laufende Nummer ist %d.\n",sizeof(todo_data));
00082   return;
00083 }

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

private int _todo_verschieben ( string  cmdline  ) 

Definiert in Zeile 154 der Datei todo.c.

Benutzt notify_fail() und todo_data.

Wird benutzt von _todo().

00155 {
00156   int from;
00157   mixed to,dummy;
00158   if (!(sscanf(cmdline,"verschieben %d nach %d",from,to)==2||
00159         sscanf(cmdline,"verschieben %d nach %s",from,to)==2))
00160     return 0;
00161   from--;
00162   if (stringp(to))
00163   {
00164     switch(to)
00165     {
00166       case "oben": to=from-1; break;
00167       case "unten": to=from+1; break;
00168       default: return 0;
00169     }
00170   }
00171   else to--;
00172   if (to==from) return notify_fail("Da ist der Eintrag ja schon!\n"),0;
00173   if (from<0||from>=sizeof(todo_data)) return notify_fail(
00174         "Wie willst Du einen nicht existenten Eintrag verschieben?\n"),0;
00175   if (to<0||to>=sizeof(todo_data)) return notify_fail(
00176         "Dahin kannst Du den Eintrag nicht verschieben.\n"),0;
00177   dummy=todo_data[from];
00178   if (to>from)
00179     while (from++<to) todo_data[from-1]=todo_data[from];
00180   else
00181     while(from-->to) todo_data[from+1]=todo_data[from];
00182   todo_data[to]=dummy;
00183   printf("Eintrag wurde verschoben.\n");
00184   return 1;
00185 }

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 54 der Datei todo.c.

Benutzt IS_WIZARD, restore_object(), SAVEFILENAME, todo_data und todo_data_public.

00055 {
00056   if(!IS_WIZARD(this_object())) return;
00057   if (!restore_object(SAVEFILENAME)) todo_data=({});
00058   else
00059     {
00060       todo_data=todo_data_public;
00061       todo_data_public=0;
00062     }
00063   return;
00064 }

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

private void todo_save (  ) 

Definiert in Zeile 25 der Datei todo.c.

Benutzt i, SAVEFILENAME, todo_data und todo_data_public.

Wird benutzt von _todo_loeschen() und _todo_neu2().

00026 {
00027 
00028   int i,j;
00029   string a,b;
00030   a=SAVEFILENAME+".o";
00031   rm(a);
00032   if (j=sizeof(todo_data))
00033   {
00034 #if !__EFUN_DEFINED__(save_value)   
00035     write_file(a,"#0:0\ntodo_data_public ({");
00036     for (i=0;i<j;i++)
00037     {
00038       b=regreplace(todo_data[i][1],"\"","\\\"",1);
00039       b=regreplace(b,"\n","\\n",1);
00040       write_file(a,sprintf("({%d,\"%s\",}),",
00041                            todo_data[i][0],b));
00042     }
00043     write_file(a,"})\n");
00044 #else
00045     todo_data_public=todo_data;
00046     write_file(a,save_value(todo_data_public));
00047     todo_data_public=0;
00048 #endif
00049   }
00050   return;
00051 
00052 }

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


Variablen-Dokumentation

private mixed* todo_data [static]

Definiert in Zeile 17 der Datei todo.c.

Wird benutzt von _todo_anzeigen(), _todo_loeschen(), _todo_neu2(), _todo_verschieben(), initialize() und todo_save().

Definiert in Zeile 18 der Datei todo.c.

Wird benutzt von initialize() und todo_save().

private status todo_initialized [static]

Definiert in Zeile 16 der Datei todo.c.

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