diff --git a/CHANGELOG.md b/CHANGELOG.md index 88e8e3b..c020100 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). missing from the system - mode-icons now allows for a default icon. This can be turned on with the new option `mode-icons-use-default-icon` +- Fix coloring algorithm for xpm images. ## [0.4.0] diff --git a/mode-icons.el b/mode-icons.el index 4556133..2a6e30c 100644 --- a/mode-icons.el +++ b/mode-icons.el @@ -315,12 +315,18 @@ If ICON-PATH is a string, return that." (and (stringp icon-path) icon-path))) (defun mode-icons-get-icon-display-xpm-replace (icon-path rep-alist &optional name) - "Get xpm image from ICON-PATH and reaplce REP-ALIST in file. + "Get xpm image from ICON-PATH and replace 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)) @@ -383,7 +389,7 @@ In order, will try to get the foreground color from: "Change xpm at ICON-PATH to match FACE. The white is changed to the background color. The black is changed to the foreground color. -Grayscale colors are aslo changed by `mode-icons-interpolate-from-scale'." +Grayscale colors are also changed by `mode-icons-interpolate-from-scale'." (let* ((background (mode-icons-background-color face)) (foreground (mode-icons-foreground-color face)) (lst (mode-icons-interpolate-from-scale foreground background))