0
0
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:
Illia Bobyr
2023-10-17 11:09:45 +02:00
committed by Christian Brabandt
parent 2e3cd52fa0
commit 6e6386716f
8 changed files with 59 additions and 20 deletions

View File

@@ -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.
*/