]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix face initializations in pdump'ed Emacs
authorEli Zaretskii <eliz@gnu.org>
Sat, 26 Jan 2019 10:07:27 +0000 (12:07 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 26 Jan 2019 10:07:27 +0000 (12:07 +0200)
* src/dispnew.c (init_display_interactive): Call init_faces_initial
in the daemon if dumped with pdumper. (Bug#34114)

src/dispnew.c

index 88783cd5da7348f560ab21209b6624f084ba2964..300f1c2d70aabfac7e83c6e77bcdb2ffeba40d14 100644 (file)
@@ -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