mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.0132: script may be re-used when deleting and creating a new one
Problem: Script may be re-used when deleting and creating a new one. Solution: When the inode matches, also check the file name.
This commit is contained in:
@@ -1249,18 +1249,20 @@ do_source(
|
||||
--current_sctx.sc_sid)
|
||||
{
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_name != NULL
|
||||
&& (
|
||||
if (si->sn_name != NULL)
|
||||
{
|
||||
# ifdef UNIX
|
||||
// Compare dev/ino when possible, it catches symbolic
|
||||
// links. Also compare file names, the inode may change
|
||||
// when the file was edited.
|
||||
((stat_ok && si->sn_dev_valid)
|
||||
&& (si->sn_dev == st.st_dev
|
||||
&& si->sn_ino == st.st_ino)) ||
|
||||
// Compare dev/ino when possible, it catches symbolic links. Also
|
||||
// compare file names, the inode may change when the file was
|
||||
// edited or it may be re-used for another script (esp. in tests).
|
||||
if ((stat_ok && si->sn_dev_valid)
|
||||
&& (si->sn_dev != st.st_dev || si->sn_ino != st.st_ino))
|
||||
continue;
|
||||
# endif
|
||||
fnamecmp(si->sn_name, fname_exp) == 0))
|
||||
break;
|
||||
if (fnamecmp(si->sn_name, fname_exp) == 0)
|
||||
// Found it!
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (current_sctx.sc_sid == 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user