libbluray | branch: master | hpi1 <[email protected]> | Wed Mar 13 23:10:18 2013 +0200| [f8cc1186f13f06f06ba113aac07d0f91eb9085a5] | committer: hpi1
Improved win32 file_get_data_home(): alloc string dynamically > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=f8cc1186f13f06f06ba113aac07d0f91eb9085a5 --- src/file/dirs_win32.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/file/dirs_win32.c b/src/file/dirs_win32.c index cc87a29..622f977 100644 --- a/src/file/dirs_win32.c +++ b/src/file/dirs_win32.c @@ -36,16 +36,18 @@ const char *file_get_data_home(void) { - static char appdir[MAX_PATH] = ""; + static char *appdir = NULL; wchar_t wdir[MAX_PATH]; - if (*appdir) + if (appdir) return appdir; /* Get the "Application Data" folder for the user */ if (S_OK == SHGetFolderPathW(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, - NULL, SHGFP_TYPE_CURRENT, wdir)) { - WideCharToMultiByte (CP_UTF8, 0, wdir, -1, appdir, MAX_PATH, NULL, NULL); + NULL, SHGFP_TYPE_CURRENT, wdir)) { + int len = WideCharToMultiByte (CP_UTF8, 0, wdir, -1, NULL, 0, NULL, NULL); + appdir = malloc(len); + WideCharToMultiByte (CP_UTF8, 0, wdir, -1, appdir, len, NULL, NULL); return appdir; } _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
