Refactor `safely'
I'm still not sure if this is like, at all necessary...
This commit is contained in:
parent
c648e35b2a
commit
ea2a02f4a5
|
@ -27,27 +27,29 @@
|
|||
Is it necessary? Who knows!!"
|
||||
(let (output)
|
||||
(dolist (form defines)
|
||||
(let ((test (cond ((memq (car form)
|
||||
'(define-global-minor-mode
|
||||
define-globalized-minor-mode
|
||||
define-minor-mode
|
||||
defmacro
|
||||
defsubst
|
||||
defun))
|
||||
#'fboundp)
|
||||
((memq (car form)
|
||||
'(defcustom
|
||||
defvar
|
||||
defvar
|
||||
defvar-local
|
||||
defvar-mode-local
|
||||
defvaralias))
|
||||
#'boundp))))
|
||||
(push (if test
|
||||
`(unless (,test ',(cadr form))
|
||||
,form)
|
||||
form)
|
||||
output)))
|
||||
;; this is one part where elisp being a lisp-2 bites us...
|
||||
(push (cond ((memq (car form)
|
||||
'(;; makes functions
|
||||
define-global-minor-mode
|
||||
define-globalized-minor-mode
|
||||
define-minor-mode
|
||||
defmacro
|
||||
defsubst
|
||||
defun))
|
||||
`(unless (fboundp ',(cadr form))
|
||||
,form))
|
||||
((memq (car form)
|
||||
'(;; makes variables
|
||||
defcustom
|
||||
defvar
|
||||
defvar
|
||||
defvar-local
|
||||
defvar-mode-local
|
||||
defvaralias))
|
||||
`(unless (boundp ',(cadr form))
|
||||
,form))
|
||||
(t form))
|
||||
output))
|
||||
`(progn ,@(nreverse output))))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue