diff src/tag.c @ 7266:6ba7182fb7bd v7.4.941

commit https://github.com/vim/vim/commit/0f6562e9036f889185dff49a75c7fc5ffb28b307 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Nov 24 18:48:14 2015 +0100 patch 7.4.941 Problem: There is no way to ignore case only for tag searches. Solution: Add the 'tagcase' option. (Gary Johnson)
author Christian Brabandt <cb@256bit.org>
date Tue, 24 Nov 2015 19:00:06 +0100
parents b782813c73a6
children 0b6c37dd858d
line wrap: on
line diff
--- a/src/tag.c
+++ b/src/tag.c
@@ -1385,6 +1385,18 @@ find_tags(pat, num_matches, matchesp, fl
     int		use_cscope = (flags & TAG_CSCOPE);
 #endif
     int		verbose = (flags & TAG_VERBOSE);
+    int		save_p_ic = p_ic;
+
+    /*
+     * Change the value of 'ignorecase' according to 'tagcase' for the
+     * duration of this function.
+     */
+    switch (curbuf->b_tc_flags ? curbuf->b_tc_flags : tc_flags)
+    {
+	case TC_FOLLOWIC:               break;
+	case TC_IGNORE:   p_ic = TRUE;  break;
+	case TC_MATCH:    p_ic = FALSE; break;
+    }
 
     help_save = curbuf->b_help;
     orgpat.pat = pat;
@@ -2552,6 +2564,8 @@ findtag_end:
     vim_free(saved_pat);
 #endif
 
+    p_ic = save_p_ic;
+
     return retval;
 }