From: Junio C Hamano Date: Sat, 07 Oct 2006 10:34:02 GMT Subject: Re: [PATCH] gitweb: Convert Content-Disposition filenames into qtext Message-ID: <7vvemwqusl.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Jakub Narebski writes: > Junio C Hamano wrote: > >> Luben Tuikov 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 '_'.