From 836c8f066c86d0511a25f4bf926d5cfed1e3a3ef Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Sat, 24 Sep 2005 23:10:02 +0000 Subject: [PATCH] * term/rxvt.el (rxvt-register-default-colors): Add support for 88 colors rxvt-unicode terminals by using the same code as xterm.el. --- lisp/ChangeLog | 5 +++++ lisp/term/rxvt.el | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3807037e57..9609166951 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-09-24 Emanuele Giaquinta (tiny change) + + * term/rxvt.el (rxvt-register-default-colors): Add support for 88 + colors rxvt-unicode terminals by using the same code as xterm.el. + 2005-09-24 Stefan Monnier * textmodes/tex-mode.el (tex-font-lock-append-prop) diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el index 44a14271c9..05cd854f22 100644 --- a/lisp/term/rxvt.el +++ b/lisp/term/rxvt.el @@ -210,6 +210,36 @@ for the currently selected frame." (setq colors (cdr colors) color (car colors) ncolors (1- ncolors))) + (when (and (> ncolors 0) (= ncolors 72)) ; rxvt-unicode + ;; 64 non-gray colors + (let ((levels '(0 139 205 255)) + (r 0) (g 0) (b 0)) + (while (> ncolors 8) + (tty-color-define (format "color-%d" (- 88 ncolors)) + (- 88 ncolors) + (mapcar 'rxvt-rgb-convert-to-16bit + (list (nth r levels) + (nth g levels) + (nth b levels)))) + (setq b (1+ b)) + (if (> b 3) + (setq g (1+ g) + b 0)) + (if (> g 3) + (setq r (1+ r) + g 0)) + (setq ncolors (1- ncolors)))) + ;; Now the 8 gray colors + (while (> ncolors 0) + (setq color (rxvt-rgb-convert-to-16bit + (floor + (if (= ncolors 8) + 46.36363636 + (+ (* (- 8 ncolors) 23.18181818) 69.54545454))))) + (tty-color-define (format "color-%d" (- 88 ncolors)) + (- 88 ncolors) + (list color color color)) + (setq ncolors (1- ncolors)))) ;; Modifying color mappings means realized faces don't use the ;; right colors, so clear them. (clear-face-cache))) -- 2.39.2