Patch 7.3.1055
Problem:    Negated collection does not match newline.
Solution:   Handle newline differently. (Hiroshi Shirosaki)
Files:      src/regexp_nfa.c, src/testdir/test64.ok, src/testdir/test64.in


*** ../vim-7.3.1054/src/regexp_nfa.c    2013-05-29 21:14:37.000000000 +0200
--- src/regexp_nfa.c    2013-05-30 11:47:40.000000000 +0200
***************
*** 1203,1215 ****
                }
                mb_ptr_adv(regparse);
  
-               if (extra == ADD_NL)        /* \_[] also matches \n */
-               {
-                   EMIT(reg_string ? NL : NFA_NEWL);
-                   TRY_NEG();
-                   EMIT_GLUE();
-               }
- 
                /* skip the trailing ] */
                regparse = endp;
                mb_ptr_adv(regparse);
--- 1203,1208 ----
***************
*** 1219,1224 ****
--- 1212,1225 ----
                    EMIT(NFA_END_NEG_RANGE);
                    EMIT(NFA_CONCAT);
                }
+ 
+               /* \_[] also matches \n but it's not negated */
+               if (extra == ADD_NL)
+               {
+                   EMIT(reg_string ? NL : NFA_NEWL);
+                   EMIT(NFA_OR);
+               }
+ 
                return OK;
            } /* if exists closing ] */
  
*** ../vim-7.3.1054/src/testdir/test64.ok       2013-05-29 21:14:37.000000000 
+0200
--- src/testdir/test64.ok       2013-05-30 11:48:31.000000000 +0200
***************
*** 731,736 ****
--- 731,742 ----
  OK 1 - \(<<\)\@1<=span.
  OK 0 - \(<<\)\@2<=span.
  OK 1 - \(<<\)\@2<=span.
+ OK 0 - \_[^8-9]\+
+ OK 1 - \_[^8-9]\+
+ OK 2 - \_[^8-9]\+
+ OK 0 - \_[^a]\+
+ OK 1 - \_[^a]\+
+ OK 2 - \_[^a]\+
  192.168.0.1
  192.168.0.1
  192.168.0.1
*** ../vim-7.3.1054/src/testdir/test64.in       2013-05-29 21:14:37.000000000 
+0200
--- src/testdir/test64.in       2013-05-30 11:45:59.000000000 +0200
***************
*** 344,351 ****
  :call add(tl, [0, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
  :call add(tl, [0, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', 
'<<'])
  :"
! :"""" Run the tests
  :"
  :"
  :for t in tl
  :  let re = t[0]
--- 344,355 ----
  :call add(tl, [0, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
  :call add(tl, [0, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', 
'<<'])
  :"
! :"""" "\_" prepended negated collection matches EOL
! :call add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
! :call add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
! :"
  :"
+ :"""" Run the tests
  :"
  :for t in tl
  :  let re = t[0]
*** ../vim-7.3.1054/src/version.c       2013-05-30 11:43:11.000000000 +0200
--- src/version.c       2013-05-30 11:49:51.000000000 +0200
***************
*** 730,731 ****
--- 730,733 ----
  {   /* Add new patch number below this line */
+ /**/
+     1055,
  /**/

-- 
"Making it up?  Why should I want to make anything up?  Life's bad enough
as it is without wanting to invent any more of it."
                -- Marvin, the Paranoid Android in Douglas Adams'
                   "The Hitchhiker's Guide to the Galaxy"

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui