summaryrefslogtreecommitdiff
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-01-26 12:07:27 +0200
committerEli Zaretskii <eliz@gnu.org>2019-01-26 12:07:27 +0200
commitbf4099b23738f0a481fb6020337039d84506fda4 (patch)
tree6cb896cf074bccba54a17acddbfb82cc8e082c0c /src/dispnew.c
parentce085f1d61a69e9e407a31d60c298f04cbd0c8d2 (diff)
downloademacs-bf4099b23738f0a481fb6020337039d84506fda4.tar.gz
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)
Diffstat (limited to 'src/dispnew.c')
-rw-r--r--src/dispnew.c13
1 files changed, 12 insertions, 1 deletions
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