Message ID | pull.28.v7.ffstaging.FFmpeg.1653430851.ffmpegagent@gmail.com |
---|---|
Headers | show |
Series | Support long file names on Windows | expand |
On Tue, 24 May 2022, ffmpegagent wrote: > This patchset adds support for long file and directory paths on Windows. The > implementation follows the same logic that .NET is using internally, with > the only exception that it doesn't expand short path components in 8.3 > format. .NET does this as the same function is also used for other purposes, > but in our case, that's not required. Short (8.3) paths are working as well > with the extended path prefix, even when longer than 260. > > Successfully tested: > > * Regular paths wth drive letter > * Regular UNC paths > * Long paths wth drive letter > * Long paths wth drive letter and forward slashes > * Long UNC paths > * Prefixed paths wth drive letter > * Prefixed UNC paths > > I have kept the individual functions separate on purpose, to make it easy to > compare with the .NET impl. (compilers should inlinie those anyway) > > v2 > > * wchar_filename: Improve comments and function documentation > * os_support: adjust defines to use win32_stat > > v3 > > * removed length check in path_is_extended() > * added path_is_device_path() check in add_extended_prefix() > * add_extended_prefix(): clarified doc and add checks > * clarified string allocation length calculation > * replaced 260 with MAX_PATH > * removed redundant checks after normalization > > v4 > > * rebased. no changes > > v5 > > * resolved the ugly struct duplication > * compatible with _USE_32BIT_TIME_T > > v6 > > * wchar_filename.h: added links to .NET source code > * wchar_filename.h: free allocations on error > * os_support.hs: use clean and safe way to redirect stat() calls > > v7 > > * os_support.h: remapped fstat with win32_stat structure > * os_support.h: use int64_t for some members > * avformat/file: remove _WIN32 condition > > softworkz (3): > avutil/wchar_filename,file_open: Support long file names on Windows > avformat/os_support: Support long file names on Windows > avformat/file: remove _WIN32 condition Thanks, I think this iteration of the patchset is fine - I don't have anything else to add to it at the moment. Let's wait for others to chime in still before proceeding further with it, though. // Martin