When a flag option is used in a format, it should use the number form

not string.
pull/752/head
nicm 2017-01-30 21:41:17 +00:00
parent b6099f31ea
commit 3408595f77
4 changed files with 8 additions and 5 deletions

View File

@ -110,7 +110,7 @@ cmd_show_options_print(struct cmd *self, struct cmdq_item *item,
name = options_name(o);
}
value = options_tostring(o, idx);
value = options_tostring(o, idx, 0);
if (args_has(self->args, 'v'))
cmdq_print(item, "%s", value);
else if (options_isstring(o)) {

View File

@ -638,7 +638,7 @@ format_find(struct format_tree *ft, const char *key, int modifiers)
if (o == NULL)
o = options_parse_get(global_s_options, key, &idx, 0);
if (o != NULL) {
found = options_tostring(o, idx);
found = options_tostring(o, idx, 1);
goto found;
}
}

View File

@ -325,7 +325,7 @@ options_isstring(struct options_entry *o)
}
const char *
options_tostring(struct options_entry *o, int idx)
options_tostring(struct options_entry *o, int idx, int numeric)
{
static char s[1024];
const char *tmp;
@ -355,7 +355,10 @@ options_tostring(struct options_entry *o, int idx)
tmp = attributes_tostring(o->number);
break;
case OPTIONS_TABLE_FLAG:
tmp = (o->number ? "on" : "off");
if (numeric)
xsnprintf(s, sizeof s, "%lld", o->number);
else
tmp = (o->number ? "on" : "off");
break;
case OPTIONS_TABLE_CHOICE:
tmp = o->tableentry->choices[o->number];

2
tmux.h
View File

@ -1562,7 +1562,7 @@ int options_array_set(struct options_entry *, u_int, const char *,
int options_array_size(struct options_entry *, u_int *);
void options_array_assign(struct options_entry *, const char *);
int options_isstring(struct options_entry *);
const char *options_tostring(struct options_entry *, int);
const char *options_tostring(struct options_entry *, int, int);
char *options_parse(const char *, int *);
struct options_entry *options_parse_get(struct options *, const char *, int *,
int);