#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from offlineimap import threadutil, mbnames, CustomConfig
import offlineimap.repository.Base, offlineimap.repository.LocalStatus
class SyncableAccount(Account, AccountSynchronizationMixin):
pass
-from stat import *
-
-def reset_time(folder, atime, mtime):
- t = atime, mtime
- os.utime(folder, t)
-
def syncfolder(accountname, remoterepos, remotefolder, localrepos,
statusrepos):
global mailboxes
localfolder = localrepos.\
getfolder(remotefolder.getvisiblename().\
replace(remoterepos.getsep(), localrepos.getsep()))
- if localrepos.getrestoreatime():
- cur_atime = os.stat(localfolder.getfullname() + "/cur")[ST_ATIME]
- new_atime = os.stat(localfolder.getfullname() + "/new")[ST_ATIME]
# Write the mailboxes
mbnames.add(accountname, localfolder.getvisiblename())
# Load local folder
if not localfolder.isuidvalidityok():
ui.validityproblem(localfolder, localfolder.getsaveduidvalidity(),
localfolder.getuidvalidity())
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])
return
if not remotefolder.isuidvalidityok():
ui.validityproblem(remotefolder, remotefolder.getsaveduidvalidity(),
remotefolder.getuidvalidity())
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])
return
else:
localfolder.saveuidvalidity()
ui.syncingmessages(localrepos, localfolder, statusrepos, statusfolder)
localfolder.syncmessagesto(statusfolder)
statusfolder.save()
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])