emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/compat 61a1da1 44/99: Remove indirect-function compatib


From: ELPA Syncer
Subject: [elpa] externals/compat 61a1da1 44/99: Remove indirect-function compatibility
Date: Sun, 17 Oct 2021 05:57:54 -0400 (EDT)

branch: externals/compat
commit 61a1da1d2c1551504059b35e661a3ad0b702dea2
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Remove indirect-function compatibility
---
 compat-24.4.el  |  8 ++++++--
 compat-25.1.el  | 11 -----------
 compat-26.1.el  |  3 ++-
 compat-tests.el | 17 -----------------
 compat.el       |  4 +++-
 5 files changed, 11 insertions(+), 32 deletions(-)

diff --git a/compat-24.4.el b/compat-24.4.el
index 6518733..abe76f4 100644
--- a/compat-24.4.el
+++ b/compat-24.4.el
@@ -94,12 +94,16 @@ for more details about the different forms of FILE and 
their semantics."
 (compat-defun special-form-p (object)
   "Non-nil if and only if OBJECT is a special form."
   (if (and (symbolp object) (fboundp object))
-      (setq object (indirect-function object)))
+      (setq object (condition-case nil
+                       (indirect-function object)
+                     (void-function nil))))
   (and (subrp object) (eq (cdr (subr-arity object)) 'unevalled)))
 
 (compat-defun macrop (object)
   "Non-nil if and only if OBJECT is a macro."
-  (let ((def (indirect-function object)))
+  (let ((def (condition-case nil
+                 (indirect-function object)
+               (void-function nil))))
     (when (consp def)
       (or (eq 'macro (car def))
           (and (autoloadp def) (memq (nth 4 def) '(macro t)))))))
diff --git a/compat-25.1.el b/compat-25.1.el
index 43141ee..63f1d35 100644
--- a/compat-25.1.el
+++ b/compat-25.1.el
@@ -70,17 +70,6 @@ This implementation is equivalent to `format'."
             ?\\ ?/))
       (aref name (1- (length name)))))
 
-;;;; Defined in data.c
-
-(compat-advise indirect-function (object)
-  "Prevent `void-function' from being signalled."
-  :cond (condition-case nil
-            (ignore (indirect-function nil))
-          (void-function t))
-  (condition-case nil
-      (funcall oldfun object)
-    (void-function nil)))
-
 ;;;; Defined in subr.el
 
 (compat-defun string-greaterp (string1 string2)
diff --git a/compat-26.1.el b/compat-26.1.el
index b38b940..62d7b23 100644
--- a/compat-26.1.el
+++ b/compat-26.1.el
@@ -252,7 +252,8 @@ TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
   (declare (pure t))
   (cdr (cdr (cdr (cdr x)))))
 
-(defvar compat--gensym-counter 0)
+(compat-defvar compat--gensym-counter 0
+  "Number used to construct the name of the next symbol created by `gensym'.")
 
 (compat-defun gensym (&optional prefix)
   "Return a new uninterned symbol.
diff --git a/compat-tests.el b/compat-tests.el
index de7adb9..1b41cbb 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -1221,22 +1221,5 @@ the compatibility function."
     (compat--should t "dir/subdir/")
     (compat--should nil "dir/subdir")))
 
-(ert-deftest compat-indirect-function ()
-  "Check if `indirect-function' was advised properly."
-  (compat-test indirect-function
-    ;; A symbol with a function alias should return the function it is
-    ;; aliasing:
-    (compat--should* (indirect-function #'process-send-string)
-                     'send-string)
-    (compat--should* (indirect-function #'string-equal)
-                     'string=)
-    ;; A function should return it self when not aliased:
-    (compat--should* (indirect-function #'string-equal) 'string-equal)
-    ;; A fresh symbol should return nil when no function is associated
-    ;; with it:
-    (compat--should* nil (make-symbol "foobar"))
-    ;; Anything else is return as is:
-    (compat--should* "foobar" "foobar")))
-
 (provide 'compat-tests)
 ;;; compat-tests.el ends here
diff --git a/compat.el b/compat.el
index fa50cda..0b022d4 100644
--- a/compat.el
+++ b/compat.el
@@ -51,7 +51,9 @@
    ((null func)
     (signal 'void-function func))
    ((and (symbolp func) (not (null func)))
-    (compat-func-arity (indirect-function func)))
+    (compat-func-arity (condition-case nil
+                           (indirect-function func)
+                         (void-function nil))))
    ((eq (car-safe func) 'macro)
     (compat-func-arity (cdr func)))
    ((subrp func)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]