zenburn-el
zenburn-el copied to clipboard
Infinite recursion
Can't prove this is a zenburn issue, but chances seem good that it's related:
color-theme-spec-resolve-inheritance((:inherit))
(let ((more-atts ...) att val) (while more-atts (setq att ... val ... more-atts ...) (cond ... ...)))
(progn (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
(if face (progn (setq atts ...) (let ... ...)))
(when face (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
(let ((face ...)) (when face (setq atts ...) (let ... ...)) atts)
color-theme-spec-resolve-inheritance((:inherit))
(let ((more-atts ...) att val) (while more-atts (setq att ... val ... more-atts ...) (cond ... ...)))
(progn (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
(if face (progn (setq atts ...) (let ... ...)))
(when face (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
(let ((face ...)) (when face (setq atts ...) (let ... ...)) atts)
color-theme-spec-resolve-inheritance((:inherit))
(color-theme-spec-maybe-invert (color-theme-spec-resolve-inheritance (color-theme-face-attr-construct face ...)))
(color-theme-spec-canonical-font (color-theme-spec-maybe-invert (color-theme-spec-resolve-inheritance ...)))
(let ((atts ...)) (if atts (\` ...) (\` ...)))
color-theme-spec(custom-face-tag)
mapcar(color-theme-spec (default Buffer-menu-buffer-face apt-utils-broken apt-utils-broken-face apt-utils-description apt-utils-description-face apt-utils-field-contents apt-utils-field-contents-face apt-utils-field-keyword apt-utils-field-keyword-face apt-utils-normal-package apt-utils-normal-package-face apt-utils-summary apt-utils-summary-face apt-utils-version apt-utils-version-face apt-utils-virtual-package apt-utils-virtual-package-face bold bold-italic bongo-unfilled-seek-bar border breakpoint-disabled breakpoint-disabled-bitmap breakpoint-disabled-bitmap-face breakpoint-enabled breakpoint-enabled-bitmap breakpoint-enabled-bitmap-face buffer-menu-buffer button c-nonbreakable-space-face calendar-today calendar-today-face change-log-acknowledgement change-log-conditionals change-log-date change-log-date-face change-log-email change-log-file change-log-function change-log-list change-log-name circe-highlight-nick-face circe-my-message-face circe-originator-face circe-prompt-face circe-server-face comint-highlight-input comint-highlight-prompt compilation-column-number ...))
(let ((faces ...)) (mapcar (quote color-theme-spec) faces))
color-theme-get-face-definitions()
(cons (color-theme-get-vars) (color-theme-get-face-definitions))
(cons (color-theme-get-params) (cons (color-theme-get-vars) (color-theme-get-face-definitions)))
(cons (quote color-theme-snapshot) (cons (color-theme-get-params) (cons ... ...)))
(backquote-list* (quote color-theme-snapshot) (color-theme-get-params) (color-theme-get-vars) (color-theme-get-face-definitions))
(list (quote quote) (backquote-list* (quote color-theme-snapshot) (color-theme-get-params) (color-theme-get-vars) (color-theme-get-face-definitions)))
(list (quote color-theme-install) (list (quote quote) (backquote-list* ... ... ... ...)))
(list (quote lambda) nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer. At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." (quote (interactive)) (list (quote color-theme-install) (list ... ...)))
(\` (lambda nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer. At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." (interactive) (color-theme-install ...)))
(eval (\` (lambda nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer. At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." ... ...)))
color-theme-make-snapshot()
(fset (quote color-theme-snapshot) (color-theme-make-snapshot))
(progn (fset (quote color-theme-snapshot) (color-theme-make-snapshot)) (setq color-themes (delq ... color-themes) color-themes (delq ... color-themes) color-themes (append ... color-themes)))
(if (or (not ...) (not ...)) (progn (fset ... ...) (setq color-themes ... color-themes ... color-themes ...)))
(when (or (not ...) (not ...)) (fset (quote color-theme-snapshot) (color-theme-make-snapshot)) (setq color-themes (delq ... color-themes) color-themes (delq ... color-themes) color-themes (append ... color-themes)))
color-theme-select(nil)
call-interactively(color-theme-select t nil)
execute-extended-command(nil)
call-interactively(execute-extended-command nil nil)
Yeah, this patch to color-theme.el helps catch the problem:
--- /tmp/color-theme.el 2011-09-28 14:39:53.000000000 -0400
+++ color-theme.el 2011-09-28 14:31:02.000000000 -0400
@@ -767,6 +767,7 @@
;; remove :inherit face from atts -- this assumes only one
;; :inherit attribute.
(setq atts (delq ':inherit (delq face atts)))
+ (unless atts (debug))
(let ((more-atts (color-theme-spec-resolve-inheritance
(color-theme-face-attr-construct
face (selected-frame))))
When I start commenting out bits of zenburn it gets a little further... the alias for Buffer-menu-buffer-face
, the apt-utils
stuff...
Hmm, that patch seems a little too eager; it might not be valid.
More on this: it's definitely a zenburn interaction. I put color-theme.el and zenburn.el in the appropriate places and then did
emacs -Q -l <thefilebelow>
(setq load-path (append (list "/Users/dave/.emacs.d/el-get/color-theme" "/Users/dave/.emacs.d/el-get/color-theme-zenburn") load-path))
(require 'color-theme)
(require 'zenburn)
(color-theme-zenburn) ;; comment out this line to see it work
(color-theme-select)
(color-theme-zenburn) ;; as long as color-theme-select is called first, we can do this here
(color-theme-select) ;; and call color-theme-select again