Fix file name encodings in diagnostics
commit636736861688abe73cc5dd4181fdb66de3fd8cfd
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 18 Aug 2015 23:17:30 +0000 (18 16:17 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 18 Aug 2015 23:24:56 +0000 (18 16:24 -0700)
tree94e6780e22be312f57d32ef1b8768b4708c8cc45
parent345284f5e9eebb07536d12c08c72f1bab02ea55e
Fix file name encodings in diagnostics

Also, close some minor races when opening image files, by opening
them once instead of multiple times.
* src/gtkutil.c (xg_get_image_for_pixmap):
* src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
(svg_load):
* src/nsimage.m (allocInitFromFile:):
* src/xfns.c (xg_set_icon):
Encode file name, since x_find_image_file no longer does that.
* src/image.c (x_find_image_fd): New function.
(x_find_image_file): Use it.  Do not encode resulting file name,
since callers sometimes need it decoded.
(slurp_file): File arg is now a fd, not a file name.
All callers changed.  This saves us having to open the file twice.
(xbm_load, xpm_load, pbm_load, png_load_body, jpeg_load_body)
(svg_load):
Use x_find_image_fd and fdopen to save a file-open.
Report file name that failed.
* src/lread.c (openp): If PREDICATE is t, open the file in binary mode.
src/gtkutil.c
src/image.c
src/lread.c
src/nsimage.m
src/xfns.c