# HG changeset patch # User Brodie Rao # Date 1291711673 -39600 # Node ID 2956945c3beef82df63c3da852725cd524596cd4 # Parent 66d7a1250c9b25291b01cd1fde211ffc6f5cf38d archival: don't set gzip filename header when there's no filename This mainly affects hgweb, which can generate tar.gz archives without filenames. Without this change, the header would be set to ".gz", which can confuse Safari into extracting the file and renaming it to "gz" when "Open 'safe' files after downloading" is enabled. file(1) before: hg-crew-5e51254ad4d4.tar.gz: gzip compressed data, was ".gz", last modified: Thu Dec 2 11:46:20 2010, max compression after: hg-crew-5e51254ad4d4.tar.gz: gzip compressed data, last modified: Thu Dec 2 11:46:20 2010, max compression diff -r 66d7a1250c9b -r 2956945c3bee mercurial/archival.py --- a/mercurial/archival.py Fri Dec 03 11:40:30 2010 +0900 +++ b/mercurial/archival.py Tue Dec 07 19:47:53 2010 +1100 @@ -70,6 +70,8 @@ self.fileobj.write('\010') # compression method # Python 2.6 deprecates self.filename fname = getattr(self, 'name', None) or self.filename + if fname and fname.endswith('.gz'): + fname = fname[:-3] flags = 0 if fname: flags = gzip.FNAME