summaryrefslogtreecommitdiffstats
path: root/src/option.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/option.c')
-rw-r--r--src/option.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/option.c b/src/option.c
index dd09e0e764..ca6fadb504 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3834,13 +3834,15 @@ findoption(char_u *arg)
* Get the value for an option.
*
* Returns:
- * Number or Toggle option: 1, *numval gets value.
- * String option: 0, *stringval gets allocated string.
- * Hidden Number or Toggle option: -1.
- * hidden String option: -2.
- * unknown option: -3.
+ * Number option: gov_number, *numval gets value.
+ * Tottle option: gov_bool, *numval gets value.
+ * String option: gov_string, *stringval gets allocated string.
+ * Hidden Number option: gov_hidden_number.
+ * Hidden Toggle option: gov_hidden_bool.
+ * Hidden String option: gov_hidden_string.
+ * Unknown option: gov_unknown.
*/
- int
+ getoption_T
get_option_value(
char_u *name,
long *numval,
@@ -3851,16 +3853,17 @@ get_option_value(
char_u *varp;
opt_idx = findoption(name);
- if (opt_idx < 0) // unknown option
+ if (opt_idx < 0) // option not in the table
{
int key;
if (STRLEN(name) == 4 && name[0] == 't' && name[1] == '_'
- && (key = find_key_option(name, FALSE)) != 0)
+ && (key = find_key_option(name, FALSE)) != 0)
{
char_u key_name[2];
char_u *p;
+ // check for a terminal option
if (key < 0)
{
key_name[0] = KEY2TERMCAP0(key);
@@ -3876,10 +3879,10 @@ get_option_value(
{
if (stringval != NULL)
*stringval = vim_strsave(p);
- return 0;
+ return gov_string;
}
}
- return -3;
+ return gov_unknown;
}
varp = get_varp_scope(&(options[opt_idx]), opt_flags);
@@ -3887,7 +3890,7 @@ get_option_value(
if (options[opt_idx].flags & P_STRING)
{
if (varp == NULL) // hidden option
- return -2;
+ return gov_hidden_string;
if (stringval != NULL)
{
#ifdef FEAT_CRYPT
@@ -3899,11 +3902,12 @@ get_option_value(
#endif
*stringval = vim_strsave(*(char_u **)(varp));
}
- return 0;
+ return gov_string;
}
if (varp == NULL) // hidden option
- return -1;
+ return (options[opt_idx].flags & P_NUM)
+ ? gov_hidden_number : gov_hidden_bool;
if (options[opt_idx].flags & P_NUM)
*numval = *(long *)varp;
else
@@ -3915,7 +3919,7 @@ get_option_value(
else
*numval = (long) *(int *)varp;
}
- return 1;
+ return (options[opt_idx].flags & P_NUM) ? gov_number : gov_bool;
}
#endif