]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blobdiff - vim/patches/vim-7.3.338.patch0
vim: Import latest patches from upstream.
[people/ms/ipfire-3.x.git] / vim / patches / vim-7.3.338.patch0
diff --git a/vim/patches/vim-7.3.338.patch0 b/vim/patches/vim-7.3.338.patch0
new file mode 100644 (file)
index 0000000..f273212
--- /dev/null
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.338
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.338
+Problem:    Using getchar() in an expression mapping doesn't work well.
+Solution:   Don't save and restore the typeahead. (James Vega)
+Files:     src/getchar.c, src/testdir/test34.ok
+
+
+*** ../vim-7.3.337/src/getchar.c       2011-08-17 20:33:18.000000000 +0200
+--- src/getchar.c      2011-10-12 21:53:27.000000000 +0200
+***************
+*** 2460,2486 ****
+  
+                       /*
+                        * Handle ":map <expr>": evaluate the {rhs} as an
+!                       * expression.  Save and restore the typeahead so that
+!                       * getchar() can be used.  Also save and restore the
+!                       * command line for "normal :".
+                        */
+                       if (mp->m_expr)
+                       {
+-                          tasave_T    tabuf;
+                           int         save_vgetc_busy = vgetc_busy;
+  
+!                          save_typeahead(&tabuf);
+!                          if (tabuf.typebuf_valid)
+!                          {
+!                              vgetc_busy = 0;
+!                              save_m_keys = vim_strsave(mp->m_keys);
+!                              save_m_str = vim_strsave(mp->m_str);
+!                              s = eval_map_expr(save_m_str, NUL);
+!                              vgetc_busy = save_vgetc_busy;
+!                          }
+!                          else
+!                              s = NULL;
+!                          restore_typeahead(&tabuf);
+                       }
+                       else
+  #endif
+--- 2460,2477 ----
+  
+                       /*
+                        * Handle ":map <expr>": evaluate the {rhs} as an
+!                       * expression.  Also save and restore the command line
+!                       * for "normal :".
+                        */
+                       if (mp->m_expr)
+                       {
+                           int         save_vgetc_busy = vgetc_busy;
+  
+!                          vgetc_busy = 0;
+!                          save_m_keys = vim_strsave(mp->m_keys);
+!                          save_m_str = vim_strsave(mp->m_str);
+!                          s = eval_map_expr(save_m_str, NUL);
+!                          vgetc_busy = save_vgetc_busy;
+                       }
+                       else
+  #endif
+*** ../vim-7.3.337/src/testdir/test34.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test34.ok      2011-10-12 21:59:39.000000000 +0200
+***************
+*** 1,5 ****
+  xxx4asdf fail nop ok 9 333
+! XX111XX
+  ---222---
+  1. one
+  2. two
+--- 1,5 ----
+  xxx4asdf fail nop ok 9 333
+! XX111-XX
+  ---222---
+  1. one
+  2. two
+*** ../vim-7.3.337/src/version.c       2011-10-12 21:04:15.000000000 +0200
+--- src/version.c      2011-10-12 21:20:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     338,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+65. The last time you looked at the clock it was 11:30pm, and in what
+    seems like only a few seconds later, your sister runs past you to
+    catch her 7am school bus.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///