]> git.eshelyaron.com Git - emacs.git/commitdiff
For SVG, 8192 is the new 256
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 May 2019 17:00:26 +0000 (10:00 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 May 2019 17:01:10 +0000 (10:01 -0700)
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.

lisp/image.el
test/lisp/image-tests.el

index ba87d7f7859c602f6b826d905334edaa9fd4ce48..db113020866e724ba407d0a30f2a719d54c7935e 100644 (file)
@@ -315,7 +315,7 @@ be determined."
                                        (buffer-substring
                                         (point-min)
                                         (min (point-max)
-                                             (+ (point-min) 256))))))
+                                             (+ (point-min) 8192))))))
                     (setq image-type (cdr image-type))))
            (setq type image-type
                  types nil)
@@ -339,7 +339,7 @@ be determined."
        (file-readable-p file)
        (with-temp-buffer
         (set-buffer-multibyte nil)
-        (insert-file-contents-literally file nil 0 256)
+        (insert-file-contents-literally file nil 0 8192)
         (image-type-from-buffer))))
 
 
index 89b926e629d139dd68070a59a643a4e2201d1895..621646e575043d658814f9498a1e1d0fa0eec7e6 100644 (file)
 (require 'ert)
 (require 'image)
 
+(defconst image-tests--emacs-images-directory
+  (expand-file-name "../etc/images" (getenv "EMACS_TEST_DIRECTORY"))
+  "Directory containing Emacs images.")
+
 (ert-deftest image--set-property ()
   "Test `image--set-property' behavior."
   (let ((image (list 'image)))
     (setf (image-property image :width) nil)
     (should (equal image '(image)))))
 
+(ert-deftest image-type-from-file-header-test ()
+  "Test image-type-from-file-header."
+  (should (eq 'svg
+             (image-type-from-file-header
+              (expand-file-name "splash.svg"
+                                image-tests--emacs-images-directory)))))
+
 ;;; image-tests.el ends here