Function: erc--find-mode

erc--find-mode is a byte-compiled function defined in erc.el.gz.

Signature

(erc--find-mode SYM)

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc--find-mode (sym)
  (setq sym (erc--normalize-module-symbol sym))
  (if-let* ((mode (intern-soft (concat "erc-" (symbol-name sym) "-mode")))
            ((and (fboundp mode)
                  (autoload-do-load (symbol-function mode) mode)))
            ((or (get sym 'erc--module)
                 (symbol-file mode)
                 (ignore (cl-pushnew sym erc--aberrant-modules)))))
      mode
    (and (or (and erc--requiring-module-mode-p
                  ;; Also likely non-nil: (eq sym (car features))
                  (cl-pushnew sym erc--aberrant-modules))
             (let ((erc--requiring-module-mode-p t))
               (require (or (get sym 'erc--feature)
                            (intern (concat "erc-" (symbol-name sym))))
                        nil 'noerror))
             (memq sym erc--aberrant-modules))
         (or mode (setq mode (intern-soft (concat "erc-" (symbol-name sym)
                                                  "-mode"))))
         (fboundp mode)
         mode)))