Ingo Karkat wrote:

> On 24-Jun-08 12:07, Bram Moolenaar wrote:
> > 
> > Ingo Karkat wrote:
> > 
> >> On 20-Jun-08 18:34, Ingo Karkat wrote:
> >>> On 20-Jun-08 17:59, Ben Fritz wrote:
> >>>> I have a script that creates files like this:
> >>>>
> >>>> file.ext -> file.ext.ann_out.ext
> >>>>
> >>>> I don't want to see these files when I do filename completion, because
> >>>> they clutter up my wildmenu. For this reason, I put:
> >>>>
> >>>> set wildignore+=*.ann_out.*
> >>>>
> >>>> into my .vimrc.
> >>>>
> >>>> Now, when I do this:
> >>>>
> >>>> gvim --remote-tab-silent file.ext.ann_out.ext
> >>>>
> >>>> I get "E479: No match"
> >>>>
> >>>> When I just do gvim file.ext.ann_out.ext, the file opens fine.
> >>>>
> >>>> When I remove the setting of wildignore from my vimrc, both methods
> >>>> work fine.
> >>>>
> >>>> VIM - Vi IMproved 7.1 (2007 May 12, compiled Jun 18 2008 07:22:20)
> >>>> MS-Windows 32 bit GUI version with OLE support
> >>>> Included patches: 1-315
> >>>> Compiled by [EMAIL PROTECTED]
> >>>> Big version with GUI.  Features included (+) or not (-):
> >>>> +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset
> >>>> +cindent
> >>>> +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info
> >>>> +comments
> >>>> +cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs -dnd -
> >>>> ebcdic
> >>>> +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path
> >>>> +find_in_path
> >>>> +folding -footer +gettext/dyn -hangul_input +iconv/dyn +insert_expand
> >>>> +jumplist
> >>>>  +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
> >>>> +menu
> >>>> +mksession +modify_fname +mouse +mouseshape +multi_byte_ime/dyn
> >>>> +multi_lang
> >>>> +mzscheme/dyn +netbeans_intg +ole -osfiletype +path_extra +perl/dyn -
> >>>> postscript
> >>>>  +printer -profile +python/dyn +quickfix +reltime +rightleft +ruby/
> >>>> dyn
> >>>> +scrollbind +signs +smartindent -sniff +statusline -sun_workshop
> >>>> +syntax
> >>>> +tag_binary +tag_old_static -tag_any_white +tcl/dyn -tgetent -
> >>>> termresponse
> >>>> +textobjects +title +toolbar +user_commands +vertsplit +virtualedit
> >>>> +visual
> >>>> +visualextra +viminfo +vreplace +wildignore +wildmenu +windows
> >>>> +writebackup
> >>>> -xfontset -xim -xterm_save -xpm_w32
> >>>>    system vimrc file: "$VIM\vimrc"
> >>>>      user vimrc file: "$HOME\_vimrc"
> >>>>  2nd user vimrc file: "$VIM\_vimrc"
> >>>>       user exrc file: "$HOME\_exrc"
> >>>>   2nd user exrc file: "$VIM\_exrc"
> >>>>   system gvimrc file: "$VIM\gvimrc"
> >>>>     user gvimrc file: "$HOME\_gvimrc"
> >>>> 2nd user gvimrc file: "$VIM\_gvimrc"
> >>>>     system menu file: "$VIMRUNTIME\menu.vim"
> >>>> Compilation: gcc -O3 -fomit-frame-pointer -freg-struct-return -fno-
> >>>> strength-reduce -DWIN32 -DHAVE_PATHDEF -DFEAT_BIG -DWINVER=0x0400 -
> >>>> D_WIN32_WINNT=0x0400 -DFEAT_PERL -DDYNAMIC_PERL -
> >>>> DDYNAMIC_PERL_DLL="perl58.dll" -DFEAT_PYTHON -DDYNAMIC_PYTHON -
> >>>> DDYNAMIC_PYTHON_DLL="python25.dll" -DFEAT_RUBY -DDYNAMIC_RUBY -
> >>>> DDYNAMIC_RUBY_DLL="msvcrt-ruby18.dll" -DDYNAMIC_RUBY_VER=18 -
> >>>> DFEAT_MZSCHEME -DDYNAMIC_MZSCHEME -
> >>>> DDYNAMIC_MZSCH_DLL="libmzsch370.dll" -
> >>>> DDYNAMIC_MZGC_DLL="libmzgc370.dll" -DFEAT_TCL -DDYNAMIC_TCL -
> >>>> DDYNAMIC_TCL_DLL="tcl84.dll" -DDYNAMIC_GETTEXT -DDYNAMIC_ICONV -
> >>>> DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_CSCOPE -
> >>>> DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_OLE -
> >>>> march=i386 -Iproto -I/cygdrive/c/PERL/lib/CORE -I/cygdrive/c/PYTHON25/
> >>>> include -I/cygdrive/c/RUBY/lib/ruby/1.8/i386-mswin32 -I/cygdrive/c/
> >>>> PROGRA~1/MzScheme/include -I/cygdrive/c/Tcl/include -s -mno-cygwin
> >>>> Linking: gcc -s -o gvim.exe  -luuid -lole32 /cygdrive/c/Tcl/lib/
> >>>> tclstub84.lib -lwsock32 -mwindows -lcomctl32 -lversion -loleaut32 -
> >>>> lstdc++
> >>> I have made an observation that may be related to this:
> >>> The 'wildignore' option influences / filters the output of glob():
> >>>
> >>> gvim -N -u NONE
> >>> :cd $VIMRUNTIME/tools
> >>> :echo glob("efm*")
> >>> efm_filter.pl
> >>> efm_filter.txt
> >>> efm_perl.pl
> >>> :set wildignore=*.txt
> >>> :echo glob("efm*")
> >>> efm_filter.pl
> >>> efm_perl.pl
> >>>
> >>> I didn't expect this. :help 'wildignore' mentions:
> >>>     A file that matches with one of these patterns is ignored when 
> >>> completing
> >>>     file or directory names.
> >>> But it isn't obvious that glob() is doing filename completion; its 
> >>> documented 
> >>> purpose is to "*expand* the file wildcards in {expr}".
> >>>
> >>> So, does this work as expected, or is it a bug that the implementation of 
> >>> glob() 
> >>> is affected by 'wildignore'? In the first case, I would appreciate it if 
> >>> a note 
> >>> is added to the help texts for 'wildignore' and glob().
> >>>
> >>> -- regards, ingo
> >>>
> >>> PS: Sorry for potentially hijacking this thread; I don't know whether 
> >>> this 
> >>> actually is related.
> >>>
> >>> /^-- Ingo Karkat -- /^-- /^-- /^-- /^-- /^-- /^-- http://ingo-karkat.de/ 
> >>> --
> >> Nobody has commented yet; are there any opinions? Bram?
> >>> So, does this work as expected, or is it a bug that the implementation of
> >>> glob() is affected by 'wildignore'?
> >> I'd rather classify this as a bug. I had to temporarily reset
> >> 'wildignore' once in a script to get around this; on the other hand,
> >> if I want filtering of filenames, I can always filter() the glob()
> >> output.
> > 
> > Glob() has always worked this way, changing it might break something.
> > So let's document it.  Perhaps an extra option to glob() and globpath
> > can be used to, ehm, ignore 'wildignore'.
> 
> You're right on, Bram, expand() already has this extra option. Please see 
> attached patch 'wildignore.diff', which adds this optional flag to glob() and 
> globpath(), too. (Additionally, I've renamed the local variable 'flag' to 
> 'expand_options' in f_expand() for consistency, fixed a wrong comment 
> statement 
> about 'suffixes' in there, and added the missing optional expand({expr} [, 
> {flag}]) argument in the :help functions documentation.)
> 
> In case you don't want to introduce this change in VIM 7.2 any more,
> I've done a documentation-only update in 'wildignore_doconly.diff',
> which mentions the glob()-connection at :help 'wildignore' and
> clarifies the effects of 'wildignore' and 'suffixes' at :help glob()
> and :help globpath().

Thanks for the patch.  I'll add a remark in the todo list.  I don't
think this will be included for 7.2.

-- 
>From "know your smileys":
 :-{}   Too much lipstick

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui