]> git.pld-linux.org Git - packages/vim.git/blame - 7.2.051
- new
[packages/vim.git] / 7.2.051
CommitLineData
65bfde4c
AG
1To: vim-dev@vim.org
2Subject: Patch 7.2.051
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=ISO-8859-1
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.2.051
11Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath().
12Solution: Add an extra argument to these functions. (Ingo Karkat)
13Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro,
14 runtime/doc/eval.txt, runtime/doc/options.txt
15
16
17*** ../vim-7.2.050/src/eval.c Thu Nov 20 16:11:03 2008
18--- src/eval.c Thu Nov 27 22:15:40 2008
19***************
20*** 7564,7571 ****
21 {"getwinposx", 0, 0, f_getwinposx},
22 {"getwinposy", 0, 0, f_getwinposy},
23 {"getwinvar", 2, 2, f_getwinvar},
24! {"glob", 1, 1, f_glob},
25! {"globpath", 2, 2, f_globpath},
26 {"has", 1, 1, f_has},
27 {"has_key", 2, 2, f_has_key},
28 {"haslocaldir", 0, 0, f_haslocaldir},
29--- 7564,7571 ----
30 {"getwinposx", 0, 0, f_getwinposx},
31 {"getwinposy", 0, 0, f_getwinposy},
32 {"getwinvar", 2, 2, f_getwinvar},
33! {"glob", 1, 2, f_glob},
34! {"globpath", 2, 3, f_globpath},
35 {"has", 1, 1, f_has},
36 {"has_key", 2, 2, f_has_key},
37 {"haslocaldir", 0, 0, f_haslocaldir},
38***************
39*** 9557,9563 ****
40 else
41 {
42 /* When the optional second argument is non-zero, don't remove matches
43! * for 'suffixes' and 'wildignore' */
44 if (argvars[1].v_type != VAR_UNKNOWN
45 && get_tv_number_chk(&argvars[1], &error))
46 flags |= WILD_KEEP_ALL;
47--- 9557,9563 ----
48 else
49 {
50 /* When the optional second argument is non-zero, don't remove matches
51! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
52 if (argvars[1].v_type != VAR_UNKNOWN
53 && get_tv_number_chk(&argvars[1], &error))
54 flags |= WILD_KEEP_ALL;
55***************
56*** 11323,11335 ****
57 typval_T *argvars;
58 typval_T *rettv;
59 {
60 expand_T xpc;
61
62! ExpandInit(&xpc);
63! xpc.xp_context = EXPAND_FILES;
64! rettv->v_type = VAR_STRING;
65! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
66! NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL);
67 }
68
69 /*
70--- 11323,11347 ----
71 typval_T *argvars;
72 typval_T *rettv;
73 {
74+ int flags = WILD_SILENT|WILD_USE_NL;
75 expand_T xpc;
76+ int error = FALSE;
77
78! /* When the optional second argument is non-zero, don't remove matches
79! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
80! if (argvars[1].v_type != VAR_UNKNOWN
81! && get_tv_number_chk(&argvars[1], &error))
82! flags |= WILD_KEEP_ALL;
83! rettv->v_type = VAR_STRING;
84! if (!error)
85! {
86! ExpandInit(&xpc);
87! xpc.xp_context = EXPAND_FILES;
88! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
89! NULL, flags, WILD_ALL);
90! }
91! else
92! rettv->vval.v_string = NULL;
93 }
94
95 /*
96***************
97*** 11340,11353 ****
98 typval_T *argvars;
99 typval_T *rettv;
100 {
101 char_u buf1[NUMBUFLEN];
102 char_u *file = get_tv_string_buf_chk(&argvars[1], buf1);
103
104 rettv->v_type = VAR_STRING;
105! if (file == NULL)
106 rettv->vval.v_string = NULL;
107 else
108! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file);
109 }
110
111 /*
112--- 11352,11373 ----
113 typval_T *argvars;
114 typval_T *rettv;
115 {
116+ int flags = 0;
117 char_u buf1[NUMBUFLEN];
118 char_u *file = get_tv_string_buf_chk(&argvars[1], buf1);
119+ int error = FALSE;
120
121+ /* When the optional second argument is non-zero, don't remove matches
122+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */
123+ if (argvars[2].v_type != VAR_UNKNOWN
124+ && get_tv_number_chk(&argvars[2], &error))
125+ flags |= WILD_KEEP_ALL;
126 rettv->v_type = VAR_STRING;
127! if (file == NULL || error)
128 rettv->vval.v_string = NULL;
129 else
130! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file,
131! flags);
132 }
133
134 /*
135*** ../vim-7.2.050/src/ex_getln.c Sat Nov 15 14:10:23 2008
136--- src/ex_getln.c Thu Nov 20 18:37:20 2008
137***************
138*** 2524,2530 ****
139 && ccline.xpc->xp_context != EXPAND_NOTHING
140 && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
141 {
142! int i = ccline.xpc->xp_pattern - p;
143
144 /* If xp_pattern points inside the old cmdbuff it needs to be adjusted
145 * to point into the newly allocated memory. */
146--- 2524,2530 ----
147 && ccline.xpc->xp_context != EXPAND_NOTHING
148 && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
149 {
150! int i = (int)(ccline.xpc->xp_pattern - p);
151
152 /* If xp_pattern points inside the old cmdbuff it needs to be adjusted
153 * to point into the newly allocated memory. */
154***************
155*** 4897,4903 ****
156 if (s == NULL)
157 return FAIL;
158 sprintf((char *)s, "%s/%s*.vim", dirname, pat);
159! all = globpath(p_rtp, s);
160 vim_free(s);
161 if (all == NULL)
162 return FAIL;
163--- 4897,4903 ----
164 if (s == NULL)
165 return FAIL;
166 sprintf((char *)s, "%s/%s*.vim", dirname, pat);
167! all = globpath(p_rtp, s, 0);
168 vim_free(s);
169 if (all == NULL)
170 return FAIL;
171***************
172*** 4938,4946 ****
173 * newlines. Returns NULL for an error or no matches.
174 */
175 char_u *
176! globpath(path, file)
177 char_u *path;
178 char_u *file;
179 {
180 expand_T xpc;
181 char_u *buf;
182--- 4938,4947 ----
183 * newlines. Returns NULL for an error or no matches.
184 */
185 char_u *
186! globpath(path, file, expand_options)
187 char_u *path;
188 char_u *file;
189+ int expand_options;
190 {
191 expand_T xpc;
192 char_u *buf;
193***************
194*** 4969,4978 ****
195 {
196 add_pathsep(buf);
197 STRCAT(buf, file);
198! if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL
199! && num_p > 0)
200 {
201! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT);
202 for (len = 0, i = 0; i < num_p; ++i)
203 len += (int)STRLEN(p[i]) + 1;
204
205--- 4970,4979 ----
206 {
207 add_pathsep(buf);
208 STRCAT(buf, file);
209! if (ExpandFromContext(&xpc, buf, &num_p, &p,
210! WILD_SILENT|expand_options) != FAIL && num_p > 0)
211 {
212! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options);
213 for (len = 0, i = 0; i < num_p; ++i)
214 len += (int)STRLEN(p[i]) + 1;
215
216*** ../vim-7.2.050/src/proto/ex_getln.pro Wed May 28 16:49:01 2008
217--- src/proto/ex_getln.pro Thu Nov 20 18:27:57 2008
218***************
219*** 31,37 ****
220 void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
221 int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
222 int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
223! char_u *globpath __ARGS((char_u *path, char_u *file));
224 void init_history __ARGS((void));
225 int get_histtype __ARGS((char_u *name));
226 void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
227--- 31,37 ----
228 void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
229 int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
230 int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
231! char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
232 void init_history __ARGS((void));
233 int get_histtype __ARGS((char_u *name));
234 void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
235*** ../vim-7.2.050/runtime/doc/eval.txt Sun Nov 9 13:43:25 2008
236--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008
237***************
238*** 1,4 ****
239! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02
240
241
242 VIM REFERENCE MANUAL by Bram Moolenaar
243--- 1,4 ----
244! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 27
245
246
247 VIM REFERENCE MANUAL by Bram Moolenaar
248***************
249*** 1706,1712 ****
250 exists( {expr}) Number TRUE if {expr} exists
251 extend({expr1}, {expr2} [, {expr3}])
252 List/Dict insert items of {expr2} into {expr1}
253! expand( {expr}) String expand special keywords in {expr}
254 feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
255 filereadable( {file}) Number TRUE if {file} is a readable file
256 filewritable( {file}) Number TRUE if {file} is a writable file
257--- 1709,1715 ----
258 exists( {expr}) Number TRUE if {expr} exists
259 extend({expr1}, {expr2} [, {expr3}])
260 List/Dict insert items of {expr2} into {expr1}
261! expand( {expr} [, {flag}]) String expand special keywords in {expr}
262 feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
263 filereadable( {file}) Number TRUE if {file} is a readable file
264 filewritable( {file}) Number TRUE if {file} is a writable file
265***************
266*** 1758,1765 ****
267 getwinposx() Number X coord in pixels of GUI Vim window
268 getwinposy() Number Y coord in pixels of GUI Vim window
269 getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
270! glob( {expr}) String expand file wildcards in {expr}
271! globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path}
272 has( {feature}) Number TRUE if feature {feature} supported
273 has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
274 haslocaldir() Number TRUE if current window executed |:lcd|
275--- 1761,1769 ----
276 getwinposx() Number X coord in pixels of GUI Vim window
277 getwinposy() Number Y coord in pixels of GUI Vim window
278 getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
279! glob( {expr} [, {flag}]) String expand file wildcards in {expr}
280! globpath( {path}, {expr} [, {flag}])
281! String do glob({expr}) for all dirs in {path}
282 has( {feature}) Number TRUE if feature {feature} supported
283 has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
284 haslocaldir() Number TRUE if current window executed |:lcd|
285***************
286*** 3286,3299 ****
287 :let list_is_on = getwinvar(2, '&list')
288 :echo "myvar = " . getwinvar(1, 'myvar')
289 <
290! *glob()*
291! glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the
292 use of special characters.
293 The result is a String.
294 When there are several matches, they are separated by <NL>
295 characters.
296! The 'wildignore' option applies: Names matching one of the
297! patterns in 'wildignore' will be skipped.
298 If the expansion fails, the result is an empty string.
299 A name for a non-existing file is not included.
300
301--- 3290,3305 ----
302 :let list_is_on = getwinvar(2, '&list')
303 :echo "myvar = " . getwinvar(1, 'myvar')
304 <
305! glob({expr} [, {flag}]) *glob()*
306! Expand the file wildcards in {expr}. See |wildcards| for the
307 use of special characters.
308 The result is a String.
309 When there are several matches, they are separated by <NL>
310 characters.
311! Unless the optional {flag} argument is given and is non-zero,
312! the 'suffixes' and 'wildignore' options apply: Names matching
313! one of the patterns in 'wildignore' will be skipped and
314! 'suffixes' affect the ordering of matches.
315 If the expansion fails, the result is an empty string.
316 A name for a non-existing file is not included.
317
318***************
319*** 3307,3326 ****
320 See |expand()| for expanding special Vim variables. See
321 |system()| for getting the raw output of an external command.
322
323! globpath({path}, {expr}) *globpath()*
324 Perform glob() on all directories in {path} and concatenate
325 the results. Example: >
326 :echo globpath(&rtp, "syntax/c.vim")
327 < {path} is a comma-separated list of directory names. Each
328 directory name is prepended to {expr} and expanded like with
329! glob(). A path separator is inserted when needed.
330 To add a comma inside a directory name escape it with a
331 backslash. Note that on MS-Windows a directory may have a
332 trailing backslash, remove it if you put a comma after it.
333 If the expansion fails for one of the directories, there is no
334 error message.
335! The 'wildignore' option applies: Names matching one of the
336! patterns in 'wildignore' will be skipped.
337
338 The "**" item can be used to search in a directory tree.
339 For example, to find all "README.txt" files in the directories
340--- 3313,3334 ----
341 See |expand()| for expanding special Vim variables. See
342 |system()| for getting the raw output of an external command.
343
344! globpath({path}, {expr} [, {flag}]) *globpath()*
345 Perform glob() on all directories in {path} and concatenate
346 the results. Example: >
347 :echo globpath(&rtp, "syntax/c.vim")
348 < {path} is a comma-separated list of directory names. Each
349 directory name is prepended to {expr} and expanded like with
350! |glob()|. A path separator is inserted when needed.
351 To add a comma inside a directory name escape it with a
352 backslash. Note that on MS-Windows a directory may have a
353 trailing backslash, remove it if you put a comma after it.
354 If the expansion fails for one of the directories, there is no
355 error message.
356! Unless the optional {flag} argument is given and is non-zero,
357! the 'suffixes' and 'wildignore' options apply: Names matching
358! one of the patterns in 'wildignore' will be skipped and
359! 'suffixes' affect the ordering of matches.
360
361 The "**" item can be used to search in a directory tree.
362 For example, to find all "README.txt" files in the directories
363*** ../vim-7.2.050/runtime/doc/options.txt Sat Aug 9 19:36:49 2008
364--- runtime/doc/options.txt Tue Nov 25 23:43:55 2008
365***************
366*** 1,4 ****
367! *options.txt* For Vim version 7.2. Last change: 2008 Aug 06
368
369
370 VIM REFERENCE MANUAL by Bram Moolenaar
371--- 1,4 ----
372! *options.txt* For Vim version 7.2. Last change: 2008 Nov 25
373
374
375 VIM REFERENCE MANUAL by Bram Moolenaar
376***************
377*** 7472,7478 ****
378 {not available when compiled without the |+wildignore|
379 feature}
380 A list of file patterns. A file that matches with one of these
381! patterns is ignored when completing file or directory names.
382 The pattern is used like with |:autocmd|, see |autocmd-patterns|.
383 Also see 'suffixes'.
384 Example: >
385--- 7481,7489 ----
386 {not available when compiled without the |+wildignore|
387 feature}
388 A list of file patterns. A file that matches with one of these
389! patterns is ignored when completing file or directory names, and
390! influences the result of |expand()|, |glob()| and |globpath()| unless
391! a flag is passed to disable this.
392 The pattern is used like with |:autocmd|, see |autocmd-patterns|.
393 Also see 'suffixes'.
394 Example: >
395*** ../vim-7.2.050/src/version.c Fri Nov 28 10:08:05 2008
396--- src/version.c Fri Nov 28 10:55:44 2008
397***************
398*** 678,679 ****
399--- 678,681 ----
400 { /* Add new patch number below this line */
401+ /**/
402+ 51,
403 /**/
404
405--
406Not too long ago, unzipping in public was illegal...
407
408 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
409/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
410\\\ download, build and distribute -- http://www.A-A-P.org ///
411 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
This page took 0.113785 seconds and 4 git commands to generate.