SetVisualMode(IsVisualCharset(mCharset) );
switch (GET_BIDI_OPTION_TEXTTYPE(mBidi)) {  case IBMBIDI_TEXTTYPE_LOGICAL: SetVisualMode(PR_FALSE); break;  case IBMBIDI_TEXTTYPE_VISUAL: SetVisualMode(PR_TRUE); break;  case IBMBIDI_TEXTTYPE_CHARSET: default: SetVisualMode(IsVisualCharset(aCharSet)); }
nsPresContext::UpdateCharSet(const char* aCharSet){  if (mLangService) {    NS_IF_RELEASE(mLanguage);    mLangService->LookupCharSet(aCharSet, &mLanguage);  // addrefs    GetFontPreferences();    if (mLanguage) {      nsCOMPtr<nsIAtom> langGroupAtom;      mLanguage->GetLanguageGroup(getter_AddRefs(langGroupAtom));      NS_ASSERTION(langGroupAtom, "non-NULL language group atom expected");      if (langGroupAtom.get() == nsLayoutAtoms::Japanese) {        mLanguageSpecificTransformType =        eLanguageSpecificTransformType_Japanese;      }      else if (langGroupAtom.get() == nsLayoutAtoms::Korean) {        mLanguageSpecificTransformType =        eLanguageSpecificTransformType_Korean;      }      else {        mLanguageSpecificTransformType =        eLanguageSpecificTransformType_None;      }    }  }#ifdef IBMBIDI  //ahmed  mCharset=aCharSet;  SetVisualMode(IsVisualCharset(mCharset) );#endif // IBMBIDI}