зеркало из https://github.com/mozilla/gecko-dev.git
fix bug 50654. r=nhotta take care " in the charset
This commit is contained in:
Родитель
3c25610d65
Коммит
fe633c6d96
|
@ -549,9 +549,17 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand,
|
|||
if(kNotFound != start)
|
||||
{
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
PRInt32 end = 0;
|
||||
if(PRUnichar('"') == contentType.CharAt(start)) {
|
||||
start++;
|
||||
end = contentType.FindCharInSet("\"", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
} else {
|
||||
end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
}
|
||||
nsAutoString theCharset;
|
||||
contentType.Mid(theCharset, start, end - start);
|
||||
nsICharsetAlias* calias = nsnull;
|
||||
|
|
|
@ -326,10 +326,18 @@ nsXMLDocument::StartDocumentLoad(const char* aCommand,
|
|||
PRInt32 start = contentType.RFind("charset=", PR_TRUE ) ;
|
||||
if(kNotFound != start)
|
||||
{
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = 0;
|
||||
if(PRUnichar('"') == contentType.CharAt(start)) {
|
||||
start++;
|
||||
end = contentType.FindCharInSet("\"", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
} else {
|
||||
end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
}
|
||||
nsAutoString theCharset;
|
||||
contentType.Mid(theCharset, start, end - start);
|
||||
nsICharsetAlias* calias = nsnull;
|
||||
|
|
|
@ -549,9 +549,17 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand,
|
|||
if(kNotFound != start)
|
||||
{
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
PRInt32 end = 0;
|
||||
if(PRUnichar('"') == contentType.CharAt(start)) {
|
||||
start++;
|
||||
end = contentType.FindCharInSet("\"", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
} else {
|
||||
end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
}
|
||||
nsAutoString theCharset;
|
||||
contentType.Mid(theCharset, start, end - start);
|
||||
nsICharsetAlias* calias = nsnull;
|
||||
|
|
|
@ -326,10 +326,18 @@ nsXMLDocument::StartDocumentLoad(const char* aCommand,
|
|||
PRInt32 start = contentType.RFind("charset=", PR_TRUE ) ;
|
||||
if(kNotFound != start)
|
||||
{
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
start += 8; // 8 = "charset=".length
|
||||
PRInt32 end = 0;
|
||||
if(PRUnichar('"') == contentType.CharAt(start)) {
|
||||
start++;
|
||||
end = contentType.FindCharInSet("\"", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
} else {
|
||||
end = contentType.FindCharInSet(";\n\r ", start );
|
||||
if(kNotFound == end )
|
||||
end = contentType.Length();
|
||||
}
|
||||
nsAutoString theCharset;
|
||||
contentType.Mid(theCharset, start, end - start);
|
||||
nsICharsetAlias* calias = nsnull;
|
||||
|
|
Загрузка…
Ссылка в новой задаче