3767eb - patchlevel 237

Authored and Committed by Karsten Hopp 13 years ago
1 file changed. 222 lines added. 0 lines removed.
    - patchlevel 237
    
        
file added
+222
7.3.237 ADDED
@@ -0,0 +1,222 @@
1
+ To: vim_dev@googlegroups.com
2
+ Subject: Patch 7.3.237
3
+ Fcc: outbox
4
+ From: Bram Moolenaar <Bram@moolenaar.net>
5
+ Mime-Version: 1.0
6
+ Content-Type: text/plain; charset=UTF-8
7
+ Content-Transfer-Encoding: 8bit
8
+ ------------
9
+
10
+ Patch 7.3.237
11
+ Problem: "filetype" completion doesn't work on Windows. (Yue Wu)
12
+ Solution: Don't use a glob pattern for the directories, use a list of
13
+ directories. (Dominique Pelle)
14
+ Files: src/ex_getln.c
15
+
16
+
17
+ *** ../vim-7.3.236/src/ex_getln.c 2011-05-19 18:26:34.000000000 +0200
18
+ --- src/ex_getln.c 2011-06-26 19:36:36.000000000 +0200
19
+ ***************
20
+ *** 110,116 ****
21
+ static int expand_showtail __ARGS((expand_T *xp));
22
+ #ifdef FEAT_CMDL_COMPL
23
+ static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
24
+ ! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname));
25
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
26
+ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
27
+ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
28
+ --- 110,116 ----
29
+ static int expand_showtail __ARGS((expand_T *xp));
30
+ #ifdef FEAT_CMDL_COMPL
31
+ static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
32
+ ! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
33
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
34
+ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
35
+ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
36
+ ***************
37
+ *** 4536,4548 ****
38
+ || xp->xp_context == EXPAND_TAGS_LISTFILES)
39
+ return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
40
+ if (xp->xp_context == EXPAND_COLORS)
41
+ ! return ExpandRTDir(pat, num_file, file, "colors");
42
+ if (xp->xp_context == EXPAND_COMPILER)
43
+ ! return ExpandRTDir(pat, num_file, file, "compiler");
44
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
45
+ ! return ExpandRTDir(pat, num_file, file, "syntax");
46
+ if (xp->xp_context == EXPAND_FILETYPE)
47
+ ! return ExpandRTDir(pat, num_file, file, "{syntax,indent,ftplugin}");
48
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
49
+ if (xp->xp_context == EXPAND_USER_LIST)
50
+ return ExpandUserList(xp, num_file, file);
51
+ --- 4536,4560 ----
52
+ || xp->xp_context == EXPAND_TAGS_LISTFILES)
53
+ return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
54
+ if (xp->xp_context == EXPAND_COLORS)
55
+ ! {
56
+ ! char *directories[] = {"colors", NULL};
57
+ ! return ExpandRTDir(pat, num_file, file, directories);
58
+ ! }
59
+ if (xp->xp_context == EXPAND_COMPILER)
60
+ ! {
61
+ ! char *directories[] = {"colors", NULL};
62
+ ! return ExpandRTDir(pat, num_file, file, directories);
63
+ ! }
64
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
65
+ ! {
66
+ ! char *directories[] = {"syntax", NULL};
67
+ ! return ExpandRTDir(pat, num_file, file, directories);
68
+ ! }
69
+ if (xp->xp_context == EXPAND_FILETYPE)
70
+ ! {
71
+ ! char *directories[] = {"syntax", "indent", "ftplugin", NULL};
72
+ ! return ExpandRTDir(pat, num_file, file, directories);
73
+ ! }
74
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
75
+ if (xp->xp_context == EXPAND_USER_LIST)
76
+ return ExpandUserList(xp, num_file, file);
77
+ ***************
78
+ *** 4995,5051 ****
79
+ /*
80
+ * Expand color scheme, compiler or filetype names:
81
+ * 'runtimepath'/{dirnames}/{pat}.vim
82
+ ! * dirnames may contain one directory (ex: "colorscheme") or can be a glob
83
+ ! * expression matching multiple directories (ex: "{syntax,ftplugin,indent}").
84
+ */
85
+ static int
86
+ ExpandRTDir(pat, num_file, file, dirnames)
87
+ char_u *pat;
88
+ int *num_file;
89
+ char_u ***file;
90
+ ! char *dirnames;
91
+ {
92
+ ! char_u *all;
93
+ char_u *s;
94
+ char_u *e;
95
+ garray_T ga;
96
+
97
+ *num_file = 0;
98
+ *file = NULL;
99
+ ! s = alloc((unsigned)(STRLEN(pat) + STRLEN(dirnames) + 7));
100
+ ! if (s == NULL)
101
+ ! return FAIL;
102
+ ! sprintf((char *)s, "%s/%s*.vim", dirnames, pat);
103
+ ! all = globpath(p_rtp, s, 0);
104
+ ! vim_free(s);
105
+ ! if (all == NULL)
106
+ ! return FAIL;
107
+
108
+ ! ga_init2(&ga, (int)sizeof(char *), 3);
109
+ ! for (s = all; *s != NUL; s = e)
110
+ {
111
+ ! e = vim_strchr(s, '\n');
112
+ ! if (e == NULL)
113
+ ! e = s + STRLEN(s);
114
+ ! if (ga_grow(&ga, 1) == FAIL)
115
+ ! break;
116
+ ! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
117
+ {
118
+ ! for (s = e - 4; s > all; mb_ptr_back(all, s))
119
+ ! if (*s == '\n' || vim_ispathsep(*s))
120
+ ! break;
121
+ ! ++s;
122
+ ! ((char_u **)ga.ga_data)[ga.ga_len] =
123
+ vim_strnsave(s, (int)(e - s - 4));
124
+ ! ++ga.ga_len;
125
+ }
126
+ ! if (*e != NUL)
127
+ ! ++e;
128
+ }
129
+ ! vim_free(all);
130
+
131
+ /* Sort and remove duplicates which can happen when specifying multiple
132
+ ! * directories in dirnames such as "{syntax,ftplugin,indent}". */
133
+ remove_duplicates(&ga);
134
+
135
+ *file = ga.ga_data;
136
+ --- 5007,5074 ----
137
+ /*
138
+ * Expand color scheme, compiler or filetype names:
139
+ * 'runtimepath'/{dirnames}/{pat}.vim
140
+ ! * "dirnames" is an array with one or more directory names.
141
+ */
142
+ static int
143
+ ExpandRTDir(pat, num_file, file, dirnames)
144
+ char_u *pat;
145
+ int *num_file;
146
+ char_u ***file;
147
+ ! char *dirnames[];
148
+ {
149
+ ! char_u *matches;
150
+ char_u *s;
151
+ char_u *e;
152
+ garray_T ga;
153
+ + int i;
154
+ + int pat_len;
155
+
156
+ *num_file = 0;
157
+ *file = NULL;
158
+ ! pat_len = STRLEN(pat);
159
+ ! ga_init2(&ga, (int)sizeof(char *), 10);
160
+
161
+ ! for (i = 0; dirnames[i] != NULL; ++i)
162
+ {
163
+ ! s = alloc((unsigned)(STRLEN(dirnames[i]) + pat_len + 7));
164
+ ! if (s == NULL)
165
+ {
166
+ ! ga_clear_strings(&ga);
167
+ ! return FAIL;
168
+ ! }
169
+ ! sprintf((char *)s, "%s/%s*.vim", dirnames[i], pat);
170
+ ! matches = globpath(p_rtp, s, 0);
171
+ ! vim_free(s);
172
+ ! if (matches == NULL)
173
+ ! continue;
174
+ !
175
+ ! for (s = matches; *s != NUL; s = e)
176
+ ! {
177
+ ! e = vim_strchr(s, '\n');
178
+ ! if (e == NULL)
179
+ ! e = s + STRLEN(s);
180
+ ! if (ga_grow(&ga, 1) == FAIL)
181
+ ! break;
182
+ ! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
183
+ ! {
184
+ ! for (s = e - 4; s > matches; mb_ptr_back(matches, s))
185
+ ! if (*s == '\n' || vim_ispathsep(*s))
186
+ ! break;
187
+ ! ++s;
188
+ ! ((char_u **)ga.ga_data)[ga.ga_len] =
189
+ vim_strnsave(s, (int)(e - s - 4));
190
+ ! ++ga.ga_len;
191
+ ! }
192
+ ! if (*e != NUL)
193
+ ! ++e;
194
+ }
195
+ ! vim_free(matches);
196
+ }
197
+ ! if (ga.ga_len == 0)
198
+ ! return FAIL;
199
+
200
+ /* Sort and remove duplicates which can happen when specifying multiple
201
+ ! * directories in dirnames. */
202
+ remove_duplicates(&ga);
203
+
204
+ *file = ga.ga_data;
205
+ *** ../vim-7.3.236/src/version.c 2011-06-26 19:13:33.000000000 +0200
206
+ --- src/version.c 2011-06-26 19:39:39.000000000 +0200
207
+ ***************
208
+ *** 711,712 ****
209
+ --- 711,714 ----
210
+ { /* Add new patch number below this line */
211
+ + /**/
212
+ + 237,
213
+ /**/
214
+
215
+ --
216
+ hundred-and-one symptoms of being an internet addict:
217
+ 230. You spend your Friday nights typing away at your keyboard
218
+
219
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
220
+ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
221
+ \\\ an exciting new programming language -- http://www.Zimbu.org ///
222
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///