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
