"Return non-nil if argument BUFFER is an ERC server buffer.
If BUFFER is nil, use the current buffer. For historical
reasons, also return non-nil for channel buffers the client has
-parted or from which it's been kicked."
+parted or been kicked from."
(with-current-buffer (or buffer (current-buffer))
(and (eq major-mode 'erc-mode)
(null (erc-default-target)))))
(defun erc-query-buffer-p (&optional buffer)
"Return non-nil if BUFFER is an ERC query buffer.
-If BUFFER is nil, the current buffer is used."
- (not (erc-channel-p (or buffer (current-buffer)))))
+If BUFFER is nil, use the current buffer."
+ (and-let* ((target (if buffer
+ (progn (when (stringp buffer)
+ (setq buffer (get-buffer buffer)))
+ (buffer-local-value 'erc--target buffer))
+ erc--target)))
+ (not (erc--target-channel-p target))))
(defun erc-ison-p (nick)
"Return non-nil if NICK is online."
(erc-tests-common-kill-buffers))
+(ert-deftest erc-query-buffer-p ()
+ ;; Nil in a non-ERC buffer.
+ (should-not (erc-query-buffer-p))
+ (should-not (erc-query-buffer-p (current-buffer)))
+ (should-not (erc-query-buffer-p (buffer-name)))
+
+ (erc-tests-common-make-server-buf)
+ ;; Nil in a server buffer.
+ (should-not (erc-query-buffer-p))
+ (should-not (erc-query-buffer-p (current-buffer)))
+ (should-not (erc-query-buffer-p (buffer-name)))
+
+ ;; Nil in a channel buffer.
+ (with-current-buffer (erc--open-target "#chan")
+ (should-not (erc-query-buffer-p))
+ (should-not (erc-query-buffer-p (current-buffer)))
+ (should-not (erc-query-buffer-p (buffer-name))))
+
+ ;; Non-nil in a query buffer.
+ (with-current-buffer (erc--open-target "alice")
+ (should (erc-query-buffer-p))
+ (should (erc-query-buffer-p (current-buffer)))
+ (should (erc-query-buffer-p (buffer-name))))
+
+ (should (erc-query-buffer-p (get-buffer "alice")))
+ (should (erc-query-buffer-p "alice"))
+
+ (erc-tests-common-kill-buffers))
+
(ert-deftest erc--valid-local-channel-p ()
(ert-info ("Local channels not supported")
(let ((erc--isupport-params (make-hash-table)))