Patch 8.2.3255
Problem:    ci" finds following string but ci< and others don't.
Solution:   When not inside an object find the start. (Connor Lane Smit,
            closes #8670)
Files:      src/search.c, src/testdir/test_textobjects.vim, src/textobject.c


*** ../vim-8.2.3254/src/search.c        2021-07-27 22:00:39.749712387 +0200
--- src/search.c        2021-07-31 13:25:20.207976900 +0200
***************
*** 2145,2150 ****
--- 2145,2152 ----
      else if (initc != '#' && initc != NUL)
      {
        find_mps_values(&initc, &findc, &backwards, TRUE);
+       if (dir)
+           backwards = (dir == FORWARD) ? FALSE : TRUE;
        if (findc == NUL)
            return NULL;
      }
*** ../vim-8.2.3254/src/testdir/test_textobjects.vim    2020-10-15 
21:23:25.163883137 +0200
--- src/testdir/test_textobjects.vim    2021-07-31 13:25:20.207976900 +0200
***************
*** 564,567 ****
--- 564,599 ----
    close!
  endfunc
  
+ " Test for i(, i<, etc. when cursor is in front of a block
+ func Test_textobj_find_paren_forward()
+   new
+ 
+   " i< and a> when cursor is in front of a block
+   call setline(1, '#include <foo.h>')
+   normal 0yi<
+   call assert_equal('foo.h', @")
+   normal 0ya>
+   call assert_equal('<foo.h>', @")
+ 
+   " 2i(, 3i( in front of a block enters second/third nested '('
+   call setline(1, 'foo (bar (baz (quux)))')
+   normal 0yi)
+   call assert_equal('bar (baz (quux))', @")
+   normal 02yi)
+   call assert_equal('baz (quux)', @")
+   normal 03yi)
+   call assert_equal('quux', @")
+ 
+   " 3i( in front of a block doesn't enter third but un-nested '('
+   call setline(1, 'foo (bar (baz) (quux))')
+   normal 03di)
+   call assert_equal('foo (bar (baz) (quux))', getline(1))
+   normal 02di)
+   call assert_equal('foo (bar () (quux))', getline(1))
+   normal 0di)
+   call assert_equal('foo ()', getline(1))
+ 
+   close!
+ endfunc
+ 
  " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.3254/src/textobject.c    2020-10-15 21:23:25.163883137 +0200
--- src/textobject.c    2021-07-31 13:25:20.207976900 +0200
***************
*** 1079,1090 ****
       */
      save_cpo = p_cpo;
      p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%");
!     while (count-- > 0)
      {
!       if ((pos = findmatch(NULL, what)) == NULL)
!           break;
!       curwin->w_cursor = *pos;
!       start_pos = *pos;   // the findmatch for end_pos will overwrite *pos
      }
      p_cpo = save_cpo;
  
--- 1079,1103 ----
       */
      save_cpo = p_cpo;
      p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%");
!     if ((pos = findmatch(NULL, what)) != NULL)
      {
!       while (count-- > 0)
!       {
!           if ((pos = findmatch(NULL, what)) == NULL)
!               break;
!           curwin->w_cursor = *pos;
!           start_pos = *pos;   // the findmatch for end_pos will overwrite *pos
!       }
!     }
!     else
!     {
!       while (count-- > 0)
!       {
!           if ((pos = findmatchlimit(NULL, what, FM_FORWARD, 0)) == NULL)
!               break;
!           curwin->w_cursor = *pos;
!           start_pos = *pos;   // the findmatch for end_pos will overwrite *pos
!       }
      }
      p_cpo = save_cpo;
  
*** ../vim-8.2.3254/src/version.c       2021-07-31 12:43:19.464837526 +0200
--- src/version.c       2021-07-31 13:28:55.303549433 +0200
***************
*** 757,758 ****
--- 757,760 ----
  {   /* Add new patch number below this line */
+ /**/
+     3255,
  /**/

-- 
Facepalm statement #9: "Did you see, there is now even a hobbit book"

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202107311132.16VBWGob2647559%40masaka.moolenaar.net.

Raspunde prin e-mail lui