Function: gnus-get-function
gnus-get-function is a byte-compiled function defined in
gnus-int.el.gz.
Signature
(gnus-get-function METHOD FUNCTION &optional NOERROR)
Documentation
Return a function symbol based on METHOD and FUNCTION.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-int.el.gz
(defun gnus-get-function (method function &optional noerror)
"Return a function symbol based on METHOD and FUNCTION."
;; Translate server names into methods.
(unless method
(error "Attempted use of a nil select method"))
(when (stringp method)
(setq method (gnus-server-to-method method)))
;; Check cache of constructed names.
(let* ((method-sym (if gnus-agent
(inline (gnus-agent-get-function method))
(car method)))
(method-fns (get method-sym 'gnus-method-functions))
(func (let ((method-fnlist-elt (assq function method-fns)))
(unless method-fnlist-elt
(setq method-fnlist-elt
(cons function
(intern (format "%s-%s" method-sym function))))
(put method-sym 'gnus-method-functions
(cons method-fnlist-elt method-fns)))
(cdr method-fnlist-elt))))
;; Maybe complain if there is no function.
(unless (fboundp func)
(unless (car method)
(error "Trying to require a method that doesn't exist"))
(require (car method))
(when (not (fboundp func))
(if noerror
(setq func nil)
(error "No such function: %s" func))))
func))