0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

updated for version 7.0b02

This commit is contained in:
Bram Moolenaar
2006-03-26 21:06:50 +00:00
parent 5c6a2d5323
commit 899dddf888
43 changed files with 3128 additions and 459 deletions

View File

@@ -8964,42 +8964,54 @@ findfilendir(argvars, rettv, dir)
char_u pathbuf[NUMBUFLEN];
int count = 1;
int first = TRUE;
int error = FALSE;
#endif
rettv->vval.v_string = NULL;
rettv->v_type = VAR_STRING;
#ifdef FEAT_SEARCHPATH
fname = get_tv_string(&argvars[0]);
if (argvars[1].v_type != VAR_UNKNOWN)
{
p = get_tv_string_buf_chk(&argvars[1], pathbuf);
if (p == NULL)
count = -1; /* error */
error = TRUE;
else
{
if (*p != NUL)
path = p;
if (argvars[2].v_type != VAR_UNKNOWN)
count = get_tv_number_chk(&argvars[2], NULL); /* -1: error */
count = get_tv_number_chk(&argvars[2], &error);
}
}
if (*fname != NUL && count >= 0)
if (count < 0 && rettv_list_alloc(rettv) == FAIL)
error = TRUE;
if (*fname != NUL && !error)
{
do
{
vim_free(fresult);
if (rettv->v_type == VAR_STRING)
vim_free(fresult);
fresult = find_file_in_path_option(first ? fname : NULL,
first ? (int)STRLEN(fname) : 0,
0, first, path, dir, NULL,
dir ? (char_u *)"" : curbuf->b_p_sua);
first = FALSE;
} while (--count > 0 && fresult != NULL);
if (fresult != NULL && rettv->v_type == VAR_LIST)
list_append_string(rettv->vval.v_list, fresult, -1);
} while ((rettv->v_type == VAR_LIST || --count > 0) && fresult != NULL);
}
rettv->vval.v_string = fresult;
#else
rettv->vval.v_string = NULL;
if (rettv->v_type == VAR_STRING)
rettv->vval.v_string = fresult;
#endif
rettv->v_type = VAR_STRING;
}
static void filter_map __ARGS((typval_T *argvars, typval_T *rettv, int map));
@@ -18673,8 +18685,9 @@ trans_function_name(pp, skip, flags, fdp)
else if (lead > 0)
{
lead = 3;
if (eval_fname_sid(*pp)) /* If it's "<SID>" */
if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp))
{
/* It's "s:" or "<SID>" */
if (current_SID <= 0)
{
EMSG(_(e_usingsid));