[vim] - patchlevel 1034
Karsten Hopp
karsten at fedoraproject.org
Tue Jun 4 10:09:51 UTC 2013
commit 024a3df82f486f87f186fc35392199e19325f7eb
Author: Karsten Hopp <karsten at redhat.com>
Date: Tue Jun 4 12:06:11 2013 +0200
- patchlevel 1034
7.3.1034 | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 254 insertions(+), 0 deletions(-)
---
diff --git a/7.3.1034 b/7.3.1034
new file mode 100644
index 0000000..59e7ee3
--- /dev/null
+++ b/7.3.1034
@@ -0,0 +1,254 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.1034
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.1034
+Problem: New regexp code using strange multi-byte code.
+Solution: Use the normal code to advance and backup pointers.
+Files: src/regexp_nfa.c
+
+
+*** ../vim-7.3.1033/src/regexp_nfa.c 2013-05-28 22:03:13.000000000 +0200
+--- src/regexp_nfa.c 2013-05-28 22:25:28.000000000 +0200
+***************
+*** 188,195 ****
+ static int nfa_regcomp_start __ARGS((char_u*expr, int re_flags));
+ static int nfa_recognize_char_class __ARGS((char_u *start, char_u *end, int extra_newl));
+ static int nfa_emit_equi_class __ARGS((int c, int neg));
+- static void nfa_inc __ARGS((char_u **p));
+- static void nfa_dec __ARGS((char_u **p));
+ static int nfa_regatom __ARGS((void));
+ static int nfa_regpiece __ARGS((void));
+ static int nfa_regconcat __ARGS((void));
+--- 188,193 ----
+***************
+*** 554,601 ****
+ */
+
+ /*
+- * Increments the pointer "p" by one (multi-byte) character.
+- */
+- static void
+- nfa_inc(p)
+- char_u **p;
+- {
+- #ifdef FEAT_MBYTE
+- if (has_mbyte)
+- mb_ptr2char_adv(p);
+- else
+- #endif
+- *p = *p + 1;
+- }
+-
+- /*
+- * Decrements the pointer "p" by one (multi-byte) character.
+- */
+- static void
+- nfa_dec(p)
+- char_u **p;
+- {
+- #ifdef FEAT_MBYTE
+- char_u *p2, *oldp;
+-
+- if (has_mbyte)
+- {
+- oldp = *p;
+- /* Try to find the multibyte char that advances to the current
+- * position. */
+- do
+- {
+- *p = *p - 1;
+- p2 = *p;
+- mb_ptr2char_adv(&p2);
+- } while (p2 != oldp);
+- }
+- #else
+- *p = *p - 1;
+- #endif
+- }
+-
+- /*
+ * Parse the lowest level.
+ *
+ * An atom can be one of a long list of items. Many atoms match one character
+--- 552,557 ----
+***************
+*** 963,969 ****
+ EMIT(NFA_OR);
+ }
+ regparse = endp;
+! nfa_inc(®parse);
+ return OK;
+ }
+ /*
+--- 919,925 ----
+ EMIT(NFA_OR);
+ }
+ regparse = endp;
+! mb_ptr_adv(regparse);
+ return OK;
+ }
+ /*
+***************
+*** 978,984 ****
+ {
+ negated = TRUE;
+ glue = NFA_CONCAT;
+! nfa_inc(®parse);
+ }
+ if (*regparse == '-')
+ {
+--- 934,940 ----
+ {
+ negated = TRUE;
+ glue = NFA_CONCAT;
+! mb_ptr_adv(regparse);
+ }
+ if (*regparse == '-')
+ {
+***************
+*** 986,992 ****
+ EMIT(startc);
+ TRY_NEG();
+ EMIT_GLUE();
+! nfa_inc(®parse);
+ }
+ /* Emit the OR branches for each character in the [] */
+ emit_range = FALSE;
+--- 942,948 ----
+ EMIT(startc);
+ TRY_NEG();
+ EMIT_GLUE();
+! mb_ptr_adv(regparse);
+ }
+ /* Emit the OR branches for each character in the [] */
+ emit_range = FALSE;
+***************
+*** 1090,1096 ****
+ {
+ emit_range = TRUE;
+ startc = oldstartc;
+! nfa_inc(®parse);
+ continue; /* reading the end of the range */
+ }
+
+--- 1046,1052 ----
+ {
+ emit_range = TRUE;
+ startc = oldstartc;
+! mb_ptr_adv(regparse);
+ continue; /* reading the end of the range */
+ }
+
+***************
+*** 1110,1116 ****
+ )
+ )
+ {
+! nfa_inc(®parse);
+
+ if (*regparse == 'n')
+ startc = reg_string ? NL : NFA_NEWL;
+--- 1066,1072 ----
+ )
+ )
+ {
+! mb_ptr_adv(regparse);
+
+ if (*regparse == 'n')
+ startc = reg_string ? NL : NFA_NEWL;
+***************
+*** 1125,1131 ****
+ /* TODO(RE) This needs more testing */
+ startc = coll_get_char();
+ got_coll_char = TRUE;
+! nfa_dec(®parse);
+ }
+ else
+ {
+--- 1081,1087 ----
+ /* TODO(RE) This needs more testing */
+ startc = coll_get_char();
+ got_coll_char = TRUE;
+! mb_ptr_back(old_regparse, regparse);
+ }
+ else
+ {
+***************
+*** 1210,1226 ****
+ EMIT_GLUE();
+ }
+
+! nfa_inc(®parse);
+ } /* while (p < endp) */
+
+! nfa_dec(®parse);
+ if (*regparse == '-') /* if last, '-' is just a char */
+ {
+ EMIT('-');
+ TRY_NEG();
+ EMIT_GLUE();
+ }
+! nfa_inc(®parse);
+
+ if (extra == ADD_NL) /* \_[] also matches \n */
+ {
+--- 1166,1182 ----
+ EMIT_GLUE();
+ }
+
+! mb_ptr_adv(regparse);
+ } /* while (p < endp) */
+
+! mb_ptr_back(old_regparse, regparse);
+ if (*regparse == '-') /* if last, '-' is just a char */
+ {
+ EMIT('-');
+ TRY_NEG();
+ EMIT_GLUE();
+ }
+! mb_ptr_adv(regparse);
+
+ if (extra == ADD_NL) /* \_[] also matches \n */
+ {
+***************
+*** 1231,1237 ****
+
+ /* skip the trailing ] */
+ regparse = endp;
+! nfa_inc(®parse);
+ if (negated == TRUE)
+ {
+ /* Mark end of negated char range */
+--- 1187,1193 ----
+
+ /* skip the trailing ] */
+ regparse = endp;
+! mb_ptr_adv(regparse);
+ if (negated == TRUE)
+ {
+ /* Mark end of negated char range */
+*** ../vim-7.3.1033/src/version.c 2013-05-28 22:03:13.000000000 +0200
+--- src/version.c 2013-05-28 22:29:18.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1034,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+7. You finally do take that vacation, but only after buying a cellular modem
+ and a laptop.
+
+ /// Bram Moolenaar -- Bram at 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 ///
More information about the scm-commits
mailing list