# HG changeset patch # User Bram Moolenaar # Date 1646915416 -3600 # Node ID d4b549180a075df2722021ccae8fc475779b87f0 # Parent edaa0c170c11425d840bfd79c921fd28a36d1000 patch 8.2.4535: filename modifer ":8" removes the filename Commit: https://github.com/vim/vim/commit/81da16b53fbf804a3cd32bc15313c96444b71484 Author: Christian Brabandt Date: Thu Mar 10 12:24:02 2022 +0000 patch 8.2.4535: filename modifer ":8" removes the filename Problem: Filename modifer ":8" removes the filename. Solution: Use strncpy() instead of vim_strncpy(). (Christian Brabandt, closes #9918, closes #8600) diff --git a/src/filepath.c b/src/filepath.c --- a/src/filepath.c +++ b/src/filepath.c @@ -186,7 +186,7 @@ shortpath_for_invalid_fname( // unless get_short_pathname() did its work in-place. *fname = *bufp = save_fname; if (short_fname != save_fname) - vim_strncpy(save_fname, short_fname, len); + STRNCPY(save_fname, short_fname, len); save_fname = NULL; } diff --git a/src/testdir/test_shortpathname.vim b/src/testdir/test_shortpathname.vim --- a/src/testdir/test_shortpathname.vim +++ b/src/testdir/test_shortpathname.vim @@ -88,4 +88,9 @@ func Test_ColonEight_MultiByte() call delete(dir, 'd') endfunc +func Test_ColonEight_notexists() + let non_exists='C:\windows\newfile.txt' + call assert_equal(non_exists, fnamemodify(non_exists, ':p:8')) +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4535, +/**/ 4534, /**/ 4533,