Parsing fuer Familienmodus eingebaut.
Fuer die zukuenftigen Familienaliase bekommen die
Kommandos alias und unalias ein Argument -f zum
Einschalten.
Optionenparsing leichter lesbar gemacht.
Change-Id: I05f4d986bcbc269a8baa8dcf83b2f097321570d2
diff --git a/std/player/command.c b/std/player/command.c
index 9616281..301782c 100644
--- a/std/player/command.c
+++ b/std/player/command.c
@@ -265,7 +265,7 @@
string commandverb;
string *tmp,um,*hits;
int num, l, pos, cont;
- int display_as_aliascommand;
+ int display_as_aliascommand, familymode;
// unbearbeitetes Kommando ohne Verb ermitteln (auch ohne Trim an Anfang und
// Ende)
@@ -276,12 +276,19 @@
if( !(str = um||_unparsed_args()) || str=="*")
return query_aliases(0);
- if (str=="-a" || strstr(str, "-a ")==0 ) {
- str=str[2..];
- if (str && str!="" && str[0]==' ') str=str[1..];
- if (!str || str=="" || str=="*") return query_aliases(1);
- display_as_aliascommand=1;
+ while(sizeof(str) >= 2 && str[0] == '-')
+ {
+ if (str[1] == 'a')
+ display_as_aliascommand = 1;
+ else if (str[1] == 'f')
+ familymode = 1;
+ else
+ break;
+ // "-? " abschneiden
+ str = trim(str[2..], TRIM_LEFT);
}
+ if (!sizeof(str) || str=="*")
+ return query_aliases(display_as_aliascommand);
pos=member(str,' ');
if (pos < 0) // Nur 1 Arg, Alias abfragen
@@ -391,6 +398,16 @@
if ( !(str=um || _unparsed_args()))
return 0;
+ while(sizeof(str) >= 2 && str[0] == '-')
+ {
+ if (str[1] == 'f')
+ familymode = 1;
+ else
+ break;
+ // "-f " abschneiden
+ str = trim(str[2..], TRIM_LEFT);
+ }
+
if (str == "*.*" || str == "*") {
write(break_string(
"Versuchs mal mit 'unalias .*', wenn Du wirklich alle Alias entfernen "