aString.Append(NS_LITERAL_STRING(','));
aString.Append(PRUnichar(','));
AppendFontName(XFontStruct* aFontStruct, nsString& aString, Display *aDisplay){  unsigned long pr = 0;  // we first append the FFRE name to reconstruct font more faithfully  unsigned long font_atom = gdk_atom_intern("FONT", FALSE);  ::XGetFontProperty(aFontStruct, font_atom, &pr);  if(pr) {    char* xlfdName = ::XGetAtomName(aDisplay, pr);    AppendFontFFREName(aString, xlfdName);    ::XFree(xlfdName);  }   aString.Append(NS_LITERAL_STRING(','));  // next, we need to append family name to cover more encodings.  ::XGetFontProperty(aFontStruct, XA_FAMILY_NAME, &pr);  if (!pr)    ::XGetFontProperty(aFontStruct, XA_FULL_NAME, &pr);  if (pr) {    char *fontName = ::XGetAtomName(aDisplay, pr);    aString.AppendWithConversion(fontName);    ::XFree(fontName);  }}