1 ;;; -*- Mode: Emacs-Lisp -*-
5 ;;; This file is part of ILISP.
6 ;;; Please refer to the file COPYING for copyrights and licensing
8 ;;; Please refer to the file ACKNOWLEGDEMENTS for an (incomplete) list
9 ;;; of present and past contributors.
11 ;;; $Id: ilcompat.el,v 1.4 2002-06-03 23:36:58 wbd Exp $
15 ;;; Global definitions/declarations
17 (defconst +ilisp-emacs-version-id+
18 (cond ((string-match "XEmacs" emacs-version)
20 ((string-match "Lucid" emacs-version)
21 (if (string-match "^19.[0-7][^0-9]" emacs-version)
24 ((string-match "^19" emacs-version)
26 ((string-match "^20" emacs-version)
28 ((string-match "^21" emacs-version)
31 "The major version of (X)Emacs ILISP is running in.
32 Declared as '(member fsf-19 fsf-19 fsf-20 fsf-21 lucid-19 lucid-19-new xemacs).
36 (defconst +ilisp-emacs-minor-version-number+
37 (cond ((eq +ilisp-emacs-version-id+ 'fsf-18) 59)
38 ((or (eq +ilisp-emacs-version-id+ 'lucid-19)
39 (eq +ilisp-emacs-version-id+ 'lucid-19-new)
41 12) ; Does emacs-minor-version work?
42 ((eq +ilisp-emacs-version-id+ 'xemacs) 14)
43 (t emacs-minor-version))
44 "The minor version of (X)Emacs ILISP is running in.
48 ;;; Load Emacs version specific compatibility modules
50 (cond ((or (eq +ilisp-emacs-version-id+ 'lucid-19)
51 (eq +ilisp-emacs-version-id+ 'lucid-19-new))
53 ((eq +ilisp-emacs-version-id+ 'xemacs) (load "ilxemacs"))
54 ((eq +ilisp-emacs-version-id+ 'fsf-18) (load "ilfsf18"))
55 ((eq +ilisp-emacs-version-id+ 'fsf-19) (load "ilfsf19"))
56 ((eq +ilisp-emacs-version-id+ 'fsf-20) (load "ilfsf20"))
57 ((eq +ilisp-emacs-version-id+ 'fsf-21) (load "ilfsf21"))
61 ;;; Misc. bug work-arounds and compatibility bindings
63 (unless (eval-when-compile (ignore-errors (last '(a . b))))
64 ;; From Emacs 19.34's cl.el.
65 (defun last (x &optional n)
66 "Returns the last link in the list LIST.
67 With optional argument N, returns Nth-to-last link (default 1)."
70 (while (consp p) (incf m) (pop p))
72 (if (< n m) (nthcdr (- m n) x) x)))
73 (while (consp (cdr x)) (pop x))
81 ;;; end of file -- compat.el --