From cc0e6f241c6a64152d912b5b7a9d50a2035e7b3d Mon Sep 17 00:00:00 2001 From: kissge Date: Tue, 10 Jan 2017 22:08:39 +0900 Subject: [PATCH] Fix the wrong color replacement problem in xpm images With specific color combinations, some of the colors could be replaced twice. This commit avoids that problem. --- mode-icons.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mode-icons.el b/mode-icons.el index 4556133..28b06f1 100644 --- a/mode-icons.el +++ b/mode-icons.el @@ -318,9 +318,15 @@ If ICON-PATH is a string, return that." "Get xpm image from ICON-PATH and reaplce REP-ALIST in file. When NAME is non-nil, also replace the internal xpm image name." (let ((case-fold-search t) - (img (mode-icons-get-xpm-string icon-path))) + (img (mode-icons-get-xpm-string icon-path)) + (i 0)) (dolist (c rep-alist) - (setq img (replace-regexp-in-string (regexp-quote (car c)) (cdr c) img t t))) + (setq img (replace-regexp-in-string (regexp-quote (car c)) (format "COLOR<%d>" i) img t t) + i (1+ i))) + (let ((i 0)) + (dolist (c rep-alist) + (setq img (replace-regexp-in-string (format "COLOR<%d>" i) (cdr c) img t t) + i (1+ i)))) (when name (setq img (replace-regexp-in-string "^[ ]*static[ ]+char[ ]+[*][ ]+.*?\\[" (concat "static char * " name "[") img t t))) img))