aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 5a89fed207..82fa9f5f97 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -1901,12 +1901,13 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
break;
case OP_FORMAT:
- if (*curbuf->b_p_fex != NUL)
- op_formatexpr(oap); /* use expression */
- else if (*p_fp != NUL)
- op_colon(oap); /* use external command */
- else
- op_format(oap, false); /* use internal function */
+ if (*curbuf->b_p_fex != NUL) {
+ op_formatexpr(oap); // use expression
+ } else if (*p_fp != NUL || *curbuf->b_p_fp != NUL) {
+ op_colon(oap); // use external command
+ } else {
+ op_format(oap, false); // use internal function
+ }
break;
case OP_FORMAT2:
@@ -2064,10 +2065,13 @@ static void op_colon(oparg_T *oap)
stuffReadbuff(get_equalprg());
stuffReadbuff((char_u *)"\n");
} else if (oap->op_type == OP_FORMAT) {
- if (*p_fp == NUL)
- stuffReadbuff((char_u *)"fmt");
- else
+ if (*curbuf->b_p_fp != NUL) {
+ stuffReadbuff(curbuf->b_p_fp);
+ } else if (*p_fp != NUL) {
stuffReadbuff(p_fp);
+ } else {
+ stuffReadbuff((char_u *)"fmt");
+ }
stuffReadbuff((char_u *)"\n']");
}