//------------------------------------------------------------------------- void nsFilePicker::GetFileSystemCharset(nsCString & fileSystemCharset) { static nsCAutoString aCharset; nsresult rv; if (aCharset.Length() < 1) { nsCOMPtr <nsIPlatformCharset> platformCharset = do_GetService(NS_PLATFORMCHARSET_CONTRACTID, &rv); if (NS_SUCCEEDED(rv)) rv = platformCharset->GetCharset(kPlatformCharsetSel_FileName, aCharset); NS_ASSERTION(NS_SUCCEEDED(rv), "error getting platform charset"); if (NS_FAILED(rv)) aCharset.AssignLiteral("IBM850"); } fileSystemCharset = aCharset; }
/** Parses e.g. "a(href,title)" (but not several tags at once). */ nsresult mozSanitizingHTMLSerializer::ParseTagPref(const nsCAutoString& tagpref) { nsIParserService* parserService = nsContentUtils::GetParserService(); if (!parserService) return NS_ERROR_OUT_OF_MEMORY; // Parsing tag PRInt32 bracket = tagpref.FindChar('('); if (bracket == 0) { printf(" malformed pref: %s\n", tagpref.get()); return NS_ERROR_CANNOT_CONVERT_DATA; } nsAutoString tag; CopyUTF8toUTF16(StringHead(tagpref, bracket), tag); // Create key PRInt32 tag_id = parserService->HTMLStringTagToId(tag); if (tag_id == eHTMLTag_userdefined) { printf(" unknown tag <%s>, won't add.\n", NS_ConvertUTF16toUTF8(tag).get()); return NS_ERROR_CANNOT_CONVERT_DATA; } nsPRUint32Key tag_key(tag_id); if (mAllowedTags.Exists(&tag_key)) { printf(" duplicate tag: %s\n", NS_ConvertUTF16toUTF8(tag).get()); return NS_ERROR_CANNOT_CONVERT_DATA; } if (bracket == kNotFound) /* There are no attributes in the pref. So, allow none; only the tag itself */ { mAllowedTags.Put(&tag_key, 0); } else { // Attributes // where is the macro for non-fatal errors in opt builds? if(tagpref[tagpref.Length() - 1] != ')' || tagpref.Length() < PRUint32(bracket) + 3) { printf(" malformed pref: %s\n", tagpref.get()); return NS_ERROR_CANNOT_CONVERT_DATA; } nsCOMPtr<nsIProperties> attr_bag = do_CreateInstance(NS_PROPERTIES_CONTRACTID); NS_ENSURE_TRUE(attr_bag, NS_ERROR_INVALID_POINTER); nsCAutoString attrList; attrList.Append(Substring(tagpref, bracket + 1, tagpref.Length() - 2 - bracket)); char* attrs_lasts; for (char* iAttr = PL_strtok_r(attrList.BeginWriting(), ",", &attrs_lasts); iAttr; iAttr = PL_strtok_r(NULL, ",", &attrs_lasts)) { attr_bag->Set(iAttr, 0); } nsIProperties* attr_bag_raw = attr_bag; NS_ADDREF(attr_bag_raw); mAllowedTags.Put(&tag_key, attr_bag_raw); } return NS_OK; }
void nsTestLog::DelTrace(char * aTrace) { mTrace.Truncate(mTrace.Length() - strlen(aTrace) - strlen(kTraceDelimiter)); }