public bool EnumerateFamilies(nsFontFamilyEnumFunc aFunc, object aData) { int p = 0, p_end = name.Length; while (p < p_end) { while (char.IsWhiteSpace(name[p])) if (++p == p_end) return true; bool generic; string family; if (name[p] == '\'' || name[p] == '"') { // quoted font family char quoteMark = name[p]; if (++p == p_end) return true; int nameStart = p; // XXX What about CSS character escapes? while (name[p] != quoteMark) if (++p == p_end) return true; family = name.Substring(nameStart, p - nameStart); generic = false; while (++p != p_end && name[p] != ',') {} } else { // unquoted font family int nameStart = p; while (++p != p_end && name[p] != ',') {} family = name.Substring(nameStart, p - nameStart); family = family.TrimEnd(); generic = IsGenericFontFamily(family); } if (family != "" && !aFunc(family, generic, aData)) return false; ++p; // may advance past p_end } return true; }
public bool EnumerateFamilies(nsFontFamilyEnumFunc aFunc, object aData) { int p = 0, p_end = name.Length; while (p < p_end) { while (char.IsWhiteSpace(name[p])) { if (++p == p_end) { return(true); } } bool generic; string family; if (name[p] == '\'' || name[p] == '"') { // quoted font family char quoteMark = name[p]; if (++p == p_end) { return(true); } int nameStart = p; // XXX What about CSS character escapes? while (name[p] != quoteMark) { if (++p == p_end) { return(true); } } family = name.Substring(nameStart, p - nameStart); generic = false; while (++p != p_end && name[p] != ',') { } } else { // unquoted font family int nameStart = p; while (++p != p_end && name[p] != ',') { } family = name.Substring(nameStart, p - nameStart); family = family.TrimEnd(); generic = IsGenericFontFamily(family); } if (family != "" && !aFunc(family, generic, aData)) { return(false); } ++p; // may advance past p_end } return(true); }