From 586867e6815d6e43bfaa4191bc62de60c00fbce3 Mon Sep 17 00:00:00 2001
From: Tino Calancha <tino.calancha@gmail.com>
Date: Wed, 7 Dec 2016 20:37:01 +0900
Subject: [PATCH] ibuffer: compare marks with EQ

* lisp/ibuffer (ibuffer-update-title-and-summary, ibuffer-redisplay-current)
(ibuffer-buffer-name-face, ibuffer-unmark-all)
(ibuffer-count-deletion-lines, ibuffer-buffer-names-with-mark):
Use 'eq' instead of 'char-equal' when comparing mark characters (Bug#25000).
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug25000):
Update test result as pass.
---
 lisp/ibuffer.el            | 28 ++++++++++++++--------------
 test/lisp/ibuffer-tests.el |  1 -
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 16fbf5799ff..8898afd4fbf 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1240,7 +1240,7 @@ a new window in the current frame, splitting vertically."
   (let ((ibuffer-buffer-names-with-mark-result nil))
     (ibuffer-map-lines-nomodify
      (lambda (buf mk)
-       (when (char-equal mark mk)
+       (when (eq mark mk)
 	 (push (buffer-name buf)
 	       ibuffer-buffer-names-with-mark-result))))
     ibuffer-buffer-names-with-mark-result))
@@ -1255,15 +1255,15 @@ a new window in the current frame, splitting vertically."
   (if all
       (ibuffer-map-lines-nomodify
        (lambda (_buf mark)
-	 (not (char-equal mark ?\s))))
+	 (not (eq mark ?\s))))
     (ibuffer-map-lines-nomodify
      (lambda (_buf mark)
-       (char-equal mark ibuffer-marked-char)))))
+       (eq mark ibuffer-marked-char)))))
 
 (defsubst ibuffer-count-deletion-lines ()
   (ibuffer-map-lines-nomodify
    (lambda (_buf mark)
-     (char-equal mark ibuffer-deletion-char))))
+     (eq mark ibuffer-deletion-char))))
 
 (defsubst ibuffer-map-deletion-lines (func)
   (ibuffer-map-on-mark ibuffer-deletion-char func))
@@ -1342,26 +1342,26 @@ Otherwise, toggle read only status."
   (if (= (ibuffer-count-marked-lines t) 0)
       (message "No buffers marked; use 'm' to mark a buffer")
     (cond
-     ((char-equal mark ibuffer-marked-char)
+     ((eq mark ibuffer-marked-char)
       (ibuffer-map-marked-lines
        (lambda (_buf _mark)
 	 (ibuffer-set-mark-1 ?\s)
 	 t)))
-     ((char-equal mark ibuffer-deletion-char)
+     ((eq mark ibuffer-deletion-char)
       (ibuffer-map-deletion-lines
        (lambda (_buf _mark)
 	 (ibuffer-set-mark-1 ?\s)
 	 t)))
-     ((not (char-equal mark ?\r))
+     ((not (eq mark ?\r))
       (ibuffer-map-lines
        (lambda (_buf cmark)
-	 (when (char-equal cmark mark)
+	 (when (eq cmark mark)
 	   (ibuffer-set-mark-1 ?\s))
 	 t)))
      (t
       (ibuffer-map-lines
        (lambda (_buf mark)
-	 (when (not (char-equal mark ?\s))
+	 (when (not (eq mark ?\s))
 	   (ibuffer-set-mark-1 ?\s))
 	 t)))))
   (ibuffer-redisplay t))
@@ -1912,9 +1912,9 @@ If point is on a group name, this function operates on that group."
       (_ (concat str left right)))))
 
 (defun ibuffer-buffer-name-face (buf mark)
-  (cond ((char-equal mark ibuffer-marked-char)
+  (cond ((eq mark ibuffer-marked-char)
 	 ibuffer-marked-face)
-	((char-equal mark ibuffer-deletion-char)
+	((eq mark ibuffer-deletion-char)
 	 ibuffer-deletion-face)
 	(t
 	 (let ((level -1)
@@ -1958,7 +1958,7 @@ If point is on a group name, this function operates on that group."
 (defun ibuffer-map-on-mark (mark func)
   (ibuffer-map-lines
    (lambda (buf mk)
-     (if (char-equal mark mk)
+     (if (eq mark mk)
 	 (funcall func buf mark)
        nil))))
 
@@ -2185,8 +2185,8 @@ the value of point at the beginning of the line for that buffer."
 		      (buffer-substring (point) (line-end-position)))))
 	   (apply #'insert (mapcar
 			    (lambda (c)
-			      (if (not (or (char-equal c ?\s)
-					   (char-equal c ?\n)))
+			      (if (not (or (eq c ?\s)
+					   (eq c ?\n)))
 				  ?-
 				?\s))
 			    str)))
diff --git a/test/lisp/ibuffer-tests.el b/test/lisp/ibuffer-tests.el
index 6d5187a2b77..da8c7024463 100644
--- a/test/lisp/ibuffer-tests.el
+++ b/test/lisp/ibuffer-tests.el
@@ -50,7 +50,6 @@
 
 (ert-deftest ibuffer-test-Bug25000 ()
   "Test for http://debbugs.gnu.org/25000 ."
-  :expected-result :failed
   (let ((case-fold-search t)
         (buf1 (generate-new-buffer "ibuffer-test-Bug25000-buf1"))
         (buf2 (generate-new-buffer "ibuffer-test-Bug25000-buf2")))
-- 
2.39.5