unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@jurta.org>
To: rms@gnu.org
Cc: monnier@IRO.UMontreal.CA, joakim@verona.se, emacs-devel@gnu.org
Subject: Re: using libmagic in Emacs?
Date: Tue, 25 Aug 2009 23:36:04 +0300	[thread overview]
Message-ID: <87ljl73a2z.fsf@mail.jurta.org> (raw)
In-Reply-To: <E1MfN5i-0006qY-5N@fencepost.gnu.org> (Richard Stallman's message of "Sun, 23 Aug 2009 20:07:18 -0400")

>     The problem is that `image-jpeg-p' in image.el refuses to accept
>     non-JFIF JPEG image files whereas Emacs can correctly display them
>     when tests in `image-jpeg-p' are ignored.
>
>     Using libmagic means looking only for 2 bytes 0xffd8 (a magic number
>     of JPEG files) as described by the magic number file:
>
>       0	beshort		0xffd8		JPEG image data
>
>     It seems this is enough to determine JPEG files.  But I'm not confident
>     about removing additional tests from `image-jpeg-p'.  We could keep the
>     current rules in image.el as a fall-back when libmagic is not available.
>
> Whatever we do with the function `image-jpeg-p', we could easily make
> Emacs test these two bytes.  It makes no sense to install code to link
> with libmagic just to handle that and a few other similar things.

The following patch changes `image-type-header-regexps' to test only
two bytes of the JPEG magic number:

Index: lisp/image.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/image.el,v
retrieving revision 1.87
diff -u -r1.87 image.el
--- lisp/image.el	24 Feb 2009 10:29:00 -0000	1.87
+++ lisp/image.el	25 Aug 2009 20:33:16 -0000
@@ -43,7 +43,7 @@
 static \\(unsigned \\)?char \\1_bits" . xbm)
     ("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . tiff)
     ("\\`[\t\n\r ]*%!PS" . postscript)
-    ("\\`\xff\xd8" . (image-jpeg-p . jpeg))
+    ("\\`\xff\xd8" . jpeg)
     (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)")
 	     (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)")))
 	(concat "\\(?:<\\?xml[ \t\r\n]+[^>]*>\\)?[ \t\r\n]*<"

-- 
Juri Linkov
http://www.jurta.org/emacs/




  parent reply	other threads:[~2009-08-25 20:36 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-18 18:35 using libmagic in Emacs? joakim
2009-08-18 19:23 ` Stefan Monnier
2009-08-18 20:01   ` Chong Yidong
2009-08-18 20:35     ` joakim
2009-08-18 21:11       ` Stefan Monnier
2009-08-19  2:58         ` Eli Zaretskii
2009-08-19  3:21           ` Stefan Monnier
2009-08-19 13:47             ` Chong Yidong
2009-08-19 15:57               ` joakim
2009-08-19 19:46               ` next bugfix release? [was: Re: using libmagic in Emacs?] Dan Nicolaescu
2009-08-19 21:06                 ` next bugfix release? Chong Yidong
2009-08-19 21:53                   ` Dan Nicolaescu
2009-08-19 22:56                   ` Alan Mackenzie
2009-08-19 23:16                     ` Nick Roberts
2009-08-20  9:02                       ` Lennart Borgman
2009-08-20 11:19                         ` Eric M. Ludlam
2009-08-20 15:13                       ` Alan Mackenzie
2009-08-20 15:47                         ` Lennart Borgman
2009-08-19 19:05             ` installing features on trunk (was: using libmagic in Emacs?) Eli Zaretskii
2009-08-21 18:59               ` Bidi support Stefan Monnier
2009-08-21 20:44                 ` Eli Zaretskii
2009-08-22  3:39                   ` Stefan Monnier
2009-08-22  8:18                   ` Jason Rumney
2009-08-22  5:39                 ` Stephen J. Turnbull
2009-08-22  7:31                   ` Eli Zaretskii
2009-08-24  1:45                   ` Kenichi Handa
2009-08-24  3:12                     ` Eli Zaretskii
2009-08-24  7:17                       ` Kenichi Handa
2009-08-24  3:25                     ` Stephen J. Turnbull
2009-08-19  0:57   ` using libmagic in Emacs? Juri Linkov
2009-08-20  3:42     ` Richard Stallman
2009-08-22 23:36       ` Juri Linkov
2009-08-24  0:07         ` Richard Stallman
2009-08-24  0:17           ` Juri Linkov
2009-08-24  7:33             ` joakim
2009-08-25  2:08             ` Richard Stallman
2009-08-25  2:19               ` Miles Bader
2009-08-25  5:09                 ` joakim
2009-08-25 13:27                 ` James Cloos
2009-08-25 21:41                 ` Thien-Thi Nguyen
2009-08-25 17:36               ` Stefan Monnier
2009-08-25 20:37               ` Juri Linkov
2009-08-29 23:19               ` Juri Linkov
2009-08-30  3:09                 ` Eli Zaretskii
2009-08-30 20:54                   ` Juri Linkov
2009-08-31  2:49                     ` Eli Zaretskii
2009-08-31 16:17                       ` Juri Linkov
2009-08-31 17:58                         ` Eli Zaretskii
2009-09-01 12:16                           ` Richard Stallman
2009-09-01 16:12                             ` Stefan Monnier
2009-09-01 21:20                               ` Richard Stallman
2009-09-03 19:42                                 ` Stefan Monnier
2009-09-04  7:52                                   ` Richard Stallman
2009-08-31 22:21                       ` Richard Stallman
2009-08-31  3:33                   ` Richard Stallman
2009-08-31 15:03                     ` Chong Yidong
2009-08-31 16:19                       ` Juri Linkov
2009-08-31 23:47                       ` Stefan Monnier
2009-09-01  3:16                         ` Eli Zaretskii
2009-09-01  5:37                           ` Stefan Monnier
2009-09-01 12:16                       ` Richard Stallman
2009-08-25 20:36           ` Juri Linkov [this message]
2009-08-19 22:49   ` joakim
2009-08-19 23:20     ` Dan Nicolaescu
2009-08-20  1:03     ` Stephen J. Turnbull
2009-08-20  3:12       ` Eli Zaretskii
2009-08-20  4:50         ` Stephen J. Turnbull
2009-08-20 18:20           ` Eli Zaretskii
2009-08-21  0:19             ` Stephen J. Turnbull
2009-08-20 18:32         ` Richard Stallman
2009-08-21 19:10           ` Stefan Monnier
2009-08-22  5:03             ` Stephen J. Turnbull
2009-08-23  1:03               ` Stefan Monnier
2009-08-20 13:57     ` Stefan Monnier
2009-08-20 19:19       ` joakim
2009-08-20 22:08         ` Andreas Schwab
2009-08-21  9:55           ` joakim
2009-08-21 11:01             ` Eli Zaretskii
2009-08-21 17:38               ` joakim
2009-08-21 17:46                 ` Rupert Swarbrick
2009-08-21 18:31                 ` Andreas Schwab
2009-08-21 19:13                   ` Drew Adams
2009-08-21 18:42                 ` Eli Zaretskii
2009-08-21 21:48                   ` joakim
2009-08-21 22:46                     ` Andreas Schwab
2009-08-22 20:18                       ` joakim
2009-08-22 23:13                         ` Ken Raeburn
2009-08-23 23:38                           ` joakim
2009-08-24  3:05                             ` Eli Zaretskii
2009-08-24 12:30                               ` joakim
2009-08-23  3:24                         ` Eli Zaretskii
2009-08-21 19:18               ` Stefan Monnier
2009-08-21 13:19             ` Andreas Schwab
2009-08-20 18:32     ` Richard Stallman
2009-08-20 20:27       ` Reiner Steib
2009-08-21 14:08         ` Richard Stallman
2009-08-21 19:16       ` Stefan Monnier
2009-08-28  0:27 ` Language identification (was: using libmagic in Emacs) Juri Linkov
2009-08-28  4:58   ` Language identification Stefan Monnier
2009-08-28  9:00     ` Stephen J. Turnbull
2009-08-28 14:56       ` Stefan Monnier
2009-08-29  4:11         ` Stephen J. Turnbull
2009-08-29 14:21           ` Chong Yidong
2009-08-29  0:46       ` Richard Stallman
2009-08-29  4:13         ` Stephen J. Turnbull
2009-08-29 15:28           ` Stefan Monnier
2009-08-29 16:27             ` Stephen J. Turnbull
2009-08-28 19:16     ` Juri Linkov
2009-08-29  1:12       ` Stefan Monnier
2009-08-30 16:01         ` Richard Stallman
2009-08-29 20:20       ` Richard Stallman
2009-08-29 22:48         ` Juri Linkov
2009-08-31  3:32           ` Richard Stallman
2009-08-31  8:42             ` David Kastrup
2009-08-31  8:59             ` Jan D.
2009-08-31  3:33           ` Richard Stallman
2009-08-28  6:45   ` Alex Ott
2009-08-28  6:46   ` Alex Ott
2009-08-28 19:08     ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ljl73a2z.fsf@mail.jurta.org \
    --to=juri@jurta.org \
    --cc=emacs-devel@gnu.org \
    --cc=joakim@verona.se \
    --cc=monnier@IRO.UMontreal.CA \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).