updated for version 7.3.168
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.
diff --git a/src/getchar.c b/src/getchar.c
index 1073d80..0437e94 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -635,11 +635,14 @@
 /*
  * 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 @@
 	    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