Mercurial > vim
changeset 29570:bc47aeacc8d8 v9.0.0126
patch 9.0.0126: expanding file names fails in dir with more than 255 entries
Commit: https://github.com/vim/vim/commit/95fca12b0e8a351ce4416417323db24c63eb940a
Author: John Drouhard <john@drouhard.dev>
Date: Mon Aug 1 11:38:17 2022 +0100
patch 9.0.0126: expanding file names fails in dir with more than 255 entries
Problem: Expanding file names fails in directory with more than 255
entries.
Solution: Use an int instead of char_u to count. (John Drouhard,
closes #10818)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 01 Aug 2022 12:45:03 +0200 |
parents | f40b8e79ff7b |
children | ac4e168fcae2 |
files | src/findfile.c src/testdir/test_gf.vim src/version.c |
diffstat | 3 files changed, 27 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/findfile.c +++ b/src/findfile.c @@ -75,7 +75,7 @@ typedef struct ff_stack // of wc_part char_u **ffs_filearray; int ffs_filearray_size; - char_u ffs_filearray_cur; // needed for partly handled dirs + int ffs_filearray_cur; // needed for partly handled dirs // to store status of partly handled directories // 0: we work on this directory for the first time
--- a/src/testdir/test_gf.vim +++ b/src/testdir/test_gf.vim @@ -138,7 +138,7 @@ func Test_gf_visual() call assert_equal('Xtest_gf_visual', bufname('%')) call assert_equal(3, getcurpos()[1]) - " do not include the NUL at the end + " do not include the NUL at the end call writefile(['x'], 'X') let save_enc = &enc for enc in ['latin1', 'utf-8'] @@ -250,4 +250,27 @@ func Test_includeexpr_scriptlocal_func() bw! endfunc +" Check that expanding directories can handle more than 255 entries. +func Test_gf_subdirs_wildcard() + let cwd = getcwd() + let dir = 'Xtestgf_dir' + call mkdir(dir) + call chdir(dir) + for i in range(300) + call mkdir(i) + call writefile([], i .. '/' .. i, 'S') + endfor + set path=./** + + new | only + call setline(1, '99') + w! Xtest1 + normal gf + call assert_equal('99', fnamemodify(bufname(''), ":t")) + + call chdir(cwd) + call delete(dir, 'rf') + set path& +endfunc + " vim: shiftwidth=2 sts=2 expandtab