mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 9.0.2040: trim(): hard to use default mask
Problem: trim(): hard to use default mask Solution: Use default 'mask' when it is v:none The default 'mask' value is pretty complex, as it includes many characters. Yet, if one needs to specify the trimming direction, the third argument, 'trim()' currently requires the 'mask' value to be provided explicitly. 'v:none' is already used to mean "use the default argument value" in user defined functions. See |none-function_argument| in help. closes: #13363 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
This commit is contained in:
committed by
Christian Brabandt
parent
2e3cd52fa0
commit
6e6386716f
31
src/typval.c
31
src/typval.c
@@ -450,6 +450,37 @@ check_for_opt_string_arg(typval_T *args, int idx)
|
||||
|| check_for_string_arg(args, idx) != FAIL) ? OK : FAIL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for an optional string argument at 'idx', that can also be 'v:none' to
|
||||
* use the default value.
|
||||
*
|
||||
* If 'is_none' is non-NULL it is set to 0 and updated to 1 when "args[idx]" is
|
||||
* 'v:none'.
|
||||
*/
|
||||
int
|
||||
check_for_opt_string_or_none_arg(typval_T *args, int idx, int *is_none)
|
||||
{
|
||||
if (is_none != NULL)
|
||||
*is_none = 0;
|
||||
|
||||
if (args[idx].v_type == VAR_UNKNOWN)
|
||||
return OK;
|
||||
|
||||
if (args[idx].v_type == VAR_SPECIAL
|
||||
&& args[idx].vval.v_number == VVAL_NONE)
|
||||
{
|
||||
if (is_none != NULL)
|
||||
*is_none = 1;
|
||||
return OK;
|
||||
}
|
||||
|
||||
if (args[idx].v_type == VAR_STRING)
|
||||
return OK;
|
||||
|
||||
semsg(_(e_string_or_none_required_for_argument_nr), idx + 1);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Give an error and return FAIL unless "args[idx]" is a number.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user