On 18 Nov 2013 at 11:25, Gavin Lambert wrote:
I wouldn't be proposing that MAX_PATH should be changed for any code not being compiled for the latest toolset where MAX_PATH was extended. So, if you're linking to MSVCRT13.DLL then you get MAX_PATH=1024, while any previous MSVCRT gets MAX_PATH=260.
That's not where MAX_PATH comes from though. It's in the Windows SDK, not the C Runtime. There's plenty of code that calls the WinAPI directly, and that's where the value of MAX_PATH matters.
You are right, though by MSVCRT version I was meaning MSVC toolset version e.g. the v120 thing you can choose. And of course well written Win32 API code ought to adjust to a larger MAX_PATH without any problems at all :) Still, it would be hard to create a business case in favour of it within Microsoft, and therefore it is very hard to imagine it happening.
BTW, my current side project of implementing a standard transactional graph database gets rid of the path length limitation on Windows. One of its interfaces is a POSIX-like file system interface, and by POSIX-like I mean it looks just like a POSIX file system except it has more reserved characters for working with things like multiple file versions, creating directories which are really live searches on the graph store, being able to transact update many files atomically or not at all etc. My idea is that (eventually) you could mount this graph store as a fuse filesystem and work with it as if it were a real file system.
Sounds a little like the database-based filesystem MS were planning to replace everything with in Vista, but eventually abandoned. (WinFS, I think it might have been called..?)
I could talk about that one for several hours ... yes, you're right I've spoken extensively with colleagues who used to work on WinFS back in the day. They believe my design approach to be correct. Whether it *is* correct of course I may find out some day depending on what happens after we relocate from Canada back to Europe. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/