(interactive-form): New function.
This commit is contained in:
parent
cc515226ef
commit
f65fab598e
1 changed files with 21 additions and 19 deletions
40
lisp/subr.el
40
lisp/subr.el
|
@ -1449,25 +1449,27 @@ configuration."
|
|||
(eq (car-safe object) 'lambda)
|
||||
(and (symbolp object) (fboundp object))))
|
||||
|
||||
;; now in fns.c
|
||||
;(defun nth (n list)
|
||||
; "Returns the Nth element of LIST.
|
||||
;N counts from zero. If LIST is not that long, nil is returned."
|
||||
; (car (nthcdr n list)))
|
||||
;
|
||||
;(defun copy-alist (alist)
|
||||
; "Return a copy of ALIST.
|
||||
;This is a new alist which represents the same mapping
|
||||
;from objects to objects, but does not share the alist structure with ALIST.
|
||||
;The objects mapped (cars and cdrs of elements of the alist)
|
||||
;are shared, however."
|
||||
; (setq alist (copy-sequence alist))
|
||||
; (let ((tail alist))
|
||||
; (while tail
|
||||
; (if (consp (car tail))
|
||||
; (setcar tail (cons (car (car tail)) (cdr (car tail)))))
|
||||
; (setq tail (cdr tail))))
|
||||
; alist)
|
||||
(defun interactive-form (function)
|
||||
"Return the interactive form of FUNCTION.
|
||||
If function is a command (see `commandp'), value is a list of the form
|
||||
\(interactive SPEC). If function is not a command,return nil."
|
||||
(setq function (indirect-function function))
|
||||
(when (commandp function)
|
||||
(cond ((byte-code-function-p function)
|
||||
(when (> (length function) 5)
|
||||
(let ((spec (aref function 5)))
|
||||
(if spec
|
||||
(list 'interactive spec)
|
||||
(list 'interactive)))))
|
||||
((subrp function)
|
||||
(subr-interactive-form function))
|
||||
((eq (car-safe function) 'lambda)
|
||||
(setq function (cddr function))
|
||||
(when (stringp (car function))
|
||||
(setq function (cdr function)))
|
||||
(let ((form (car function)))
|
||||
(when (eq (car-safe form 'interactive))
|
||||
(copy-sequence form)))))))
|
||||
|
||||
(defun assq-delete-all (key alist)
|
||||
"Delete from ALIST all elements whose car is KEY.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue