#include <wizlevels.h>#include <defines.h>#include <magier.h>#include <player.h>
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 |
| #define SAVEFILENAME sprintf("/players/%s/.todoliste",getuid()) |
| 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 }

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


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

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


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


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

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


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

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

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().
| mixed* todo_data_public |
Definiert in Zeile 18 der Datei todo.c.
Wird benutzt von initialize() und todo_save().
private status todo_initialized [static] |
1.6.3