Extend the -q flag to set-option to suppress errors about unknown

options - this will allow options to be removed more easily.
pull/1/head
nicm 2014-04-17 07:51:38 +00:00
parent ebc5cb447f
commit 877bdb46ed
2 changed files with 19 additions and 11 deletions

View File

@ -117,8 +117,11 @@ cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq)
return (CMD_RETURN_ERROR); return (CMD_RETURN_ERROR);
} }
if (oe == NULL) { if (oe == NULL) {
cmdq_error(cmdq, "unknown option: %s", optstr); if (!args_has(args, 'q')) {
return (CMD_RETURN_ERROR); cmdq_error(cmdq, "unknown option: %s", optstr);
return (CMD_RETURN_ERROR);
}
return (CMD_RETURN_NORMAL);
} }
/* Work out the tree from the table. */ /* Work out the tree from the table. */
@ -163,8 +166,10 @@ cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq)
return (CMD_RETURN_ERROR); return (CMD_RETURN_ERROR);
} else { } else {
if (args_has(args, 'o') && options_find1(oo, optstr) != NULL) { if (args_has(args, 'o') && options_find1(oo, optstr) != NULL) {
if (!args_has(args, 'q')) if (!args_has(args, 'q')) {
cmdq_print(cmdq, "already set: %s", optstr); cmdq_error(cmdq, "already set: %s", optstr);
return (CMD_RETURN_ERROR);
}
return (CMD_RETURN_NORMAL); return (CMD_RETURN_NORMAL);
} }
if (cmd_set_option_set(self, cmdq, oe, oo, valstr) != 0) if (cmd_set_option_set(self, cmdq, oe, oo, valstr) != 0)
@ -229,8 +234,11 @@ cmd_set_option_user(struct cmd *self, struct cmd_q *cmdq, const char* optstr,
if (args_has(args, 'u')) { if (args_has(args, 'u')) {
if (options_find1(oo, optstr) == NULL) { if (options_find1(oo, optstr) == NULL) {
cmdq_error(cmdq, "unknown option: %s", optstr); if (!args_has(args, 'q')) {
return (CMD_RETURN_ERROR); cmdq_error(cmdq, "unknown option: %s", optstr);
return (CMD_RETURN_ERROR);
}
return (CMD_RETURN_NORMAL);
} }
if (valstr != NULL) { if (valstr != NULL) {
cmdq_error(cmdq, "value passed to unset option: %s", cmdq_error(cmdq, "value passed to unset option: %s",
@ -244,8 +252,10 @@ cmd_set_option_user(struct cmd *self, struct cmd_q *cmdq, const char* optstr,
return (CMD_RETURN_ERROR); return (CMD_RETURN_ERROR);
} }
if (args_has(args, 'o') && options_find1(oo, optstr) != NULL) { if (args_has(args, 'o') && options_find1(oo, optstr) != NULL) {
if (!args_has(args, 'q')) if (!args_has(args, 'q')) {
cmdq_print(cmdq, "already set: %s", optstr); cmdq_error(cmdq, "already set: %s", optstr);
return CMD_RETURN_ERROR;
}
return (CMD_RETURN_NORMAL); return (CMD_RETURN_NORMAL);
} }
options_set_string(oo, optstr, "%s", valstr); options_set_string(oo, optstr, "%s", valstr);

4
tmux.1
View File

@ -2047,9 +2047,7 @@ flag prevents setting an option that is already set.
.Pp .Pp
The The
.Fl q .Fl q
flag suppresses the informational message (as if the flag suppresses errors about unknown options.
.Ic quiet
server option was set).
.Pp .Pp
With With
.Fl a , .Fl a ,