patch 8.1.0135: undo message delays screen update for CTRL-O u
Problem: Undo message delays screen update for CTRL-O u.
Solution: Add smsg_attr_keep(). (closes #3125)
diff --git a/src/message.c b/src/message.c
index e46c514..d5727b1 100644
--- a/src/message.c
+++ b/src/message.c
@@ -399,6 +399,20 @@
return msg_attr(IObuff, attr);
}
+ int
+# ifdef __BORLANDC__
+_RTLENTRYF
+# endif
+smsg_attr_keep(int attr, char_u *s, ...)
+{
+ va_list arglist;
+
+ va_start(arglist, s);
+ vim_vsnprintf((char *)IObuff, IOSIZE, (char *)s, arglist);
+ va_end(arglist);
+ return msg_attr_keep(IObuff, attr, TRUE);
+}
+
#endif
/*
diff --git a/src/proto.h b/src/proto.h
index 655b72c..8570af9 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -119,6 +119,12 @@
# ifdef __BORLANDC__
_RTLENTRYF
# endif
+smsg_attr_keep(int, char_u *, ...);
+
+int
+# ifdef __BORLANDC__
+_RTLENTRYF
+# endif
vim_snprintf_add(char *, size_t, char *, ...)
#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
__attribute__((format(printf, 3, 4)))
diff --git a/src/undo.c b/src/undo.c
index 117321e..be4e22e 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -2968,7 +2968,7 @@
}
#endif
- smsg((char_u *)_("%ld %s; %s #%ld %s"),
+ smsg_attr_keep(0, (char_u *)_("%ld %s; %s #%ld %s"),
u_oldcount < 0 ? -u_oldcount : u_oldcount,
_(msgstr),
did_undo ? _("before") : _("after"),
diff --git a/src/version.c b/src/version.c
index 94a1701..2d02461 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 135,
+/**/
134,
/**/
133,