Changeset 3053
- Timestamp:
- 03/09/03 07:31:31 (6 years ago)
- Files:
-
- work/cvs2svn/src/mw32font.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
work/cvs2svn/src/mw32font.c
r3046 r3053 119 119 } mw32_windows_font; 120 120 121 Lisp_Object Vmw32_windows_font_charset_database;122 123 121 static void 124 mw32_windows_set_logical_font_from_charset(MW32LogicalFont *plf, int charset) 125 { 126 int num; 127 Lisp_Object slot, obj; 128 129 /* Don't know such charset!. */ 130 if ((charset > 255) 131 || (NILP(slot = AREF (Vmw32_windows_font_charset_database, charset)))) 132 return; 133 134 if (NILP (slot)) return; 122 mw32_windows_set_logical_font_from_char(MW32LogicalFont *plf, int c) 123 { 124 Lisp_Object charset_sym, slot; 125 126 if (c < 0) 127 { 128 charset_sym = CHARSET_SYMBOL (CHARSET_ASCII); 129 } 130 else 131 { 132 charset_sym = CHARSET_SYMBOL (CHAR_CHARSET(c)); 133 } 134 135 slot = assq_no_quit(charset_sym, Vmw32_charset_windows_font_info_alist); 136 137 if (NILP (slot) || !CONSP (slot)) return; 138 slot = XCDR (slot); 139 if (NILP (slot) || !CONSP (slot)) return; 140 slot = XCDR (slot); 141 if (NILP (slot) || !CONSP (slot)) return; 142 slot = XCAR (slot); 135 143 136 144 if (!mw32_valid_encoding_p (slot)) return; … … 351 359 static int 352 360 mw32_set_windows_logical_font (struct frame *f, MW32LogicalFont *plf, 353 LOGFONT *plogf )361 LOGFONT *plogf, int c) 354 362 { 355 363 mw32_windows_font *pwf; … … 400 408 plf->overhang = tm.tmOverhang; 401 409 plf->fixed_pitch = !(tm.tmPitchAndFamily & TMPF_FIXED_PITCH); 402 mw32_windows_set_logical_font_from_char set(plf, tm.tmCharSet);410 mw32_windows_set_logical_font_from_char(plf, c); 403 411 plf->relative_compose = 0; 404 412 plf->default_ascent = 0; … … 1646 1654 MW32FontRequest *pfr, 1647 1655 Lisp_Object llf, 1648 Lisp_Object option) 1656 Lisp_Object option, 1657 int c) 1649 1658 { 1650 1659 MW32LogicalFont *plf; … … 1669 1678 lf = lisp_object_to_logfont(llf); 1670 1679 plf = mw32_add_logical_font(pfr); 1671 if (!mw32_set_windows_logical_font (f, plf, &lf ))1680 if (!mw32_set_windows_logical_font (f, plf, &lf, c)) 1672 1681 { 1673 1682 mw32_delete_logical_font(plf); … … 1694 1703 slot = assq_no_quit(CHARSET_SYMBOL(CHAR_CHARSET(c)), 1695 1704 Vmw32_charset_windows_font_info_alist); 1696 if (NILP(slot)) return 0; 1697 lcnum = CAR(CDR(slot)); 1705 if (NILP (slot) || !CONSP (slot)) return 0; 1706 slot = XCDR (slot); 1707 if (NILP (slot) || !CONSP (slot)) return 0; 1708 lcnum = XCAR (slot); 1698 1709 if (!NUMBERP(lcnum)) return 0; 1699 1710 cnum = XINT (lcnum); … … 1785 1796 plf = mw32_add_logical_font(pfr); 1786 1797 if ((!mw32_convert_lface_to_LOGFONT(f, attrs, &lf, c)) 1787 || (!mw32_set_windows_logical_font(f, plf, &lf )))1798 || (!mw32_set_windows_logical_font(f, plf, &lf, c))) 1788 1799 { 1789 1800 mw32_delete_logical_font(plf); … … 1940 1951 1941 1952 if (!mw32_fr_spec_match_p (spec, attrs, c)) continue; 1942 plf = mw32_load_lf_from_lisp_object(f, pfr, logfont, option );1953 plf = mw32_load_lf_from_lisp_object(f, pfr, logfont, option, c); 1943 1954 if (plf) return plf; 1944 1955 } … … 2001 2012 if ((!NILP (option)) && (!CONSP (option))) return NULL; 2002 2013 2003 plf = mw32_load_lf_from_lisp_object(f, pfr, logfont, option );2014 plf = mw32_load_lf_from_lisp_object(f, pfr, logfont, option, c); 2004 2015 2005 2016 return plf; … … 2706 2717 Vmw32_charset_windows_font_info_alist = Qunbound; 2707 2718 2708 DEFVAR_LISP ("mw32-windows-font-charset-database",2709 &Vmw32_windows_font_charset_database,2710 "Windows font charset database.\n\2711 This is a 256-length vector, and each slot must be a nil or <encoding>.");2712 Vmw32_windows_font_charset_database = Fmake_vector (make_number(256), Qnil);2713 2714 2715 2719 Vmw32_font_request_table = Fmake_vector (make_number (0), Qnil); 2716 2720 staticpro (&Vmw32_font_request_table);
