mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 16:27:31 +09:00
Bug 1528496 - Correctly fix Bug 1023285 and utf8 addressing header display for jsmime.
Tag #1273
This commit is contained in:
parent
f1a3fd9fda
commit
8a8393dbc4
6 changed files with 50 additions and 18 deletions
|
|
@ -107,6 +107,24 @@ nsCOMArray<msgIAddressObject> EncodedHeader(const nsACString &aHeader,
|
|||
return retval;
|
||||
}
|
||||
|
||||
nsCOMArray<msgIAddressObject> EncodedHeaderW(const nsAString &aHeader)
|
||||
{
|
||||
nsCOMArray<msgIAddressObject> retval;
|
||||
if (aHeader.IsEmpty()) {
|
||||
return retval;
|
||||
}
|
||||
nsCOMPtr<nsIMsgHeaderParser> headerParser(services::GetHeaderParser());
|
||||
NS_ENSURE_TRUE(headerParser, retval);
|
||||
msgIAddressObject **addresses = nullptr;
|
||||
uint32_t length;
|
||||
nsresult rv = headerParser->ParseEncodedHeaderW(aHeader, &length, &addresses);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv), "This should never fail!");
|
||||
if (NS_SUCCEEDED(rv) && length > 0 && addresses) {
|
||||
retval.Adopt(addresses, length);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
void ExtractAllAddresses(const nsCOMArray<msgIAddressObject> &aHeader,
|
||||
nsTArray<nsString> &names, nsTArray<nsString> &emails)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -269,6 +269,15 @@ MimeAddressParser.prototype = {
|
|||
MimeParser.HEADER_ADDRESS | MimeParser.HEADER_OPTION_ALL_I18N, aCharset);
|
||||
return fixArray(value, aPreserveGroups, count);
|
||||
},
|
||||
parseEncodedHeaderW: function (aHeader, count) {
|
||||
aHeader = aHeader || "";
|
||||
let value = MimeParser.parseHeaderField(aHeader,
|
||||
MimeParser.HEADER_ADDRESS |
|
||||
MimeParser.HEADER_OPTION_DECODE_2231 |
|
||||
MimeParser.HEADER_OPTION_DECODE_2047,
|
||||
undefined);
|
||||
return fixArray(value, false, count);
|
||||
},
|
||||
parseDecodedHeader: function (aHeader, aPreserveGroups, count) {
|
||||
aHeader = aHeader || "";
|
||||
let value = MimeParser.parseHeaderField(aHeader, MimeParser.HEADER_ADDRESS);
|
||||
|
|
@ -390,13 +399,7 @@ MimeAddressParser.prototype = {
|
|||
|
||||
parseHeadersWithArray: function (aHeader, aAddrs, aNames, aFullNames) {
|
||||
let addrs = [], names = [], fullNames = [];
|
||||
// Parse header, but without HEADER_OPTION_ALLOW_RAW.
|
||||
let value = MimeParser.parseHeaderField(aHeader || "",
|
||||
MimeParser.HEADER_ADDRESS |
|
||||
MimeParser.HEADER_OPTION_DECODE_2231 |
|
||||
MimeParser.HEADER_OPTION_DECODE_2047,
|
||||
undefined);
|
||||
let allAddresses = fixArray(value, false);
|
||||
let allAddresses = this.parseEncodedHeader(aHeader, undefined, false);
|
||||
|
||||
// Don't index the dummy empty address.
|
||||
if (aHeader.trim() == "")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue