Subject: bug#14078: closed (Re: bug#14078: [PATCH] Fix 256 color mapping in rxvt.el)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 17 Dec 2013 16:05:03 +0000

Your bug report

#14078: [PATCH] Fix 256 color mapping in rxvt.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
14078: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14078
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#14078: [PATCH] Fix 256 color mapping in rxvt.el
From: Chong Yidong <[email-masked]>
To: oblique <[email-masked]>
Cc: [email-masked]
Date: Wed, 18 Dec 2013 00:04:16 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

oblique <[email-masked]> writes:

> Color mapping was wrong, I use the same way xterm.el does it.

Thanks, committed to trunk.

Subject: [PATCH] Fix 256 color mapping in rxvt.el
From: oblique <[email-masked]>
To: [email-masked]
Cc: oblique <[email-masked]>
Date: Thu, 28 Mar 2013 22:02:43 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Color mapping was wrong, I use the same way xterm.el does it.
---
 lisp/term/rxvt.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index 0e026a8..6a62cff 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -201,7 +201,7 @@
 
 (defun rxvt-rgb-convert-to-16bit (prim)
   "Convert an 8-bit primary color value PRIM to a corresponding 16-bit value."
-  (min 65535 (round (* (/ prim 255.0) 65535.0))))
+  (logior prim (lsh prim 8)))
 
 (defun rxvt-register-default-colors ()
   "Register the default set of colors for rxvt or compatible emulator.
@@ -233,9 +233,10 @@ for the currently selected frame."
 	    (tty-color-define (format "color-%d" (- 256 ncolors))
 			      (- 256 ncolors)
 			      (mapcar 'rxvt-rgb-convert-to-16bit
-				      (list (round (* r 42.5))
-					    (round (* g 42.5))
-					    (round (* b 42.5)))))
+                                      (list (if (zerop r) 0 (+ (* r 40) 55))
+                                            (if (zerop g) 0 (+ (* g 40) 55))
+                                            (if (zerop b) 0 (+ (* b 40) 55)))))
+
 	    (setq b (1+ b))
 	    (if (> b 5)
 		(setq g (1+ g)
-- 
1.8.1.5