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

From: Lars Ingebrigtsen <[email-masked]>
Date: Sun, 06 Dec 2020 16:55:34 +0100

Yuri D'Elia <[email-masked]> writes:

> 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'.

(This bug report unfortunately got no response at the time.)

The result is always nil, yes -- but if you use the frame as a parameter
to that function, you get the correct results:

(setq after-make-frame-functions
      (list
       (lambda (frame)
	 (message "frame: %s %s" frame (display-graphic-p frame)))))

./lib-src/emacsclient -c

frame: #<frame GNU Emacs at xo 0x5574a438f338> t

> Not only that, but any frame manipulation will cause the daemon to crash.
>
> emacsclient -e '(make-frame)'

This seems to be fixed, though.  It now just reports an error:

*ERROR*: Unknown terminal type

So I think everything here works as designed, and I'm closing this bug
report.  If there's more to be done here, please respond to the debbugs
address and we'll reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no