Mercurial > vim
diff src/scriptfile.c @ 32206:5372bf23bf72 v9.0.1434
patch 9.0.1434: crash when adding package already in 'runtimepath'
Commit: https://github.com/vim/vim/commit/39c9ec16ea7ef13c5d783481542ee9aa6c05282c
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Apr 1 13:52:03 2023 +0100
patch 9.0.1434: crash when adding package already in 'runtimepath'
Problem: Crash when adding package already in 'runtimepath'.
Solution: Change order for using 'runtimepath' entries. (closes https://github.com/vim/vim/issues/12215)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 01 Apr 2023 15:00:06 +0200 |
parents | 730eebd56f48 |
children | 6e96bd314ffe |
line wrap: on
line diff
--- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -718,18 +718,6 @@ add_pack_dir_to_rtp(char_u *fname) char_u *cur_entry = entry; copy_option_part(&entry, buf, MAXPATHL, ","); - if (insp == NULL) - { - add_pathsep(buf); - rtp_ffname = fix_fname(buf); - if (rtp_ffname == NULL) - goto theend; - match = vim_fnamencmp(rtp_ffname, ffname, fname_len) == 0; - vim_free(rtp_ffname); - if (match) - // Insert "ffname" after this entry (and comma). - insp = entry; - } if ((p = (char_u *)strstr((char *)buf, "after")) != NULL && p > buf @@ -743,6 +731,19 @@ add_pack_dir_to_rtp(char_u *fname) after_insp = cur_entry; break; } + + if (insp == NULL) + { + add_pathsep(buf); + rtp_ffname = fix_fname(buf); + if (rtp_ffname == NULL) + goto theend; + match = vim_fnamencmp(rtp_ffname, ffname, fname_len) == 0; + vim_free(rtp_ffname); + if (match) + // Insert "ffname" after this entry (and comma). + insp = entry; + } } if (insp == NULL)