mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Fix command prompt not to always append argument but only if there has
actually been expansion. GitHub issue 3493.
This commit is contained in:
22
arguments.c
22
arguments.c
@ -98,6 +98,22 @@ args_copy_value(struct args_value *to, struct args_value *from)
|
||||
}
|
||||
}
|
||||
|
||||
/* Type to string. */
|
||||
static const char *
|
||||
args_type_to_string (enum args_type type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ARGS_NONE:
|
||||
return "NONE";
|
||||
case ARGS_STRING:
|
||||
return "STRING";
|
||||
case ARGS_COMMANDS:
|
||||
return "COMMANDS";
|
||||
}
|
||||
return "INVALID";
|
||||
}
|
||||
|
||||
/* Get value as string. */
|
||||
static const char *
|
||||
args_value_as_string(struct args_value *value)
|
||||
@ -250,8 +266,8 @@ args_parse(const struct args_parse *parse, struct args_value *values,
|
||||
value = &values[i];
|
||||
|
||||
s = args_value_as_string(value);
|
||||
log_debug("%s: %u = %s (type %d)", __func__, i, s,
|
||||
value->type);
|
||||
log_debug("%s: %u = %s (type %s)", __func__, i, s,
|
||||
args_type_to_string (value->type));
|
||||
|
||||
if (parse->cb != NULL) {
|
||||
type = parse->cb(args, args->count, cause);
|
||||
@ -796,6 +812,8 @@ args_make_commands(struct args_command_state *state, int argc, char **argv,
|
||||
}
|
||||
|
||||
cmd = xstrdup(state->cmd);
|
||||
log_debug("%s: %s", __func__, cmd);
|
||||
cmd_log_argv(argc, argv, __func__);
|
||||
for (i = 0; i < argc; i++) {
|
||||
new_cmd = cmd_template_replace(cmd, argv[i], i + 1);
|
||||
log_debug("%s: %%%u %s: %s", __func__, i + 1, argv[i], new_cmd);
|
||||
|
Reference in New Issue
Block a user