Re: PATCH: Completion for find and sfind arguments (todo.txt)
- Nazri Ramliy wrote:
> On Fri, Mar 6, 2009 at 10:09 AM, Nazri Ramliy <ayiehere@...> wrote:Thanks! I'll look into it later.
> > On Thu, Mar 5, 2009 at 11:07 AM, Bram Moolenaar <Bram@...> wrote:
> >> Cycles in symbolic links are rare. The code should be able to handle
> >> this, in a way that it doesn't drop all results that contain a symbolic
> >> link. Thus symbolic links should be followed, unless getting to a
> >> directory that was previously visited.
> >> Anyway, the patch adds a lot of code. I'm wondering if we can reuse
> >> more of the existing code. How about using globpath()? Or use
> >> find_file_in_path(), like ex_find() does (also accepting directories
> >> though). The last one also takes care of removing duplicates.
> >> If your code is to be used, the chdir() calls are not safe. Look at the
> >> mch_FullName() function in os_unix.c, lots of remarks about this.
> >> Yet another reason to use as much of the existing code, that has been
> >> debugged for a long time, instead of introducing new code which new
> >> problems.
> >> Also, the functions potentially take a lot of time, so they should check
> >> for CTRL-C now and then. That means calling ui_breakcheck() and
> >> checking the got_int flag.
> > There's a couple more issues that I found out while using :find with the
> > patch:
> > 1. It doesn't honor the 'wildignore' setting in cases where there
> > are more than one files matching the pattern and at least one of
> > them would be excluded by 'wildignore'. The current behavior is
> > that it will list all the files that match the pattern whether or
> > not it matches 'wildignore'.
> > 2. Doing :find a/*/hello.html gets uniquefied to hello.html, which
> > may not be what we want as there might be other hello.html in
> > 'path'. The solution to this might be to uniquefy the name based
> > on the pattern, not by the fullpath alone.
> Here's the updated patch with all the above issues addressed:
> 1. Cycle resulting from symbolic links - I'm using globpath() and it
> seems that this is no longer an issue anymore.
> 2. No more chdir() calls.
> 3. Call to ui_breakcheck() is done and got_int flag is checked
> 4. wildignore setting is already handled by globpath()
> 5. uniquefy_paths() uniquefies and shortens the fullpaths based on the
> given pattern. Please check up on the FIXME note that I added in the
> If anyone could test the patch on other OS that would be great. I've
> tested it on my linux and all seemed well.
In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975
of them are to be found in the United States.
/// Bram Moolenaar -- Bram@... -- 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