/[emacs]/emacs/src/w32fns.c
ViewVC logotype

Diff of /emacs/src/w32fns.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.172 by raeburn, Tue May 21 21:35:41 2002 UTC revision 1.173 by jasonr, Wed May 22 19:35:48 2002 UTC
# Line 201  Lisp_Object Vw32_charset_info_alist; Line 201  Lisp_Object Vw32_charset_info_alist;
201    
202  Lisp_Object Qauto_raise;  Lisp_Object Qauto_raise;
203  Lisp_Object Qauto_lower;  Lisp_Object Qauto_lower;
204  Lisp_Object Qbar;  Lisp_Object Qbar, Qhbar;
205  Lisp_Object Qborder_color;  Lisp_Object Qborder_color;
206  Lisp_Object Qborder_width;  Lisp_Object Qborder_width;
207  Lisp_Object Qbox;  Lisp_Object Qbox;
# Line 2368  x_specified_cursor_type (arg, width) Line 2368  x_specified_cursor_type (arg, width)
2368        type = BAR_CURSOR;        type = BAR_CURSOR;
2369        *width = XINT (XCDR (arg));        *width = XINT (XCDR (arg));
2370      }      }
2371      else if (EQ (arg, Qhbar))
2372        {
2373          type = HBAR_CURSOR;
2374          *width = 2;
2375        }
2376      else if (CONSP (arg)
2377               && EQ (XCAR (arg), Qhbar)
2378               && INTEGERP (XCDR (arg))
2379               && XINT (XCDR (arg)) >= 0)
2380        {
2381          type = HBAR_CURSOR;
2382          *width = XINT (XCDR (arg));
2383        }
2384    else if (NILP (arg))    else if (NILP (arg))
2385      type = NO_CURSOR;      type = NO_CURSOR;
2386    else    else
# Line 7093  typedef struct enumfont_t Line 7106  typedef struct enumfont_t
7106    int numFonts;    int numFonts;
7107    LOGFONT logfont;    LOGFONT logfont;
7108    XFontStruct *size_ref;    XFontStruct *size_ref;
7109    Lisp_Object *pattern;    Lisp_Object pattern;
7110    Lisp_Object list;    Lisp_Object list;
   Lisp_Object *tail;  
7111  } enumfont_t;  } enumfont_t;
7112    
7113    
# Line 7151  enum_font_cb2 (lplf, lptm, FontType, lpe Line 7163  enum_font_cb2 (lplf, lptm, FontType, lpe
7163      /* Truetype fonts do not report their true metrics until loaded */      /* Truetype fonts do not report their true metrics until loaded */
7164      if (FontType != RASTER_FONTTYPE)      if (FontType != RASTER_FONTTYPE)
7165        {        {
7166          if (!NILP (*(lpef->pattern)))          if (!NILP (lpef->pattern))
7167            {            {
7168              /* Scalable fonts are as big as you want them to be.  */              /* Scalable fonts are as big as you want them to be.  */
7169              lplf->elfLogFont.lfHeight = lpef->logfont.lfHeight;              lplf->elfLogFont.lfHeight = lpef->logfont.lfHeight;
# Line 7176  enum_font_cb2 (lplf, lptm, FontType, lpe Line 7188  enum_font_cb2 (lplf, lptm, FontType, lpe
7188            lplf->elfLogFont.lfHeight = -lplf->elfLogFont.lfHeight;            lplf->elfLogFont.lfHeight = -lplf->elfLogFont.lfHeight;
7189        }        }
7190    
7191      if (!NILP (*(lpef->pattern)))      if (!NILP (lpef->pattern))
7192        {        {
7193          charset = xlfd_charset_of_font (XSTRING(*(lpef->pattern))->data);          charset = xlfd_charset_of_font (XSTRING(lpef->pattern)->data);
7194    
7195          /* We already checked charsets above, but DEFAULT_CHARSET          /* We already checked charsets above, but DEFAULT_CHARSET
7196             slipped through.  So only allow exact matches for DEFAULT_CHARSET.  */             slipped through.  So only allow exact matches for DEFAULT_CHARSET.  */
# Line 7242  enum_font_maybe_add_to_list (lpef, logfo Line 7254  enum_font_maybe_add_to_list (lpef, logfo
7254    if (!w32_to_x_font (logfont, buf, 100, match_charset))    if (!w32_to_x_font (logfont, buf, 100, match_charset))
7255      return;      return;
7256    
7257    if (NILP (*(lpef->pattern))    if (NILP (lpef->pattern)
7258        || w32_font_match (buf, XSTRING (*(lpef->pattern))->data))        || w32_font_match (buf, XSTRING (lpef->pattern)->data))
7259      {      {
7260        /* Check if we already listed this font.  This may happen if        /* Check if we already listed this font.  This may happen if
7261           w32_enable_synthesized_fonts is non-nil, and there are real           w32_enable_synthesized_fonts is non-nil, and there are real
# Line 7251  enum_font_maybe_add_to_list (lpef, logfo Line 7263  enum_font_maybe_add_to_list (lpef, logfo
7263        Lisp_Object font_name = build_string (buf);        Lisp_Object font_name = build_string (buf);
7264        if (NILP (Fmember (font_name, lpef->list)))        if (NILP (Fmember (font_name, lpef->list)))
7265          {          {
7266            *lpef->tail = Fcons (Fcons (build_string (buf), width), Qnil);            Lisp_Object entry = Fcons (font_name, width);
7267            lpef->tail = &(XCDR_AS_LVALUE (*lpef->tail));            lpef->list = Fcons (entry, lpef->list);
7268            lpef->numFonts++;            lpef->numFonts++;
7269          }          }
7270      }      }
# Line 7397  w32_list_fonts (f, pattern, size, maxnam Line 7409  w32_list_fonts (f, pattern, size, maxnam
7409    
7410        BLOCK_INPUT;        BLOCK_INPUT;
7411        /* At first, put PATTERN in the cache.  */        /* At first, put PATTERN in the cache.  */
7412        list = Qnil;        ef.pattern = tpat;
7413        ef.pattern = &tpat;        ef.list = Qnil;
       ef.list = list;  
       ef.tail = &list;  
7414        ef.numFonts = 0;        ef.numFonts = 0;
7415    
7416        /* Use EnumFontFamiliesEx where it is available, as it knows        /* Use EnumFontFamiliesEx where it is available, as it knows
# Line 7435  w32_list_fonts (f, pattern, size, maxnam Line 7445  w32_list_fonts (f, pattern, size, maxnam
7445        }        }
7446    
7447        UNBLOCK_INPUT;        UNBLOCK_INPUT;
7448          list = ef.list;
7449    
7450        /* Make a list of the fonts we got back.        /* Make a list of the fonts we got back.
7451           Store that in the font cache for the display. */           Store that in the font cache for the display. */
# Line 14812  syms_of_w32fns () Line 14823  syms_of_w32fns ()
14823    staticpro (&Qauto_lower);    staticpro (&Qauto_lower);
14824    Qbar = intern ("bar");    Qbar = intern ("bar");
14825    staticpro (&Qbar);    staticpro (&Qbar);
14826      Qhbar = intern ("hbar");
14827      staticpro (&Qhbar);
14828    Qborder_color = intern ("border-color");    Qborder_color = intern ("border-color");
14829    staticpro (&Qborder_color);    staticpro (&Qborder_color);
14830    Qborder_width = intern ("border-width");    Qborder_width = intern ("border-width");

Legend:
Removed from v.1.172  
changed lines
  Added in v.1.173

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26