xref: /dflybsd-src/contrib/file/magic/Magdir/lisp (revision 970935fd377c084648da946d7d7e6d0286f5f89a)
1f72f8299SJan Lentfer
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*970935fdSSascha Wildner# $File: lisp,v 1.27 2020/08/14 19:23:39 christos Exp $
4327e51cbSPeter Avalos# lisp:  file(1) magic for lisp programs
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
7327e51cbSPeter Avalos
8327e51cbSPeter Avalos# updated by Joerg Jenderek
979343712SPeter Avalos# GRR: This lot is too weak
1079343712SPeter Avalos#0	string	;;
11327e51cbSPeter Avalos# windows INF files often begin with semicolon and use CRLF as line end
12327e51cbSPeter Avalos# lisp files are mainly created on unix system with LF as line end
1379343712SPeter Avalos#>2	search/4096	!\r		Lisp/Scheme program text
1479343712SPeter Avalos#>2	search/4096	\r		Windows INF file
15327e51cbSPeter Avalos
1679343712SPeter Avalos0	search/4096	(setq\ 			Lisp/Scheme program text
1779343712SPeter Avalos!:mime	text/x-lisp
1879343712SPeter Avalos0	search/4096	(defvar\ 		Lisp/Scheme program text
1979343712SPeter Avalos!:mime	text/x-lisp
2079343712SPeter Avalos0	search/4096	(defparam\ 		Lisp/Scheme program text
2179343712SPeter Avalos!:mime	text/x-lisp
2279343712SPeter Avalos0	search/4096	(defun\  		Lisp/Scheme program text
2379343712SPeter Avalos!:mime	text/x-lisp
2479343712SPeter Avalos0	search/4096	(autoload\ 		Lisp/Scheme program text
2579343712SPeter Avalos!:mime	text/x-lisp
2679343712SPeter Avalos0	search/4096	(custom-set-variables\ 	Lisp/Scheme program text
2779343712SPeter Avalos!:mime	text/x-lisp
28327e51cbSPeter Avalos
29c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/Emacs_Lisp
306fca56fbSSascha Wildner# Reference: https://ftp.gnu.org/old-gnu/emacs/elisp-manual-18-1.03.tar.gz
31c30bd091SSascha Wildner# Update: Joerg Jenderek
32327e51cbSPeter Avalos# Emacs 18 - this is always correct, but not very magical.
33c30bd091SSascha Wildner0	string	\012(
34c30bd091SSascha Wildner# look for emacs lisp keywords
35c30bd091SSascha Wildner# GRR: split regex because it is too long or get error like
36c30bd091SSascha Wildner# lisp, 36: Warning: cannot get string from `^(defun|defvar|defconst|defmacro|setq|fset|put|provide|require|'
37c30bd091SSascha Wildner>&0	regex	\^(defun|defvar|defconst|defmacro|setq|fset)	Emacs v18 byte-compiled Lisp data
3879343712SPeter Avalos!:mime	application/x-elc
39c30bd091SSascha Wildner# https://searchcode.com/codesearch/view/2173420/
40c30bd091SSascha Wildner# not really pure text
41c30bd091SSascha Wildner!:apple	EMAxTEXT
42c30bd091SSascha Wildner!:ext elc
43c30bd091SSascha Wildner# remaining regex
44c30bd091SSascha Wildner>&0	regex	\^(put|provide|require|random)	Emacs v18 byte-compiled Lisp data
45c30bd091SSascha Wildner!:mime	application/x-elc
46c30bd091SSascha Wildner!:apple	EMAxTEXT
47c30bd091SSascha Wildner!:ext elc
48c30bd091SSascha Wildner# missed cl.elc dbx.elc simple.elc look like normal lisp starting with ;;;
49c30bd091SSascha Wildner
50327e51cbSPeter Avalos# Emacs 19+ - ver. recognition added by Ian Springer
5179343712SPeter Avalos# Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
5279343712SPeter Avalos# - Chris Chittleborough <cchittleborough@yahoo.com.au>
53c30bd091SSascha Wildner# Update: Joerg Jenderek
54327e51cbSPeter Avalos0	string	;ELC
55c30bd091SSascha Wildner# version\0\0\0
56c30bd091SSascha Wildner>4	byte	>18			Emacs/XEmacs v%d byte-compiled Lisp data
57c30bd091SSascha Wildner# why less than 32 ? does not make sense to me. GNU Emacs version is 24.5 at April 2015
58c30bd091SSascha Wildner#>4	byte    <32			Emacs/XEmacs v%d byte-compiled Lisp data
5979343712SPeter Avalos!:mime	application/x-elc
60c30bd091SSascha Wildner!:apple	EMAxTEXT
61c30bd091SSascha Wildner!:ext elc
62327e51cbSPeter Avalos
63*970935fdSSascha Wildner# Files produced by GNU/Emacs pdumper
64*970935fdSSascha Wildner0	string	DUMPEDGNUEMACS	GNU/Emacs pdumper image
65*970935fdSSascha Wildner
66327e51cbSPeter Avalos# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
6779343712SPeter Avalos0	string	(SYSTEM::VERSION\040'	CLISP byte-compiled Lisp program (pre 2004-03-27)
6879343712SPeter Avalos0	string	(|SYSTEM|::|VERSION|\040'	CLISP byte-compiled Lisp program text
6979343712SPeter Avalos
70327e51cbSPeter Avalos0	long	0x70768BD2		CLISP memory image data
71327e51cbSPeter Avalos0	long	0xD28B7670		CLISP memory image data, other endian
72327e51cbSPeter Avalos
73327e51cbSPeter Avalos#.com and .bin for MIT scheme
74327e51cbSPeter Avalos0	string	\372\372\372\372	MIT scheme (library?)
75327e51cbSPeter Avalos
76327e51cbSPeter Avalos# From: David Allouche <david@allouche.net>
7779343712SPeter Avalos0	search/1	\<TeXmacs|	TeXmacs document text
7879343712SPeter Avalos!:mime	text/texmacs
79