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:
andreas.otte%debitel.net 2003-02-27 10:55:01 +00:00
parent 3d2b7c43a1
commit 6f076f634b
3 changed files with 10 additions and 4 deletions

View File

@ -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

View File

@ -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));

View File

@ -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 */