aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-05-18 10:00:26 -0700
committerPaul Eggert2019-05-18 10:01:10 -0700
commitdb9af103944959be640a53fcf0f0b696f25d553f (patch)
tree6642803fce7b36534e61da6249bebe3a9d66bbfa
parent5b8be5809eff0f644c3484a2a110a8812236f518 (diff)
downloademacs-db9af103944959be640a53fcf0f0b696f25d553f.tar.gz
emacs-db9af103944959be640a53fcf0f0b696f25d553f.zip
For SVG, 8192 is the new 256
Prefer librsvg for display of splash.svg When both librsvg and Imagemagick are available, Emacs should prefer librsvg to render SVG images. However, Emacs was using Imagemagick to render its own splash.svg file because image-type-from-file-header returned nil for that file. * lisp/image.el (image-type-from-buffer) (image-type-from-file-header): Look at the first 8192 bytes of the image, not just the first 256. For Emacs’s own splash.svg file, image-type-header-regexps needs to look at 939 bytes. 8192 bytes is a reasonable number nowadays given typical file system design. * test/lisp/image-tests.el (image-tests--emacs-images-directory): New contant. (image-type-from-file-header-test): New test.
-rw-r--r--lisp/image.el4
-rw-r--r--test/lisp/image-tests.el11
2 files changed, 13 insertions, 2 deletions
diff --git a/lisp/image.el b/lisp/image.el
index ba87d7f7859..db113020866 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -315,7 +315,7 @@ be determined."
315 (buffer-substring 315 (buffer-substring
316 (point-min) 316 (point-min)
317 (min (point-max) 317 (min (point-max)
318 (+ (point-min) 256)))))) 318 (+ (point-min) 8192))))))
319 (setq image-type (cdr image-type)))) 319 (setq image-type (cdr image-type))))
320 (setq type image-type 320 (setq type image-type
321 types nil) 321 types nil)
@@ -339,7 +339,7 @@ be determined."
339 (file-readable-p file) 339 (file-readable-p file)
340 (with-temp-buffer 340 (with-temp-buffer
341 (set-buffer-multibyte nil) 341 (set-buffer-multibyte nil)
342 (insert-file-contents-literally file nil 0 256) 342 (insert-file-contents-literally file nil 0 8192)
343 (image-type-from-buffer)))) 343 (image-type-from-buffer))))
344 344
345 345
diff --git a/test/lisp/image-tests.el b/test/lisp/image-tests.el
index 89b926e629d..621646e5750 100644
--- a/test/lisp/image-tests.el
+++ b/test/lisp/image-tests.el
@@ -22,6 +22,10 @@
22(require 'ert) 22(require 'ert)
23(require 'image) 23(require 'image)
24 24
25(defconst image-tests--emacs-images-directory
26 (expand-file-name "../etc/images" (getenv "EMACS_TEST_DIRECTORY"))
27 "Directory containing Emacs images.")
28
25(ert-deftest image--set-property () 29(ert-deftest image--set-property ()
26 "Test `image--set-property' behavior." 30 "Test `image--set-property' behavior."
27 (let ((image (list 'image))) 31 (let ((image (list 'image)))
@@ -42,4 +46,11 @@
42 (setf (image-property image :width) nil) 46 (setf (image-property image :width) nil)
43 (should (equal image '(image))))) 47 (should (equal image '(image)))))
44 48
49(ert-deftest image-type-from-file-header-test ()
50 "Test image-type-from-file-header."
51 (should (eq 'svg
52 (image-type-from-file-header
53 (expand-file-name "splash.svg"
54 image-tests--emacs-images-directory)))))
55
45;;; image-tests.el ends here 56;;; image-tests.el ends here