mirror of
https://github.com/mpv-player/mpv
synced 2024-12-29 10:32:15 +00:00
9565675488
In commit c09245cdf2
long-path support was enabled for mpv without actually
making sure that there was no code left that used the
old limit (260 Unicode chars) for buffer sizes.
This commit fixes all but one case.
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
/*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <windows.h>
|
|
|
|
#include "osdep/path.h"
|
|
#include "osdep/io.h"
|
|
#include "options/path.h"
|
|
|
|
// Missing from MinGW headers.
|
|
WINBASEAPI DWORD WINAPI GetCurrentDirectoryW(DWORD nBufferLength, LPWSTR lpBuffer);
|
|
|
|
const char *mp_get_platform_path_uwp(void *talloc_ctx, const char *type)
|
|
{
|
|
if (strcmp(type, "home") == 0) {
|
|
DWORD count = GetCurrentDirectoryW(0, NULL);
|
|
wchar_t *home_dir = talloc_array(NULL, wchar_t, count);
|
|
if (GetCurrentDirectoryW(count, home_dir) != 0) {
|
|
char *ret = mp_to_utf8(talloc_ctx, home_dir);
|
|
talloc_free(home_dir);
|
|
return ret;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|