Index: src/ex_docmd.c =================================================================== --- src/ex_docmd.c (revision 57762) +++ src/ex_docmd.c (working copy) @@ -652,6 +652,7 @@ MSG(_("Entering Ex mode. Type \"visual\" to go to Normal mode.")); while (exmode_active) { + global_last_cmd = 0; #ifdef FEAT_EX_EXTRA /* Check for a ":normal" command and no more characters left. */ if (ex_normal_busy > 0 && typebuf.tb_len == 0) @@ -682,7 +683,7 @@ if ((prev_line != curwin->w_cursor.lnum || changedtick != curbuf->b_changedtick) && !ex_no_reprint) { - if (curbuf->b_ml.ml_flags & ML_EMPTY) + if ((curbuf->b_ml.ml_flags & ML_EMPTY) && !Unix2003_compat) EMSG(_(e_emptybuf)); else { @@ -695,8 +696,13 @@ msg_row--; } msg_col = 0; - print_line_no_prefix(curwin->w_cursor.lnum, FALSE, FALSE); - msg_clr_eos(); + if (p_ap) { /* only if autoprint is on */ + if (!(Unix2003_compat && global_last_cmd)) { + /* not if :global or :v ex_08 test 478 */ + print_line_no_prefix(curwin->w_cursor.lnum, FALSE, FALSE); + msg_clr_eos(); + } + } } } else if (ex_pressedreturn && !ex_no_reprint) /* must be at EOF */ @@ -8079,7 +8085,15 @@ ex_equal(eap) exarg_T *eap; { + int save_silent=silent_mode; + int save_info_message=info_message; + if (Unix2003_compat) { + silent_mode = FALSE; /* = command output is not silenced */ + info_message = TRUE; + } smsg((char_u *)"%ld", (long)eap->line2); + silent_mode = save_silent; + info_message = save_info_message; ex_may_print(eap); }