summaryrefslogtreecommitdiff
path: root/src/image.c
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2022-09-09 02:32:08 +0200
committerStefan Kangas <stefankangas@gmail.com>2022-09-09 03:07:44 +0200
commit816106b7e6a930d55e723e7c4d9d5f664ecd5520 (patch)
tree1ae240941ebce9127c4a5ba602498185d3344cb9 /src/image.c
parentef17ba83709794fe0342743397f0e68b90ea1f69 (diff)
downloademacs-816106b7e6a930d55e723e7c4d9d5f664ecd5520.tar.gz
Display librsvg error when loading bad SVG
* src/image.c (svg_load_image): Display the error message from librsvg when parsing a bad SVG image file. * test/manual/image-tests.el (image-tests-load-image/svg-invalid): New test.
Diffstat (limited to 'src/image.c')
-rw-r--r--src/image.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/image.c b/src/image.c
index f5004c2c4c7..549fe30ef7c 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1,6 +1,6 @@
/* Functions for image support on window system.
-Copyright (C) 1989, 1992-2022 Free Software Foundation, Inc.
+Copyright (C) 1989-2022 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -11491,7 +11491,7 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0))
{
g_object_unref (pixbuf);
- return 0;
+ return false;
}
init_color_table ();
@@ -11536,7 +11536,7 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
image_put_x_image (f, img, ximg, 0);
}
- return 1;
+ return true;
rsvg_error:
if (rsvg_handle)
@@ -11547,11 +11547,11 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
if (css && !STRINGP (lcss))
xfree (css);
#endif
- /* FIXME: Use error->message so the user knows what is the actual
- problem with the image. */
- image_error ("Error parsing SVG image");
+ image_error ("Error parsing SVG image: %s",
+ /* The -1 removes an extra newline. */
+ make_string (err->message, strlen (err->message) - 1));
g_clear_error (&err);
- return 0;
+ return false;
}
#endif /* defined (HAVE_RSVG) */