diff --git a/glnx-errors.h b/glnx-errors.h index b891f9637063ac44d0fdd60616164cdbca084e16..2f6b9628f24a28e5dc0df8061310bc34cd8c42df 100644 --- a/glnx-errors.h +++ b/glnx-errors.h @@ -128,9 +128,7 @@ glnx_throw_errno_prefix (GError **error, const char *fmt, ...) #define glnx_set_prefix_error_from_errno(error, format, args...) \ do { \ - glnx_set_error_from_errno (error); \ - g_prefix_error (error, format, args); \ + glnx_throw_errno_prefix (error, format, args); \ } while (0); - G_END_DECLS diff --git a/tests/test-libglnx-errors.c b/tests/test-libglnx-errors.c index 7c7459cb63d31cdd09ce029ed14efdae69db7a8c..7950244fce657f0cec8db843a4dcdc46fa4659a0 100644 --- a/tests/test-libglnx-errors.c +++ b/tests/test-libglnx-errors.c @@ -79,9 +79,15 @@ test_error_errno (void) fd = open (noent_path, O_RDONLY); if (fd < 0) { + g_autofree char *expected_prefix = g_strdup_printf ("Failed to open %s", noent_path); g_assert (!glnx_throw_errno_prefix (&error, "Failed to open %s", noent_path)); g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); - g_assert (g_str_has_prefix (error->message, glnx_strjoina ("Failed to open ", noent_path))); + g_assert (g_str_has_prefix (error->message, expected_prefix)); + g_clear_error (&error); + /* And test the legacy wrapper */ + glnx_set_prefix_error_from_errno (&error, "Failed to open %s", noent_path); + g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); + g_assert (g_str_has_prefix (error->message, expected_prefix)); g_clear_error (&error); } else