From f3c53cc53f07764fdf237442fa4813c8f04ac638 Mon Sep 17 00:00:00 2001 From: HeadLostMusic Date: Sun, 1 Mar 2015 18:48:35 -0800 Subject: [PATCH] Fix problem with overwriting attachments with the same name --- iOSSMSBackup.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/iOSSMSBackup.pm b/iOSSMSBackup.pm index 649f21b..2008b3d 100644 --- a/iOSSMSBackup.pm +++ b/iOSSMSBackup.pm @@ -98,6 +98,16 @@ sub _process_mms { mkdir $directory unless -d $directory; my $html = ""; if ((defined $self->{_attachments}->{$attachmentID}) && (my $attachment = $self->{_attachments}->{$attachmentID})){ + if (-e $directory."/".$attachment->{'filename'}) { + my $filename = $attachment->{'filename'}; + my $name = substr($filename, 0, rindex($filename, '.')); + my $extension = substr($filename, rindex($filename, '.') + 1); + my $suffix = 1; + while (-e $directory."/".$name.$suffix.".".$extension) { + $suffix++; + } + $attachment->{'filename'} = $name.$suffix.".".$extension; + } copy($self->{_backup_directory}.$attachment->{'sha1_filename'}, $directory."/".$attachment->{'filename'}) or "Copy failed for file ".$self->{_backup_directory}.$attachment->{'sha1_filename'}."\n"; if ($attachment->{'mime_type'} =~ /^image/) { $html = qq|{'filename'}.qq|"/>|;