mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
Fix GDI+ image loading by file name
Without a call to image_find_image, we can get a file name that is relative to data-directory/images/, or a file name that starts with "~/", in which case w32_load_image would fail. * src/image.c (native_image_load): Call image_find_image_file to resolve and encode the image file name. * src/w32image.c (w32_load_image): No need to encode the file name, as it's already encoded by native_image_load.
This commit is contained in:
parent
2a3a0a843f
commit
f7748ad682
2 changed files with 6 additions and 5 deletions
10
src/image.c
10
src/image.c
|
|
@ -6308,14 +6308,16 @@ native_image_p (Lisp_Object object)
|
|||
static bool
|
||||
native_image_load (struct frame *f, struct image *img)
|
||||
{
|
||||
Lisp_Object image_file = image_spec_value (img->spec, QCfile, NULL);
|
||||
|
||||
if (STRINGP (image_file))
|
||||
image_file = image_find_image_file (image_file);
|
||||
|
||||
# ifdef HAVE_NTGUI
|
||||
return w32_load_image (f, img,
|
||||
image_spec_value (img->spec, QCfile, NULL),
|
||||
return w32_load_image (f, img, image_file,
|
||||
image_spec_value (img->spec, QCdata, NULL));
|
||||
# elif defined HAVE_NS
|
||||
return ns_load_image (f, img,
|
||||
image_spec_value (img->spec, QCfile, NULL),
|
||||
return ns_load_image (f, img, image_file,
|
||||
image_spec_value (img->spec, QCdata, NULL));
|
||||
# else
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -414,7 +414,6 @@ w32_load_image (struct frame *f, struct image *img,
|
|||
and succeeded. We have a valid token and GDI+ is active. */
|
||||
if (STRINGP (spec_file))
|
||||
{
|
||||
spec_file = ENCODE_FILE (spec_file);
|
||||
const char *fn = map_w32_filename (SSDATA (spec_file), NULL);
|
||||
wchar_t filename_w[MAX_PATH];
|
||||
filename_to_utf16 (fn, filename_w);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue