On Wed, Mar 28, 2007, Martin Koegler wrote: > I created a blob with a "strange" filename: &()=!"§$%[<>]*#+_;. > In the result of the blob view, the " is not escaped in the filename in the header > and a strage content type is returned: > > $ telnet localhost 80 > Trying 127.0.0.1... > Connected to localhost. > Escape character is '^]'. > GET /gitweb/gitweb.cgi?p=t/.git;a=blob;f=%26()%3D%21%22%A7%24%25%5B%3C%3E%5D%2A%23%2B_%3B.;hb=7bfed2588bee66b33db544830606fa6606478fd9 HTTP/1.0 > > HTTP/1.1 200 OK > Date: Wed, 28 Mar 2007 19:55:36 GMT > Server: Apache > Content-disposition: inline; filename="&()=!"§$%[<>]*#+_;." > Expires: Thu, 29 Mar 2007 19:55:39 GMT > Connection: close > Content-Type: application/vnd.mif > > xx There are two separate things. First is not escaped filename in HTTP header. There was some discussion about this, and even patch by Luben Tuikov which added to_qtext subroutine to deal with escaping in HTTP (which has diferent rules than escaping in HTML, or in HTML attributes) * gitweb: using quotemeta http://thread.gmane.org/gmane.comp.version-control.git/28050/ * [PATCH] gitweb: Convert Content-Disposition filenames into qtext http://thread.gmane.org/gmane.comp.version-control.git/28437 But the patch was newer accepted; either lost in the noise, or in lack of summary to the discussion. Second is detecting file as binary (for text files we always return HTML), and content type set. Gitweb checks mimetype of a file (based on extension, mainly) by default using /etc/mime.magic, and if it is neither text/* nor HTML images (png, jpg, gif) it uses "blobdiff_plain" view. Perhaps instead of just calling git_blob_plain($mimetype) we should do a redirect (but then how to pass detected mimetype?). It looks like there is an error with mimetype detection: could you tell me the line with "application/vnd.mif" in your /etc/mime.types? -- Jakub Narebski Poland - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html