Refactor `safely'

I'm still not sure if this is like, at all necessary...
This commit is contained in:
Case Duckworth 2021-09-03 12:20:21 -05:00
parent c648e35b2a
commit ea2a02f4a5
1 changed files with 23 additions and 21 deletions

View File

@ -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))))