summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.264
blob: 71ec851f3fe00ce64f00e916ecfe4d4df6a0048a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
To: vim_dev@googlegroups.com
Subject: Patch 7.3.264
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.3.264
Problem:    When the current directory name contains wildcard characters, such
	    as "foo[with]bar", the tags file can't be found.  (Jeremy
	    Erickson)
Solution:   When searching for matching files also match without expanding
	    wildcards.  This is a bit of a hack.
Files:	    src/vim.h, src/misc1.c, src/misc2.c


*** ../vim-7.3.263/src/vim.h	2011-07-20 15:04:52.000000000 +0200
--- src/vim.h	2011-07-27 16:21:38.000000000 +0200
***************
*** 816,821 ****
--- 816,822 ----
  #define EW_PATH		0x80	/* search in 'path' too */
  #define EW_ICASE	0x100	/* ignore case */
  #define EW_NOERROR	0x200	/* no error for bad regexp */
+ #define EW_NOTWILD	0x400	/* add match with literal name if exists */
  /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
   * is used when executing commands and EW_SILENT for interactive expanding. */
  
*** ../vim-7.3.263/src/misc1.c	2011-07-20 15:04:52.000000000 +0200
--- src/misc1.c	2011-07-27 17:24:39.000000000 +0200
***************
*** 9119,9125 ****
  	 * all entries found with "matchname". */
  	if ((p[0] != '.' || starts_with_dot)
  		&& (matchname == NULL
! 		    || vim_regexec(&regmatch, p, (colnr_T)0)))
  	{
  #ifdef WIN3264
  	    STRCPY(s, p);
--- 9119,9127 ----
  	 * all entries found with "matchname". */
  	if ((p[0] != '.' || starts_with_dot)
  		&& (matchname == NULL
! 		  || vim_regexec(&regmatch, p, (colnr_T)0)
! 		  || ((flags & EW_NOTWILD)
! 		     && fnamencmp(path + (s - buf), p, e - s) == 0)))
  	{
  #ifdef WIN3264
  	    STRCPY(s, p);
***************
*** 9323,9329 ****
      e = p;
      *e = NUL;
  
!     /* now we have one wildcard component between "s" and "e" */
      /* Remove backslashes between "wildoff" and the start of the wildcard
       * component. */
      for (p = buf + wildoff; p < s; ++p)
--- 9325,9331 ----
      e = p;
      *e = NUL;
  
!     /* Now we have one wildcard component between "s" and "e". */
      /* Remove backslashes between "wildoff" and the start of the wildcard
       * component. */
      for (p = buf + wildoff; p < s; ++p)
***************
*** 9390,9396 ****
  	    if (dp == NULL)
  		break;
  	    if ((dp->d_name[0] != '.' || starts_with_dot)
! 		    && vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
  	    {
  		STRCPY(s, dp->d_name);
  		len = STRLEN(buf);
--- 9392,9400 ----
  	    if (dp == NULL)
  		break;
  	    if ((dp->d_name[0] != '.' || starts_with_dot)
! 		 && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
! 		   || ((flags & EW_NOTWILD)
! 		     && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
  	    {
  		STRCPY(s, dp->d_name);
  		len = STRLEN(buf);
*** ../vim-7.3.263/src/misc2.c	2011-07-07 17:15:29.000000000 +0200
--- src/misc2.c	2011-07-27 17:21:10.000000000 +0200
***************
*** 4653,4661 ****
      {
  	if (r_ptr[0] == '\\' && r_ptr[1] == ';')
  	{
! 	    /* overwrite the escape char,
! 	     * use STRLEN(r_ptr) to move the trailing '\0'
! 	     */
  	    STRMOVE(r_ptr, r_ptr + 1);
  	    r_ptr++;
  	}
--- 4653,4660 ----
      {
  	if (r_ptr[0] == '\\' && r_ptr[1] == ';')
  	{
! 	    /* Overwrite the escape char,
! 	     * use STRLEN(r_ptr) to move the trailing '\0'. */
  	    STRMOVE(r_ptr, r_ptr + 1);
  	    r_ptr++;
  	}
***************
*** 4914,4923 ****
  			stackp->ffs_filearray_size = 0;
  		}
  		else
  		    expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
  			    &stackp->ffs_filearray_size,
  			    &stackp->ffs_filearray,
! 			    EW_DIR|EW_ADDSLASH|EW_SILENT);
  
  		stackp->ffs_filearray_cur = 0;
  		stackp->ffs_stage = 0;
--- 4913,4925 ----
  			stackp->ffs_filearray_size = 0;
  		}
  		else
+ 		    /* Add EW_NOTWILD because the expanded path may contain
+ 		     * wildcard characters that are to be taken literally.
+ 		     * This is a bit of a hack. */
  		    expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
  			    &stackp->ffs_filearray_size,
  			    &stackp->ffs_filearray,
! 			    EW_DIR|EW_ADDSLASH|EW_SILENT|EW_NOTWILD);
  
  		stackp->ffs_filearray_cur = 0;
  		stackp->ffs_stage = 0;
*** ../vim-7.3.263/src/version.c	2011-07-27 14:15:41.000000000 +0200
--- src/version.c	2011-07-27 17:25:44.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
  {   /* Add new patch number below this line */
+ /**/
+     264,
  /**/

-- 
CUSTOMER:     You're not fooling anyone y'know.  Look, isn't there something
              you can do?
DEAD PERSON:  I feel happy... I feel happy.
    [whop]
CUSTOMER:     Ah, thanks very much.
MORTICIAN:    Not at all.  See you on Thursday.
CUSTOMER:     Right.
                                  The Quest for the Holy Grail (Monty Python)

 /// Bram Moolenaar -- Bram@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    ///