void SetProxyPref(const nsAString& aHostPort, const char* aPref, const char* aPortPref, nsIPrefBranch* aPrefs) { nsCOMPtr<nsIURI> uri; nsAutoCString host; int32_t portValue; // try parsing it as a URI first if (NS_SUCCEEDED(NS_NewURI(getter_AddRefs(uri), aHostPort)) && NS_SUCCEEDED(uri->GetHost(host)) && !host.IsEmpty() && NS_SUCCEEDED(uri->GetPort(&portValue))) { SetUnicharPref(aPref, NS_ConvertUTF8toUTF16(host), aPrefs); aPrefs->SetIntPref(aPortPref, portValue); } else { nsAutoString hostPort(aHostPort); int32_t portDelimOffset = hostPort.RFindChar(':'); if (portDelimOffset > 0) { SetUnicharPref(aPref, Substring(hostPort, 0, portDelimOffset), aPrefs); nsAutoString port(Substring(hostPort, portDelimOffset + 1)); nsresult error; portValue = port.ToInteger(&error); aPrefs->SetIntPref(aPortPref, portValue); } else SetUnicharPref(aPref, hostPort, aPrefs); } }
/* void setTagForKey (in string key); */ NS_IMETHODIMP nsMsgTagService::SetTagForKey(const nsACString &key, const nsAString &tag ) { nsCAutoString prefName(key); ToLowerCase(prefName); prefName.AppendLiteral(TAG_PREF_SUFFIX_TAG); return SetUnicharPref(prefName.get(), tag); }
/* void addTagForKey (in string key, in wstring tag, in string color, in string ordinal); */ NS_IMETHODIMP nsMsgTagService::AddTagForKey(const nsACString &key, const nsAString &tag, const nsACString &color, const nsACString &ordinal) { nsCAutoString prefName(key); ToLowerCase(prefName); prefName.AppendLiteral(TAG_PREF_SUFFIX_TAG); nsresult rv = SetUnicharPref(prefName.get(), tag); NS_ENSURE_SUCCESS(rv, rv); rv = SetColorForKey(key, color); NS_ENSURE_SUCCESS(rv, rv); rv = RefreshKeyCache(); NS_ENSURE_SUCCESS(rv, rv); return SetOrdinalForKey(key, ordinal); }