Use the sorting function StrCmpLogicalW
provided by the win32 API
#128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current sorting function
alphanumsort()
is very different from the sorting in Windows Explorer.For Example:
Microsoft does not open source the sorting algorithm, but does provide the API, see StrCmpLogicalW.
Fortunately, LuaJIT can call Windows API, and most popular mpv windows build are builds with LuaJIT, such as shinchiro/mpv-winbuild-cmake.
So if OS is Windows and mpv builds with luaJIT, we can use the win32 API to ensure that the sorting in playlistmanager is exactly the same as Windows Explorer,
otherwise, use the default sorting function
alphanumsort()
.StrCmpLogicalW
sort