Re: [PATCH] gitweb: Convert Content-Disposition filenames into qtext
- From
Junio C Hamano <junkio@cox.net>
- Date
- Oct 7, 2006, 10:34 UTC
- Message-ID
- <7vvemwqusl.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <eg7u5n$mt9$1@sea.gmane.org>
Jakub Narebski <jnareb@gmail.com> writes:
Show 24 quoted lines
> Junio C Hamano wrote:
>
>> Luben Tuikov <ltuikov@yahoo.com> writes:
>>
>>>>> +# Convert a string (e.g. a filename) into qtext as defined
>>>>> +# in RFC 822, from RFC 2183. To be used by Content-Disposition.
>>>>> +sub to_qtext {
>>>>> + my $str = shift;
>>>>> + $str =~ s/\\/\\\\/g;
>>>>> + $str =~ s/\"/\\\"/g;
>
> Here probably it could be
> $str =~ s/"/\\"/g;
>
>>>>> + $str =~ s/\r/\\r/g;
>>>>
>>>> \r? Not \n?
>>>
>>> Yes, \r, not \n.
>>
>> \r to \\r? Not to \\\r?
>
> We want "\r" in suggested filename, not "\
> " I think, so it is "\\r".Is that what you guys are attempting to achieve?
If we are trying to suggest a filename that is safe by avoiding certain characters, I suspect leaving a backslash and dq as-is is just as bad as leaving a CR in. So if that is the goal here, I think it might be better and a lot simpler to just replace each run of bytes not in Portable Filename Character Set with an underscore '_'.