# HG changeset patch # User Bram Moolenaar # Date 1580852704 -3600 # Node ID 80baa37506d022d31862d6b45aaeaa500b313f3e # Parent 1911a4f14ae9b83763b6210127ac34ce9c3feed8 patch 8.2.0209: function a bit far away from where it's used Commit: https://github.com/vim/vim/commit/80147dda4f5a25c9533bc88583c87dbbb0a0f1f1 Author: Bram Moolenaar Date: Tue Feb 4 22:32:59 2020 +0100 patch 8.2.0209: function a bit far away from where it's used Problem: Function a bit far away from where it's used. Solution: Move function close to where it's used. (Ken Takata, closes https://github.com/vim/vim/issues/5569) diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -4423,17 +4423,17 @@ readdir_core( int (*checkitem)(void *context, char_u *name)) { int failed = FALSE; -#ifdef MSWIN +# ifdef MSWIN char_u *buf, *p; int ok; HANDLE hFind = INVALID_HANDLE_VALUE; WIN32_FIND_DATAW wfb; WCHAR *wn = NULL; // UTF-16 name, NULL when not used. -#endif +# endif ga_init2(gap, (int)sizeof(char *), 20); -#ifdef MSWIN +# ifdef MSWIN buf = alloc(MAXPATHL); if (buf == NULL) return FAIL; @@ -4498,7 +4498,7 @@ readdir_core( vim_free(buf); vim_free(wn); -#else +# else DIR *dirp; struct dirent *dp; char_u *p; @@ -4547,7 +4547,7 @@ readdir_core( closedir(dirp); } -#endif +# endif if (!failed && gap->ga_len > 0) sort_strings((char_u **)gap->ga_data, gap->ga_len); diff --git a/src/filepath.c b/src/filepath.c --- a/src/filepath.c +++ b/src/filepath.c @@ -1256,41 +1256,6 @@ f_isdirectory(typval_T *argvars, typval_ } /* - * Evaluate "expr" (= "context") for readdir(). - */ - static int -readdir_checkitem(void *context, char_u *name) -{ - typval_T *expr = (typval_T *)context; - typval_T save_val; - typval_T rettv; - typval_T argv[2]; - int retval = 0; - int error = FALSE; - - if (expr->v_type == VAR_UNKNOWN) - return 1; - - prepare_vimvar(VV_VAL, &save_val); - set_vim_var_string(VV_VAL, name, -1); - argv[0].v_type = VAR_STRING; - argv[0].vval.v_string = name; - - if (eval_expr_typval(expr, argv, 1, &rettv) == FAIL) - goto theend; - - retval = tv_get_number_chk(&rettv, &error); - if (error) - retval = -1; - clear_tv(&rettv); - -theend: - set_vim_var_string(VV_VAL, NULL, 0); - restore_vimvar(VV_VAL, &save_val); - return retval; -} - -/* * Create the directory in which "dir" is located, and higher levels when * needed. * Return OK or FAIL. @@ -1386,6 +1351,41 @@ f_pathshorten(typval_T *argvars, typval_ } /* + * Evaluate "expr" (= "context") for readdir(). + */ + static int +readdir_checkitem(void *context, char_u *name) +{ + typval_T *expr = (typval_T *)context; + typval_T save_val; + typval_T rettv; + typval_T argv[2]; + int retval = 0; + int error = FALSE; + + if (expr->v_type == VAR_UNKNOWN) + return 1; + + prepare_vimvar(VV_VAL, &save_val); + set_vim_var_string(VV_VAL, name, -1); + argv[0].v_type = VAR_STRING; + argv[0].vval.v_string = name; + + if (eval_expr_typval(expr, argv, 1, &rettv) == FAIL) + goto theend; + + retval = tv_get_number_chk(&rettv, &error); + if (error) + retval = -1; + clear_tv(&rettv); + +theend: + set_vim_var_string(VV_VAL, NULL, 0); + restore_vimvar(VV_VAL, &save_val); + return retval; +} + +/* * "readdir()" function */ void diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 209, +/**/ 208, /**/ 207,