Benjamin R. Haskell wrote:
> Gist is that the Windows DLL loading process searches the current directory,
> unless specifically instructed not to.  (Idiotic.)

It's not idiotic that the current directory would be somewhere in the search 
order.  Note that the search order also includes searching the whole PATH.  On 
Windows, the PATH implicitly includes the current directory -- this is the 
reason you don't have to type .\vim.exe to run Vim if it's in the current 
directory, even without explicitly adding . to your PATH.

> At least it hasn't fronted the
> current directory by default for a while.  (Prior to XP SP2 default search 
> order
> started with the Current dir and ended with the system dirs.)

The current directory has never been the first location in the search order.  
The first location has always been the application directory.  This is pretty 
much required because you need to be able to ship applications that use their 
own DLLs without the possibility of colliding with other similarly named DLLs 
elsewhere on the system.  If Vim installs its own libintl.dll, which it does, 
then there's no security issue.

What changed with XP SP2 was that the current directory was moved from before 
the Windows directories to after the Windows directories.  Now it's adjacent in 
the search order to the rest of PATH, which makes much more sense since as 
noted above the current directory is implicitly considered to be part of PATH.  
Link:  http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx.  It's easy 
to see that this change only matters for standard Windows DLLs.  For any third 
party DLL, e.g. libintl.dll, it won't be found in the Windows directories so 
the effective search order is always simply 1) application directory; 2) 
current directory; 3) rest of PATH.

Craig

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui