updated for version 7.0142
diff --git a/src/eval.c b/src/eval.c
index 6547b46..448bd7f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -17583,6 +17583,7 @@
MSG_PUTS("...");
}
msg_putchar(')');
+ msg_clr_eos();
#ifdef FEAT_EVAL
if (p_verbose > 0)
last_set_msg(fp->uf_script_ID);
@@ -18934,12 +18935,19 @@
last_set_msg(scriptID)
scid_T scriptID;
{
+ char_u *p;
+
if (scriptID != 0)
{
- verbose_enter();
- MSG_PUTS(_("\n\tLast set from "));
- MSG_PUTS(get_scriptname(scriptID));
- verbose_leave();
+ p = home_replace_save(NULL, get_scriptname(scriptID));
+ if (p != NULL)
+ {
+ verbose_enter();
+ MSG_PUTS(_("\n\tLast set from "));
+ MSG_PUTS(p);
+ vim_free(p);
+ verbose_leave();
+ }
}
}
diff --git a/src/ex_getln.c b/src/ex_getln.c
index c6190be..544e76b 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2369,17 +2369,24 @@
* Do arabic shaping into a temporary buffer. This is very
* inefficient!
*/
- if (len * 2 > buflen)
+ if (len * 2 + 2 > buflen)
{
/* Re-allocate the buffer. We keep it around to avoid a lot of
* alloc()/free() calls. */
vim_free(arshape_buf);
- buflen = len * 2;
+ buflen = len * 2 + 2;
arshape_buf = alloc(buflen);
if (arshape_buf == NULL)
return; /* out of memory */
}
+ if (utf_iscomposing(utf_ptr2char(ccline.cmdbuff + start)))
+ {
+ /* Prepend a space to draw the leading composing char on. */
+ arshape_buf[0] = ' ';
+ newlen = 1;
+ }
+
for (j = start; j < start + len; j += mb_l)
{
p = ccline.cmdbuff + j;
diff --git a/src/regexp.c b/src/regexp.c
index e212cc0..d72a7ef 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -6243,7 +6243,6 @@
{
char_u *str1, *str2;
int c1, c2, c11, c12;
- int ix;
int junk;
/* we have to handle the strcmp ourselves, since it is necessary to
@@ -6251,11 +6250,10 @@
str1 = s1;
str2 = s2;
c1 = c2 = 0;
- for (ix = 0; ix < *n; )
+ while ((int)(str1 - s1) < *n)
{
c1 = mb_ptr2char_adv(&str1);
c2 = mb_ptr2char_adv(&str2);
- ix += utf_char2len(c1);
/* decompose the character if necessary, into 'base' characters
* because I don't care about Arabic, I will hard-code the Hebrew
diff --git a/src/screen.c b/src/screen.c
index 11d89b6..269c780 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3480,6 +3480,15 @@
if (mb_c < 0x80)
c = mb_c;
mb_utf8 = TRUE;
+
+ /* At start of the line we can have a composing char.
+ * Draw it as a space with a composing char. */
+ if (utf_iscomposing(mb_c))
+ {
+ u8c_c2 = u8c_c1;
+ u8c_c1 = mb_c;
+ mb_c = ' ';
+ }
}
if ((mb_l == 1 && c >= 0x80)
diff --git a/src/search.c b/src/search.c
index 3013d13..37b3873 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1105,7 +1105,16 @@
if (msgbuf != NULL)
{
msgbuf[0] = dirc;
- STRCPY(msgbuf + 1, p);
+#ifdef FEAT_MBYTE
+ if (enc_utf8 && utf_iscomposing(utf_ptr2char(p)))
+ {
+ /* Use a space to draw the composing char on. */
+ msgbuf[1] = ' ';
+ STRCPY(msgbuf + 2, p);
+ }
+ else
+#endif
+ STRCPY(msgbuf + 1, p);
if (spats[0].off.line || spats[0].off.end || spats[0].off.off)
{
p = msgbuf + STRLEN(msgbuf);
diff --git a/src/version.h b/src/version.h
index 208f7a5..5fd353d 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6, compiled "