Hmm. current directory was skipped with my patch. On Fri, Jan 30, 2009 at 3:17 PM, Yasuhiro MATSUMOTO <[email protected]> wrote: > oops. > > --------------------- > function executable() is too slow on windows. it seems that using > SearchPath() API. > SearchPath() tries following sequence if lpPath was set NULL. > --------------------- > > On Fri, Jan 30, 2009 at 3:12 PM, Yasuhiro MATSUMOTO <[email protected]> > wrote: >> Hi, bram and all. >> >> function executable() is too slow on windows. it seems that using >> SearchPath() API. >> SearchPath() tries following sequence if lp. >> >> 1. Location at executable. >> 2. Current directory >> 3. Windows System Direction which can get with GetSystemDirectory(). >> 4. Windows Directory. >> 5. Specified as PATH environment variable. >> >> * see remarks at >> http://msdn.microsoft.com/en-us/library/aa365527%28VS.85%29.aspx >> >> I guess that No3, No4, No5 is duplicated and I guess that No5 include >> No3 and No4. >> For size, I tried following patch and function executable() had few >> speed-up. :-) >> If i use netrw.vim then it took 3 seconds for getting password prompt >> from type ':e ftp://xxx'. >> But it took 1.5 seconds for them with following patch. >> >> Thanks. >> >> Index: src/os_win32.c >> =================================================================== >> --- src/os_win32.c (revision 1326) >> +++ src/os_win32.c (working copy) >> @@ -1594,7 +1594,7 @@ >> >> if (p != NULL) >> { >> - n = (long)SearchPathW(NULL, p, NULL, _MAX_PATH, fnamew, &dumw); >> + n = (long)SearchPathW(_wgetenv(L"PATH"), p, NULL, _MAX_PATH, >> fnamew, &dumw); >> vim_free(p); >> if (n > 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) >> { >> @@ -1608,7 +1608,7 @@ >> } >> } >> #endif >> - if (SearchPath(NULL, name, NULL, _MAX_PATH, fname, &dum) == 0) >> + if (SearchPath(getenv("PATH"), name, NULL, _MAX_PATH, fname, &dum) == 0) >> return FALSE; >> if (mch_isdir(fname)) >> return FALSE; >> >> >> -- >> - Yasuhiro Matsumoto >> > > > > -- > - Yasuhiro Matsumoto >
-- - Yasuhiro Matsumoto --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
