From ea2a02f4a5d739bf0889c6ad4c24f92021c571dc Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 3 Sep 2021 12:20:21 -0500 Subject: Refactor `safely' I'm still not sure if this is like, at all necessary... --- lisp/acdw-compat.el | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'lisp') diff --git a/lisp/acdw-compat.el b/lisp/acdw-compat.el index 0a1a037..353a1f1 100644 --- a/lisp/acdw-compat.el +++ b/lisp/acdw-compat.el @@ -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)))) -- cgit 1.4.1-21-gabe81