util: Stop special-casing trySpawnCommandLine() parse errors

Unlike for plain JS Errors, the `message` property of GLib.Errors
is read-only, so the intent to replace it with a nicer message
triggers an Error itself.

We could create a new GLib.Error with the changed message instead,
but as it turns out, none of the parse errors contain the technical
prefix we want to strip out, so we can simply drop the special-casing
altogether.

This is also consistent with `spawnCommandLine()`, which never
had special treatment of parse errors.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8146
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3593>
This commit is contained in:
Florian Müllner 2025-01-12 13:32:39 +01:00 committed by Marge Bot
parent 182800315a
commit 67c5be9c53

View File

@ -160,17 +160,7 @@ export function trySpawn(argv) {
* fails, this will throw an error.
*/
export function trySpawnCommandLine(commandLine) {
let success_, argv;
try {
[success_, argv] = GLib.shell_parse_argv(commandLine);
} catch (err) {
// Replace "Error invoking GLib.shell_parse_argv: " with
// something nicer
err.message = err.message.replace(/[^:]*: /, `${_('Could not parse command:')}\n`);
throw err;
}
const [, argv] = GLib.shell_parse_argv(commandLine);
trySpawn(argv);
}