backout https://github.com/vim/vim/commit/bd4614f43d0eac4aff743132bab8e53b015ac801.patch segfaults seen, at least when using vim-airline Index: src/filepath.c --- src/filepath.c.orig +++ src/filepath.c @@ -670,14 +670,12 @@ repeat: str = vim_strnsave(*fnamep, *fnamelen); if (sub != NULL && str != NULL) { - size_t slen; - *usedlen = p + 1 - src; - s = do_string_sub(str, *fnamelen, pat, sub, NULL, flags, &slen); + s = do_string_sub(str, pat, sub, NULL, flags); if (s != NULL) { *fnamep = s; - *fnamelen = slen; + *fnamelen = (int)STRLEN(s); vim_free(*bufp); *bufp = s; didit = TRUE;