Function: gnus-sloppily-equal-method-parameters

gnus-sloppily-equal-method-parameters is a byte-compiled function defined in gnus.el.gz.

Signature

(gnus-sloppily-equal-method-parameters M1 M2)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus.el.gz
(defsubst gnus-sloppily-equal-method-parameters (m1 m2)
  ;; Check parameters for sloppy equality.
  (let ((p1 (copy-sequence (cddr m1)))
	(p2 (copy-sequence (cddr m2)))
	e1 e2)
    (cl-block nil
      (while (setq e1 (pop p1))
	(unless (setq e2 (assq (car e1) p2))
	  ;; The parameter doesn't exist in p2.
	  (cl-return nil))
	(setq p2 (delq e2 p2))
	(unless (equal e1 e2)
	  (if (not (and (stringp (cadr e1))
			(stringp (cadr e2))))
	      (cl-return nil)
	    ;; Special-case string parameter comparison so that we
	    ;; can uniquify them.
	    (let ((s1 (cadr e1))
		  (s2 (cadr e2)))
	      (when (string-match "/\\'" s1)
		(setq s1 (directory-file-name s1)))
	      (when (string-match "/\\'" s2)
		(setq s2 (directory-file-name s2)))
	      (unless (equal s1 s2)
		(cl-return nil))))))
      ;; If p2 now is empty, they were equal.
      (null p2))))