changeset 40873:f288d1d604a7

(enum_font_cb2): Use leading @ on face name to detect vertical fonts. Allow them if face name is explicitly specified. Do not give up if we find a font that cannot be converted to an xlfd.
author Jason Rumney <jasonr@gnu.org>
date Sat, 10 Nov 2001 13:51:02 +0000
parents 83db614759e5
children b5a76830e73e
files src/w32fns.c
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32fns.c	Sat Nov 10 13:30:05 2001 +0000
+++ b/src/w32fns.c	Sat Nov 10 13:51:02 2001 +0000
@@ -6672,10 +6672,16 @@
     int FontType;
     enumfont_t * lpef;
 {
-  /* Ignore struck out, underlined and vertical versions of fonts.  */
-  if (lplf->elfLogFont.lfStrikeOut || lplf->elfLogFont.lfUnderline
-      || lplf->elfLogFont.lfEscapement != 0
-      || lplf->elfLogFont.lfOrientation != 0)
+  /* Ignore struck out and underlined versions of fonts.  */
+  if (lplf->elfLogFont.lfStrikeOut || lplf->elfLogFont.lfUnderline)
+    return 1;
+
+  /* Only return fonts with names starting with @ if they were
+     explicitly specified, since Microsoft uses an initial @ to
+     denote fonts for vertical writing, without providing a more
+     convenient way of identifying them.  */
+  if (lplf->elfLogFont.lfFaceName[0] == '@'
+      && lpef->logfont.lfFaceName[0] != '@')
     return 1;
 
   /* Check that the character set matches if it was specified */
@@ -6728,7 +6734,7 @@
 
     /* TODO: List all relevant charsets if charset not specified. */
     if (!w32_to_x_font (&(lplf->elfLogFont), buf, 100, charset))
-      return 0;
+      return 1;
 
     if (NILP (*(lpef->pattern))
         || w32_font_match (buf, XSTRING (*(lpef->pattern))->data))