diff --git a/src/image.c b/src/image.c index fcae13e2302..9a465f0b180 100644 --- a/src/image.c +++ b/src/image.c @@ -11684,11 +11684,22 @@ svg_load (struct frame *f, struct image *img) base_uri = image_spec_value (img->spec, QCbase_uri, NULL); if (STRINGP (file_name)) { - ptrdiff_t size; - char *contents = slurp_image (file_name, &size, "SVG"); - if (contents == NULL) - return false; + image_fd fd; + Lisp_Object file = image_find_image_fd (file_name, &fd); + if (!STRINGP (file)) + { + image_not_found_error (file_name); + return false; + } + /* Read the entire file into memory. */ + ptrdiff_t size; + char *contents = slurp_file (fd, &size); + if (contents == NULL) + { + image_error ("Error loading SVG image `%s'", file); + return false; + } /* If the file was slurped into memory properly, parse it. */ if (!STRINGP (base_uri)) base_uri = file;