mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Change gnc_launch_assoc to use gnc_uri_get_scheme
Change the gnc_launch_assoc function to use the gnc_uri_get_scheme instead of glib one and re-indent source file
This commit is contained in:
parent
4cb2910121
commit
167d209688
@ -45,6 +45,7 @@
|
|||||||
#include "dialog-commodity.h"
|
#include "dialog-commodity.h"
|
||||||
#include "dialog-totd.h"
|
#include "dialog-totd.h"
|
||||||
#include "gnc-ui-util.h"
|
#include "gnc-ui-util.h"
|
||||||
|
#include "gnc-uri-utils.h"
|
||||||
#include "gnc-session.h"
|
#include "gnc-session.h"
|
||||||
#include "qofbookslots.h"
|
#include "qofbookslots.h"
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
@ -482,32 +483,33 @@ void
|
|||||||
gnc_launch_assoc (const char *uri)
|
gnc_launch_assoc (const char *uri)
|
||||||
{
|
{
|
||||||
wchar_t *winuri = NULL;
|
wchar_t *winuri = NULL;
|
||||||
char* scheme = g_uri_parse_scheme(uri);
|
|
||||||
/* ShellExecuteW open doesn't decode http escapes if it's passed a
|
/* ShellExecuteW open doesn't decode http escapes if it's passed a
|
||||||
* file URI so we have to do it. */
|
* file URI so we have to do it. */
|
||||||
if (scheme && strcmp (scheme, "file") == 0)
|
if (gnc_uri_is_file_uri (uri))
|
||||||
{
|
{
|
||||||
gchar *filename = g_filename_from_uri (uri, NULL, NULL);
|
gchar *uri_ue = g_uri_unescape_string (uri, NULL);
|
||||||
winuri = (wchar_t *)g_utf8_to_utf16(filename, -1, NULL, NULL, NULL);
|
gchar *filename = gnc_uri_get_path (uri_ue);
|
||||||
|
winuri = (wchar_t *)g_utf8_to_utf16(filename, -1, NULL, NULL, NULL);
|
||||||
|
g_free (filename);
|
||||||
|
g_free (uri_ue);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
winuri = (wchar_t *)g_utf8_to_utf16(uri, -1, NULL, NULL, NULL);
|
winuri = (wchar_t *)g_utf8_to_utf16(uri, -1, NULL, NULL, NULL);
|
||||||
|
|
||||||
if (winuri)
|
if (winuri)
|
||||||
{
|
{
|
||||||
wchar_t *wincmd = (wchar_t *)g_utf8_to_utf16("open", -1,
|
wchar_t *wincmd = (wchar_t *)g_utf8_to_utf16("open", -1,
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
if ((INT_PTR)ShellExecuteW(NULL, wincmd, winuri,
|
if ((INT_PTR)ShellExecuteW(NULL, wincmd, winuri,
|
||||||
NULL, NULL, SW_SHOWNORMAL) <= 32)
|
NULL, NULL, SW_SHOWNORMAL) <= 32)
|
||||||
{
|
{
|
||||||
const gchar *message =
|
const gchar *message =
|
||||||
_("GnuCash could not find the associated file");
|
_("GnuCash could not find the associated file");
|
||||||
gnc_error_dialog(NULL, "%s: %s", message, uri);
|
gnc_error_dialog(NULL, "%s: %s", message, uri);
|
||||||
}
|
}
|
||||||
g_free (wincmd);
|
g_free (wincmd);
|
||||||
g_free (winuri);
|
g_free (winuri);
|
||||||
}
|
}
|
||||||
g_free (scheme);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user