changeset 23637:54b22e0a1f7b

(w32_list_fonts): Report an error if a frame has not been created yet.
author Geoff Voelker <voelker@cs.washington.edu>
date Wed, 04 Nov 1998 23:38:19 +0000
parents 3246160c5469
children e6fb9ffee4f4
files src/w32fns.c
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32fns.c	Wed Nov 04 23:23:57 1998 +0000
+++ b/src/w32fns.c	Wed Nov 04 23:38:19 1998 +0000
@@ -5125,6 +5125,24 @@
   Lisp_Object patterns, key, tem;
   Lisp_Object list = Qnil, newlist = Qnil, second_best = Qnil;
 
+  /* If we don't have a frame, we can't use the Windows API to list
+     fonts, as it requires a device context for the Window.  This will
+     only happen during startup if the user specifies a font on the
+     command line.  Print a message on stderr and return nil.  */
+  if (!f)
+    {
+      char buffer[256];
+
+      sprintf (buffer, 
+	       "Emacs cannot get a list of fonts before the initial frame "
+	       "is created.\nThe font specified on the command line may not "
+	       "be found.\n");
+      MessageBox (NULL, buffer, "Emacs Warning Dialog",
+		  MB_OK | MB_ICONEXCLAMATION | MB_TASKMODAL);
+      return Qnil;
+    }
+
+
   patterns = Fassoc (pattern, Valternate_fontname_alist);
   if (NILP (patterns))
     patterns = Fcons (pattern, Qnil);