#include #include #include #include #include #include "lisp.h" /* */ /* magic_t magic_open(int flags); void magic_close(magic_t cookie); const char * magic_error(magic_t cookie); int magic_errno(magic_t cookie); const char * magic_file(magic_t cookie, const char *filename); const char * magic_buffer(magic_t cookie, const void *buffer, size_t length); int magic_setflags(magic_t cookie, int flags); int magic_check(magic_t cookie, const char *filename); int magic_compile(magic_t cookie, const char *filename); int magic_load(magic_t cookie, const char *filename); */ DEFUN ("file-magic-file", Ffile_magic_file, Sfile_magic_file, 1,1,0, doc: /* return libmagic file description for filename */) (filename) Lisp_Object filename; { if (!STRINGP (filename)) return Qnil; printf("filename:%s\n",SDATA(filename)); magic_t cookie= magic_open(MAGIC_MIME_TYPE); magic_load(cookie,NULL); printf("cookie:%d\n",cookie); char *rvs=magic_file(cookie, SDATA(filename)); printf("rvs:%s\n",rvs); Lisp_Object rv=intern(rvs); magic_close(cookie); return rv; } void syms_of_filemagic () { defsubr (&Sfile_magic_file); }