Mercurial > hg > xemacs-beta
diff lisp/tl/cless.el @ 4:b82b59fe008d r19-15b3
Import from CVS: tag r19-15b3
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:46:56 +0200 |
parents | |
children | 4b173ad71786 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/tl/cless.el Mon Aug 13 08:46:56 2007 +0200 @@ -0,0 +1,80 @@ +;;; cless.el --- Common lisp and Emacs Lisp source sharing + +;; Copyright (C) 1996 MORIOKA Tomohiko + +;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> +;; Version: +;; $Id: cless.el,v 1.1.1.1 1996/12/18 03:55:31 steve Exp $ +;; Keywords: common lisp + +;; This file is not part of GNU Emacs. + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with This program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Code: + +(require 'cl) + +(defun call-after-loaded (module func &optional hook-name) + "If MODULE is provided, then FUNC is called. +Otherwise func is set to MODULE-load-hook. +If optional argument HOOK-NAME is specified, +it is used as hook to set. [cless.el; imported from tl-misc.el]" + (if (featurep module) + (funcall func) + (progn + (if (null hook-name) + (setq hook-name + (intern (concat (symbol-name module) "-load-hook"))) + ) + (add-hook hook-name func) + ))) + +(defun define-cless-alias (alias func) + (defalias alias func) + (call-after-loaded + 'cl-macs + (` (lambda () + (define-compiler-macro (, alias) (&rest args) + (cons (, (list 'quote func)) args) + )) + )) + ) + +(define-cless-alias 'FLOOR 'floor*) +(define-cless-alias 'CEILING 'ceiling*) +(define-cless-alias 'TRUNCATE 'truncate*) +(define-cless-alias 'ROUND 'round*) +(define-cless-alias 'MOD 'mod*) + +(define-cless-alias 'DELETE 'delete*) +(define-cless-alias 'SORT 'sort*) +(define-cless-alias 'MEMBER 'member*) +(define-cless-alias 'ASSOC 'assoc*) +(define-cless-alias 'RASSOC 'rassoc*) + +(define-cless-alias 'MAPCAR 'mapcar*) + +(define-cless-alias 'DEFUN 'defun*) + + + +;;; @ end +;;; + +(provide 'cless) + +;;; cless.el ends here