+++ /dev/null
-diff -Naur cyrus-imapd-2.2.12/imap/append.c cyrus-imapd-2.2.12.cvs/imap/append.c
---- cyrus-imapd-2.2.12/imap/append.c 2004-05-22 05:45:48.000000000 +0200
-+++ cyrus-imapd-2.2.12.cvs/imap/append.c 2005-06-03 07:10:24.000000000 +0200
-@@ -1,5 +1,5 @@
- /* append.c -- Routines for appending messages to a mailbox
-- * $Id: append.c,v 1.107 2004/05/22 03:45:48 rjs3 Exp $
-+ * $Id: append.c,v 1.108 2005/06/02 15:47:50 ken3 Exp $
- *
- * Copyright (c)1998, 2000 Carnegie Mellon University. All rights reserved.
- *
-@@ -801,7 +801,8 @@
- int append_copy(struct mailbox *mailbox,
- struct appendstate *as,
- int nummsg,
-- struct copymsg *copymsg)
-+ struct copymsg *copymsg,
-+ int nolink)
- {
- struct mailbox *append_mailbox = &as->m;
- int msg;
-@@ -845,7 +846,7 @@
- mailbox_message_get_fname(mailbox, copymsg[msg].uid, fnamebuf,
- sizeof(fnamebuf));
- /* Link/copy message file */
-- r = mailbox_copyfile(fnamebuf, fname, 0);
-+ r = mailbox_copyfile(fnamebuf, fname, nolink);
- if (r) goto fail;
-
- /* Write out cache info, copy other info */
-diff -Naur cyrus-imapd-2.2.12/imap/append.h cyrus-imapd-2.2.12.cvs/imap/append.h
---- cyrus-imapd-2.2.12/imap/append.h 2004-01-22 22:17:07.000000000 +0100
-+++ cyrus-imapd-2.2.12.cvs/imap/append.h 2005-06-03 07:10:24.000000000 +0200
-@@ -1,5 +1,5 @@
- /* append.h -- Description of messages to be copied
-- * $Id: append.h,v 1.26 2004/01/22 21:17:07 ken3 Exp $
-+ * $Id: append.h,v 1.27 2005/06/02 15:47:51 ken3 Exp $
- *
- * Copyright (c) 1998, 2000 Carnegie Mellon University. All rights reserved.
- *
-@@ -137,7 +137,7 @@
-
- extern int append_copy(struct mailbox *mailbox,
- struct appendstate *append_mailbox,
-- int nummsg, struct copymsg *copymsg);
-+ int nummsg, struct copymsg *copymsg, int nolink);
-
- extern int append_collectnews(struct appendstate *mailbox,
- const char *group, unsigned long feeduid);
-diff -Naur cyrus-imapd-2.2.12/imap/imapd.c cyrus-imapd-2.2.12.cvs/imap/imapd.c
---- cyrus-imapd-2.2.12/imap/imapd.c 2005-02-14 07:39:55.000000000 +0100
-+++ cyrus-imapd-2.2.12.cvs/imap/imapd.c 2005-06-03 07:11:52.000000000 +0200
-@@ -38,7 +38,7 @@
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
--/* $Id: imapd.c,v 1.490 2005/02/14 06:39:55 shadow Exp $ */
-+/* $Id: imapd.c,v 1.493 2005/06/02 15:47:51 ken3 Exp $ */
-
- #include <config.h>
-
-@@ -3593,7 +3593,7 @@
- imapd_userid, mailboxname);
- if (!r) {
- r = index_copy(imapd_mailbox, sequence, usinguid, mailboxname,
-- ©uid);
-+ ©uid, !config_getswitch(IMAPOPT_SINGLEINSTANCESTORE));
- }
-
- index_check(imapd_mailbox, usinguid, 0);
-diff -Naur cyrus-imapd-2.2.12/imap/imapd.h cyrus-imapd-2.2.12.cvs/imap/imapd.h
---- cyrus-imapd-2.2.12/imap/imapd.h 2004-06-22 23:36:18.000000000 +0200
-+++ cyrus-imapd-2.2.12.cvs/imap/imapd.h 2005-06-03 07:10:24.000000000 +0200
-@@ -1,5 +1,5 @@
- /* imapd.h -- Common state for IMAP daemon
-- * $Id: imapd.h,v 1.61 2004/06/22 21:36:18 rjs3 Exp $
-+ * $Id: imapd.h,v 1.62 2005/06/02 15:47:57 ken3 Exp $
- *
- * Copyright (c) 1998-2003 Carnegie Mellon University. All rights reserved.
- *
-@@ -249,7 +249,7 @@
- extern int index_thread(struct mailbox *mailbox, int algorithm,
- struct searchargs *searchargs, int usinguid);
- extern int index_copy(struct mailbox *mailbox, char *sequence,
-- int usinguid, char *name, char **copyuidp);
-+ int usinguid, char *name, char **copyuidp, int nolink);
- extern int index_status(struct mailbox *mailbox, char *name,
- int statusitems);
-
-diff -Naur cyrus-imapd-2.2.12/imap/index.c cyrus-imapd-2.2.12.cvs/imap/index.c
---- cyrus-imapd-2.2.12/imap/index.c 2005-02-14 17:42:08.000000000 +0100
-+++ cyrus-imapd-2.2.12.cvs/imap/index.c 2005-06-03 07:13:04.000000000 +0200
-@@ -41,7 +41,7 @@
- *
- */
- /*
-- * $Id: index.c,v 1.213 2005/02/14 16:42:08 shadow Exp $
-+ * $Id: index.c,v 1.218 2005/06/02 15:47:58 ken3 Exp $
- */
- #include <config.h>
-
-@@ -1145,7 +1145,8 @@
- char *sequence,
- int usinguid,
- char *name,
-- char **copyuidp)
-+ char **copyuidp,
-+ int nolink)
- {
- static struct copyargs copyargs;
- int i;
-@@ -1176,7 +1177,7 @@
- if (r) return r;
-
- r = append_copy(mailbox, &append_mailbox, copyargs.nummsg,
-- copyargs.copymsg);
-+ copyargs.copymsg, nolink);
- if (!r) append_commit(&append_mailbox, totalsize,
- &uidvalidity, &startuid, &num);
- if (!r) {
-diff -Naur cyrus-imapd-2.2.12/lib/imapoptions cyrus-imapd-2.2.12.cvs/lib/imapoptions
---- cyrus-imapd-2.2.12/lib/imapoptions 2004-07-21 21:07:45.000000000 +0200
-+++ cyrus-imapd-2.2.12.cvs/lib/imapoptions 2005-06-03 07:14:07.000000000 +0200
-@@ -42,7 +42,7 @@
- .\" AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- .\"
--.\" $Id: imapoptions,v 1.30 2004/07/21 19:07:45 rjs3 Exp $
-+.\" $Id: imapoptions,v 1.33 2005/06/02 15:47:59 ken3 Exp $
- .SH NAME
- imapd.conf \- IMAP configuration file
- .SH DESCRIPTION
-@@ -753,9 +753,9 @@
- directories: ~user/.sieve. */
-
- { "singleinstancestore", 1, SWITCH }
--/* If enabled, lmtpd and nntpd attempt to only write one copy of a message per
-- partition and create hard links, resulting in a potentially large
-- disk savings. */
-+/* If enabled, imapd, lmtpd and nntpd attempt to only write one copy
-+ of a message per partition and create hard links, resulting in a
-+ potentially large disk savings. */
-
- { "skiplist_unsafe", 0, SWITCH }
- /* If enabled, this option forces the skiplist cyrusdb backend to