summaryrefslogtreecommitdiffstats
path: root/src/ex_docmd.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-08-30 15:58:28 +0200
committerBram Moolenaar <Bram@vim.org>2018-08-30 15:58:28 +0200
commit379fb76b080521f7c09265ec3264b9e698923518 (patch)
tree412bef14f2a40f30daf3d42393189c1c34c22989 /src/ex_docmd.c
parentdd5d18eadffadc723ff7d3e208a2973d267a6dde (diff)
patch 8.1.0337: :file fails in quickfix commandv8.1.0337
Problem: :file fails in quickfix command. Solution: Allow :file without argument when curbuf_lock is set. (Jason Franklin)
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r--src/ex_docmd.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index c8a1c3f238..5b53785cc5 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2039,12 +2039,15 @@ do_one_cmd(
errormsg = (char_u *)_(get_text_locked_msg());
goto doend;
}
+
/* Disallow editing another buffer when "curbuf_lock" is set.
- * Do allow ":edit" (check for argument later).
- * Do allow ":checktime" (it's postponed). */
+ * Do allow ":checktime" (it is postponed).
+ * Do allow ":edit" (check for an argument later).
+ * Do allow ":file" with no arguments (check for an argument later). */
if (!(ea.argt & CMDWIN)
- && ea.cmdidx != CMD_edit
&& ea.cmdidx != CMD_checktime
+ && ea.cmdidx != CMD_edit
+ && ea.cmdidx != CMD_file
&& !IS_USER_CMDIDX(ea.cmdidx)
&& curbuf_locked())
goto doend;
@@ -2130,6 +2133,10 @@ do_one_cmd(
else
ea.arg = skipwhite(p);
+ // ":file" cannot be run with an argument when "curbuf_lock" is set
+ if (ea.cmdidx == CMD_file && *ea.arg != NUL && curbuf_locked())
+ goto doend;
+
/*
* Check for "++opt=val" argument.
* Must be first, allow ":w ++enc=utf8 !cmd"