emacsのimage.el

最近、emacsで読み込めないjpegファイルが出てきたので軽く調べてみたら、APP0セグメントとやらが無いjpegだった。最近増えてきてるのだろうか。
image.elの問題の箇所

(defun image-jpeg-p (data)
  "Value is non-nil if DATA, a string, consists of JFIF image data.
We accept the tag Exif because that is the same format."
  (when (string-match "\\`\xff\xd8" data)
    (catch 'jfif
      (let ((len (length data)) (i 2))
	(while (< i len)
	  (when (/= (aref data i) #xff)
	    (throw 'jfif nil))
	  (setq i (1+ i))
	  (when (>= (+ i 2) len)
	    (throw 'jfif nil))
	  (let ((nbytes (+ (lsh (aref data (+ i 1)) 8)
			   (aref data (+ i 2))))
		(code (aref data i)))
;;ここにc4も見る別条件もいれないとなー
;;面倒だからやらないが
	    (when (and (>= code #xe0) (<= code #xef))
	      ;; APP0 LEN1 LEN2 "JFIF\0"
	      (throw 'jfif
		     (string-match "JFIF\\|Exif"
				   (substring data i (min (+ i nbytes) len)))))
	    (setq i (+ i 1 nbytes))))))))

参考資料
JPEG フォーマット辞典 - しいしせねっと