diff --git a/ChangeLog b/ChangeLog index 98c1d7f..6b9b384 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,15 +1,20 @@ RCS file: RCS/imapsync,v Working file: imapsync -head: 1.27 +head: 1.28 branch: locks: strict access list: symbolic names: keyword substitution: kv -total revisions: 27; selected revisions: 27 +total revisions: 28; selected revisions: 28 description: ---------------------------- +revision 1.28 +date: 2003/08/24 01:55:25; author: gilles; state: Exp; lines: +8 -30 +Set the flags using append_strings() instead of store() +Flags are well set since the first run now. +---------------------------- revision 1.27 date: 2003/08/23 14:40:57; author: gilles; state: Exp; lines: +4 -10 Removed unused code diff --git a/README b/README index d870b2b..d3822e3 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ NAME imapsync - synchronize mailboxes between two imap servers. - $Revision: 1.27 $ + $Revision: 1.28 $ INSTALL Get imapsync at http://www.linux-france.org/prj/imapsync/dist/ @@ -124,5 +124,5 @@ SIMILAR SOFTWARES Feedback (good or bad) will be always welcome. - $Id: imapsync,v 1.27 2003/08/23 14:40:57 gilles Exp $ + $Id: imapsync,v 1.28 2003/08/24 01:55:25 gilles Exp $ diff --git a/VERSION b/VERSION index b0c101e..e0250ea 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.27 +1.28 diff --git a/imapsync b/imapsync index 63f4336..b94327f 100755 --- a/imapsync +++ b/imapsync @@ -4,7 +4,7 @@ imapsync - synchronize mailboxes between two imap servers. -$Revision: 1.27 $ +$Revision: 1.28 $ =head1 INSTALL @@ -144,7 +144,7 @@ Rate imapsync : http://freshmeat.net/projects/imapsync/ Feedback (good or bad) will be always welcome. -$Id: imapsync,v 1.27 2003/08/23 14:40:57 gilles Exp $ +$Id: imapsync,v 1.28 2003/08/24 01:55:25 gilles Exp $ =cut @@ -167,12 +167,12 @@ my( use vars qw ($opt_G); # missing code for this will be option. -$rcs = ' $Id: imapsync,v 1.27 2003/08/23 14:40:57 gilles Exp $ '; +$rcs = ' $Id: imapsync,v 1.28 2003/08/24 01:55:25 gilles Exp $ '; $rcs =~ m/,v (\d+\.\d+)/; $VERSION = ($1) ? $1 : "UNKNOWN"; $error=0; -my $banner = '$RCSfile: imapsync,v $ ' . '$Revision: 1.27 $ ' . '$Date: 2003/08/23 14:40:57 $ ' . "\n"; +my $banner = '$RCSfile: imapsync,v $ ' . '$Revision: 1.28 $ ' . '$Date: 2003/08/24 01:55:25 $ ' . "\n"; get_options(); @@ -359,14 +359,15 @@ FOLDER: foreach my $f_fold (@f_folders) { my $f_msg = $f_hash{$m_id}{'m'}; $debug and print "key $m_id #$f_msg\n"; unless (exists($t_hash{$m_id})) { - print "Message NO msg #$f_msg [$m_id] in $t_fold\n"; + print "NO msg #$f_msg [$m_id] in $t_fold\n"; # copy print "Copying msg #$f_msg:$f_size to folder $t_fold\n"; unless ($dry) { my $string = $from->message_string($f_msg); - #$opt_y and print $string; + my $flags_f = join(" ", @{$from->flags($f_msg)}); my $new_id; - unless($new_id = $to->append($t_fold,$string)){ + print "flags from : [$flags_f]\n"; + unless($new_id = $to->append_string($t_fold,$string, $flags_f)){ warn "Couldn't append msg #$f_msg to folder $t_fold", $to->LastError, "\n"; $error++; @@ -375,30 +376,7 @@ FOLDER: foreach my $f_fold (@f_folders) { # good # $new_id is an id if the IMAP server has the # UIDPLUS capability else just a ref - print "Copied msg id [$f_msg] to folder $t_fold msg id [$new_id]\n"; - - unless ($tohasuidplus) { - next MESS; - } - print "Setting flags (UIDPLUS welcome)\n"; - my @flags_f = @{$from->flags($f_msg)}; - - $debugimap and print "Store flags [@flags_f]"; - $to->store($new_id, - "+FLAGS (" . join(" ", @flags_f) . ")" - ); - my @flags_t; - my $flags_t = $to->flags($new_id); - # a bug ? - if ($flags_t) { - @flags_t = @$flags_t; - print - "flags from : @flags_f\n", - "flags to : @flags_t\n"; - }else{ - print "To flags could not be retrieved\n" - } } } next MESS; diff --git a/tests.sh b/tests.sh index 88d9324..7930da8 100644 --- a/tests.sh +++ b/tests.sh @@ -1,8 +1,14 @@ #!/bin/sh -# $Id: tests.sh,v 1.4 2003/08/21 15:40:32 gilles Exp $ +# $Id: tests.sh,v 1.6 2003/08/24 01:56:49 gilles Exp $ # $Log: tests.sh,v $ +# Revision 1.6 2003/08/24 01:56:49 gilles +# Indented long lines +# +# Revision 1.5 2003/08/24 01:05:35 gilles +# Removed some variables +# # Revision 1.4 2003/08/21 15:40:32 gilles # Added a email in loulplume test # @@ -51,40 +57,26 @@ run_tests() { #### Variable definitions -prog=imapsync -host1=localhost -host2=localhost -passfile1=/var/tmp/secret1 -passfile2=/var/tmp/secret2 -user1=toto@est.belle -user2=titi@est.belle - -dirtest=/tmp/${prog}/test - test_count=0 ##### The tests functions perl_syntax() { - perl -c ./${prog} + perl -c ./imapsync } no_args() { - ./${prog} -} - -cleaning_test_directory() { - test -d $dirtest && find $dirtest -type d| xargs chmod 700 - rm -rf $dirtest - mkdir -p $dirtest + ./imapsync } first_sync() { ./imapsync \ - --host1 $host1 --user1 $user1 --passfile1 $passfile1 \ - --host2 $host2 --user2 $user2 --passfile2 $passfile2 + --host1 localhost --user1 toto@est.belle \ + --passfile1 /var/tmp/secret1 \ + --host2 localhost --user2 titi@est.belle \ + --passfile2 /var/tmp/secret2 } loulplume() { @@ -95,10 +87,12 @@ loulplume() { cmd="echo $mess""| mail -s ""$mess"" tata" echo $cmd ssh gilles@loul $cmd - sleep 10 + #sleep 10 ./imapsync \ - --host1 loul --user1 tata --passfile1 /var/tmp/secret.tata \ - --host2 plume --user2 tata@est.belle --passfile2 /var/tmp/secret.tata + --host1 loul --user1 tata \ + --passfile1 /var/tmp/secret.tata \ + --host2 plume --user2 tata@est.belle \ + --passfile2 /var/tmp/secret.tata else : fi @@ -108,8 +102,10 @@ plumeloul() { if test X`hostname` = X"plume"; then echo3 Here is plume ./imapsync \ - --host1 plume --user1 tata@est.belle --passfile1 /var/tmp/secret.tata \ - --host2 loul --user2 tata --passfile2 /var/tmp/secret.tata + --host1 plume --user1 tata@est.belle \ + --passfile1 /var/tmp/secret.tata \ + --host2 loul --user2 tata \ + --passfile2 /var/tmp/secret.tata else : fi @@ -119,9 +115,11 @@ lp_folder() { if test X`hostname` = X"plume"; then echo3 Here is plume ./imapsync \ - --host2 plume --user2 tata@est.belle --passfile2 /var/tmp/secret.tata \ + --host2 plume --user2 tata@est.belle \ + --passfile2 /var/tmp/secret.tata \ --folder INBOX.yop --folder INBOX.Trash \ - --host1 loul --user1 tata --passfile1 /var/tmp/secret.tata + --host1 loul --user1 tata \ + --passfile1 /var/tmp/secret.tata else : fi @@ -131,9 +129,11 @@ pl_folder() { if test X`hostname` = X"plume"; then echo3 Here is plume ./imapsync \ - --host1 plume --user1 tata@est.belle --passfile1 /var/tmp/secret.tata \ + --host1 plume --user1 tata@est.belle \ + --passfile1 /var/tmp/secret.tata \ --folder INBOX.yop \ - --host2 loul --user2 tata --passfile2 /var/tmp/secret.tata + --host2 loul --user2 tata \ + --passfile2 /var/tmp/secret.tata else : fi