Problem: When the second argument of input() contains a CR the text up to
that is used without asking the user. (Yasuhiro Matsumoto)
Solution: Change CR, NL and ESC in the text to a space.
/*
* Stuff "s" into the stuff buffer, leaving special key codes unmodified and
* escaping other K_SPECIAL and CSI bytes.
+ * Change CR, LF and ESC into a space.
*/
void
stuffReadbuffSpec(s)
char_u *s;
{
+ int c;
+
while (*s != NUL)
{
if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
s += 3;
}
else
+ {
#ifdef FEAT_MBYTE
- stuffcharReadbuff(mb_ptr2char_adv(&s));
+ c = mb_ptr2char_adv(&s);
#else
- stuffcharReadbuff(*s++);
+ c = *s++;
#endif
+ if (c == CAR || c == NL || c == ESC)
+ c = ' ';
+ stuffcharReadbuff(c);
+ }
}
}
#endif
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 168,
/**/
167,
/**/