aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/ex_cmds.c2
-rw-r--r--src/nvim/ex_cmds2.c3
-rw-r--r--src/nvim/ex_docmd.c25
-rw-r--r--src/nvim/ops.c18
4 files changed, 20 insertions, 28 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index b7691997d7..e70ec9ab8a 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -4053,9 +4053,7 @@ void ex_global(exarg_T *eap)
smsg(_("Pattern not found: %s"), pat);
}
} else {
- start_global_changes();
global_exe(cmd);
- end_global_changes();
}
ml_clearmarked(); /* clear rest of the marks */
vim_regfree(regmatch.regprog);
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 6d24ba91f2..d0a17ed099 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -1983,8 +1983,6 @@ void ex_listdo(exarg_T *eap)
save_ei = au_event_disable(",Syntax");
}
- start_global_changes();
-
if (eap->cmdidx == CMD_windo
|| eap->cmdidx == CMD_tabdo
|| P_HID(curbuf)
@@ -2181,7 +2179,6 @@ void ex_listdo(exarg_T *eap)
apply_autocmds(EVENT_SYNTAX, curbuf->b_p_syn,
curbuf->b_fname, true, curbuf);
}
- end_global_changes();
}
/// Add files[count] to the arglist of the current window after arg "after".
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 1e54f03ba0..2960a0569a 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -345,7 +345,8 @@ int do_cmdline(char_u *cmdline, LineGetter fgetline,
msg_list = saved_msg_list;
return FAIL;
}
- ++call_depth;
+ call_depth++;
+ start_batch_changes();
cstack.cs_idx = -1;
cstack.cs_looplevel = 0;
@@ -952,7 +953,8 @@ int do_cmdline(char_u *cmdline, LineGetter fgetline,
did_endif = FALSE; /* in case do_cmdline used recursively */
- --call_depth;
+ call_depth--;
+ end_batch_changes();
return retval;
}
@@ -9511,20 +9513,15 @@ static void ex_foldopen(exarg_T *eap)
static void ex_folddo(exarg_T *eap)
{
- linenr_T lnum;
-
- start_global_changes();
-
- /* First set the marks for all lines closed/open. */
- for (lnum = eap->line1; lnum <= eap->line2; ++lnum)
- if (hasFolding(lnum, NULL, NULL) == (eap->cmdidx == CMD_folddoclosed))
+ // First set the marks for all lines closed/open.
+ for (linenr_T lnum = eap->line1; lnum <= eap->line2; ++lnum) {
+ if (hasFolding(lnum, NULL, NULL) == (eap->cmdidx == CMD_folddoclosed)) {
ml_setmarked(lnum);
+ }
+ }
- /* Execute the command on the marked lines. */
- global_exe(eap->arg);
- ml_clearmarked(); /* clear rest of the marks */
-
- end_global_changes();
+ global_exe(eap->arg); // Execute the command on the marked lines.
+ ml_clearmarked(); // clear rest of the marks
}
static void ex_terminal(exarg_T *eap)
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index e8a79fa820..990b95829a 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -51,10 +51,10 @@ static yankreg_T *y_previous = NULL; /* ptr to last written yankreg */
static bool clipboard_didwarn_unnamed = false;
-// for behavior between start_global_changes() and end_global_changes())
+// for behavior between start_batch_changes() and end_batch_changes())
static bool clipboard_delay_update = false; // delay clipboard update
-static int global_change_count = 0; // if set, inside global changes
-static bool clipboard_needs_update = false; // the clipboard was updated
+static int batch_change_count = 0; // inside a script
+static bool clipboard_needs_update = false; // clipboard was updated
/*
* structure used by block_prep, op_delete and op_yank for blockwise operators
@@ -5630,20 +5630,20 @@ static void set_clipboard(int name, yankreg_T *reg)
(void)eval_call_provider("clipboard", "set", args);
}
-/// Avoid clipboard (slow) during batch operations (:global).
-void start_global_changes(void)
+/// Avoid clipboard (slow) during batch operations (i.e., a script).
+void start_batch_changes(void)
{
- if (++global_change_count > 1) {
+ if (++batch_change_count > 1) {
return;
}
clipboard_delay_update = true;
clipboard_needs_update = false;
}
-/// Update the clipboard after :global changes finished.
-void end_global_changes(void)
+/// Update the clipboard after batch changes finished.
+void end_batch_changes(void)
{
- if (--global_change_count > 0) {
+ if (--batch_change_count > 0) {
// recursive
return;
}