Commit Graph

680 Commits

Author SHA1 Message Date
John Goerzen
50fc49bf7f Applied netrc_v2.diff from bboissin 2008-03-03 02:21:33 -06:00
John Goerzen
1ebc45d963 Fix performance for SSL
Added WrappedIMAP4_SSL class to help fix up performance of SSL

Standard imaplib.py is really bad with this, since it reads one
character at a time.

Reported by Aaron Kaplan at
http://lists.complete.org/offlineimap@complete.org/2008/01/msg00012.html.gz

He wrote:

  I just noticed that the version of offlineimap I've been using
  (3.99.17) is well over four years old.  How time flies.  I haven't
  had any problems with it, but out of curiosity I decided to pull in
  5.99.2 from the fedora repository.  It turns out to take
  consistently over twice as long as the old version to sync the same
  account.  Is this expected?

He tracked it down at
http://lists.complete.org/offlineimap@complete.org/2008/02/msg00012.html.gz

  The following changeset is the one responsible for the difference in
  speed I was noticing between the imaplib.py that was packaged with
  older versions of offlineimap and the one that comes with python:

  * /offlineimap/head: changeset 169
    More optimizations -- this time fix readline() to not work
    character-by-character!
2008-03-03 08:22:44 -06:00
John Goerzen
08a579657a Fix handling of servers that return UIDs in some FETCH responses
closes #22

from pistore in OfflineIMAP #22:

When an IMAP flag update is performed for multiple messages, some IMAP
servers (e.g. Exchange) return the UID attribute only for some of the
FETCH untagged responses, as shown in the following log:

21:19.04 > DCKF8 UID STORE 66050,50613,52164,40043,40055,25874 +FLAGS
(\Deleted)
21:19.36 < * 35 FETCH (FLAGS (\Seen \Deleted) UID 25874)
21:19.36 < * 321 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 322 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 560 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 581 FETCH (FLAGS (\Seen \Deleted) UID 52164)
21:19.62 < * 1022 FETCH (FLAGS (\Seen \Deleted))
21:19.62 < DCKF8 OK STORE completed.

Function IMAPFolder.processmessagesflags is able to manage the servers
which return the UID and the servers which do not return it, but is
not able to deal with the mixed behavior shown above.

The problem is that the fragment of function
IMAPFolder.processmessagesflags that handles the responses with UID
attribute uses variable flags to store the list of flags of the
message in the IMAP format ("flags = attributehashFLAGS?"), while the
fragment that handles the responses without UID expects variable
"flags" to contain the list of modified flags passed to the function
in Maildir format ("self.messagelist[uid]flags?.append(flag)").

As a consequence, the wrong list of flags is used for the messages
without UID, leading to the addition of "strange" flags to the Maildir
messages:

Syncing messages IMAP[INBOX] -> Maildir[.]
Adding flags   to 4 messages  on Maildir[.]
Adding flags e to 4 messages  on Maildir[.]
Adding flags d to 4 messages  on Maildir[.]
Adding flags ) to 4 messages  on Maildir[.]
Adding flags ( to 4 messages  on Maildir[.]
Adding flags l to 4 messages  on Maildir[.]
Adding flags n to 4 messages  on Maildir[.]
Adding flags t to 4 messages  on Maildir[.]
Adding flags \ to 4 messages  on Maildir[.]
Adding flags D to 4 messages  on Maildir[.]
Deleting flags T to 4 messages on Maildir[.]
Adding flags   to 4 messages  on LocalStatus[.]
Adding flags e to 4 messages  on LocalStatus[.]
Adding flags d to 4 messages  on LocalStatus[.]
Adding flags ) to 4 messages  on LocalStatus[.]
Adding flags ( to 4 messages  on LocalStatus[.]
Adding flags l to 4 messages  on LocalStatus[.]
Adding flags n to 4 messages  on LocalStatus[.]
Adding flags t to 4 messages  on LocalStatus[.]
Adding flags \ to 4 messages  on LocalStatus[.]
Adding flags D to 4 messages  on LocalStatus[.]
Deleting flags T to 4 messages on LocalStatus[.]

Fix: use a different variable to store IMAP flags when managing
messages corresponding to responses with UID attribute, e.g.:

*** IMAP.py.orig        Wed Aug 22 18:23:17 2007
--- IMAP.py     Wed Aug 22 18:22:38 2007
*************** class IMAPFolder(BaseFolder):
*** 340,348 ****
              if not ('UID' in attributehash and 'FLAGS' in
              attributehash):
                  # Compensate for servers that don't return a UID
                  attribute.
                  continue
!             flags = attributehash['FLAGS']
              uid = long(attributehash['UID'])
!             self.messagelist[uid]['flags'] =
imaputil.flagsimap2maildir(flags)
              try:
                  needupdate.remove(uid)
              except ValueError:          # Let it slide if it's not
              in the list
--- 340,348 ----
              if not ('UID' in attributehash and 'FLAGS' in
              attributehash):
                  # Compensate for servers that don't return a UID
                  attribute.
                  continue
!             lflags = attributehash['FLAGS']
              uid = long(attributehash['UID'])
!             self.messagelist[uid]['flags'] =
imaputil.flagsimap2maildir(lflags)
              try:
                  needupdate.remove(uid)
              except ValueError:          # Let it slide if it's not
              in the list

02/03/08 14:04:35 changed by js

    * attachment flags-fix.patch added.

Delete 02/03/08 14:05:24 changed by js ¶

Unfortunately I have to fetch some of my mail from an Exchange server
(Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.7638.1)
and I can confirm that the analysis of the problem is correct, and the
patch given here fixes the problem.

Looking at the code of the processmessagesflags() method I think it
generally is a bug that the "flags" parameter is reused as a local
variable, since the final "for uid in needupdate:" loop needs the
original value of "flags". This only worked by accident.

I'm attaching a unidiff version of the patch which applies cleanly
against Debian unstable's offlineimap 5.99.4.
2008-03-02 22:25:05 -06:00
John Goerzen
2094037de1 Truncate local status folders on creation
Should help eliminate problems with old cache

refs deb#459985, refs #19
2008-03-02 22:21:10 -06:00
John Goerzen
73485475e9 Infrastructure for notifying LocalStatus of local mailbox creations
This will let us delete LocalStatus caches when we create a local
mailbox

refs deb#459985, refs #19
2008-03-02 22:17:45 -06:00
Riccardo Murri
81b86fb74c Add Gmail IMAP special support.
New repository/folder classes to support "real deletion" of messages
thorugh Gmail's IMAP interface: to really delete a message in Gmail,
one has to move it to the Trash folder, rather than EXPUNGE it.
2008-01-03 04:56:55 +01:00
Riccardo Murri
ec89c3eb53 Add option '-f' for sync'ing only selected folders 2008-01-03 04:15:11 +01:00
Riccardo Murri
2985ddc61e Add option '-k' for overriding config options 2008-01-03 04:13:04 +01:00
Florian Friesdorf
08f22be8ea completed: * fixes behaviour when changing flags, without corresp. rights (s,d,w) 2007-07-19 17:52:29 +01:00
Florian Friesdorf
71a76d9a61 fixes behaviour when changing flags, without corresp. rights (s,d,w) 2007-07-12 05:08:47 +01:00
Florian Friesdorf
c305d63e00 fix behaviour for delete/expunge, when lacking rights
This patch maneuvers around python imaplib's mysterious read-only detection
algorithm and correctly calls the UI's deletetoreadonly(), when trying to
delete/expunge in a mailbox without having the necessary rights.
2007-07-12 04:44:11 +01:00
John Goerzen
d9109bc928 Bump version number 2007-10-19 20:32:21 +01:00
John Goerzen
24cdba3221 Undo 'Fix Maildir race' patch
This was causing OfflineIMAP to hang
2007-10-19 20:29:34 +01:00
Vincent Beffara
f549baa074 UNDO: Synchronize newly created folders both ways
This involves several changes at different places:

- syncfoldersto() takes statusfolder as an argument, and returns the
  list of new folders and the list of folders that should be ingnored,
  typically those that were deleted. Warns the user about folders that
  are present only on one side and are not synced.

- syncfoldersto() is called both ways, and on folder creation
  forgetfolders() is used to rebuild the list and take the new creation
  into account. Probably not the most efficient, since it involves
  talking to the IMAP server again, but it will rarely be used anyway.

- Locally created folders are treated separately in the synchronization,
  namely the local messages are uploaded and then the normal sync still
  occurs. If the same folder is created on both sides and contains
  messages on both sides, a two-way sync occurs.
2007-09-02 01:43:15 +01:00
John Goerzen
6caaea36e0 Fix Maildir race
fixes deb#439384

From: martin f krafft
Subject: race condition in Maildir writing

The offlineimap Maildir code checks for file existence and then
opens a file. That's open to a race condition. It's better to open
the file and fail if it already exists. The following patch does
this. It catches OSError 17 (file exists) and re-raises all others.
I'll leave it up to you to decide whether this is appropriate.
2007-10-19 01:06:18 +01:00
Vincent Beffara
b925fd1296 Synchronize newly created folders both ways
This involves several changes at different places:

- syncfoldersto() takes statusfolder as an argument, and returns the
  list of new folders and the list of folders that should be ingnored,
  typically those that were deleted. Warns the user about folders that
  are present only on one side and are not synced.

- syncfoldersto() is called both ways, and on folder creation
  forgetfolders() is used to rebuild the list and take the new creation
  into account. Probably not the most efficient, since it involves
  talking to the IMAP server again, but it will rarely be used anyway.

- Locally created folders are treated separately in the synchronization,
  namely the local messages are uploaded and then the normal sync still
  occurs. If the same folder is created on both sides and contains
  messages on both sides, a two-way sync occurs.
2007-09-02 01:43:15 +01:00
John Goerzen
cdccfd83b1 Fixed locked() for noninteractive UIs
From: "Mark A. Hershberger"

https://bugs.launchpad.net/ubuntu/+source/offlineimap/+bug/96710

the locked() method isn't implemented for non-interactive UIs, so
exceptions are thrown on cron jobs.  Ubuntu's new apport catches these
and ? well, you get the idea.

patch provided.
2007-10-10 00:12:22 +01:00
John Goerzen
3305d8cd4d Daniel Jacobowitz patches
fixes deb#433732

Date: Sun, 30 Sep 2007 13:54:56 -0400
From: Daniel Jacobowitz <drow@false.org>
To: offlineimap@complete.org
Subject: Assorted patches

Here's the result of a lazy Sunday hacking on offlineimap.  Sorry for
not breaking this into multiple patches.  They're mostly logically
independent so just ask if that would make a difference.
First, a new -q (quick) option.  The quick option means to only update
folders that seem to have had significant changes.  For Maildir, any
change to any message UID or flags is significant, because checking
the flags doesn't add a significant cost.  For IMAP, only a change to
the total number of messages or a change in the UID of the most recent
message is significant.  This should catch everything except for
flags changes.

The difference in bandwidth is astonishing: a quick sync takes 80K
instead of 5.3MB, and 28 seconds instead of 90.

There's a configuration variable that lets you say every tenth sync
should update flags, but let all the intervening ones be lighter.


Second, a fix to the UID validity problems many people have been
reporting with Courier.  As discussed in Debian bug #433732, I changed
the UID validity check to use SELECT unless the server complains that
the folder is read-only.  This avoids the Courier bug (see the Debian
log for more details).  This won't fix existing validity errors, you
need to remove the local status and validity files by hand and resync.


Third, some speedups in Maildir checking.  It's still pretty slow
due to a combination of poor performance in os.listdir (never reads
more than 4K of directory entries at a time) and some semaphore that
leads to lots of futex wake operations, but at least this saves
20% or so of the CPU time running offlineimap on a single folder:

Time with quick refresh and md5 in loop: 4.75s user 0.46s system 12%
cpu 41.751 total
Time with quick refresh and md5 out of loop: 4.38s user 0.50s system
14% cpu 34.799 total
Time using string compare to check folder: 4.11s user 0.47s system 13%
cpu 34.788 total


And fourth, some display fixes for Curses.Blinkenlights.  I made
warnings more visible, made the new quick sync message cyan, and
made all not explicitly colored messages grey.  That last one was
really bugging me.  Any time OfflineIMAP printed a warning in
this UI, it had even odds of coming out black on black!


Anyway, I hope these are useful.  I'm happy to revise them if you see
a problem.

-- 
Daniel Jacobowitz
CodeSourcery
2007-10-01 22:20:37 +01:00
John Goerzen
6949a31164 Resolve conflict 2007-10-13 07:07:30 +01:00
John Goerzen
764ba74c5f Update version 2007-08-01 02:29:06 +01:00
John Goerzen
2323fdcdb3 Additional date validity check
patch from Mike Gerber

Two times today I have found my offlineimap to have died with this same
situation. It appears as if certain types of messages (both spam in my
situation), cause offlineimap to choke. When it does it cannot proceed.
This means that when I run offlineimap, it pulls in messages from some
folders, then it hits the folder with the bad message and dies, leaving
undownloaded mail on the server. The only fix to this problem is to find
the problem message on the server and remove it by hand. This isn't such
a huge deal for me, since I run the server, but other people have to
come to me to ask me to delete these messages, and until I do they
cannot download their email.

I have captured the output by running script during one of these
incidents, this has been attached. Additionally, I have also attach the 
problematic message.

The patch seems to work for me, might need some Python wizard and better 
testing, though.

fixes deb#396443
2007-08-01 02:25:05 +01:00
John Goerzen
4e19af1513 Fix non-SSL connection
fixes deb#432727
2007-07-12 11:02:19 +01:00
John Goerzen
09d71143d7 Fix version.py importing 2007-07-10 12:57:03 +01:00
John Goerzen
84d1662482 Update changelog 2007-07-11 02:50:30 +01:00
Florian Friesdorf
3e7899a9dc IMAP.py: fixed cannot concatenate 'str' and 'list' in assert
r[1] is a list. In case it contains more than one 'str' they are concatenated
using '. '. In processmessagesflags the join is tested, for savemessagesflags I
assume that it is also needed.
2007-07-07 04:51:02 +01:00
Florian Friesdorf
ed005cbbdc UIBase config variable fix
Code is probably reached for the first time, thanks to the correct readonly
handling patch
2007-07-07 02:30:42 +01:00
John Goerzen
acc597ff28 Write current PID to ~/.offlineimap/pid
fixes deb#217550
refs deb#410181
2007-07-07 01:50:43 +01:00
John Goerzen
a381ca3977 Re-scan list of remote folders on each sync
rather than just up-front.

fixes deb#396772
2007-07-06 17:46:29 +01:00
John Goerzen
f0d48365cf Added timeouts 2007-07-06 17:37:58 +01:00
John Goerzen
4370da1dcf UNDO: Checkpointing 2007-07-05 14:49:54 +01:00
John Goerzen
7a287cef57 Checkpointing 2007-07-05 14:49:54 +01:00
John Goerzen
1af12e99a1 Tweaks to machine 2007-07-05 14:22:57 +01:00
John Goerzen
c6f01fb3c8 Machine now runs 2007-07-05 14:21:33 +01:00
John Goerzen
8da3012857 Added Machine.py 2007-07-05 12:05:06 +01:00
John Goerzen
9bee28cb13 Implement connect 2007-07-05 05:04:14 +01:00
John Goerzen
8200864f25 Retabified 2007-07-04 22:00:14 +01:00
John Goerzen
4b10e30d81 Added comment 2007-07-04 19:34:02 +01:00
John Goerzen
4867d81ca4 Correct readonly handling
Upstream imaplib now issues EXAMINE when readonly != None
offlineimap/imaplib.py's version always used SELECT
2007-07-04 19:19:06 +01:00
John Goerzen
691386b3d7 Compilation fixes 2007-07-04 19:17:27 +01:00
John Goerzen
196f35e972 Update version info 2007-07-04 19:17:14 +01:00
John Goerzen
abf9648fd8 Clean up imaplib imports 2007-07-04 18:53:48 +01:00
John Goerzen
1b9fa9ff9a Switch to imaplibutil Internaldate2Epoch 2007-07-04 18:51:57 +01:00
John Goerzen
91392b7578 Merging imaplibutil into code 2007-07-04 18:51:10 +01:00
John Goerzen
d352e034cc Remove local imaplib.py 2007-07-04 18:38:02 +01:00
John Goerzen
96fd233355 Start of work pulling code out of imaplib.py 2007-07-04 18:36:33 +01:00
John Goerzen
1e90e0fd78 Remove the Tk interfaces
These were a constant source of trouble.  Tkinter likely has multiple
memory leaks that OfflineIMAP was tickling.  I never used these, so poof,
goodbye.
2007-07-04 17:57:09 +01:00
Asheesh Laroia
35e7250187 only-write-once-to-cur-or-new.patch
I have tested this and Dovecot no longer beats offlineimap
to the punch. (-:

I achieved that by keeping the renames in tmp/ until it finally does
one last rename in new/ or cur/.
2007-06-13 04:42:15 +01:00
John Goerzen
799c867a4d Removed "print af" statements from imaplib.py
they were introduced by patch "Check all resolved addresses [deb #413030]"
and were screwing up the curses display.

refs deb#413030
2007-03-28 21:38:37 +01:00
John Goerzen
aca2a4458b UNDO: Added netrc support
thanks to bboissin plus offlineimap at gmail dot com
refs #14
2007-03-27 08:21:17 +01:00
John Goerzen
4f54887265 Improve filesystem flushing semantics
fsync the Maildir file, its final directory when writing a new message.

fsync the localstatus file and its final directory when writing the 
local status cache.

This should reduce duplication in the event of hardware trouble.

fixes #8

see thread at http://lists.complete.org/offlineimap@complete.org/2007/03/threads.html.gz
2007-03-28 21:23:18 +01:00
John Goerzen
4b564bd568 Added netrc support
thanks to bboissin plus offlineimap at gmail dot com
refs #14
2007-03-27 08:21:17 +01:00
David Favro
65a6b8aa81 Removed copyright notice; assigning copyright to John Goerzen 2007-03-16 03:45:28 +01:00
David Favro
82c215023c Removed copyright notice; assigning copyright to John Goerzen 2007-03-16 03:44:54 +01:00
David Favro
b06845fc70 UID validity diagnostics improvement
* Reduced the number of parameters passed to ui.validityproblem() because they were all just method-calls to the folder object, which is already passed as the first parameter (reduction of unnecessary complexity).

* Improved the diagnostic message for an 'UID validity problem' by including the name of the repository in which the folder resides; previously it was not possible to determine from the diagnostic alone on which side the problem was.
2007-03-15 05:41:43 +01:00
David Favro
657b470d74 UID validity diagnostics improvement
* Reduced the number of parameters passed to ui.validityproblem() because they were all just method-calls to the folder object, which is already passed as the first parameter (reduction of unnecessary complexity).
2007-03-15 05:39:15 +01:00
John Goerzen
79a596be7b Don't leave preauthtunnel zombies with autorefresh
From: Peter Colberg

Hello,

using offlineimap with the preauthtunnel option to start a remote
IMAP daemon via ssh, a zombie process is left behind during the
autorefresh sleep period if not holding the connection open.

Above behaviour is a result of using os.popen2 to spawn the tunnel
process, which makes it impossible waiting for the child process
to terminate when shutting down the tunnel.

The patch included below fixes the issue by employing the Popen
class from the subprocess module, which seems to be the preferred
way to spawn processes and connect to their pipes in any case (at
least since python version 2.4.4, which fixes a memory leak in the
subprocess module).

Regards,
Peter

fixes deb#410730
2007-03-14 02:54:19 +01:00
John Goerzen
82d5d5e675 Check all resolved addresses [deb #413030]
From: Mark Brown <broonie@sirena.org.uk>
Currently offlineimap will attempt to connect to the first address
returned by addrinfo() for the remote system and will fail if that fails
even if another result would have worked.  This is particularly common
when the remote system supports both IPv4 and IPv6 - a laptop may in
some environments have no routable IPv6 connectivity so if the IPv6
address is returned first the connect will fail even though IPv4 would
have worked.

This is actually a bug in imaplib, a copy of which is included in
offlineimap.  This patch fixes the problem by looping over all the
results returned by getaddrinfo().  Unfortunately it mangles the error
reporting slightly since I couldn't work out how to raise an appropriate
exception, though given that that that was a Python backtrace there was
work to do there anyway.

Note that I have only tested the SSL case.
2007-03-08 02:59:32 +01:00
John Goerzen
ca3a306ecc --help shows available UIs now
Thanks to Daniel Rall for the patch.
fixes #5
2007-01-11 10:15:06 +01:00
aaron
71c8b2e7c4 Configurable thread status character for ui.Curses.Blinkenlights 2006-12-11 06:12:00 +01:00
John Goerzen
2d9c1ed9b8 Updating version number to 4.0.16 2006-12-02 21:59:02 +01:00
John Goerzen
aa019172cb Handle rtime being Null when writing to Maildir
fixes #2
debian #401290
2006-12-02 21:54:26 +01:00
John Goerzen
c31f60f8df Update copyright date in Maildir.py 2006-12-02 21:54:15 +01:00
Daniel Burrows
1844cefd17 Remove a redundant (and mostly harmless) output of the error string from the Curses UI.
It looks like I accidentally recorded the wrong version of Curses.py --
originally this code was there, but I moved it over to UIBase so it would
cover the TTY UI also.
2006-12-01 12:27:12 +01:00
Daniel Burrows
dc8f3c944d Add a try: block to catch exceptions that occur before the main loop and to call ui.mainException().
I'm not sure if this is the "right" way to handle exceptions, but it does
correctly print the error message AFTER shutting down curses for me.
2006-12-01 11:59:22 +01:00
Daniel Burrows
c7894a01f0 Instead of blowing up when the account name is missing, display a useful error message that gives the correct account names. 2006-12-01 11:54:25 +01:00
Daniel Burrows
0ee7dfd435 Add parameters to terminate() that specify an (optional) error message to display on termination. 2006-12-01 11:54:12 +01:00
John Goerzen
2977f53244 Fix lack of revstr in version.py 2006-11-30 12:23:18 +01:00
John Goerzen
f2515a0b02 Updated copyright and version info for 4.0.15 2006-11-30 10:51:14 +01:00
John Goerzen
fc4e31e0db Updated homepage, refs #1 2006-11-30 10:46:51 +01:00
John Goerzen
f75a89d954 Updated copyright and version info 2006-10-19 02:04:28 +01:00
John Goerzen
a6db99a21e Add remote{host,user,pass}eval config options (need documentation yet)
From Ben Kibbey

hello,

Attached is a patch to enable evaluation of account credentials with the
remotehosteval, remoteusereval and remotepasseval configuration options.
I needed this because rather than change all my other programs
configuration settings when I change, say a password, I store them in a
file. So I call a function in pythonfile which parses the credential
file and returns the wanted info. Not really very well tested, but not
complex either. Offlineimap is great, thanks.
2006-10-17 20:55:03 +01:00
John Goerzen
89e530ff6e New restoreatime patch from Ben Kibbey
From: Ben Kibbey
Subject: Re: Removed restoratime from OfflineIMAP

On Wed, May 03, 2006 at 10:08:35PM -0500, John Goerzen wrote:
> Hi Ben,
> 
> Thanks for your restoreatime patch.
> 
> However, I have received this bug report:
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=365933
> 
> After looking at the problem, here's what's going on.
> 
> The person is using IMAP as the local repository as well.
> 
> You really need to move the atime save and restore code from accounts.py
> into the repository/Maildir.py.  Then, for any new call you add to the
> Maildir repository (that will be called from outside Maildir.py), you
> need to add a corresponding default function to repository/Base.py, and
> also make sure that on folders (such as IMAP) where atime restoration
> makes no sense, no error is generated.
> 
> Let me know if that doesn't make sense to you.  If you get it fixed, I'd
> be happy to re-apply it to a future version of OfflineIMAP.
> 
> -- John Goerzen
> 

Attached is a new diff that should work though not really tested
(v4.0.14). In repository/Base.py restore_atime() will call
self.restore_folder_atimes() only if the folder type is Maildir. Let me
know if it has any more problems.
2006-09-06 02:33:07 +01:00
John Goerzen
9d7df0e21a Fix up date parsing to use message date if no rtime is available 2006-08-22 02:13:39 +01:00
John Goerzen
03488ba81b Sync INTERNALDATE <-> mtime
The attached patch adds syncing the INTERNALDATE of IMAP folders with
the mtime of messages in maildir folders.
I want this to happen, because I'm running a dovecot over the maildirs
synced by offlineimap, and that uses the mtime as the INTERNALDATE.
When using mutt to view messages I generally sort based on the received
date, which for IMAP folders is the INTERNALDATE.

Since this is the first real coding I've done in Python the patch may
need to be cleaned up some, but it's working pretty well for me.  I've
added new messages to each side, and the received date has been
preserved going both ways.
2006-08-22 02:09:36 +01:00
John Goerzen
39a18fef60 Update FSF address 2006-08-12 05:15:55 +01:00
Adam Spiers
5fc0e1ae42 helpful comments 2006-05-16 04:40:23 +01:00
Adam Spiers
b39845c488 stop UID FETCH 0 errors 2006-05-16 04:31:44 +01:00
Adam Spiers
2e52bcdafe failure to obtain uid indicated by savemessage_searchforheader return value <= 0, not ValueError 2006-05-16 04:30:48 +01:00
Adam Spiers
720511f3f1 add missing ) 2006-05-16 04:27:57 +01:00
Adam Spiers
f2d4c668d5 return 0 rather than raise exception to indicate that message was saved with unknown UID 2006-05-16 03:34:46 +01:00
Adam Spiers
f11a49f263 make savemessage_searchforheader more robust 2006-05-15 03:51:12 +01:00
John Goerzen
8064ee26bd Prepping 4.0.13 2006-05-04 18:37:20 +01:00
John Goerzen
5a6b2a1ebd Revert restoreatime patch 2006-05-04 09:05:46 +01:00
John Goerzen
c0d031e760 Remove parens for SEARCH command
Patch from Adam Spiers

Reported that parens were causing trouble for Groupwise IMAP server
2006-05-01 20:40:55 +01:00
John Goerzen
405275f541 New restoreatime patch
From: Ben Kibbey <bjk@luxsci.net>

Attached is a patch to restore the atime of Maildir folders after
syncing. It can be enabled via the 'restoreatime' boolean in the
configuration file. I needed this because offlineimap is run after a
fetchmail and my mail checker breaks.
2006-03-02 00:12:29 +01:00
John Goerzen
fabbf81c1a Workaround for bug in Exchange
With help from Mark R. Biggers, I discovered that Exchange doesn't like an
asterisk in a folder name.

Sigh.
2005-10-07 20:11:20 +01:00
John Goerzen
27fae4e7ac Readying 4.0.11 release 2005-08-24 19:07:15 +01:00
John Goerzen
1f25b5393b [324827] Fixed handling of invalid dates
Patch from Nikita V. Youshchenko

From: "Nikita V. Youshchenko" 
To: Debian Bug Tracking System
Subject: offlineimap: exception on mail with broken headers (+fix)
Date: Wed, 24 Aug 2005 13:41:08 +0400

Package: offlineimap
Version: 4.0.10
Severity: normal
Tags: patch

Recently I've got an exception (see below) while using offlineimap.
Exception was probably caused by invalid Date header of (likely spam)
message:
Date: Sat, 20 Aug 2005 4294967295:43:18 -0700
2005-08-24 19:01:42 +01:00
John Goerzen
0841e03a4c [319117] Unroll loop to speed performance on large folders
From: "Nikita V. Youshchenko"
I trued to use offlineimap and found that while being quite fast on
small folders, it takes up to several minutes (of 100% busy CPU and
almost no network traffic) to sync a folder with 2000+ messages.

While looking into the code, I found why this happens.
In folder/Base.py, in method BaseFolder.syncmessagesto_copy(),
dest.getmessagelist() is called inside a loop, while being a loop
invariant. Similar thing happens in BaseFolder.syncmessagesto_delete()
for self.getmessagelist().
This causes quadratic complexity over folder size.

Moving these calls out of loops make large folder sync fast (several
seconds instead of several minutes for folder with 2000 messages on
700MHz P3).
2005-08-23 08:15:09 +01:00
John Goerzen
ea4158dd6d Updated copyright and version files for 4.0.10 2005-05-24 00:12:58 +01:00
John Goerzen
d484b7da44 Removed unnecessary blank lines 2005-05-24 00:10:11 +01:00
John Goerzen
cf4a3b1861 Support IPv6 with SSL
Fix for Debian #309965.
2005-05-24 00:09:21 +01:00
John Goerzen
c42ad3ae55 Removed dep on profile
Keywords: 


(jgoerzen@complete.org--projects/offlineimap--head--1.0--patch-8)
2005-02-10 05:37:33 +01:00
John Goerzen
36d79a5c1f Checkpointing for .8
Keywords: 


(jgoerzen@complete.org--projects/offlineimap--head--1.0--patch-5)
2004-11-16 23:44:41 +01:00
John Goerzen
8137e53c14 Added code to limit command line length for very large mailboxes
Keywords: 


(jgoerzen@complete.org--projects/offlineimap--head--1.0--patch-4)
2004-11-16 23:41:09 +01:00
John Goerzen
440ee1708d Attempt to fix problem with getting back the wrong UID from APPENDUID
Keywords: 


(jgoerzen@complete.org--projects/offlineimap--head--1.0--patch-1)
2004-10-18 20:00:29 +01:00
John Goerzen
944209b858 Initial base-0 from arch 2005-04-16 20:35:25 +01:00
John Goerzen
d839be3c61 Step 2 of SVN to arch tree conversion 2005-04-16 20:33:35 +01:00
John Goerzen
3673e4c5d4 Step 1 of converting tree to Arch layout 2005-04-16 20:32:25 +01:00
jgoerzen
c406081209 /offlineimap/head: changeset 593
Fixed silly error
2004-08-02 04:42:57 +01:00
jgoerzen
dff3c0a97a /offlineimap/head: changeset 592
This is 4.0.7
2004-08-02 03:50:23 +01:00
jgoerzen
cf464889bf /offlineimap/head: changeset 591
Added additional debugging for IMAP download
2004-08-02 03:49:16 +01:00
jgoerzen
e23d476f9c /offlineimap/head: changeset 590
Preparing 4.0.6
2004-07-26 21:47:36 +01:00
jgoerzen
dd9f6475e6 /offlineimap/head: changeset 589
Various bug fixes and enhancements
2004-07-26 21:37:45 +01:00
jgoerzen
c1f25e5030 /offlineimap/head: changeset 588
Updated for 4.0.5
2004-07-13 21:25:27 +01:00
jgoerzen
6cfdefe7f7 /offlineimap/head: changeset 587
Updated ChangeLog
2004-07-13 21:24:46 +01:00
jgoerzen
e6d6663d6f /offlineimap/head: changeset 586
Added python, python-dev to build-deps.
2004-07-13 21:22:41 +01:00
jgoerzen
534961d299 /offlineimap/head: changeset 585
Updated changelog
2004-06-15 15:45:13 +01:00
jgoerzen
ae2d09a95c /offlineimap/head: changeset 584
Preparing 4.0.4
2004-06-15 15:44:05 +01:00
jgoerzen
35c7b66862 /offlineimap/head: changeset 583
Reverted patch from Daniel James and updated Changelog.
2004-06-15 15:43:14 +01:00
jgoerzen
98e35afd42 /offlineimap/head: changeset 582
Updated copyright info
2004-06-04 22:04:29 +01:00
jgoerzen
cff7f857b3 /offlineimap/head: changeset 581
Use dh_python
2004-06-04 21:50:57 +01:00
jgoerzen
094fd6eda8 /offlineimap/head: changeset 580
Final changes before 4.0.3
2004-06-04 21:47:21 +01:00
jgoerzen
246eda9c3d /offlineimap/head: changeset 579
Preparing 4.0.3
2004-06-04 21:42:52 +01:00
jgoerzen
69abd0e656 /offlineimap/head: changeset 578
Applied patch from Daniel James to adjust the insertion point for a
new header.
2004-06-04 21:29:24 +01:00
jgoerzen
e95dae8c3f /offlineimap/head: changeset 577
Fixed various doc bugs
2004-06-04 21:26:30 +01:00
jgoerzen
c8001aa5cf /offlineimap/head: changeset 576
Moved to Python2.3 and bumped version number
2004-06-04 21:13:11 +01:00
jgoerzen
c51c5c6596 /offlineimap/head: changeset 575
Fixed missing _display in Noninteractive.
2003-11-01 04:18:56 +01:00
jgoerzen
69433259cd /offlineimap/head: changeset 574
Slight changelog fix for 4.0.1
2003-10-11 10:23:47 +01:00
jgoerzen
6051f47b28 /offlineimap/head: changeset 521
A few fixes for Jython compatibility.
2003-07-26 03:01:25 +01:00
jgoerzen
ef95d2e5e7 /offlineimap/head: changeset 520
Updated docs
2003-07-26 02:47:18 +01:00
jgoerzen
93449e0132 /offlineimap/head: changeset 519
Updated docs with some history
2003-07-26 02:41:35 +01:00
jgoerzen
aabf02f155 /offlineimap/head: changeset 518
Fixed a problem with the version number printout routine.
2003-07-25 03:15:27 +01:00
jgoerzen
e0691da50f /offlineimap/head: changeset 517
Adjusted __init__ code to use __all__ to provide better compatibility
with jython.
2003-07-25 02:58:20 +01:00
jgoerzen
7a5434168f /offlineimap/head: changeset 515
Included more docs in Debian package.
2003-07-19 03:13:04 +01:00
jgoerzen
4cf7ee72d9 /offlineimap/head: changeset 514
Fixed a manpage typo. Closes: [debian.org #201497] Notify: bk@bk.cx
2003-07-19 02:59:56 +01:00
jgoerzen
56ddbcc518 /offlineimap/head: changeset 511
Final version number updates
2003-07-19 00:56:15 +01:00
jgoerzen
b8a3bcb0a1 /offlineimap/head: changeset 510
Final commits before 4.0. This is the re-built manual and updated
ChangeLog.
2003-07-19 00:54:18 +01:00
jgoerzen
ded1261411 /offlineimap/head: changeset 509
Added a section on upgrading to the documentation
2003-07-19 00:49:13 +01:00
jgoerzen
b62de2b09a /offlineimap/head: changeset 487
Fixed version confusion
2003-06-27 01:03:07 +01:00
jgoerzen
282a05dbfa /offlineimap/head: changeset 486
Prep for 3.99.19
2003-06-27 00:38:47 +01:00
jgoerzen
d636f95d45 /offlineimap/head: changeset 485
Applied patch from Joerg Wendland <joergland@debian.org> to use
APPENDUID result from mail servers that provide it. Closes: #198772.
Resolves: [debian.org #198772]
2003-06-27 00:28:54 +01:00
jgoerzen
96ac95c13f /offlineimap/head: changeset 484
Added a "force" option to imapserver/select to force a reloading of a
folder. Per [complete.org #67], when cachemessagelist() was called on
an object that was cached from a previous run, it would not re-issue
the select(). Closes: [complete.org #67]
2003-06-02 22:17:29 +01:00
jgoerzen
45265467a9 /offlineimap/head: changeset 482 2003-06-02 22:11:51 +01:00
jgoerzen
3b849724da /offlineimap/head: changeset 481
Updated
2003-06-02 22:09:57 +01:00
jgoerzen
d9c353b67a /offlineimap/head: changeset 480
Fixed the -l option
2003-06-02 20:52:33 +01:00
jgoerzen
332d07b4b0 /offlineimap/head: changeset 479
Made -d recognized
2003-06-02 20:07:30 +01:00
jgoerzen
022655dddd /offlineimap/head: changeset 478
Added -l option. Updated documentation for it. Changed _msg to
_display override in UI modules. Renamed "doc" to "docs" target in
Makefile to avoid conflicting with a subdir.
2003-06-02 20:06:18 +01:00
jgoerzen
d52c007857 /offlineimap/head: changeset 477
Fixed SSL for Python2.3.
2003-05-28 04:01:27 +01:00
jgoerzen
ce125cc366 /offlineimap/head: changeset 475
Preparing for 3.99.17
2003-05-06 20:27:36 +01:00
jgoerzen
b36c52d5af /offlineimap/head: changeset 474
- offlineimap (3.99.17) unstable; urgency=low

- Fixed two potential obscure race conditions in folder/Maildir.py. +
  Condition 1 involved the gettimeseq() function. This function
  accesses per-module variables but does not have a lock. It may have
  been possible for this to have been called in such a way that
  timeseq was not properly updated. + Condition 2 involved the call to
  gettimeseq(). Since the timeseq is based on the system clock, we now
  use the time as reported inside timeseq() rather than outside. This
  way, we can be assured that the same value is in use both places.

- Added debug code to savemessage in folder/Maildir.py to try to track
  down a mysterious 0-length file bug. -- John Goerzen
  <jgoerzen@complete.org> Tue, 6 May 2003 09:21:38 -0500
2003-05-06 20:26:12 +01:00
jgoerzen
4ab1ebf4a8 /offlineimap/head: changeset 472
Prepping for 3.99.16
2003-05-06 19:50:01 +01:00
jgoerzen
5454489a16 /offlineimap/head: changeset 471
- Added some significant debug code to folder/IMAP.py when saving a
  new message with APPEND. This should make it easier to track down
  bugs both in OfflineIMAP and in mail servers that implement this
  poorly.

- Fixed adding of X-OfflineIMAP header when the message starts out
  with no headers. (This should not generally occur.) This should help
  with some "invalid literal for long()" problems.
2003-05-06 19:41:13 +01:00
jgoerzen
7ddce0b57d /offlineimap/head: changeset 470
Added a note about the Debian bug this closes.
2003-04-30 03:54:07 +01:00
jgoerzen
422b5ea815 /offlineimap/head: changeset 469
Added from rev 5
2003-04-30 02:18:17 +01:00
jgoerzen
afba647f62 /offlineimap/head: changeset 467
When sep was /, the new Maildir support code would recursively try to
scan ., resulting in huge paths and an eventual crash. Fixed with a
one-line patch to Maildir.py. Closes: [complete.org #60] Sergei, The
below diff is going into 3.99.16. You can apply it to 3.99.15 and it
should work for you now. Please let me know. (Ignore any patch errors
for debian/changelog). Thanks for the report.
2003-04-29 22:30:26 +01:00
jgoerzen
3432a5e395 /offlineimap/head: changeset 466
Testing bug mailing
2003-04-29 21:48:52 +01:00
jgoerzen
ebf47b76c9 /offlineimap/head: changeset 465
This is more testing. Closes: [complete.org #62]
2003-04-29 21:46:05 +01:00
jgoerzen
ec0ed5b082 /offlineimap/head: changeset 464
Testing BTS actions. Notify: jglt@complete.org Notify: [complete.org
#62], [debian.org #154165]
2003-04-29 21:38:05 +01:00
jgoerzen
de4f3544e7 /offlineimap/head: changeset 463
Readying to accept changes, captain
2003-04-29 19:13:52 +01:00
jgoerzen
d2db8e5b17 /offlineimap/head: changeset 462
Updated copyright date. Notify: jgoerzen@complete.org,
jgoerzen@debian.org
2003-04-29 09:38:20 +01:00
jgoerzen
2031dc7670 /offlineimap/head: changeset 461
Updated the ChangeLog
2003-04-29 09:35:50 +01:00
jgoerzen
1043658491 /offlineimap/head: changeset 459
Preparing for 3.99.15
2003-04-29 03:41:50 +01:00
jgoerzen
ce12331573 /offlineimap/head: changeset 458
autorefresh may now be a floating-point value. Closes: #190060.
2003-04-29 03:25:42 +01:00
jgoerzen
56ac894f41 /offlineimap/head: changeset 457
Made OfflineIMAP IPv6-aware. Used the short patch from Adriaan Peeters
<apeeters@lashout.net> in Debian bug report 186636. Closes: #186636.
2003-04-29 03:17:30 +01:00
jgoerzen
044877a5f5 /offlineimap/head: changeset 456
Fixed a silly error relating to handling of the remotepassfile.
Closes: #189935.
2003-04-29 02:52:03 +01:00
jgoerzen
0ff4f610de /offlineimap/head: changeset 455
Raise an exception when the status area is locked. This will cause UIs
to go through their normal exception handling code. In particular, for
the Curses.Blinkenlights interface, the Curses module will be stopped
and the error message will be printed on the console. Previously, this
error message would not have been visible. Closes: #185709.
2003-04-29 02:48:55 +01:00
jgoerzen
eab7170aea /offlineimap/head: changeset 454
Updated bug closing number
2003-04-29 02:43:41 +01:00
jgoerzen
45e8543541 /offlineimap/head: changeset 453
Backed out removal of SYNC_WITH_TIMER_TERMINATE code to deal with
completed syncs. Without this code, -o broke because the app would
never terminate.
2003-04-29 01:04:22 +01:00
jgoerzen
30d18b0e3f /offlineimap/head: changeset 451
Updated for 3.99.14
2003-04-28 20:16:58 +01:00
jgoerzen
a206290329 /offlineimap/head: changeset 450
Preparing for 3.99.14
2003-04-28 20:16:30 +01:00
jgoerzen
0db32b6393 /offlineimap/head: changeset 449
- Slight renaming in offlineimap.conf.minimal to clarify things.

- Documentation updated with information about new features. Closes:
  #189771. + Described IMAP-IMAP syncing + Updated minimal example
  with new offlineimap.conf.minimal + Updated UID information. Added
  link to recent mailing list discussion. + Described KMail syncing,
  which now works. + Added link to mailing list archives.
2003-04-22 21:47:25 +01:00
jgoerzen
0373766d70 /offlineimap/head: changeset 448
Fixed the regular expression that fixes line endings to make sure to
deal with \n\n properly.
2003-04-19 02:44:10 +01:00
jgoerzen
2288c0d37a /offlineimap/head: changeset 447
Added the ability to use the top level of a Maildir as folder named
".". Useful for generating Maildir trees for a Courier server.
2003-04-18 08:14:45 +01:00
jgoerzen
ce02e1c514 /offlineimap/head: changeset 446
Prepping for 0.99.13 -- fixed some niggling bugs
2003-04-18 08:06:04 +01:00
jgoerzen
79ab74a418 /offlineimap/head: changeset 445
- Now checks that SELECT succeeded when entering a folder.

- Verifies that folders listed on folderincludes actually exist by
  trying to enter them. Thus, if they do not exist, they can be
  created on the first run.
2003-04-18 05:31:25 +01:00
jgoerzen
ced2acc6cf /offlineimap/head: changeset 444
Fixed line-ending code to deal with files with mixed \n and \r\n
codes. This is a rare case, but now is more onerous because we now
have to find headers.
2003-04-18 05:18:54 +01:00
jgoerzen
b9f2eca42c /offlineimap/head: changeset 443
Fixed account names in password prompts
2003-04-18 03:43:54 +01:00
jgoerzen
faf26007b1 /offlineimap/head: changeset 442
Moved account-sep branch to head
2003-04-18 03:18:34 +01:00
jgoerzen
0f81229c68 /offlineimap/head: changeset 367
Reverted the license change
2003-04-16 20:23:45 +01:00
jgoerzen
12e08b1c62 /offlineimap/head: changeset 366 2003-04-02 05:59:13 +01:00
jgoerzen
7eb2bd9cd9 /offlineimap/head: changeset 365
Removed debug code
2003-03-14 00:48:42 +01:00
jgoerzen
fa51422580 /offlineimap/head: changeset 364
Removed debug code
2003-03-14 00:47:38 +01:00
jgoerzen
a09ff54b6e /offlineimap/head: changeset 363
Fixed ability to resize windows under Curses.
2003-03-14 00:47:09 +01:00
jgoerzen
3af9200226 /offlineimap/head: changeset 361
Updated for 3.99.10
2003-03-13 23:33:02 +01:00
jgoerzen
30ea5aa8a2 /offlineimap/head: changeset 360
Clarified license terms
2003-03-05 03:42:38 +01:00
jgoerzen
096e7da976 /offlineimap/head: changeset 359
Updated ChangeLog
2003-03-03 23:44:37 +01:00
jgoerzen
ddffdefb1c /offlineimap/head: changeset 358 2003-03-01 22:31:30 +01:00
jgoerzen
f826607c08 /offlineimap/head: changeset 357
Always do a flush in Noninteractive when writing out data.
2003-02-08 03:12:47 +01:00
jgoerzen
22d82d0949 /offlineimap/head: changeset 355
Readying 3.99.9
2003-02-06 03:56:24 +01:00
jgoerzen
0c94499a91 /offlineimap/head: changeset 354
Clarified multiple invocations
2003-01-30 03:36:13 +01:00
jgoerzen
fa250e47cb /offlineimap/head: changeset 353
Noted closing
2003-01-30 03:32:11 +01:00
jgoerzen
7b9b102e5e /offlineimap/head: changeset 352
Added check to make sure that two processes do not run in the same
directory at once.
2003-01-30 02:19:53 +01:00
jgoerzen
897e93700d /offlineimap/head: changeset 351
Fixed color on FreeBSD, and exceptions for non-color terminals
2003-01-11 00:47:35 +01:00
jgoerzen
9f76bac96f /offlineimap/head: changeset 350
Fixed a small typo
2003-01-09 09:01:29 +01:00
jgoerzen
802b7a8fff /offlineimap/head: changeset 348
This is prep for 3.99.7
2003-01-09 08:43:11 +01:00
jgoerzen
3cb8fb0062 /offlineimap/head: changeset 347
Preparing for 3.99.7
2003-01-09 03:16:07 +01:00
jgoerzen
399f7d9de9 /offlineimap/head: changeset 346
Initial phase of conversion to SGML documentation complete.
2003-01-09 00:03:58 +01:00
jgoerzen
6658c0bd65 /offlineimap/head: changeset 345
Finished first draft of doc conversion
2003-01-08 23:12:49 +01:00
jgoerzen
51cc4cd0ea /offlineimap/head: changeset 344 2003-01-08 22:13:21 +01:00
jgoerzen
c2de04ee36 /offlineimap/head: changeset 343 2003-01-08 22:08:01 +01:00
jgoerzen
caacad8b43 /offlineimap/head: changeset 342 2003-01-08 21:48:41 +01:00
jgoerzen
c666632af2 /offlineimap/head: changeset 341 2003-01-08 21:40:39 +01:00
jgoerzen
586c732cc9 /offlineimap/head: changeset 340
Fixed a braino for VerboseUI
2003-01-08 10:15:18 +01:00
jgoerzen
40d9c58016 /offlineimap/head: changeset 339 2003-01-08 06:02:43 +01:00
jgoerzen
9ee3b23c15 /offlineimap/head: changeset 338
Fixed keywords
2003-01-08 05:45:16 +01:00
jgoerzen
6b8145756c /offlineimap/head: changeset 337 2003-01-08 05:44:07 +01:00
jgoerzen
d6a58cdbf3 /offlineimap/head: changeset 336 2003-01-08 04:04:35 +01:00
jgoerzen
fbb0a21ccf /offlineimap/head: changeset 335
Starting to write it.
2003-01-08 03:05:27 +01:00
jgoerzen
9c89174fb8 /offlineimap/head: changeset 334
Added keyword expansion
2003-01-08 02:20:58 +01:00
jgoerzen
be5ff7f89e /offlineimap/head: changeset 333
Documentation being rewritten in DocBook
2003-01-08 02:18:33 +01:00
jgoerzen
4caecdbd72 /offlineimap/head: changeset 332
Fixed copyright year
2003-01-07 05:01:40 +01:00
jgoerzen
8bea6112a8 /offlineimap/head: changeset 330
Removed debug code. OK, NOW this is 3.99.6 :-)
2003-01-07 04:57:58 +01:00
jgoerzen
16156993b3 /offlineimap/head: changeset 329
This is 3.99.6
2003-01-07 04:56:08 +01:00
jgoerzen
ae6e182a2c /offlineimap/head: changeset 328
Better cleaning up, install new example.
2003-01-07 04:47:15 +01:00
jgoerzen
2d0ef8af4b /offlineimap/head: changeset 327
Bumped version number to 3.99.6
2003-01-07 04:37:27 +01:00
jgoerzen
f601a9850c /offlineimap/head: changeset 326
Added minimal config file; noted this in changelog
2003-01-07 04:30:37 +01:00
jgoerzen
16b3ce90ca /offlineimap/head: changeset 325
Touched up the isactive tests. Added defaults for many more options.
2003-01-07 04:15:22 +01:00
jgoerzen
1cc5cfda0a /offlineimap/head: changeset 324
Updated documentation and information with information about new
settings
2003-01-07 03:37:19 +01:00
jgoerzen
0c7bdb2630 /offlineimap/head: changeset 323
Due to possibly having one account sleep while another is reading a
password, and other tricky situations, support for nice updating and
cancelling of a sleep in TTY.TTYUI has been removed. However, this is
not going to be a huge problem because the new Curses Blinkenlights
interface has this support, and does it a lot better than TTY.TTYUI
ever could have.
2003-01-07 03:21:46 +01:00
jgoerzen
519a294e38 /offlineimap/head: changeset 322
Curses interface now can sleep, too. Woohoo.
2003-01-07 03:18:09 +01:00
jgoerzen
cb9c4d1df9 /offlineimap/head: changeset 321
More fine-tunning. Looks like using the grid manager is helping out.
2003-01-07 01:18:06 +01:00
jgoerzen
8eea66bc36 /offlineimap/head: changeset 320
Reworked the canvas. Before, problem was the label and buttons to the
right of the lights would make the window too wide. When the button
got added, the window would get even wider. That was because the
canvas would not shrink. My workaround is to use a separate canvas for
each light. Seems to be OK here....
2003-01-07 01:00:43 +01:00
jgoerzen
612a8e4ac4 /offlineimap/head: changeset 319
Working better now.
2003-01-07 00:31:19 +01:00
jgoerzen
b16f14e65a /offlineimap/head: changeset 318
More visual tweaking. The Button doesn't seem to be working well, so
I'm going to try a MenuButton.
2003-01-07 00:14:17 +01:00
jgoerzen
6a0bbe2529 /offlineimap/head: changeset 317
Basic Tk.Blinkenlights structure completed. Need to fine-tune the
display. Sleeping API added to Blinkenlights base class.
2003-01-07 00:04:40 +01:00
jgoerzen
c381f973f1 /offlineimap/head: changeset 316
Noted a few things for the docs
2003-01-06 23:19:00 +01:00
jgoerzen
99e9c22cec /offlineimap/head: changeset 315
Fixed up the VerboseUI for new account system. All that really needed
updating with the "Sync immediately" button, to cope with syncing
different accounts at different times. It's better now.
2003-01-06 23:15:15 +01:00
jgoerzen
9c761cddad /offlineimap/head: changeset 314
More locking updates. Introduced a new MultiLock to threadutil. This
lock will let a single thread acquire the same lock more than once,
keeping track of how many times this happens, and will release the
actual lock only when the lock's lock count gets back to zero. By
using MultiLock, various functions in Curses.py and Blinkenlights.py
no longer need to pass around to other functions a parameter
indicating whether or not a lock should be obtained. This was a large
cause of complexity and errors, which is now eliminated. Everything
seems to be working properly wrt locking at this point. The
Curses.Blinkenlights interface has achieved basic working
functionality.
2003-01-06 22:58:29 +01:00
jgoerzen
510fa037d8 /offlineimap/head: changeset 313
Just to be sure, since it could be called by multiple threads,
genmbnames will not lock itself.
2003-01-06 21:41:14 +01:00
jgoerzen
f652bc5bac /offlineimap/head: changeset 312
Updated the mbnames recorder to bring it back up-to-date with the new
account-centric system. It will now gather reports from account sync
threads, and when it has all that it's supposed to, it'll write out
the file.
2003-01-06 21:40:23 +01:00
jgoerzen
930f94fbb1 /offlineimap/head: changeset 311
Fixed a problem that prevented it from working on the console.
2003-01-06 12:11:00 +01:00
jgoerzen
752b7d84e7 /offlineimap/head: changeset 310
Added some temporary debug code to help weed out a few race conditions
with the curses Blinkenlights interface. Think I've finally got it.
I'm leaving the debugging code in for now, though, to help in case
there are future problems.
2003-01-06 12:07:16 +01:00
jgoerzen
2b9c425091 /offlineimap/head: changeset 309
More progress with bug fixes and locking
2003-01-06 05:54:59 +01:00
jgoerzen
d6b790a7da /offlineimap/head: changeset 308
More progress at debugging. The curses blinkenlights is now working
well, though it still has an occasional tendency to corrupt the light
display with comments from the log. I suspect a locking problem --
need to be more strict with iolock I suspect. Updated various modules
to register the threads' account names, etc.
2003-01-06 00:07:58 +01:00
jgoerzen
c48d8d4fda /offlineimap/head: changeset 307
Starting to work now.
2003-01-05 13:01:17 +01:00
jgoerzen
86df6db630 /offlineimap/head: changeset 306
Removed debug prints
2003-01-05 12:55:37 +01:00
jgoerzen
0b7d75de60 /offlineimap/head: changeset 305
Believed to be somewhat working now
2003-01-05 12:50:01 +01:00
jgoerzen
8301e3015f /offlineimap/head: changeset 304
Clarified copyright statement
2003-01-05 09:11:46 +01:00
jgoerzen
6b7c0801b0 /offlineimap/head: changeset 303
Removed password echo for debugging
2003-01-05 09:07:40 +01:00
jgoerzen
9df89638f5 /offlineimap/head: changeset 302
Now capable of actually reading passwords.
2003-01-05 09:07:00 +01:00
jgoerzen
ba0c95f6bc /offlineimap/head: changeset 301
Nominally-working Blinkenlights interface for Curses!
2003-01-05 08:51:35 +01:00
jgoerzen
380f654df5 /offlineimap/head: changeset 300
Beginnings of support for a curses-based Blinkenlights.
2003-01-05 05:51:17 +01:00
jgoerzen
96e20c91c3 /offlineimap/head: changeset 299
Started breaking Blinkenlights out into a base class.
2003-01-05 04:35:36 +01:00
jgoerzen
b51f302be7 /offlineimap/head: changeset 298
Removed this (not a real part of the program)
2003-01-04 05:58:04 +01:00
jgoerzen
854eaf3055 /offlineimap/head: changeset 297
Changed to a more account-centric behavior. The refresh time is now a
per-account variable. Implemented new account classes. User interfaces
must now be updated to take advantage of this.
2003-01-04 05:57:46 +01:00
jgoerzen
1691cdbf0f /offlineimap/head: changeset 296
Fixing error
2003-01-04 05:57:20 +01:00
jgoerzen
d59f7abdaa /offlineimap/head: changeset 295
Got Tk working again. Woohoo.
2003-01-03 08:08:10 +01:00
jgoerzen
8e3b18f375 /offlineimap/head: changeset 294
Updated with various fixes
2003-01-03 08:01:41 +01:00
jgoerzen
09828a9d4f /offlineimap/head: changeset 293
Now properly handles folder names that contain parenthesis. Used patch
from Kyler Laird in http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=173895. Closes: #173895.
2003-01-03 03:05:14 +01:00
jgoerzen
bbbb13f52a /offlineimap/head: changeset 292
Beginning of work to make it work with a threaded Tcl/Tk Tkinter.
2003-01-03 03:00:23 +01:00
jgoerzen
99352a39c2 /offlineimap/head: changeset 291
This is 3.99.5
2002-12-03 23:26:03 +01:00
jgoerzen
9b90c85003 /offlineimap/head: changeset 290
Updated for today's release
2002-12-03 23:25:06 +01:00
jgoerzen
832c7ddd66 /offlineimap/head: changeset 289
Fixed infinite loop in imapserver.py with preauth
2002-11-20 05:57:45 +01:00
jgoerzen
2756ca9d5a /offlineimap/head: changeset 288
Updated for 3.99.5
2002-11-20 05:34:09 +01:00
jgoerzen
872d960fa8 /offlineimap/head: changeset 287
Alter handling of messages flagged for deletion -- no longer
automatically delete them if expunge is 0. In Maildir folder, we will
now ignore the T flag entirely, and just pass it back and forth with
IMAP.
2002-11-12 22:40:40 +01:00
jgoerzen
61b6c32d0f /offlineimap/head: changeset 286
Added ability to disable expunging on the server.
2002-11-12 22:36:34 +01:00
jgoerzen
f7c4889918 /offlineimap/head: changeset 285
Adding missing import os to imapserver.py. Thanks to John Wiegley for
catching that. Updated changelog
2002-11-06 02:38:11 +01:00
mj
a2720a4d21 /offlineimap/head: changeset 284
Working (and tested) CRAM-MD5 implementation.
2002-11-06 02:10:14 +01:00
jgoerzen
32713cb0d1 /offlineimap/head: changeset 283
Fixed setup.py installation instructions.
2002-11-05 21:07:45 +01:00
jgoerzen
efb69df3f0 /offlineimap/head: changeset 282
Updated with more md5 debugging
2002-11-05 08:11:28 +01:00
jgoerzen
6b181da921 /offlineimap/head: changeset 281
Fixed CRAM-MD5 auth so it actually works now. This is 3.99.3
2002-11-05 02:24:41 +01:00
jgoerzen
b538581bf6 /offlineimap/head: changeset 280
Falls back to plain-text auth if CRAM-MD5 fails. Fixes [complete.org
#42]
2002-11-05 00:38:39 +01:00
jgoerzen
8392575e33 /offlineimap/head: changeset 279
Test commit to test offlineimap-commits
2002-11-05 00:29:39 +01:00
jgoerzen
4527b82221 /offlineimap/head: changeset 278
Moved password promting into imapserver.py. Passwords are now asked
for on-demand and typos will no longer crash the program (the user
will be re-prompted). Closes: #162672.
2002-11-05 00:15:42 +01:00
jgoerzen
d64138c228 /offlineimap/head: changeset 276
Updated
2002-11-02 23:30:41 +01:00
jgoerzen
2ebdae19c9 /offlineimap/head: changeset 275
Trial cram-md5 support
2002-11-02 23:14:02 +01:00
jgoerzen
3c395c66a9 /offlineimap/head: changeset 274 2002-10-30 05:26:49 +01:00
jgoerzen
4ab770bb3d /offlineimap/head: changeset 273
Handle uidvalidity file in an atomic fashion
2002-10-21 22:40:31 +01:00
jgoerzen
09a2ac9221 /offlineimap/head: changeset 272
When an exception occurs, OfflineIMAP will attempt to print the last
50 debug messages, whether or not debugging was enabled for this
session. This way, even unexpected and non-repeatable errors stand a
chance of getting a more detailed log.
2002-10-17 00:27:27 +01:00
jgoerzen
434233d8c4 /offlineimap/head: changeset 271
More work-arounds for imaplib
2002-10-16 06:43:02 +01:00
jgoerzen
51abdbe08a /offlineimap/head: changeset 270
Another attempt at dealing with bogus IMAP stuff
2002-10-16 00:07:02 +01:00
jgoerzen
2ccea111dd /offlineimap/head: changeset 269
This is 3.99.1
2002-10-10 06:38:55 +01:00
jgoerzen
26e6472dd3 /offlineimap/head: changeset 268
Various bugfixes
2002-10-10 06:37:37 +01:00
mj
528a349d4b /offlineimap/head: changeset 267
mbnames folder filter takes *2* arguments.
2002-10-09 21:55:34 +01:00
jgoerzen
d3f924f6fc /offlineimap/head: changeset 266
Fixed a syntax error found by Corey.
2002-10-08 21:18:11 +01:00
jgoerzen
94eb83efd7 /offlineimap/head: changeset 264
Fixed date
2002-10-07 22:32:32 +01:00
jgoerzen
3d3dfff730 /offlineimap/head: changeset 263
Changelog for 3.99.0
2002-10-07 22:31:20 +01:00
jgoerzen
22f68cd2e0 /offlineimap/head: changeset 262
Final prep for 3.99.0
2002-10-07 22:30:35 +01:00
jgoerzen
45a97b42b8 /offlineimap/head: changeset 261
- Moved some code from offlineimap/init.py to new file
  offlineimap/syncmaster.py to help dileneate between code that
  performs different functions.

- Moved threadexited from offlineimap/init.py to
  offlineimap/threadutil.py.
2002-10-07 22:17:13 +01:00
jgoerzen
eaec9e7db4 /offlineimap/head: changeset 260
Updated -- the init changes now actually work.
2002-10-07 22:11:19 +01:00
jgoerzen
73199ad735 /offlineimap/head: changeset 259
Initial commit on initialization reorganization
2002-10-07 21:59:02 +01:00
jgoerzen
ca56d8c899 /offlineimap/head: changeset 258
Added a workaround to imaputil.py to deal with a bug in imaplib.py's
tuple when a response contains a literal in certain cases.
2002-10-07 21:18:02 +01:00
jgoerzen
c6c40bdf34 /offlineimap/head: changeset 257
Added more debugging to the IMAP debug stream
2002-10-01 19:57:56 +01:00
jgoerzen
24cb7f76c2 /offlineimap/head: changeset 256
Fixed manual to reflect single-user startup
2002-09-30 23:10:46 +01:00
jgoerzen
f60d4d994b /offlineimap/head: changeset 255
Added folderfilter capability to the mbnames section
2002-09-30 23:09:27 +01:00
jgoerzen
5d3bb88657 /offlineimap/head: changeset 253
Final 3.2.8 work
2002-09-30 21:49:01 +01:00
jgoerzen
4144c19a38 /offlineimap/head: changeset 252
Prepare for 3.2.8
2002-09-30 21:48:45 +01:00
jgoerzen
b2a04a5000 /offlineimap/head: changeset 251
Checked in a work-around for IMAP servers that misbehave with LIST ""
""
2002-09-30 21:47:05 +01:00
jgoerzen
edc301f14d /offlineimap/head: changeset 249
No longer has to rename due to new naming.
2002-09-26 22:27:23 +01:00
jgoerzen
cd74ed2a08 /offlineimap/head: changeset 248 2002-09-26 22:12:52 +01:00
jgoerzen
3700231446 /offlineimap/head: changeset 247
Updated the ChangeLog
2002-09-26 22:08:04 +01:00
jgoerzen
a7801e5f22 /offlineimap/head: changeset 246
Final changes for .7
2002-09-26 20:36:16 +01:00
jgoerzen
1687a4993c /offlineimap/head: changeset 245
Changed version number
2002-09-19 22:50:51 +01:00
jgoerzen
f1aeb50d04 /offlineimap/head: changeset 244
Fixed font specification support
2002-08-27 02:35:21 +01:00
jgoerzen
6a6a49b1a9 /offlineimap/head: changeset 243
Font size for Blinkenlights UI is now configurable.
2002-08-27 02:06:02 +01:00
jgoerzen
1c8b42500b /offlineimap/head: changeset 242
Moved executable to bin/offlineimap. This will allow setup.py to
properly install it as offlineimap instead of offlineimap.py.
2002-08-24 02:55:20 +01:00
jgoerzen
06b21e1140 /offlineimap/head: changeset 241
Use /usr/bin/env in bangpath. Missed that somehow.
2002-08-24 02:24:29 +01:00
jgoerzen
cbcf797944 /offlineimap/head: changeset 236
Now the containing repository is stored within a folder. This will be
necessary for moves.
2002-08-20 21:54:02 +01:00
jgoerzen
e1657f962e /offlineimap/head: changeset 235
- Changed indentation in debian/control. Closes: #156327.

- Removed calls to folder object deletions. None have been implemented
  anyway.

- folder/Maildir.py: unlink throws OSError, not IOError; fixed. Now
  handles message deleting race condition properly. Closes: #154497.
2002-08-17 02:01:12 +01:00
jgoerzen
c57d5a240b /offlineimap/head: changeset 234
Preparing for 3.2.5
2002-08-10 02:52:09 +01:00
jgoerzen
9d1a4e2275 /offlineimap/head: changeset 233
Made more resiliant in the face of invalid dates.
2002-08-10 01:29:29 +01:00
jgoerzen
1c29a7206e /offlineimap/head: changeset 232
Added documentation for Tommi's patch.
2002-08-09 22:25:28 +01:00
jgoerzen
c61e3a89cf /offlineimap/head: changeset 231
Applied part 2 of tv's patch
2002-08-09 22:12:09 +01:00
jgoerzen
442c820f87 /offlineimap/head: changeset 230
More of part 1 of the patch
2002-08-09 22:11:12 +01:00
jgoerzen
9be2bec748 /offlineimap/head: changeset 229
Applied part 1 of Tommi's patch.
2002-08-09 22:10:38 +01:00
jgoerzen
6e94ead957 /offlineimap/head: changeset 228
Nicely handle uploading messages without Message-Id headers
2002-08-09 21:57:06 +01:00
jgoerzen
608f740cd3 /offlineimap/head: changeset 226
Changelog committed
2002-08-09 02:58:44 +01:00
jgoerzen
1358495af1 /offlineimap/head: changeset 225
Preparing for 3.2.4
2002-08-09 02:58:14 +01:00
jgoerzen
5feb54b493 /offlineimap/head: changeset 224
Fix syntax
2002-08-09 02:53:57 +01:00
jgoerzen
6c1d5a0d27 /offlineimap/head: changeset 223
First stab at fixing nested mailbox bug
2002-08-09 02:53:05 +01:00
jgoerzen
47b2af5c0d /offlineimap/head: changeset 222
Typo fix.
2002-08-09 00:35:35 +01:00
jgoerzen
d9836ef791 /offlineimap/head: changeset 221
Readying 3.2.3. Updated docs, version, etc.
2002-08-08 21:21:56 +01:00
jgoerzen
9cbb14f5dd /offlineimap/head: changeset 220
Now logs folder names of return value when debugging.
2002-08-08 21:18:45 +01:00
jgoerzen
c65ca9efe3 /offlineimap/head: changeset 219
Updated debugging
2002-08-08 21:17:36 +01:00
jgoerzen
09ed5e2fcc /offlineimap/head: changeset 218
Added maildir repository debug code
2002-08-08 21:15:30 +01:00
jgoerzen
a6e85174fe /offlineimap/head: changeset 217
-d now takes a parameter to specify what kind of debugging to do.
imaplib now does debugging through the UI system. UIBase now has a
debugging process.
2002-08-08 21:03:36 +01:00
jgoerzen
60ea05cf98 /offlineimap/head: changeset 215
Readying version 3.2.2.
2002-08-08 07:28:34 +01:00
jgoerzen
f45ec311f4 /offlineimap/head: changeset 214
Fixed the scanner
2002-08-08 04:27:55 +01:00
jgoerzen
29d64f7dbe /offlineimap/head: changeset 213
Fix to makefolder() such that it won't fail when hierarchical folders
are used and sub-folders are created before master folders.
2002-08-08 04:01:31 +01:00
jgoerzen
850db440ae /offlineimap/head: changeset 212
Modified to make getfolders() recursively scan.
2002-08-08 03:57:52 +01:00
jgoerzen
12b5e89949 /offlineimap/head: changeset 211
Yet more typos
2002-08-08 03:45:03 +01:00
jgoerzen
b56304090a /offlineimap/head: changeset 210
Preventive security: folder names may not contain ./ or start with /.
2002-08-08 03:44:37 +01:00
jgoerzen
f086c3ff0a /offlineimap/head: changeset 209
Fixed a stupid braino in the last commit.
2002-08-08 03:41:52 +01:00
jgoerzen
cd6b343bb0 /offlineimap/head: changeset 208
Added support for /-separated Maildirs -- that is, hierarchical
Maildir trees. Fixes [complete.org #28] and, for Debian, Closes:
#155460.
2002-08-08 03:40:18 +01:00
jgoerzen
7b44f609f0 /offlineimap/head: changeset 207
- Oops, incomplete commit from the last one:

- If a given Maildir folder is new, remove the associated local status
  cache file, if any. That way, there will not be any chance of
  propogating hordes of deletes and adds based on old status data.
2002-08-08 03:22:38 +01:00
jgoerzen
225e9c61d6 /offlineimap/head: changeset 206
If a given Maildir folder is new, remove the associated local status
cache file, if any. That way, there will not be any chance of
propogating hordes of deletes and adds based on old status data.
2002-08-08 03:20:36 +01:00
jgoerzen
a3f422cf98 /offlineimap/head: changeset 205
Better handling of read-only folders. We will now warn if there is a
change, but not propogate it. New config variable ignore-readonly can
suppress the warnings. This fixes [complete.org #10] and, for Debian,
Closes: #154769. changelog: noted the change IMAP.py: trap
imapobj.readonly more often UIBase.py: new methods to handle the
warnings offlineimap.conf: new ignore-readonly variable.
2002-08-08 02:57:17 +01:00
jgoerzen
3b4c306f5d /offlineimap/head: changeset 204
Scrolling behavior is better now; sometimes, with fast-scrolling text,
the log would stop scrolling.
2002-08-08 01:46:18 +01:00
jgoerzen
fd7295d9a6 /offlineimap/head: changeset 203
Testing new svn installation
2002-08-07 09:11:02 +01:00
jgoerzen
7bcfc7172a /offlineimap/head: changeset 202
Testing new subversion installation
2002-08-07 09:10:14 +01:00
jgoerzen
a605ce468a /offlineimap/head: changeset 201
We're back, woohoo.
2002-08-07 09:08:16 +01:00
mj
4e323e188f /offlineimap/head: changeset 200
Better update the changelog as well.
2002-07-26 00:22:17 +01:00
mj
73438ce4c7 /offlineimap/head: changeset 199
Fix typo; section names are case-sensitive.
2002-07-26 00:04:09 +01:00
jgoerzen
3a4660d6df /offlineimap/head: changeset 198
Noted the use of Gray
2002-07-25 19:22:41 +01:00
jgoerzen
5ce8c7d264 /offlineimap/head: changeset 196
Preparing for 3.2.1
2002-07-25 09:02:03 +01:00
jgoerzen
28938de6ea /offlineimap/head: changeset 195
Backed out check for . in account names for now. Will put it back in
when we have a consensus on what exactly to do. Doubt that anyone has
a foldername that would conflict with Blinkenlights anyway.
2002-07-25 08:41:56 +01:00
jgoerzen
091ec4b21e /offlineimap/head: changeset 194
Updated the changelog, added the new bufferlines value to
offlineimap.conf, and worked out a few more bugs with the resizing
support in Tk.py.
2002-07-25 08:36:24 +01:00
mj
2b2fbf450b /offlineimap/head: changeset 193
Normalize exception message to 80 characters and fix account name
interpolation.
2002-07-25 08:16:21 +01:00
jgoerzen
413b5aac0b /offlineimap/head: changeset 192
Removed the old Log menu code; no longer necessary.
2002-07-25 06:37:54 +01:00
jgoerzen
e45e737640 /offlineimap/head: changeset 191
More tweaks
2002-07-25 06:06:01 +01:00
jgoerzen
eb790cd78c /offlineimap/head: changeset 190
Lots of updates; see changelog
2002-07-25 05:46:27 +01:00
jgoerzen
c8442d9a68 /offlineimap/head: changeset 189
Cleaned up color handling for timer
2002-07-25 01:40:58 +01:00
jgoerzen
2ad3c6459a /offlineimap/head: changeset 187
Final prep for 3.2.0
2002-07-25 00:16:49 +01:00
jgoerzen
7b4bb906ec /offlineimap/head: changeset 186
Updated changelog for 3.2.0.
2002-07-25 00:16:05 +01:00
jgoerzen
05d8ffcc46 /offlineimap/head: changeset 185
Fixed to take config as new init is proceeding.
2002-07-25 00:15:30 +01:00
jgoerzen
1eb04c25df /offlineimap/head: changeset 184
Updated the manual with blinkenlights. Fixed build-dep to have
python2.2-dev. Fixed TTY to has isusable() that requires TTYs on stdin
and stdout.
2002-07-25 00:13:09 +01:00
jgoerzen
2a4b20e951 /offlineimap/head: changeset 183
Adding configuration information for Blinkenlights.
2002-07-24 23:20:42 +01:00
jgoerzen
11ca9ea196 /offlineimap/head: changeset 182
Added a logging option
2002-07-24 23:04:22 +01:00
jgoerzen
a4c6a338f9 /offlineimap/head: changeset 181
Basic Blinkenlights done.
2002-07-24 22:00:02 +01:00
jgoerzen
c38b0a06cf /offlineimap/head: changeset 179
More work on the Blinkenlights interface.
2002-07-24 21:38:40 +01:00
jgoerzen
702a73288d /offlineimap/head: changeset 178
Preparing for 3.2.0
2002-07-24 18:54:07 +01:00
jgoerzen
81801f454e /offlineimap/head: changeset 176
This is release 3.1.1. Fixed a typo in the manual: Tk.TKUI -> Tk.TkUI.
Noted the new version and release time in the changelog and in
version.py. Rebuilt the documentation. Feed the cats, watered the
plants, backed up /dev/null.
2002-07-24 18:46:18 +01:00
jgoerzen
6605337cb1 /offlineimap/head: changeset 175
New Blinkenlights interface.
2002-07-24 09:34:59 +01:00
jgoerzen
be69480f60 /offlineimap/head: changeset 170
Noted recent changes.
2002-07-24 01:47:13 +01:00
jgoerzen
6aed9485d8 /offlineimap/head: changeset 169
More optimizations -- this time fix readline() to not work character-
by-character!
2002-07-24 01:28:40 +01:00
jgoerzen
045665deb9 /offlineimap/head: changeset 168
Made some more optimizations
2002-07-24 00:36:44 +01:00
jgoerzen
9d3298f5a7 /offlineimap/head: changeset 167
- Modified imaputil.py and folder/Maildir.py to run faster. Eliminated
  many regular expressions; pre-compiled many others.

- Fixed threadutil's exitnotifyloop to always handle threads in the
  order they exited, rather than sometimes in the inverse order. This
  way, make sure to handle thread's exception messages before a thread
  exited.
2002-07-23 20:55:18 +01:00
jgoerzen
674ace5896 /offlineimap/head: changeset 165
This is 3.1.0.
2002-07-23 02:50:14 +01:00
jgoerzen
73bf6b6f36 /offlineimap/head: changeset 164
Added profile mode (-P) and updated the documentation with it.
2002-07-23 02:48:15 +01:00