From: Eli Zaretskii Date: Sat, 26 Jan 2019 10:07:27 +0000 (+0200) Subject: Fix face initializations in pdump'ed Emacs X-Git-Tag: emacs-27.0.90~3729 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bf4099b23738f0a481fb6020337039d84506fda4;p=emacs.git Fix face initializations in pdump'ed Emacs * src/dispnew.c (init_display_interactive): Call init_faces_initial in the daemon if dumped with pdumper. (Bug#34114) --- diff --git a/src/dispnew.c b/src/dispnew.c index 88783cd5da7..300f1c2d70a 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -6035,10 +6035,21 @@ init_display_interactive (void) /* If running as a daemon, no need to initialize any frames/terminal, except on Windows, where we at least want to initialize it. */ -#ifndef WINDOWSNT if (IS_DAEMON) + { + /* Pdump'ed Emacs doesn't record the initial frame from temacs, + so the non-basic faces realized for that frame in temacs + aren't in emacs. This causes errors when users try to + customize those faces in their init file. The call to + init_faces_initial will realize these faces now. (Non-daemon + Emacs does this either near the end of this function or when + the GUI frame is created.) */ + if (dumped_with_pdumper_p ()) + init_faces_initial (); +#ifndef WINDOWSNT return; #endif + } /* If the user wants to use a window system, we shouldn't bother initializing the terminal. This is especially important when the