emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src w32font.c


From: Jason Rumney
Subject: [Emacs-diffs] emacs/src w32font.c
Date: Fri, 09 Jan 2009 18:31:40 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Jason Rumney <jasonr>   09/01/09 18:31:40

Modified files:
        src            : w32font.c 

Log message:
        (add_font_entity_to_list): Don't report unknown
        Windows charset as any unrecognized registry. (Bug#1548)
        Only report Unicode Plane 2 fonts as unicode-sip.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/w32font.c?cvsroot=emacs&r1=1.66&r2=1.67

Patches:
Index: w32font.c
===================================================================
RCS file: /sources/emacs/emacs/src/w32font.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- w32font.c   8 Jan 2009 03:16:04 -0000       1.66
+++ w32font.c   9 Jan 2009 18:31:39 -0000       1.67
@@ -1439,19 +1439,17 @@
          /* unicode-sip fonts must contain characters beyond the BMP,
             so look for bit 57 (surrogates) in the Unicode subranges.  */
          else if (EQ (spec_charset, Qunicode_sip)
-                  && !(physical_font->ntmFontSig.fsUsb[1] & 0x02000000))
+                  && (!(physical_font->ntmFontSig.fsUsb[1] & 0x02000000)
+                      || !(physical_font->ntmFontSig.fsUsb[1] & 0x28000000)))
            return 1;
           /* If registry was specified, but did not map to a windows
-             charset, only report fonts that have unknown charsets.
-             This will still report fonts that don't match, but at
-             least it eliminates known definite mismatches.  */
+             charset, don't report any fonts.  */
           else if (!NILP (spec_charset)
                    && !EQ (spec_charset, Qiso10646_1)
                    && !EQ (spec_charset, Qunicode_bmp)
                    && !EQ (spec_charset, Qunicode_sip)
-                   && match_data->pattern.lfCharSet == DEFAULT_CHARSET
-                   && logical_font->elfLogFont.lfCharSet != DEFAULT_CHARSET)
-            return 1;
+                   && match_data->pattern.lfCharSet == DEFAULT_CHARSET)
+            return 0;
 
           /* If registry was specified, ensure it is reported as the same.  */
           if (!NILP (spec_charset))
@@ -1488,7 +1486,7 @@
   add_font_entity_to_list (logical_font, physical_font, font_type, lParam);
 
   /* If we have a font in the list, terminate the search.  */
-  return !NILP (match_data->list);
+  return NILP (match_data->list);
 }
 
 /* Old function to convert from x to w32 charset, from w32fns.c.  */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]