aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2005-03-18 02:25:13 +0000
committerStefan Monnier2005-03-18 02:25:13 +0000
commit968a6679624d4e84c154a2f61f17defb6906b973 (patch)
tree83869efece6b03ec9740b85a05aab72679a74610 /src
parentc7bd5d5712ab62d1c6e390bd7d12754e53b8de26 (diff)
downloademacs-968a6679624d4e84c154a2f61f17defb6906b973.tar.gz
emacs-968a6679624d4e84c154a2f61f17defb6906b973.zip
(xic_create_fontsetname): Add a final catch-all font pattern.
Diffstat (limited to 'src')
-rw-r--r--src/xfns.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/xfns.c b/src/xfns.c
index e5db1db2e83..603a948a372 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -2005,11 +2005,13 @@ xic_create_fontsetname (base_fontname, motif)
2005 else 2005 else
2006 { 2006 {
2007 int len; 2007 int len;
2008 char *p1 = NULL; 2008 char *p1 = NULL, *p2 = NULL;
2009 char *font_allcs = NULL; 2009 char *font_allcs = NULL;
2010 char *font_allfamilies = NULL; 2010 char *font_allfamilies = NULL;
2011 char *font_all = NULL;
2011 char *allcs = "*-*-*-*-*-*-*"; 2012 char *allcs = "*-*-*-*-*-*-*";
2012 char *allfamilies = "-*-*-"; 2013 char *allfamilies = "-*-*-";
2014 char *all = "*-*-*-*-";
2013 2015
2014 for (i = 0, p = base_fontname; i < 8; p++) 2016 for (i = 0, p = base_fontname; i < 8; p++)
2015 { 2017 {
@@ -2018,6 +2020,8 @@ xic_create_fontsetname (base_fontname, motif)
2018 i++; 2020 i++;
2019 if (i == 3) 2021 if (i == 3)
2020 p1 = p + 1; 2022 p1 = p + 1;
2023 else if (i == 7)
2024 p2 = p + 1;
2021 } 2025 }
2022 } 2026 }
2023 /* Build the font spec that matches all charsets. */ 2027 /* Build the font spec that matches all charsets. */
@@ -2032,12 +2036,21 @@ xic_create_fontsetname (base_fontname, motif)
2032 font_allfamilies = (char *) alloca (len); 2036 font_allfamilies = (char *) alloca (len);
2033 bzero (font_allfamilies, len); 2037 bzero (font_allfamilies, len);
2034 strcpy (font_allfamilies, allfamilies); 2038 strcpy (font_allfamilies, allfamilies);
2035 bcopy (p1, font_allfamilies + (strlen (allfamilies)), p - p1); 2039 bcopy (p1, font_allfamilies + strlen (allfamilies), p - p1);
2036 strcat (font_allfamilies, allcs); 2040 strcat (font_allfamilies, allcs);
2037 2041
2042 /* Build the font spec that matches all. */
2043 len = p - p2 + strlen (allcs) + strlen (all) + strlen (allfamilies) + 1;
2044 font_all = (char *) alloca (len);
2045 bzero (font_all, len);
2046 strcpy (font_all, allfamilies);
2047 strcat (font_all, all);
2048 bcopy (p2, font_all + strlen (all) + strlen (allfamilies), p - p2);
2049 strcat (font_all, allcs);
2050
2038 /* Build the actual font set name. */ 2051 /* Build the actual font set name. */
2039 len = strlen (base_fontname) + strlen (font_allcs) 2052 len = strlen (base_fontname) + strlen (font_allcs)
2040 + strlen (font_allfamilies) + 4; 2053 + strlen (font_allfamilies) + strlen (font_all) + 5;
2041 fontsetname = xmalloc (len); 2054 fontsetname = xmalloc (len);
2042 bzero (fontsetname, len); 2055 bzero (fontsetname, len);
2043 strcpy (fontsetname, base_fontname); 2056 strcpy (fontsetname, base_fontname);
@@ -2045,6 +2058,8 @@ xic_create_fontsetname (base_fontname, motif)
2045 strcat (fontsetname, font_allcs); 2058 strcat (fontsetname, font_allcs);
2046 strcat (fontsetname, sep); 2059 strcat (fontsetname, sep);
2047 strcat (fontsetname, font_allfamilies); 2060 strcat (fontsetname, font_allfamilies);
2061 strcat (fontsetname, sep);
2062 strcat (fontsetname, font_all);
2048 } 2063 }
2049 } 2064 }
2050 if (motif) 2065 if (motif)