<p>In <a href="https://github.com/geany/geany/pull/701#discussion_r42656108">src/spawn.c</a>:</p>
<pre style='color:#555'>> @@ -577,7 +604,83 @@ static gboolean spawn_async_with_pipes(const gchar *working_directory, const gch
>  
>    spawned = g_spawn_async_with_pipes(working_directory, full_argv, envp,
>            G_SPAWN_SEARCH_PATH | (child_pid ? G_SPAWN_DO_NOT_REAP_CHILD : 0), NULL, NULL,
> -          child_pid, stdin_fd, stdout_fd, stderr_fd, error);
> +          child_pid, stdin_fd, stdout_fd, stderr_fd, &gerror);
> +
> +  if (!spawned)
> +  {
> +          gint en = 0;
> +          const gchar *message = gerror->message;
> +
> +          /* try to cut glib citing of the program name or working directory: they may be long,
> +             and only the caller knows whether they're UTF-8. We lose the exact chdir error. */
> +          switch (gerror->code)
</pre>
<p>About convoluted logic, well - after replacing the <em>entire</em> spawning under Windows, reverting a G_SPAWN error code back to to errno is only a small touch. Why should I regard g_spawn under *nix as a sacred cow?.. :)</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/701/files#r42656108">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJw3V9XG4e4I01IE9ZeF9kjuAUuk5ks5o98UlgaJpZM4GRgsl.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/701/files#r42656108"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>