emacs-devel
[Top][All Lists]
Advanced

[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 ?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]