Function: erc-compat--29-auth-source-pass--retrieve-parsed

erc-compat--29-auth-source-pass--retrieve-parsed is a byte-compiled function defined in erc-compat.el.gz.

Signature

(erc-compat--29-auth-source-pass--retrieve-parsed SEEN E PORT-NUMBER-P)

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-compat.el.gz
;; This hard codes `auth-source-pass-port-separator' to ":"
(defun erc-compat--29-auth-source-pass--retrieve-parsed (seen e port-number-p)
  (when (string-match (rx (or bot "/")
                          (or (: (? (group-n 20 (+ (not (in "/:")))) "@")
                                 (group-n 10 (+ (not (in "/:@"))))
                                 (? ":" (group-n 30 (+ (not (in " /:"))))))
                              (: (group-n 11 (+ (not (in "/:@"))))
                                 (? ":" (group-n 31 (+ (not (in " /:")))))
                                 (? "/" (group-n 21 (+ (not (in "/:")))))))
                          eot)
                      e)
    (puthash e `( :host ,(or (match-string 10 e) (match-string 11 e))
                  ,@(if-let* ((tr (match-string 21 e)))
                        (list :user tr :suffix t)
                      (list :user (match-string 20 e)))
                  :port ,(and-let* ((p (or (match-string 30 e)
                                           (match-string 31 e)))
                                    (n (string-to-number p)))
                           (if (or (zerop n) (not port-number-p))
                               (format "%s" p)
                             n)))
             seen)))