mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
windows.c: Add unicode support in subsurface_launch_for_uri()
subsurface_launch_for_uri() requires unicode support, using ShellExecuteW() and also the passed UTF-8 buffer has to be translated to UTF-16 beforehand. Once the ShellExecuteW() is done we release the UTF-16 allocation. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7bb6108c34
commit
ff5a8b0650
1 changed files with 10 additions and 4 deletions
12
windows.c
12
windows.c
|
@ -300,10 +300,16 @@ void subsurface_command_line_exit(gint *argc, gchar ***argv)
|
|||
|
||||
gboolean subsurface_launch_for_uri(const char* uri)
|
||||
{
|
||||
if ((INT_PTR)ShellExecute(NULL, "open", uri, NULL, NULL, SW_SHOWNORMAL) > 32)
|
||||
return TRUE;
|
||||
gboolean ret = FALSE;
|
||||
wchar_t *wuri = (wchar_t *)g_utf8_to_utf16(uri, -1, NULL, NULL, NULL);
|
||||
if (wuri) {
|
||||
if ((INT_PTR)ShellExecuteW(NULL, L"open", wuri, NULL, NULL, SW_SHOWNORMAL) > 32)
|
||||
ret = TRUE;
|
||||
free(wuri);
|
||||
}
|
||||
if (!ret)
|
||||
g_message("ShellExecute failed for: %s", uri);
|
||||
return FALSE;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* check if we are running a newer OS version */
|
||||
|
|
Loading…
Add table
Reference in a new issue