[Github-comments] [geany] Alter spawn to return the error message only in error->message (#701)
zhekov
notifications at xxxxx
Wed Oct 21 17:33:35 UTC 2015
> @@ -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)
Unfortunately not. All "en" errors are returned by exec(), so they are the most common ones. And it's not about shrinking only.
The first reason is that g_spawn cites possibly non-UTF-8 text in a GError. Put something like this in geany_debug(), and Help -> Debug Messages will abort Geany with an assertion. And if that can happen, how can I be sure about the status bar, or the Status tab? The next gtk+ version may cause Geany to abort.
The second reason is to unify the format. g_spawn() cites the program name for some errors, but not for others, whereas we want standard `Cannot execute <what program> "<program>": <error text>. Check the path setting in <...>` messages everywhere. At least that's the current consensus.
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/701/files#r42655396
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20151021/5147679a/attachment.html>
More information about the Github-comments
mailing list