updated for version 7.4.082
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() wether adding ! make sense.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 5d207ea..8d06a95 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6565,7 +6565,9 @@
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
exiting = TRUE;
if ((!P_HID(curbuf)
- && check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE))
+ && check_changed(curbuf, (p_awa ? CCGD_AW : 0)
+ | (eap->forceit ? CCGD_FORCEIT : 0)
+ | CCGD_EXCMD))
|| check_more(TRUE, eap->forceit) == FAIL
|| (only_one_window() && check_changed_any(eap->forceit)))
{
@@ -7099,7 +7101,7 @@
if (!P_HID(curbuf) && !split)
{
++emsg_off;
- split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
+ split = check_changed(curbuf, CCGD_AW);
--emsg_off;
}
if (split)
@@ -7361,7 +7363,11 @@
{
/* Set recoverymode right away to avoid the ATTENTION prompt. */
recoverymode = TRUE;
- if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE)
+ if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0)
+ | CCGD_MULTWIN
+ | (eap->forceit ? CCGD_FORCEIT : 0)
+ | CCGD_EXCMD)
+
&& (*eap->arg == NUL
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
ml_recover();