Subject: bug#14322: 24.3; emacsclient -c behavior regression

From: Yuri D'Elia <[email-masked]>
Date: Tue, 30 Apr 2013 17:48:30 +0200

I think this is a regression in emacs24 (lucid), because this used to 
work under emacs23:

If you start emacs --daemon

and you have the following:

(add-hook 'after-make-frame-functions
   (lambda (frame)
     (print (display-graphic-p))))

and you create a new frame via:

emacsclient -c

you will notice that the result is always 'f'.
Not only that, but any frame manipulation will cause the daemon to crash.

emacsclient -e '(make-frame)'

does the same(!).
Yet, if you create a new frame from *that* newly created frame via M-x 
(make-frame), the second new frame is indeed graphic.

This gave me all sorts of headache with the color-theme package actually 
crashing emacs, only in daemon mode, and only when creating a new frame 
via emacsclient.

If you set a hook in server-visit-hook though, the (selected-frame) is 
graphic. What's happening?

I'm using emacs24-lucid from debian.

In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
  of 2013-04-13 on trouble, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux 7.0 (wheezy)

Configured using:
  `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
  '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
  '--localstatedir=/var/lib' '--infodir=/usr/share/info'
  '--mandir=/usr/share/man' '--with-pop=yes'
 
'--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
  '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
  '--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf'
  'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
  --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
  'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
   value of $LC_COLLATE: C
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix
   default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
   window-numbering-mode: t
   xterm-mouse-mode: t
   show-paren-mode: t
   tooltip-mode: t
   mouse-wheel-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   column-number-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
M-x r e p o s <backspace> r t - e m <tab> <return>

Recent messages:
Done (Total of 0 files compiled, 9 skipped)
Warning: defvar ignored because generated-autoload-file is let-bound
Saving file /home/ydelia/.emacs.d/site-lisp/loaddefs.el...
Wrote /home/ydelia/.emacs.d/site-lisp/loaddefs.el
Loading /home/ydelia/.emacs.d/site-lisp/loaddefs.el (source)...done
Loading /home/ydelia/.emacs.d/custom...done
Loading 
/usr/share/emacs24/site-lisp/emacs-goodies-el/color-theme-library.el 
(source)...done
Loading 
/usr/share/emacs24/site-lisp/emacs-goodies-el/color-theme-library.elc...done
Loading slime-autoloads...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4
/usr/share/emacs24/site-lisp/flim/hex-util hides 
/usr/share/emacs/24.3/lisp/hex-util
~/.emacs.d/site-lisp/loaddefs hides /usr/share/emacs/24.3/lisp/loaddefs
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides 
/usr/share/emacs/24.3/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides 
/usr/share/emacs/24.3/lisp/textmodes/ispell
/usr/share/emacs/site-lisp/rst hides 
/usr/share/emacs/24.3/lisp/textmodes/rst
/usr/share/emacs24/site-lisp/flim/sasl hides 
/usr/share/emacs/24.3/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/ntlm hides 
/usr/share/emacs/24.3/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides 
/usr/share/emacs/24.3/lisp/net/hmac-md5
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides 
/usr/share/emacs/24.3/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/hmac-def hides 
/usr/share/emacs/24.3/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-cram hides 
/usr/share/emacs/24.3/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/sasl-digest hides 
/usr/share/emacs/24.3/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/auctex/tex hides 
/usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs24/site-lisp/auctex/font-latex hides 
/usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs24/site-lisp/auctex/tex-buf hides 
/usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs24/site-lisp/auctex/tex-info hides 
/usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs24/site-lisp/auctex/toolbar-x hides 
/usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs24/site-lisp/auctex/tex-bar hides 
/usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs24/site-lisp/auctex/tex-font hides 
/usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs24/site-lisp/auctex/tex-jp hides 
/usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs24/site-lisp/auctex/tex-style hides 
/usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs24/site-lisp/auctex/prv-emacs hides 
/usr/share/emacs/site-lisp/auctex/prv-emacs
/usr/share/emacs24/site-lisp/auctex/context hides 
/usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs24/site-lisp/auctex/context-en hides 
/usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs24/site-lisp/auctex/bib-cite hides 
/usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs24/site-lisp/auctex/texmathp hides 
/usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs24/site-lisp/auctex/tex-mik hides 
/usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs24/site-lisp/auctex/plain-tex hides 
/usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs24/site-lisp/auctex/multi-prompt hides 
/usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs24/site-lisp/auctex/context-nl hides 
/usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs24/site-lisp/auctex/latex hides 
/usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs24/site-lisp/auctex/preview hides 
/usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs24/site-lisp/auctex/tex-fold hides 
/usr/share/emacs/site-lisp/auctex/tex-fold

Features:
(shadow sort flyspell ispell gnus-util mail-extr emacsbug message
format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils html-php multi-mode imenu
pure-mode thingatpt dired-x dired uniquify byte-opt warnings advice
advice-preload color-theme-solarized solarized-definitions info
color-theme easymenu wid-edit modeline-posn window-numbering xt-mouse
paren edmacro kmacro ace-jump-mode-autoloads doc-mode-autoloads
expand-region-autoloads modeline-posn-autoloads
multiple-cursors-autoloads pretty-symbols-mode-autoloads
rainbow-mode-autoloads shen-mode-autoloads vline-autoloads package
simple-wiki derived cl-macs gv autoload help-fns compile comint
ansi-color ring bytecomp byte-compile cconv debian-el debian-el-loaddefs
w3m-load slime-autoloads mmm-auto mmm-vars mmm-compat cl cl-lib
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
preview-latex tex-site auto-loads time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)