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