aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 65d4b980b7..359c4b31d1 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3959,13 +3959,17 @@ static void ex_bunload(exarg_T *eap)
*/
static void ex_buffer(exarg_T *eap)
{
- if (*eap->arg)
+ if (*eap->arg) {
eap->errmsg = e_trailing;
- else {
- if (eap->addr_count == 0) /* default is current buffer */
+ } else {
+ if (eap->addr_count == 0) { // default is current buffer
goto_buffer(eap, DOBUF_CURRENT, FORWARD, 0);
- else
+ } else {
goto_buffer(eap, DOBUF_FIRST, FORWARD, (int)eap->line2);
+ }
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
}
@@ -3976,6 +3980,9 @@ static void ex_buffer(exarg_T *eap)
static void ex_bmodified(exarg_T *eap)
{
goto_buffer(eap, DOBUF_MOD, FORWARD, (int)eap->line2);
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
/*
@@ -3985,6 +3992,9 @@ static void ex_bmodified(exarg_T *eap)
static void ex_bnext(exarg_T *eap)
{
goto_buffer(eap, DOBUF_CURRENT, FORWARD, (int)eap->line2);
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
/*
@@ -3996,6 +4006,9 @@ static void ex_bnext(exarg_T *eap)
static void ex_bprevious(exarg_T *eap)
{
goto_buffer(eap, DOBUF_CURRENT, BACKWARD, (int)eap->line2);
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
/*
@@ -4007,6 +4020,9 @@ static void ex_bprevious(exarg_T *eap)
static void ex_brewind(exarg_T *eap)
{
goto_buffer(eap, DOBUF_FIRST, FORWARD, 0);
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
/*
@@ -4016,6 +4032,9 @@ static void ex_brewind(exarg_T *eap)
static void ex_blast(exarg_T *eap)
{
goto_buffer(eap, DOBUF_LAST, BACKWARD, 0);
+ if (eap->do_ecmd_cmd != NULL) {
+ do_cmdline_cmd(eap->do_ecmd_cmd);
+ }
}
int ends_excmd(int c) FUNC_ATTR_CONST