Add popup-border-lines option to set popup line style, from Alexis

Hildebrandt, GitHub issue 2930.
This commit is contained in:
nicm
2021-10-14 13:19:01 +00:00
parent d0ab1a837a
commit add20637f2
11 changed files with 340 additions and 124 deletions

View File

@ -989,28 +989,39 @@ options_from_string_flag(struct options *oo, const char *name,
return (0);
}
int
options_find_choice(const struct options_table_entry *oe, const char *value,
char **cause)
{
const char **cp;
int n = 0, choice = -1;
for (cp = oe->choices; *cp != NULL; cp++) {
if (strcmp(*cp, value) == 0)
choice = n;
n++;
}
if (choice == -1) {
xasprintf(cause, "unknown value: %s", value);
return (-1);
}
return (choice);
}
static int
options_from_string_choice(const struct options_table_entry *oe,
struct options *oo, const char *name, const char *value, char **cause)
{
const char **cp;
int n, choice = -1;
int choice = -1;
if (value == NULL) {
choice = options_get_number(oo, name);
if (choice < 2)
choice = !choice;
} else {
n = 0;
for (cp = oe->choices; *cp != NULL; cp++) {
if (strcmp(*cp, value) == 0)
choice = n;
n++;
}
if (choice == -1) {
xasprintf(cause, "unknown value: %s", value);
choice = options_find_choice(oe, value, cause);
if (choice < 0)
return (-1);
}
}
options_set_number(oo, name, choice);
return (0);