changeset 34284:3a21ff35392b

(xlfd_charset_of_font): Don't overwrite fontname argument. (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN. (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
author Andrew Innes <andrewi@gnu.org>
date Wed, 06 Dec 2000 15:54:02 +0000
parents 335a6482fca0
children 6e9280c17a63
files src/w32fns.c
diffstat 1 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32fns.c	Wed Dec 06 15:53:27 2000 +0000
+++ b/src/w32fns.c	Wed Dec 06 15:54:02 2000 +0000
@@ -5459,12 +5459,10 @@
   char *charset, *encoding;
 
   encoding = strrchr(fontname, '-');
-  if (!encoding)
+  if (!encoding || encoding == fontname)
     return NULL;
 
-  *encoding = 0;
-  charset = strrchr(fontname, '-');
-  *encoding = '-';
+  charset = strrchr(encoding - 1, '-');
 
   if (!charset || strcmp(charset, "-*-*") == 0)
     return NULL;
@@ -6030,7 +6028,7 @@
   charset = xlfd_charset_of_font (fontname);
 
   if (!charset)
-    return CP_INVALID;
+    return CP_UNKNOWN;
 
   charset_str = (char *) alloca (strlen (charset));
   strcpy (charset_str, charset);
@@ -6051,7 +6049,7 @@
 
   entry = Fassoc (build_string(charset), Vw32_charset_info_alist);
   if (NILP (entry))
-    return CP_INVALID;
+    return CP_UNKNOWN;
 
   codepage = Fcdr (Fcdr (entry));
 
@@ -6062,7 +6060,7 @@
   else if (INTEGERP (codepage))
     return XINT (codepage);
   else
-    return CP_INVALID;
+    return CP_UNKNOWN;
 }
 
 
@@ -6705,7 +6703,8 @@
          going to be able to output one of these anyway. */
       codepage = w32_codepage_for_font (XSTRING (tpat)->data);
       if (codepage != CP_8BIT && codepage != CP_UNICODE
-          && codepage != CP_DEFAULT && !IsValidCodePage(codepage))
+          && codepage != CP_DEFAULT && codepage != CP_UNKNOWN
+	  && !IsValidCodePage(codepage))
         continue;
 
       /* See if we cached the result for this particular query.