Subject: Re: 23.0.60; font faces setting ignored by emacsclient vs --daemon, when Viper mode is loaded

From: Dan Nicolaescu <[email-masked]>
Date: Mon, 19 Jan 2009 18:55:12 -0800 (PST)

The problem seems to related to face setting.

Using the .emacs and .viper given in a previous message:

.emacs:

(setq viper-mode t) (require 'viper)
(custom-set-faces
 '(default ((t (:inherit nil :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "monospace" :family "monospace")))))

.viper:

(setq viper-inhibit-startup-message   t
      viper-expert-level              5)

And then run 

emacs --daemon --eval '(setq debug-on-error t)'

emacsclient -c ~/emacs

then use C-x C-e on the `custom-set-faces' form.
It gets this error:

Debugger entered--Lisp error: (error "Undefined color" "unspecified-fg")
  internal-set-lisp-face-attribute(default :foreground "unspecified-fg" #<frame buildem@dannlt 0x898e680>)
  set-face-attribute(default #<frame buildem@dannlt 0x898e680> :stipple nil :background "unspecified-bg" :foreground "unspecified-fg" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 1 :width normal :foundry "default" :family "default")
  apply(set-face-attribute default #<frame buildem@dannlt 0x898e680> (:stipple nil :background "unspecified-bg" :foreground "unspecified-fg" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 1 :width normal :foundry "default" :family "default"))
  face-spec-set-2(default #<frame buildem@dannlt 0x898e680> ((t :stipple nil :background "unspecified-bg" :foreground "unspecified-fg" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 1 :width normal :foundry "default" :family "default")))
  face-spec-recalc(default #<frame buildem@dannlt 0x898e680>)
  face-spec-set(default ((t (:inherit nil :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "monospace" :family "monospace"))) t)
  custom-theme-set-faces(user (default ((t ...))))
  apply(custom-theme-set-faces user (default ((t ...))))
  custom-set-faces((default ((t ...))))
  eval((custom-set-faces (quote (default ...))))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)

This does not happen if not using "(setq viper-mode t) (require 'viper)"