updated for version 7.0203
diff --git a/src/fileio.c b/src/fileio.c
index 7cbbfb1..ed5a653 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2318,16 +2318,13 @@
p = msg_trunc_attr(IObuff, FALSE, 0);
if (read_stdin || read_buffer || restart_edit != 0
|| (msg_scrolled != 0 && !need_wait_return))
- {
/* Need to repeat the message after redrawing when:
* - When reading from stdin (the screen will be cleared next).
* - When restart_edit is set (otherwise there will be a delay
* before redrawing).
* - When the screen was scrolled but there is no wait-return
* prompt. */
- set_keep_msg(p);
- keep_msg_attr = 0;
- }
+ set_keep_msg(p, 0);
msg_scrolled_ign = FALSE;
}
@@ -2335,6 +2332,7 @@
if (newfile && (error
#ifdef FEAT_MBYTE
|| conv_error != 0
+ || (illegal_byte > 0 && bad_char_behavior != BAD_KEEP)
#endif
))
curbuf->b_p_ro = TRUE;
@@ -4377,8 +4375,7 @@
STRCAT(IObuff, shortmess(SHM_WRI) ? _(" [w]") : _(" written"));
}
- set_keep_msg(msg_trunc_attr(IObuff, FALSE, 0));
- keep_msg_attr = 0;
+ set_keep_msg(msg_trunc_attr(IObuff, FALSE, 0), 0);
}
/* When written everything correctly: reset 'modified'. Unless not
diff --git a/src/proto/message.pro b/src/proto/message.pro
index a4095f2..e029964 100644
--- a/src/proto/message.pro
+++ b/src/proto/message.pro
@@ -16,7 +16,8 @@
void ex_messages __ARGS((exarg_T *eap));
void msg_end_prompt __ARGS((void));
void wait_return __ARGS((int redraw));
-void set_keep_msg __ARGS((char_u *s));
+void set_keep_msg __ARGS((char_u *s, int attr));
+void set_keep_msg_from_hist __ARGS((void));
void msg_start __ARGS((void));
void msg_starthere __ARGS((void));
void msg_putchar __ARGS((int c));