mirror of https://github.com/GnoConsortium/gno.git
add togglevar for options.
This commit is contained in:
parent
be00396c26
commit
b5dc0fa710
|
@ -46,6 +46,26 @@ extern char reply_string[];
|
||||||
char *mname;
|
char *mname;
|
||||||
jmp_buf jabort;
|
jmp_buf jabort;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Toggle a variable
|
||||||
|
*/
|
||||||
|
int togglevar(int argc, char ** argv, int *var, const char *mesg)
|
||||||
|
{
|
||||||
|
if (argc < 2) {
|
||||||
|
*var = !*var;
|
||||||
|
} else if (argc == 2 && strcasecmp(argv[1], "on") == 0) {
|
||||||
|
*var = 1;
|
||||||
|
} else if (argc == 2 && strcasecmp(argv[1], "off") == 0) {
|
||||||
|
*var = 0;
|
||||||
|
} else {
|
||||||
|
printf("usage: %s [ on | off ]\n", argv[0]);
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
if (mesg)
|
||||||
|
printf("%s %s.\n", mesg, onoff(*var));
|
||||||
|
return (*var);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* `Another' gets another argument, and stores the new argc and argv.
|
* `Another' gets another argument, and stores the new argc and argv.
|
||||||
* It reverts to the top level (via main.c's intr()) on EOF/error.
|
* It reverts to the top level (via main.c's intr()) on EOF/error.
|
||||||
|
@ -830,9 +850,7 @@ int i;
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void setbell (int argc, char **argv)
|
void setbell (int argc, char **argv)
|
||||||
{
|
{
|
||||||
bell = !bell;
|
code = togglevar(argc, argv, &bell, "Bell mode");
|
||||||
printf("Bell mode %s.\n", onoff(bell));
|
|
||||||
code = bell;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -841,9 +859,7 @@ void setbell (int argc, char **argv)
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void settrace (int argc, char **argv)
|
void settrace (int argc, char **argv)
|
||||||
{
|
{
|
||||||
trace = !trace;
|
code = togglevar(argc, argv, &trace, "Packet tracing");
|
||||||
printf("Packet tracing %s.\n", onoff(trace));
|
|
||||||
code = trace;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -866,9 +882,7 @@ void sethash (int argc, char **argv)
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void setverbose (int argc, char **argv)
|
void setverbose (int argc, char **argv)
|
||||||
{
|
{
|
||||||
verbose = !verbose;
|
code = togglevar(argc, argv, &verbose, "Verbose mode");
|
||||||
printf("Verbose mode %s.\n", onoff(verbose));
|
|
||||||
code = verbose;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -877,9 +891,7 @@ void setverbose (int argc, char **argv)
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void setport (int argc, char **argv)
|
void setport (int argc, char **argv)
|
||||||
{
|
{
|
||||||
sendport = !sendport;
|
code = togglevar(argc, argv, &sendport, "Use of PORT cmds");
|
||||||
printf("Use of PORT cmds %s.\n", onoff(sendport));
|
|
||||||
code = sendport;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -889,9 +901,7 @@ void setport (int argc, char **argv)
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void setprompt (int argc, char **argv)
|
void setprompt (int argc, char **argv)
|
||||||
{
|
{
|
||||||
interactive = !interactive;
|
code = togglevar(argc, argv, &interactive, "Interactive mode");
|
||||||
printf("Interactive mode %s.\n", onoff(interactive));
|
|
||||||
code = interactive;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -901,9 +911,7 @@ void setprompt (int argc, char **argv)
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
void setglob (int argc, char **argv)
|
void setglob (int argc, char **argv)
|
||||||
{
|
{
|
||||||
doglob = !doglob;
|
code = togglevar(argc, argv, &doglob, "Globbing");
|
||||||
printf("Globbing %s.\n", onoff(doglob));
|
|
||||||
code = doglob;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1846,16 +1854,12 @@ LOOP:
|
||||||
|
|
||||||
void setsunique (int argc, char **argv)
|
void setsunique (int argc, char **argv)
|
||||||
{
|
{
|
||||||
sunique = !sunique;
|
code = togglevar(argc, argv, &sunique, "Store unique");
|
||||||
printf("Store unique %s.\n", onoff(sunique));
|
|
||||||
code = sunique;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setrunique (int argc, char **argv)
|
void setrunique (int argc, char **argv)
|
||||||
{
|
{
|
||||||
runique = !runique;
|
code = togglevar(argc, argv, &runique, "Receive unique");
|
||||||
printf("Receive unique %s.\n", onoff(runique));
|
|
||||||
code = runique;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* change directory to perent directory */
|
/* change directory to perent directory */
|
||||||
|
|
Loading…
Reference in New Issue