SetPreferredFonts(PRUnichar aChar, const char* aExtension, nsString& aFamilyList)
SetPreferredFonts(const char* aKey, nsString& aFamilyList)
SetPreferredFonts(PRUnichar aChar, const char* aExtension, nsString& aFamilyList){#ifdef DEBUG_rbs  char str[50];  aFamilyList.ToCString(str, sizeof(str));  printf("Setting preferred fonts for \\u%04X%s: %s\n", aChar, aExtension, str);#endif  if (!strcmp(aExtension, ".base")) {    // fonts to be used for the base size of the char (i.e., no stretching)    nsBaseFontEntry* entry = nsGlyphTableList::gBaseFonts.AddEntry(aChar);    if (entry) {      entry->mFontFamily = aFamilyList;    }    return;  }  PRBool isFontForParts;  if (!strcmp(aExtension, ".parts"))    isFontForParts = PR_TRUE;  else if (!strcmp(aExtension, ".variants"))    isFontForParts = PR_FALSE;  else return; // input is not applicable  // Ensure that this is a valid stretchy operator  PRInt32 k = nsMathMLOperators::FindStretchyOperator(aChar);  if (k != kNotFound) {    // We just want to iterate over the font-family list using the    // callback mechanism that nsFont has...    nsFont font(aFamilyList, 0, 0, 0, 0, 0);    PreferredFontEnumContext context = {k, isFontForParts, 0};    font.EnumerateFamilies(PreferredFontEnumCallback, &context);    if (context.mFontCount) { // at least one font was retained      // Append a null separator      gGlyphTableList->AppendTable(nsnull);    }  }}