? conf
? confdefs.h
? configure.in.2
? conftest
? conftest.c
? conftest.nm
? dbox-todo
? diff
? dovecot-1.0.alpha1.tar.gz
? dovecot-1.0.alpha1.tar.gz.asc
? dovecot-1.0.alpha2.tar.gz
? dovecot-1.0.alpha2.tar.gz.asc
? dovecot-1.0.alpha3.tar.gz
? dovecot-1.0.alpha3.tar.gz.asc
? dovecot-1.0.alpha4.tar.gz
? dovecot-1.0.alpha4.tar.gz.asc
? dovecot-1.0.alpha5.tar.gz
? dovecot-1.0.alpha5.tar.gz.asc
? dovecot-config
? imaptest
? log
? m4
? mbox-min-index-size.diff
? tz.diff
? zlib-plugin
? zlib-plugin.tar.gz
? doc/new
? src/debug.diff
? src/diff
? src/hang-debug.diff
? src/log
? src/quota.tar.gz
? src/x
? src/auth/diff
? src/auth/log
? src/auth/sasl-authrization-beginnings.diff
? src/imap/cmd-append.c2
? src/imap/diff
? src/imap/log
? src/imap/vgcore.14150
? src/imap/vgcore.24281
? src/imap-login/gmon.out
? src/imap-login/log
? src/lib/diff
? src/lib/inotify.h
? src/lib/mempool-accounting.diff
? src/lib/nohup.out
? src/lib-index/diff
? src/lib-index/idx
? src/lib-index/idx2
? src/lib-index/idxview
? src/lib-index/idxview.c
? src/lib-index/logview
? src/lib-index/logview.c
? src/lib-index/mail-cache-debug.diff
? src/lib-index/mail-cache-uid.diff
? src/lib-index/x
? src/lib-sql/diff
? src/lib-storage/index/asd
? src/lib-storage/index/dbox/old
? src/lib-storage/index/maildir/diff
? src/lib-storage/index/mbox/diff
? src/lib-storage/index/mbox/mbox-lock.c2
? src/lib-storage/index/mbox/mbox-min-index-size.diff
? src/master/log
? src/master/x
? src/pop3/diff
? src/pop3/x
? src/pop3/y
? src/util/gdbhelper
Index: TODO
===================================================================
RCS file: /var/lib/cvs/dovecot/TODO,v
retrieving revision 1.52
diff -u -r1.52 TODO
--- TODO	10 Dec 2005 22:29:30 -0000	1.52
+++ TODO	14 Jan 2006 13:57:38 -0000
@@ -1,4 +1,4 @@
- - IDLE: Send "OK Timeout in n minutes" every 2 minutes to fix NAT/FW timeouts
+ - file_dotlock_open()/create() should maybe take file creation mode..
  - inetd: pop3-login logs in with imap executable
  - dovecot --exec-mail imap doesn't set MAIL environment?
  - with blocking passdb we're not caching lookups if the password was wrong
@@ -8,14 +8,12 @@
  - LDA: empty mail gives an error. <LF> mail gives another error.
  - LDA: "message <$MSGID> for $USER: $action" logging
  - if PAM child process doesn't finish within a minute, kill it
- - maildir: hardlink copying + keywords are broken
  - Support listening in multiple sockets?..
  - Thunderbird+pop3 DELE error..?
  - calls fsync()s etc. less often (when copying). optionally disable them.
  - stop using atol(), atoi(), strtoul() etc. in places where we actually
    care about what they return, and rather create our own function which
    checks if the input overflows the integer, and if so call i_fatal()
-- for master/config rewrite: make sure the log changes will work
  - when sorting maildir files, sort based on Mxxxx first so the files are
    sorted always in ascending order. required for proper out-of-quota uidlist
    handling
@@ -96,8 +94,6 @@
        indexes are in local disk but actual mails are accessed through NFS.
 
  - mbox
-     - if we made no actual visible changes to the mbox, we probably should
-       update access time == mtime at the end of syncing
      - size.physical isn't cached, but should it even be? ..
      - syncing existing indexes takes 4x longer than creating new one, why?
      - how well does dirty sync + status work? it reads the last mail every
@@ -107,7 +103,7 @@
        should make sure the last message ends with LF even if it doesn't exist
        in the file
     - COPY doesn't work to itself (lock assert crash)
-    - keep mbox lock for two extra seconds after sync
+    - keep mbox lock for two extra seconds after sync (do we really need to?)
     - move /var/mail/user to ~/mbox if ~/mbox exists.. supposedly this
       could be useful if /var/mail doesn't have quota, but ~/mail does.
       now, what do we then do if we can move only some of the mails?..
@@ -125,10 +121,6 @@
     - with pop3 don't move messages from new/ to cur/ before RETR
 
  - index
-    - if uoff_t or time_t size changes, don't rebuild indexes because they
-      don't use them. just rebuild cache file.
-    - mail_index_lookup_ext() doesn't handle resizes between views. probably
-      needs size_t *size_r parameter added..
     - optimize initial left_idx in mail_index_lookup_uid_range()
     - if log file is lost, generate it from old and new index
     - transaction log: when replacing log with a same sequence, we remove it
Index: src/lib-storage/index/mbox/mbox-sync-update.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c,v
retrieving revision 1.44
diff -u -r1.44 mbox-sync-update.c
--- src/lib-storage/index/mbox/mbox-sync-update.c	13 Jan 2006 20:26:37 -0000	1.44
+++ src/lib-storage/index/mbox/mbox-sync-update.c	14 Jan 2006 13:57:38 -0000
@@ -9,6 +9,11 @@
 #include "mbox-storage.h"
 #include "mbox-sync-private.h"
 
+/* Line length when to wrap X-IMAP, X-IMAPbase and X-Keywords headers to next
+   line. Keep this pretty long, as after we wrap we lose compatibility with
+   UW-IMAP */
+#define KEYWORD_WRAP_LINE_LENGTH 1024
+
 static void status_flags_append(struct mbox_sync_mail_context *ctx,
 				const struct mbox_flag_type *flags_list)
 {
@@ -130,9 +135,8 @@
 	for (i = 0, last_break = str_len(dest); i < idx_count; i++) {
 		i_assert(keyword_indexes[i] < keywords_count);
 
-		/* try avoid overly long lines but cutting them
-		   every 70 chars or so */
-		if (str_len(dest) - last_break < 70) {
+		/* wrap the line whenever it gets too long */
+		if (str_len(dest) - last_break < KEYWORD_WRAP_LINE_LENGTH) {
 			if (i > 0)
 				str_append_c(dest, ' ');
 		} else {
@@ -152,7 +156,7 @@
 	size_t last_break;
 
 	p = str_data(dest);
-	if (str_len(dest) < 70)
+	if (str_len(dest) < KEYWORD_WRAP_LINE_LENGTH)
 		last_break = 0;
 	else {
 		/* set last_break to beginning of line */
@@ -164,9 +168,8 @@
 
 	names = array_get(ctx->sync_ctx->mbox->ibox.keyword_names, &count);
 	for (i = 0; i < count; i++) {
-		/* try avoid overly long lines but cutting them
-		   every 70 chars or so */
-		if (str_len(dest) - last_break < 70)
+		/* wrap the line whenever it gets too long */
+		if (str_len(dest) - last_break < KEYWORD_WRAP_LINE_LENGTH)
 			str_append_c(dest, ' ');
 		else {
 			str_append(dest, "\n\t");
