[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: using libmagic in Emacs?
From: |
Dan Nicolaescu |
Subject: |
Re: using libmagic in Emacs? |
Date: |
Wed, 19 Aug 2009 16:20:21 -0700 (PDT) |
address@hidden writes:
> Stefan Monnier <address@hidden> writes:
> >
> > I think it's a good idea. It may require some non-trivial changes on
> > the Lisp side, since libmagic's information is not quite the same as
> > what Emacs currently uses: we'll probably want to use libmagic to get
> > a MIME-type and then have a table mapping mime-types to major modes or
> > some such.
> >
> >
> > Stefan
>
> I attach an early draft filemagic patch.
>
> Some notes:
>
> - The mime type info usualy is less granular than the free
> text info:
>
> file --mime /tmp/tst.xcf
> /tmp/tst.xcf: application/octet-stream; charset=binary
>
> file /tmp/tst.xcf
> /tmp/tst.xcf: GIMP XCF image data, version 0, 640 x 480, RGB Color
>
> This is dependent on the file magic info file used.
>
> - We can probably have much fun debating what the interface should look
> like at the lisp level. Any ideas?
>
> diff --git a/configure.in b/configure.in
> index f4096db..cb74523 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -137,6 +137,8 @@ OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased
fonts])
> OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
> OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
>
> +OPTION_DEFAULT_ON([filemagic],[don't compile with filemagic support])
> +
> OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll
bars])
> OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
> OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
> @@ -2223,6 +2225,19 @@ if test x"$ac_cv_func_alloca_works" != xyes; then
> AC_MSG_ERROR( [a system implementation of alloca is required] )
> fi
>
> +
> +HAVE_LIBMAGIC=no
> +if test "${with_filemagic}" != "no"; then
> + #libmagic support
> + AC_CHECK_HEADERS(magic.h, [
AC_CHECK_LIB(magic,magic_open,HAVE_LIBMAGIC=yes) ])
> +fi
> +
> +if test "${HAVE_LIBMAGIC}" = "yes"; then
> + LIBMAGIC=-lmagic
> + AC_SUBST(LIBMAGIC)
> + AC_DEFINE(HAVE_LIBMAGIC, 1, [Define to 1 if using libmagic.])
> +fi
> +
> # fmod, logb, and frexp are found in -lm on most systems.
> # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
> AC_CHECK_LIB(m, sqrt)
> @@ -2954,6 +2969,7 @@ echo " Does Emacs use -lpng?
${HAVE_PNG}"
> echo " Does Emacs use -lrsvg-2?
${HAVE_RSVG}"
> echo " Does Emacs use -lgpm?
${HAVE_GPM}"
> echo " Does Emacs use -ldbus?
${HAVE_DBUS}"
> +echo " Does Emacs use -lmagic?
${HAVE_LIBMAGIC}"
>
> echo " Does Emacs use -lfreetype?
${HAVE_FREETYPE}"
> echo " Does Emacs use -lm17n-flt?
${HAVE_M17N_FLT}"
> diff --git a/src/Makefile.in b/src/Makefile.in
> index 425cf98..b80255a 100644
> --- a/src/Makefile.in
> +++ b/src/Makefile.in
> @@ -420,6 +420,7 @@ LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
> #endif /* not HAVE_LIBRESOLV */
>
> LIBSOUND= @LIBSOUND@
> +LIBMAGIC= @LIBMAGIC@
> CFLAGS_SOUND= @CFLAGS_SOUND@
>
> RSVG_LIBS= @RSVG_LIBS@
> @@ -511,6 +512,12 @@ MSDOS_OBJ = dosfns.o msdos.o w16select.o xmenu.o
> #endif
> #endif
>
> +#ifdef HAVE_LIBMAGIC
> +FILEMAGIC_OBJ = filemagic.o
> +#else
> +FILEMAGIC_OBJ =
> +#endif
Can you please avoid adding new #ifdefs here? (we are trying to get rid
of them).
Maybe use @FILEMAGIC_OBJ@ ?
Or even use the file unconditionally, just add the proper #ifdefs to
make it be empty if not HAVE_LIBMAGIC ?
- Re: using libmagic in Emacs?, (continued)
- Re: using libmagic in Emacs?, Richard Stallman, 2009/08/31
- Re: using libmagic in Emacs?, Richard Stallman, 2009/08/30
- Re: using libmagic in Emacs?, Chong Yidong, 2009/08/31
- Re: using libmagic in Emacs?, Juri Linkov, 2009/08/31
- Re: using libmagic in Emacs?, Stefan Monnier, 2009/08/31
- Re: using libmagic in Emacs?, Eli Zaretskii, 2009/08/31
- Re: using libmagic in Emacs?, Juri Linkov, 2009/08/25
Re: using libmagic in Emacs?, joakim, 2009/08/19
- Re: using libmagic in Emacs?,
Dan Nicolaescu <=
- Re: using libmagic in Emacs?, Stephen J. Turnbull, 2009/08/19
- Re: using libmagic in Emacs?, Eli Zaretskii, 2009/08/19
- Re: using libmagic in Emacs?, Stephen J. Turnbull, 2009/08/20
- Re: using libmagic in Emacs?, Eli Zaretskii, 2009/08/20
- Re: using libmagic in Emacs?, Stephen J. Turnbull, 2009/08/20
Re: using libmagic in Emacs?, Richard Stallman, 2009/08/20
Re: using libmagic in Emacs?, Stefan Monnier, 2009/08/21
Re: using libmagic in Emacs?, Stephen J. Turnbull, 2009/08/22
Re: using libmagic in Emacs?, Stefan Monnier, 2009/08/22
Re: using libmagic in Emacs?, Stefan Monnier, 2009/08/20