Subject: bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)

From: martin rudalics <[email-masked]>
Date: Sun, 14 Sep 2008 15:50:05 +0200

Ian,

I can't reproduce this here.  Could your try to edebug the functions
`face-spec-set-2' and `face-spec-recalc' to find out why (or better how)
in the trace

 >  >   face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple
 > nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box
 > nil :strike-through nil :overline nil :underline nil :slant normal
 > :weight normal :height 90 :width normal :foundry "unknown" :family
 > "DejaVu Sans Mono")))
 >  >   face-spec-recalc(default #<frame emacs@baso 0x10107a0>)
[...]
 >  >   face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t (:stipple
 > nil :background "DarkSlateGray" :foreground "wheat" :inverse-video nil
 > :box nil :strike-through nil :overline nil :underline nil :slant normal
 > :weight normal :height 121 :width normal :foundry "unknown" :family
 > "DejaVu Sans Mono"))))
 >  >   face-spec-recalc(default #<frame emacs@baso 0x10107a0>)

the function `face-spec-set-2' is called alternately with different
backgrounds.  That is, edebug these two functions, call C-x 5 2 or
whatever you have to make a new frame, and tell me whether

(1) `face-spec-recalc' in one and the same call invokes
     `face-spec-set-2' at least twice (where an invocation should cause
     `face-spec-set-2' to really call `set-face-attributes'), or

(2) `face-spec-recalc' is called at least twice when making a new frame.

Please complain immediately whem my recipe is unclear.

Thanks in advance, martin.