From fb4d757255b840de08b25293b46718f9a7e4b3ba Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Tue, 26 Jul 2016 09:58:30 +0200 Subject: [PATCH] need to be more carful in determining whether is multi-volume or not --- deltatar/tarfile.py | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/deltatar/tarfile.py b/deltatar/tarfile.py index b6192f0..b973881 100644 --- a/deltatar/tarfile.py +++ b/deltatar/tarfile.py @@ -2206,12 +2206,19 @@ class TarFile(object): if comptype == 'gz' or comptype == 'bz2': kwargs['compresslevel'] = compresslevel - if 'max_volume_size' in kwargs or 'new_volume_handler' in kwargs: - if comptype != 'tar' and (kwargs['new_volume_handler'] or - kwargs['max_volume_size']): - import warnings - warnings.warn('Only the first volume will be compressed ' - 'for modes with "w:"!') + is_multivol = False + if filemode in 'wa' and 'max_volume_size' in kwargs \ + and kwargs['max_volume_size'] \ + and 'new_volume_handler' in kwargs \ + and kwargs['new_volume_handler']: + is_multivol = True + if filemode == 'r' and 'new_volume_handler' in kwargs \ + and kwargs['new_volume_handler']: + is_multivol = True # may be multi-volume + if is_multivol and comptype != 'tar': + import warnings + warnings.warn('Only the first volume will be compressed ' + 'for modes with "w:"!') return func(name, filemode, fileobj, **kwargs) -- 1.7.1