updated for version 7.3.168 v7.3.168
authorBram Moolenaar <Bram@vim.org>
Thu, 28 Apr 2011 15:30:09 +0000 (17:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 28 Apr 2011 15:30:09 +0000 (17:30 +0200)
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.

src/getchar.c
src/version.c

index 1073d80d602db081d40006fa3a0811334c635e61..0437e94af653706aebe2927a49acc662ecb6e98c 100644 (file)
@@ -635,11 +635,14 @@ stuffReadbuffLen(s, len)
 /*
  * 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)
@@ -649,11 +652,16 @@ stuffReadbuffSpec(s)
            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
index ac145160d52a5cb6905e598c86e5a2695733fbf9..d4809d43aaa686ccd1475d62181f416343f1b3d6 100644 (file)
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    168,
 /**/
     167,
 /**/