[vim] - patchlevel 1012
Karsten Hopp
karsten at fedoraproject.org
Tue Jun 4 10:07:58 UTC 2013
commit d6e760e3357711d55cc6827a57e4a33308e3133d
Author: Karsten Hopp <karsten at redhat.com>
Date: Tue Jun 4 12:05:57 2013 +0200
- patchlevel 1012
7.3.1012 | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 196 insertions(+), 0 deletions(-)
---
diff --git a/7.3.1012 b/7.3.1012
new file mode 100644
index 0000000..20c2998
--- /dev/null
+++ b/7.3.1012
@@ -0,0 +1,196 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.1012
+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.1012
+Problem: \Z does not work properly with the new regexp engine.
+Solution: Make \Z work. Add tests.
+Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
+
+
+*** ../vim-7.3.1011/src/regexp_nfa.c 2013-05-24 21:59:50.000000000 +0200
+--- src/regexp_nfa.c 2013-05-24 22:46:00.000000000 +0200
+***************
+*** 1184,1197 ****
+ EMIT(NFA_CONCAT);
+ }
+ return OK;
+! } /* if exists closing ] */
+! else if (reg_strict)
+ {
+ syntax_error = TRUE;
+ EMSG_RET_FAIL(_(e_missingbracket));
+ }
+
+- /* FALLTHROUGH */
+ default:
+ {
+ #ifdef FEAT_MBYTE
+--- 1184,1198 ----
+ EMIT(NFA_CONCAT);
+ }
+ return OK;
+! } /* if exists closing ] */
+!
+! if (reg_strict)
+ {
+ syntax_error = TRUE;
+ EMSG_RET_FAIL(_(e_missingbracket));
+ }
++ /* FALLTHROUGH */
+
+ default:
+ {
+ #ifdef FEAT_MBYTE
+***************
+*** 1214,1220 ****
+ EMIT(c);
+ if (i > 0)
+ EMIT(NFA_CONCAT);
+! if (i += utf_char2len(c) >= plen)
+ break;
+ c = utf_ptr2char(old_regparse + i);
+ }
+--- 1215,1221 ----
+ EMIT(c);
+ if (i > 0)
+ EMIT(NFA_CONCAT);
+! if ((i += utf_char2len(c)) >= plen)
+ break;
+ c = utf_ptr2char(old_regparse + i);
+ }
+***************
+*** 2269,2275 ****
+ /* TODO */
+ if (regflags & RF_ICOMBINE)
+ {
+! goto normalchar;
+ }
+ #endif
+ /* FALLTHROUGH */
+--- 2270,2276 ----
+ /* TODO */
+ if (regflags & RF_ICOMBINE)
+ {
+! /* use the base character only */
+ }
+ #endif
+ /* FALLTHROUGH */
+***************
+*** 3145,3167 ****
+ result = OK;
+ sta = t->state->out;
+ len = 0;
+! while (sta->c != NFA_END_COMPOSING && len < n)
+ {
+! if (len > 0)
+! mc = mb_ptr2char(reginput + len);
+! if (mc != sta->c)
+! break;
+! len += mb_char2len(mc);
+! sta = sta->out;
+ }
+
+ /* if input char length doesn't match regexp char length */
+ if (len < n || sta->c != NFA_END_COMPOSING)
+ result = FAIL;
+ end = t->state->out1; /* NFA_END_COMPOSING */
+- /* If \Z was present, then ignore composing characters */
+- if (ireg_icombine)
+- result = 1 ^ sta->negated;
+ ADD_POS_NEG_STATE(end);
+ break;
+ }
+--- 3146,3176 ----
+ result = OK;
+ sta = t->state->out;
+ len = 0;
+! if (ireg_icombine)
+ {
+! /* If \Z was present, then ignore composing characters. */
+! /* TODO: How about negated? */
+! if (sta->c != c)
+! result = FAIL;
+! len = n;
+! while (sta->c != NFA_END_COMPOSING)
+! sta = sta->out;
+ }
++ else
++ while (sta->c != NFA_END_COMPOSING && len < n)
++ {
++ if (len > 0)
++ mc = mb_ptr2char(reginput + len);
++ if (mc != sta->c)
++ break;
++ len += mb_char2len(mc);
++ sta = sta->out;
++ }
+
+ /* if input char length doesn't match regexp char length */
+ if (len < n || sta->c != NFA_END_COMPOSING)
+ result = FAIL;
+ end = t->state->out1; /* NFA_END_COMPOSING */
+ ADD_POS_NEG_STATE(end);
+ break;
+ }
+*** ../vim-7.3.1011/src/testdir/test95.in 2013-05-24 21:59:50.000000000 +0200
+--- src/testdir/test95.in 2013-05-24 23:02:13.000000000 +0200
+***************
+*** 41,46 ****
+--- 41,55 ----
+
+ :"""" Test \Z
+ :call add(tl, ['ú\Z', 'x'])
++ :call add(tl, ['יהוה\Z', 'יהוה', 'יהוה'])
++ :call add(tl, ['יְהוָה\Z', 'יהוה', 'יהוה'])
++ :call add(tl, ['יהוה\Z', 'יְהוָה', 'יְהוָה'])
++ :call add(tl, ['יְהוָה\Z', 'יְהוָה', 'יְהוָה'])
++ :call add(tl, ['יְ\Z', 'וְיַ', 'יַ'])
++ :call add(tl, ["ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
++ :call add(tl, ["ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
++ :call add(tl, ["ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
++ :call add(tl, ["ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
+
+ :"""" Combining different tests and features
+ :call add(tl, ['[^[=a=]]\+', 'ddaãâbcd', 'dd'])
+*** ../vim-7.3.1011/src/testdir/test95.ok 2013-05-24 21:59:50.000000000 +0200
+--- src/testdir/test95.ok 2013-05-24 23:02:59.000000000 +0200
+***************
+*** 12,15 ****
+--- 12,24 ----
+ OK - .ม
+ OK - .ม่
+ OK - ú\Z
++ OK - יהוה\Z
++ OK - יְהוָה\Z
++ OK - יהוה\Z
++ OK - יְהוָה\Z
++ OK - יְ\Z
++ OK - קֹx\Z
++ OK - קֹx\Z
++ OK - קx\Z
++ OK - קx\Z
+ OK - [^[=a=]]\+
+*** ../vim-7.3.1011/src/version.c 2013-05-24 21:59:50.000000000 +0200
+--- src/version.c 2013-05-24 23:08:21.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1012,
+ /**/
+
+--
+BEDEVERE: And that, my lord, is how we know the Earth to be banana-shaped.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// 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