1 2 #------------------------------------------------------------------------------ 3 # $File: lisp,v 1.27 2020/08/14 19:23:39 christos Exp $ 4 # lisp: file(1) magic for lisp programs 5 # 6 # various lisp types, from Daniel Quinlan (quinlan (a] yggdrasil.com) 7 8 # updated by Joerg Jenderek 9 # GRR: This lot is too weak 10 #0 string ;; 11 # windows INF files often begin with semicolon and use CRLF as line end 12 # lisp files are mainly created on unix system with LF as line end 13 #>2 search/4096 !\r Lisp/Scheme program text 14 #>2 search/4096 \r Windows INF file 15 16 0 search/4096 (setq\ Lisp/Scheme program text 17 !:mime text/x-lisp 18 0 search/4096 (defvar\ Lisp/Scheme program text 19 !:mime text/x-lisp 20 0 search/4096 (defparam\ Lisp/Scheme program text 21 !:mime text/x-lisp 22 0 search/4096 (defun\ Lisp/Scheme program text 23 !:mime text/x-lisp 24 0 search/4096 (autoload\ Lisp/Scheme program text 25 !:mime text/x-lisp 26 0 search/4096 (custom-set-variables\ Lisp/Scheme program text 27 !:mime text/x-lisp 28 29 # URL: https://en.wikipedia.org/wiki/Emacs_Lisp 30 # Reference: https://ftp.gnu.org/old-gnu/emacs/elisp-manual-18-1.03.tar.gz 31 # Update: Joerg Jenderek 32 # Emacs 18 - this is always correct, but not very magical. 33 0 string \012( 34 # look for emacs lisp keywords 35 # GRR: split regex because it is too long or get error like 36 # lisp, 36: Warning: cannot get string from `^(defun|defvar|defconst|defmacro|setq|fset|put|provide|require|' 37 >&0 regex \^(defun|defvar|defconst|defmacro|setq|fset) Emacs v18 byte-compiled Lisp data 38 !:mime application/x-elc 39 # https://searchcode.com/codesearch/view/2173420/ 40 # not really pure text 41 !:apple EMAxTEXT 42 !:ext elc 43 # remaining regex 44 >&0 regex \^(put|provide|require|random) Emacs v18 byte-compiled Lisp data 45 !:mime application/x-elc 46 !:apple EMAxTEXT 47 !:ext elc 48 # missed cl.elc dbx.elc simple.elc look like normal lisp starting with ;;; 49 50 # Emacs 19+ - ver. recognition added by Ian Springer 51 # Also applies to XEmacs 19+ .elc files; could tell them apart with regexs 52 # - Chris Chittleborough <cchittleborough (a] yahoo.com.au> 53 # Update: Joerg Jenderek 54 0 string ;ELC 55 # version\0\0\0 56 >4 byte >18 Emacs/XEmacs v%d byte-compiled Lisp data 57 # why less than 32 ? does not make sense to me. GNU Emacs version is 24.5 at April 2015 58 #>4 byte <32 Emacs/XEmacs v%d byte-compiled Lisp data 59 !:mime application/x-elc 60 !:apple EMAxTEXT 61 !:ext elc 62 63 # Files produced by GNU/Emacs pdumper 64 0 string DUMPEDGNUEMACS GNU/Emacs pdumper image 65 66 # Files produced by CLISP Common Lisp From: Bruno Haible <haible (a] ilog.fr> 67 0 string (SYSTEM::VERSION\040' CLISP byte-compiled Lisp program (pre 2004-03-27) 68 0 string (|SYSTEM|::|VERSION|\040' CLISP byte-compiled Lisp program text 69 70 0 long 0x70768BD2 CLISP memory image data 71 0 long 0xD28B7670 CLISP memory image data, other endian 72 73 #.com and .bin for MIT scheme 74 0 string \372\372\372\372 MIT scheme (library?) 75 76 # From: David Allouche <david (a] allouche.net> 77 0 search/1 \<TeXmacs| TeXmacs document text 78 !:mime text/texmacs 79