[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/compat 4c6c31b 29/99: Replace :force with more general
From: |
ELPA Syncer |
Subject: |
[elpa] externals/compat 4c6c31b 29/99: Replace :force with more general :cond |
Date: |
Sun, 17 Oct 2021 05:57:52 -0400 (EDT) |
branch: externals/compat
commit 4c6c31beb32319109ba568f56ffb1c41d35b9238
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>
Replace :force with more general :cond
This is mainly to improve checking of advice has to be installed or
not.
---
compat-macs.el | 22 +++++++++-------------
compat.el | 1 -
2 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/compat-macs.el b/compat-macs.el
index 418c8f0..31bb7b1 100644
--- a/compat-macs.el
+++ b/compat-macs.el
@@ -49,8 +49,8 @@ attributes are handled, all others are ignored:
- :feature :: The library the code is supposed to be loaded
with (via `eval-after-load').
-- :force :: Non-nil means the compatibility code is installed no
- matter what.
+- :cond :: Only install the compatibility code, iff the value
+ evaluates to non-nil.
- :no-highlight :: Do not highlight this definition as
compatibility function.
@@ -63,7 +63,7 @@ attributes are handled, all others are ignored:
(let* ((min-version (plist-get attr :min-version))
(max-version (plist-get attr :max-version))
(feature (plist-get attr :feature))
- (force (plist-get attr :force))
+ (cond (plist-get attr :cond))
(version (or (plist-get attr :version)
(let ((file (or (and (boundp 'byte-compile-current-file)
byte-compile-current-file)
@@ -78,15 +78,14 @@ attributes are handled, all others are ignored:
(realname (or (plist-get attr :realname)
(intern (format "compat--%S" name))))
(body `(,@(cond
- (force
- '(progn))
+ ((not (null cond)) `(when ,cond))
((and (or (not version)
(version< emacs-version version))
(or (not min-version)
(version<= min-version emacs-version))
(or (not max-version)
(version<= emacs-version max-version)))
- `(unless ,(funcall check-fn realname)))
+ `(unless ,(funcall check-fn)))
('(compat--ignore)))
,(unless (plist-get attr :no-highlight)
`(font-lock-add-keywords
@@ -151,14 +150,11 @@ attributes (see `compat-generate-common')."
((eq type 'advice)
;; Advice is installed the usual way.
`(advice-add ',name :around #',realname))))
- (lambda (realname)
+ (lambda ()
(cond
((memq type '(func macro))
`(fboundp ',name))
- ((eq type 'advice)
- ;; TODO: Improve the check if the advice already has been
- ;; installed or still has to be added.
- `(advice-member-p ',realname ',name))))
+ ((eq type 'advice) t)))
rest)))
(defmacro compat-defun (name arglist docstring &rest rest)
@@ -242,8 +238,8 @@ non-nil value."
`(make-variable-buffer-local ',realname))))))
(lambda (realname)
`(defvaralias ',name ',realname))
- (lambda (realname)
- `(boundp ',realname))
+ (lambda ()
+ `(boundp ',name))
attr))
(provide 'compat-macs)
diff --git a/compat.el b/compat.el
index 4c1fcd2..459ccba 100644
--- a/compat.el
+++ b/compat.el
@@ -50,7 +50,6 @@
;; As the compatibility advise around `require` is more a hack than
;; of of actual value, the highlighting is supressed.
:no-highlight t
- :force t
(condition-case err
(funcall oldfun feature filename noerror)
(file-missing
- [elpa] externals/compat a403485 10/99: Require compat-macs in eval-when-compile instead of eval-and-compile, (continued)
- [elpa] externals/compat a403485 10/99: Require compat-macs in eval-when-compile instead of eval-and-compile, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 0d77194 14/99: Remove compat--disable-defer variable, ELPA Syncer, 2021/10/17
- [elpa] externals/compat eafe584 15/99: Remove unnecessary eval-and-compile block from compat-tests, ELPA Syncer, 2021/10/17
- [elpa] externals/compat c7d1615 06/99: Remove elisp-shorthands from compat-tests.el, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 5936773 08/99: Fix installation check, ELPA Syncer, 2021/10/17
- [elpa] externals/compat d77b31f 11/99: Reorder files to byte compile in Makefile, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 12e36f7 12/99: Check if actual name is fbound before binding a function or macro, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 5846fbe 13/99: Pull compatibility definition out of eval-after-load block, ELPA Syncer, 2021/10/17
- [elpa] externals/compat b3d1100 17/99: Prepend font-lock-preprocessor-face to compatibility symbols, ELPA Syncer, 2021/10/17
- [elpa] externals/compat c626917 18/99: Add a named-let test, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 4c6c31b 29/99: Replace :force with more general :cond,
ELPA Syncer <=
- [elpa] externals/compat a983e8c 30/99: Install advice using advice instead of nadvice for Emacs 24.3, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 08c77ed 33/99: Declare variable for gensym, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 56ad375 40/99: Declare macrop for macroexpand-1, ELPA Syncer, 2021/10/17
- [elpa] externals/compat e4b57d2 28/99: Increase base version to 24.3, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 1430aaa 09/99: Add highlighting for compatibility code, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 79d4778 23/99: Use compat--string-trim-left in file-name-with-extension, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 156b5f5 27/99: Ensure substring is passed two arguments in string-width advise, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 14a3bce 39/99: Remove NonGNU ELPA installation code, ELPA Syncer, 2021/10/17
- [elpa] externals/compat 6445814 51/99: Use compatibility functions in file-name-with-extension definition, ELPA Syncer, 2021/10/17
- [elpa] externals/compat fa1d0df 55/99: Use names of compatibility functions in ert docstrings, ELPA Syncer, 2021/10/17