mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
fix bug 191638 [index/html: files|dirs with "%" need to be properly encoded] force escape of % as part of filenames to %25 to not be damaged by unescape, r=bbaetz@acm.org, sr=darin@netscape.com
This commit is contained in:
parent
3d2b7c43a1
commit
6f076f634b
@ -351,9 +351,13 @@ nsFTPDirListingConv::DigestBufferLines(char *aBuffer, nsCString &aString) {
|
||||
if (offset) {
|
||||
result.fe_fnlen = offset - result.fe_fname;
|
||||
}
|
||||
|
||||
nsCAutoString buf;
|
||||
aString.Append(NS_LITERAL_CSTRING("\"") +
|
||||
Substring(result.fe_fname, result.fe_fname+result.fe_fnlen) +
|
||||
NS_LITERAL_CSTRING("\" "));
|
||||
NS_EscapeURL(Substring(result.fe_fname,
|
||||
result.fe_fname+result.fe_fnlen),
|
||||
esc_Minimal|esc_OnlyASCII|esc_Forced,buf)
|
||||
+ NS_LITERAL_CSTRING("\" "));
|
||||
|
||||
// CONTENT LENGTH
|
||||
|
||||
|
@ -497,7 +497,8 @@ nsIndexedToHTML::OnIndexAvailable(nsIRequest *aRequest,
|
||||
NS_ConvertUCS2toUTF8 utf8UnEscapeSpec(unEscapeSpec);
|
||||
|
||||
NS_EscapeURL(utf8UnEscapeSpec.get(), utf8UnEscapeSpec.Length(),
|
||||
esc_FileBaseName|esc_OnlyASCII|esc_AlwaysCopy, escapeBuf);
|
||||
esc_Forced|esc_FileBaseName|esc_OnlyASCII|esc_AlwaysCopy,
|
||||
escapeBuf);
|
||||
|
||||
pushBuffer.Append(NS_ConvertUTF8toUCS2(escapeBuf));
|
||||
|
||||
|
@ -113,6 +113,7 @@ enum EscapeMask {
|
||||
esc_Query = PR_BIT(8),
|
||||
esc_Ref = PR_BIT(9),
|
||||
/** special flags **/
|
||||
esc_Minimal = esc_Scheme | esc_Username | esc_Password | esc_Host | esc_FilePath | esc_Param | esc_Query | esc_Ref,
|
||||
esc_Forced = PR_BIT(10), /* forces escaping of existing escape sequences */
|
||||
esc_OnlyASCII = PR_BIT(11), /* causes non-ascii octets to be skipped */
|
||||
esc_OnlyNonASCII = PR_BIT(12), /* causes ascii octets to be skipped */
|
||||
|
Loading…
Reference in New Issue
Block a user