Do not rely on a particular CWD on Windows
on_app_activate() currently makes use of the CWD we are launched with, so I'm choosing to not enforce it globally.
This commit is contained in:
parent
b34fe63198
commit
2e9ea9b4e2
|
@ -828,9 +828,18 @@ thumbnailer_next(Thumbnailer *t)
|
||||||
"--thumbnail", fiv_thumbnail_sizes[self->item_size].thumbnail_spec_name,
|
"--thumbnail", fiv_thumbnail_sizes[self->item_size].thumbnail_spec_name,
|
||||||
"--", uri, NULL};
|
"--", uri, NULL};
|
||||||
|
|
||||||
|
GSubprocessLauncher *launcher =
|
||||||
|
g_subprocess_launcher_new(G_SUBPROCESS_FLAGS_STDOUT_PIPE);
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
gchar *prefix = g_win32_get_package_installation_directory_of_module(NULL);
|
||||||
|
g_subprocess_launcher_set_cwd(launcher, prefix);
|
||||||
|
g_free(prefix);
|
||||||
|
#endif
|
||||||
|
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
t->minion = g_subprocess_newv(t->target->icon ? argv_faster : argv_slower,
|
t->minion = g_subprocess_launcher_spawnv(
|
||||||
G_SUBPROCESS_FLAGS_STDOUT_PIPE, &error);
|
launcher, t->target->icon ? argv_faster : argv_slower, &error);
|
||||||
|
g_object_unref(launcher);
|
||||||
if (error) {
|
if (error) {
|
||||||
g_warning("%s", error->message);
|
g_warning("%s", error->message);
|
||||||
g_error_free(error);
|
g_error_free(error);
|
||||||
|
|
|
@ -185,15 +185,24 @@ info_spawn(GtkWidget *dialog, const char *path, GBytes *bytes_in)
|
||||||
if (bytes_in)
|
if (bytes_in)
|
||||||
flags |= G_SUBPROCESS_FLAGS_STDIN_PIPE;
|
flags |= G_SUBPROCESS_FLAGS_STDIN_PIPE;
|
||||||
|
|
||||||
|
GSubprocessLauncher *launcher = g_subprocess_launcher_new(flags);
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
// Both to find wperl, and then to let wperl find the nearby exiftool.
|
||||||
|
gchar *prefix = g_win32_get_package_installation_directory_of_module(NULL);
|
||||||
|
g_subprocess_launcher_set_cwd(launcher, prefix);
|
||||||
|
g_free(prefix);
|
||||||
|
#endif
|
||||||
|
|
||||||
// TODO(p): Add a fallback to internal capabilities.
|
// TODO(p): Add a fallback to internal capabilities.
|
||||||
// The simplest is to specify the filename and the resolution.
|
// The simplest is to specify the filename and the resolution.
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
GSubprocess *subprocess = g_subprocess_new(flags, &error,
|
GSubprocess *subprocess = g_subprocess_launcher_spawn(launcher, &error,
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
"wperl",
|
"wperl",
|
||||||
#endif
|
#endif
|
||||||
"exiftool", "-tab", "-groupNames", "-duplicates", "-extractEmbedded",
|
"exiftool", "-tab", "-groupNames", "-duplicates", "-extractEmbedded",
|
||||||
"--binary", "-quiet", "--", path, NULL);
|
"--binary", "-quiet", "--", path, NULL);
|
||||||
|
g_object_unref(launcher);
|
||||||
if (error) {
|
if (error) {
|
||||||
info_redirect_error(dialog, error);
|
info_redirect_error(dialog, error);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue