[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xfns.c
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/xfns.c |
Date: |
Thu, 17 Mar 2005 13:32:34 -0500 |
Index: emacs/src/xfns.c
diff -c emacs/src/xfns.c:1.634 emacs/src/xfns.c:1.635
*** emacs/src/xfns.c:1.634 Sat Mar 12 23:25:42 2005
--- emacs/src/xfns.c Thu Mar 17 18:32:33 2005
***************
*** 1961,1974 ****
char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
char *
! xic_create_fontsetname (base_fontname)
char *base_fontname;
{
/* Make a fontset name from the base font name. */
if (xic_defaut_fontset == base_fontname)
! /* There is no base font name, use the default. */
! return base_fontname;
else
{
/* Make a fontset name from the base font name.
--- 1961,1984 ----
char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
+ /* Create an Xt fontset spec from the name of a base font.
+ If `motif' is True use the Motif syntax. */
char *
! xic_create_fontsetname (base_fontname, motif)
char *base_fontname;
+ Bool motif;
{
+ const char *sep = motif ? ";" : ",";
+ char *fontsetname;
+
/* Make a fontset name from the base font name. */
if (xic_defaut_fontset == base_fontname)
! { /* There is no base font name, use the default. */
! int len = strlen (base_fontname) + 2;
! fontsetname = xmalloc (len);
! bzero (fontsetname, len);
! strcpy (fontsetname, base_fontname);
! }
else
{
/* Make a fontset name from the base font name.
***************
*** 1977,1996 ****
- the base font where the charset spec is replaced by -*-*.
- the same but with the family also replaced with -*-*-. */
char *p = base_fontname;
- char *fontsetname;
int i;
!
for (i = 0; *p; p++)
if (*p == '-') i++;
if (i != 14)
{ /* As the font name doesn't conform to XLFD, we can't
modify it to generalize it to allcs and allfamilies.
Use the specified font plus the default. */
! int len = strlen (base_fontname) + strlen (xic_defaut_fontset) + 2;
fontsetname = xmalloc (len);
bzero (fontsetname, len);
strcpy (fontsetname, base_fontname);
! strcat (fontsetname, ",");
strcat (fontsetname, xic_defaut_fontset);
}
else
--- 1987,2005 ----
- the base font where the charset spec is replaced by -*-*.
- the same but with the family also replaced with -*-*-. */
char *p = base_fontname;
int i;
!
for (i = 0; *p; p++)
if (*p == '-') i++;
if (i != 14)
{ /* As the font name doesn't conform to XLFD, we can't
modify it to generalize it to allcs and allfamilies.
Use the specified font plus the default. */
! int len = strlen (base_fontname) + strlen (xic_defaut_fontset) + 3;
fontsetname = xmalloc (len);
bzero (fontsetname, len);
strcpy (fontsetname, base_fontname);
! strcat (fontsetname, sep);
strcat (fontsetname, xic_defaut_fontset);
}
else
***************
*** 2028,2044 ****
/* Build the actual font set name. */
len = strlen (base_fontname) + strlen (font_allcs)
! + strlen (font_allfamilies) + 3;
fontsetname = xmalloc (len);
bzero (fontsetname, len);
strcpy (fontsetname, base_fontname);
! strcat (fontsetname, ",");
strcat (fontsetname, font_allcs);
! strcat (fontsetname, ",");
strcat (fontsetname, font_allfamilies);
}
- return fontsetname;
}
}
static XFontSet
--- 2037,2055 ----
/* Build the actual font set name. */
len = strlen (base_fontname) + strlen (font_allcs)
! + strlen (font_allfamilies) + 4;
fontsetname = xmalloc (len);
bzero (fontsetname, len);
strcpy (fontsetname, base_fontname);
! strcat (fontsetname, sep);
strcat (fontsetname, font_allcs);
! strcat (fontsetname, sep);
strcat (fontsetname, font_allfamilies);
}
}
+ if (motif)
+ strcat (fontsetname, ":");
+ return fontsetname;
}
static XFontSet
***************
*** 2071,2077 ****
if (!xfs)
{
! char *fontsetname = xic_create_fontsetname (base_fontname);
/* New fontset. */
xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
--- 2082,2088 ----
if (!xfs)
{
! char *fontsetname = xic_create_fontsetname (base_fontname, False);
/* New fontset. */
xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
***************
*** 2079,2086 ****
&missing_count, &def_string);
if (missing_list)
XFreeStringList (missing_list);
! if (fontsetname != base_fontname)
! xfree (fontsetname);
}
if (FRAME_XIC_BASE_FONTNAME (f))
--- 2090,2096 ----
&missing_count, &def_string);
if (missing_list)
XFreeStringList (missing_list);
! xfree (fontsetname);
}
if (FRAME_XIC_BASE_FONTNAME (f))