mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Hide struct args behind a couple of accessor functions.
This commit is contained in:
@ -77,14 +77,16 @@ cmd_set_option_exec(struct cmd *self, struct cmdq_item *item)
|
||||
struct window_pane *loop;
|
||||
struct options *oo;
|
||||
struct options_entry *parent, *o, *po;
|
||||
char *name, *argument, *value = NULL, *cause;
|
||||
char *name, *argument, *expanded = NULL;
|
||||
char *cause;
|
||||
const char *value;
|
||||
int window, idx, already, error, ambiguous;
|
||||
int scope;
|
||||
|
||||
window = (cmd_get_entry(self) == &cmd_set_window_option_entry);
|
||||
|
||||
/* Expand argument. */
|
||||
argument = format_single_from_target(item, args->argv[0]);
|
||||
argument = format_single_from_target(item, args_string(args, 0));
|
||||
|
||||
/* If set-hook -R, fire the hook straight away. */
|
||||
if (cmd_get_entry(self) == &cmd_set_hook_entry && args_has(args, 'R')) {
|
||||
@ -104,12 +106,14 @@ cmd_set_option_exec(struct cmd *self, struct cmdq_item *item)
|
||||
cmdq_error(item, "invalid option: %s", argument);
|
||||
goto fail;
|
||||
}
|
||||
if (args->argc < 2)
|
||||
if (args_count(args) < 2)
|
||||
value = NULL;
|
||||
else if (args_has(args, 'F'))
|
||||
value = format_single_from_target(item, args->argv[1]);
|
||||
else
|
||||
value = xstrdup(args->argv[1]);
|
||||
value = args_string(args, 1);
|
||||
if (value != NULL && args_has(args, 'F')) {
|
||||
expanded = format_single_from_target(item, value);
|
||||
value = expanded;
|
||||
}
|
||||
|
||||
/* Get the scope and table for the option .*/
|
||||
scope = options_scope_from_name(args, window, name, target, &oo,
|
||||
@ -211,13 +215,13 @@ cmd_set_option_exec(struct cmd *self, struct cmdq_item *item)
|
||||
|
||||
out:
|
||||
free(argument);
|
||||
free(value);
|
||||
free(expanded);
|
||||
free(name);
|
||||
return (CMD_RETURN_NORMAL);
|
||||
|
||||
fail:
|
||||
free(argument);
|
||||
free(value);
|
||||
free(expanded);
|
||||
free(name);
|
||||
return (CMD_RETURN_ERROR);
|
||||
}
|
||||
|
Reference in New Issue
Block a user