))
)))
-(defmacro defsubst-maybe (name &rest everything-else)
+(defmacro defmacro-maybe (name &rest everything-else)
(or (and (fboundp name)
- (not (get name 'defsubst-maybe)))
+ (not (get name 'defmacro-maybe)))
(` (or (fboundp (quote (, name)))
(progn
- (defsubst (, name) (,@ everything-else))
- (put (quote (, name)) 'defsubst-maybe t)
+ (defmacro (, name) (,@ everything-else))
+ (put (quote (, name)) 'defmacro-maybe t)
))
)))
-(defmacro defmacro-maybe (name &rest everything-else)
+(defmacro-maybe defsubst (name arglist &rest body)
+ "Define an inline function. The syntax is just like that of `defun'."
+ (cons 'defun (cons name (cons arglist body)))
+ )
+
+(defmacro defsubst-maybe (name &rest everything-else)
(or (and (fboundp name)
- (not (get name 'defmacro-maybe)))
+ (not (get name 'defsubst-maybe)))
(` (or (fboundp (quote (, name)))
(progn
- (defmacro (, name) (,@ everything-else))
- (put (quote (, name)) 'defmacro-maybe t)
+ (defsubst (, name) (,@ everything-else))
+ (put (quote (, name)) 'defsubst-maybe t)
))
)))
(or (and (fboundp name)
(not (get name 'defun-maybe)))
(` (unless (fboundp (quote (, name)))
- (cond (,@ (mapcar (lambda (case)
- (list (car case)
- (if doc
- (` (defun (, name) (, args)
- (, doc)
- (,@ (cdr case))))
- (` (defun (, name) (, args)
- (,@ (cdr case))))
- )))
+ (cond (,@ (mapcar (function
+ (lambda (case)
+ (list (car case)
+ (if doc
+ (` (defun (, name) (, args)
+ (, doc)
+ (,@ (cdr case))))
+ (` (defun (, name) (, args)
+ (,@ (cdr case))))
+ ))))
everything-else)))
(put (quote (, name)) 'defun-maybe t)
))))
))
-;;; @ Emacs 19 emulation
+;;; @ Emacs 19.23 emulation
;;;
-(defmacro-maybe eval-and-compile (&rest body)
- "Like `progn', but evaluates the body at compile time and at load time."
- ;; Remember, it's magic.
- (cons 'progn body))
-
(defun-maybe minibuffer-prompt-width ()
"Return the display width of the minibuffer prompt."
(save-excursion