public Charset UsingCat(UnicodeCategory cat)
{
if (cat==m_gencat)
{
for (int j=0;j<28;j++)
{
if (!Enum.IsDefined(typeof(UnicodeCategory),j))
continue;
UnicodeCategory u = (UnicodeCategory)j;
if (u==UnicodeCategory.Surrogate)
continue;
if (cats[u]==null)
{
UsingCat(u);
m_gencat = u;
}
}
return (Charset)cats[cat];
}
if (cats[cat]!=null)
return (Charset)cats[cat];
Charset rv = new Charset(cat);
cats[cat] = rv;
return rv;
}