diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2024-07-10 00:21:35 +0200 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2024-07-10 00:29:49 +0200 | 
| commit | 2e9ea9b4e2a1096e6d6121ced76b73e5b59348d1 (patch) | |
| tree | 70d6e58c8a56a9e222712930aeaa5f22079bb830 /fiv-context-menu.c | |
| parent | b34fe631987b90cf6646271c874f8fa61ed81fbf (diff) | |
| download | fiv-2e9ea9b4e2a1096e6d6121ced76b73e5b59348d1.tar.gz fiv-2e9ea9b4e2a1096e6d6121ced76b73e5b59348d1.tar.xz fiv-2e9ea9b4e2a1096e6d6121ced76b73e5b59348d1.zip  | |
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.
Diffstat (limited to 'fiv-context-menu.c')
| -rw-r--r-- | fiv-context-menu.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/fiv-context-menu.c b/fiv-context-menu.c index 16460b6..678c616 100644 --- a/fiv-context-menu.c +++ b/fiv-context-menu.c @@ -185,15 +185,24 @@ info_spawn(GtkWidget *dialog, const char *path, GBytes *bytes_in)  	if (bytes_in)  		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.  	// The simplest is to specify the filename and the resolution.  	GError *error = NULL; -	GSubprocess *subprocess = g_subprocess_new(flags, &error, +	GSubprocess *subprocess = g_subprocess_launcher_spawn(launcher, &error,  #ifdef G_OS_WIN32  		"wperl",  #endif  		"exiftool", "-tab", "-groupNames", "-duplicates", "-extractEmbedded",  		"--binary", "-quiet", "--", path, NULL); +	g_object_unref(launcher);  	if (error) {  		info_redirect_error(dialog, error);  		return;  | 
