1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
|
wchar_t *wcs;
int i;
wcs = snewn(len*ncombining+1, wchar_t);
for (i = 0; i < len*ncombining; i++) {
wcs[i] = text[i];
}
if (inst->fonts[fontid] == NULL) {
/*
* The font for this contingency does not exist.
* Typically this means we've been given ATTR_WIDE
* character and have no wide font. So we display
* nothing at all; such is life.
*/
} else if (inst->fontinfo[fontid].is_wide) {
/*
* At least one version of gdk_draw_text_wc() has a
* weird bug whereby it reads `len' elements of the
* input string, but only draws `len/2'. Hence I'm
* going to make its input array twice as long as it
|
>
>
>
>
>
>
>
>
|
<
<
|
|
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
|
wchar_t *wcs;
int i;
wcs = snewn(len*ncombining+1, wchar_t);
for (i = 0; i < len*ncombining; i++) {
wcs[i] = text[i];
}
if (inst->fonts[fontid] == NULL && (fontid & 2)) {
/*
* We've been given ATTR_WIDE, but have no wide font.
* Fall back to the non-wide font.
*/
fontid &= ~2;
}
if (inst->fonts[fontid] == NULL) {
/*
* The font for this contingency does not exist. So we
* display nothing at all; such is life.
*/
} else if (inst->fontinfo[fontid].is_wide) {
/*
* At least one version of gdk_draw_text_wc() has a
* weird bug whereby it reads `len' elements of the
* input string, but only draws `len/2'. Hence I'm
* going to make its input array twice as long as it
|