diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-02-04 22:32:59 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-02-04 22:32:59 +0100 |
commit | 80147dda4f5a25c9533bc88583c87dbbb0a0f1f1 (patch) | |
tree | 43afe291c3107abfc5e1d25255cabe5ae0e86a31 | |
parent | d816cd94d87afb73c505bf1e5cd5e07522482113 (diff) | |
download | vim-git-80147dda4f5a25c9533bc88583c87dbbb0a0f1f1.tar.gz |
patch 8.2.0209: function a bit far away from where it's usedv8.2.0209
Problem: Function a bit far away from where it's used.
Solution: Move function close to where it's used. (Ken Takata, closes #5569)
-rw-r--r-- | src/fileio.c | 10 | ||||
-rw-r--r-- | src/filepath.c | 70 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 42 insertions, 40 deletions
diff --git a/src/fileio.c b/src/fileio.c index e35ce8c7b..575efafd2 100644 --- 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 index 4517f412c..9a5d127ec 100644 --- a/src/filepath.c +++ b/src/filepath.c @@ -1256,41 +1256,6 @@ f_isdirectory(typval_T *argvars, typval_T *rettv) } /* - * 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_T *rettv) } /* + * 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 index 6e598e588..aae2526c8 100644 --- 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, |