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