balsa r7897 - in trunk: . libbalsa src



Author: pawels
Date: Tue Mar 25 19:27:55 2008
New Revision: 7897
URL: http://svn.gnome.org/viewvc/balsa?rev=7897&view=rev

Log:
* src/balsa-index.c: pass "peek" parameter to get_message_stream().
* libbalsa/{message,source-viewer}.c: ditto.
* libbalsa/mailbox.[ch]: get_message_stream() has "peek" parameter now.
* libbalsa/mailbox_{mh,mbox,maildir}.c: make related trivial changes.
* libbalsa/mailbox_imap.c: pass "peek" further to save one RTT.


Modified:
   trunk/ChangeLog
   trunk/libbalsa/mailbox.c
   trunk/libbalsa/mailbox.h
   trunk/libbalsa/mailbox_imap.c
   trunk/libbalsa/mailbox_maildir.c
   trunk/libbalsa/mailbox_mbox.c
   trunk/libbalsa/mailbox_mh.c
   trunk/libbalsa/message.c
   trunk/libbalsa/source-viewer.c
   trunk/src/balsa-index.c

Modified: trunk/libbalsa/mailbox.c
==============================================================================
--- trunk/libbalsa/mailbox.c	(original)
+++ trunk/libbalsa/mailbox.c	Tue Mar 25 19:27:55 2008
@@ -918,7 +918,7 @@
 	*flags |= LIBBALSA_MESSAGE_FLAG_DELETED;
 
     /* Copy stream */
-    *stream = libbalsa_mailbox_get_message_stream(mailbox, msgno);
+    *stream = libbalsa_mailbox_get_message_stream(mailbox, msgno, TRUE);
     if(!*stream) {
 	printf("Connection broken for message %u\n",
 	       (unsigned)msgno);
@@ -1866,14 +1866,16 @@
 }
 
 GMimeStream *
-libbalsa_mailbox_get_message_stream(LibBalsaMailbox * mailbox, guint msgno)
+libbalsa_mailbox_get_message_stream(LibBalsaMailbox * mailbox, guint msgno,
+				    gboolean peek)
 {
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), NULL);
     g_return_val_if_fail(msgno <= libbalsa_mailbox_total_messages(mailbox),
                          NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->get_message_stream(mailbox,
-                                                                   msgno);
+                                                                   msgno,
+								   peek);
 }
 
 /* libbalsa_mailbox_change_msgs_flags() changes stored message flags
@@ -3825,7 +3827,8 @@
         GMimeStream *stream;
         GMimeParser *parser;
 
-        stream = libbalsa_mailbox_get_message_stream(mailbox, msg->msgno);
+        stream = libbalsa_mailbox_get_message_stream(mailbox, msg->msgno,
+						     TRUE);
         parser = g_mime_parser_new_with_stream(stream);
         g_object_unref(stream);
         mime_msg = g_mime_parser_construct_message(parser);

Modified: trunk/libbalsa/mailbox.h
==============================================================================
--- trunk/libbalsa/mailbox.h	(original)
+++ trunk/libbalsa/mailbox.h	Tue Mar 25 19:27:55 2008
@@ -296,7 +296,7 @@
 				  LibBalsaMessageBody *part,
                                   GError **err);
     GMimeStream *(*get_message_stream) (LibBalsaMailbox * mailbox,
-                                        guint msgno);
+                                        guint msgno, gboolean peek);
 
     void (*check) (LibBalsaMailbox * mailbox);
 
@@ -412,7 +412,7 @@
     with full RFC822 text of the message.
 */
 GMimeStream *libbalsa_mailbox_get_message_stream(LibBalsaMailbox * mailbox,
-						 guint msgno);
+						 guint msgno, gboolean peek);
 
 
 /** libbalsa_mailbox_sync_storage() asks the mailbox to synchronise

Modified: trunk/libbalsa/mailbox_imap.c
==============================================================================
--- trunk/libbalsa/mailbox_imap.c	(original)
+++ trunk/libbalsa/mailbox_imap.c	Tue Mar 25 19:27:55 2008
@@ -108,7 +108,8 @@
                                         gboolean expunge);
 static GMimeStream *libbalsa_mailbox_imap_get_message_stream(LibBalsaMailbox *
 							     mailbox,
-							     guint msgno);
+							     guint msgno,
+							     gboolean peek);
 static void libbalsa_mailbox_imap_check(LibBalsaMailbox * mailbox);
 
 static void
@@ -1100,7 +1101,7 @@
 }
 
 static FILE*
-get_cache_stream(LibBalsaMailbox *mailbox, guint msgno)
+get_cache_stream(LibBalsaMailbox *mailbox, guint msgno, gboolean peek)
 {
     unsigned uid = IMAP_MSGNO_UID(mailbox, msgno);
     LibBalsaMailboxImap *mimap = LIBBALSA_MAILBOX_IMAP(mailbox);
@@ -1126,7 +1127,7 @@
         if(cache) {
             II(rc,mimap->handle,
                imap_mbox_handle_fetch_rfc822_uid(mimap->handle, uid,
-                                                 TRUE, cache));
+                                                 peek, cache));
             fclose(cache);
         }
 
@@ -1144,7 +1145,7 @@
 */
 static GMimeStream *
 libbalsa_mailbox_imap_get_message_stream(LibBalsaMailbox * mailbox,
-					 guint msgno)
+					 guint msgno, gboolean peek)
 {
     FILE *stream;
 
@@ -1158,7 +1159,7 @@
         return NULL;
     }
 
-    stream = get_cache_stream(mailbox, msgno);
+    stream = get_cache_stream(mailbox, msgno, peek);
     libbalsa_unlock_mailbox(mailbox);
 
     return stream ? g_mime_stream_file_new(stream) : NULL;
@@ -2098,7 +2099,8 @@
         /* we could optimize this part a little bit: we do not need to
          * keep reopening the stream. */
         GMimeStream *stream = 
-            libbalsa_mailbox_imap_get_message_stream(mailbox, message->msgno);
+            libbalsa_mailbox_imap_get_message_stream(mailbox, message->msgno,
+						     FALSE);
         if(!stream) /* oops, connection broken or the message disappeared? */
             return FALSE;
         g_object_unref(stream);
@@ -2341,7 +2343,7 @@
         if (dt.body->octets > 0)
         II(rc,mimap->handle,
            imap_mbox_handle_fetch_body(mimap->handle, msg->msgno,
-                                       section, TRUE, ifbo, append_str, &dt));
+                                       section, FALSE, ifbo, append_str, &dt));
         libbalsa_unlock_mailbox(msg->mailbox);
         if(rc != IMR_OK) {
             fprintf(stderr, "Error fetching imap message no %lu section %s\n",

Modified: trunk/libbalsa/mailbox_maildir.c
==============================================================================
--- trunk/libbalsa/mailbox_maildir.c	(original)
+++ trunk/libbalsa/mailbox_maildir.c	Tue Mar 25 19:27:55 2008
@@ -72,7 +72,8 @@
 
 static GMimeStream *libbalsa_mailbox_maildir_get_message_stream(LibBalsaMailbox *
 							   mailbox,
-							   guint msgno);
+								guint msgno,
+								gboolean peek);
 
 static gboolean libbalsa_mailbox_maildir_open(LibBalsaMailbox * mailbox,
 					      GError **err);
@@ -311,7 +312,7 @@
 
 static GMimeStream *
 libbalsa_mailbox_maildir_get_message_stream(LibBalsaMailbox * mailbox,
-					    guint msgno)
+					    guint msgno, gboolean peek)
 {
     struct message_info *msg_info;
 

Modified: trunk/libbalsa/mailbox_mbox.c
==============================================================================
--- trunk/libbalsa/mailbox_mbox.c	(original)
+++ trunk/libbalsa/mailbox_mbox.c	Tue Mar 25 19:27:55 2008
@@ -69,7 +69,8 @@
 
 static GMimeStream *libbalsa_mailbox_mbox_get_message_stream(LibBalsaMailbox *
 							     mailbox,
-							     guint msgno);
+							     guint msgno,
+							     gboolean peek);
 static gint lbm_mbox_check_files(const gchar * path, gboolean create);
 static void libbalsa_mailbox_mbox_remove_files(LibBalsaMailboxLocal *mailbox);
 
@@ -281,7 +282,7 @@
 
 static GMimeStream *
 libbalsa_mailbox_mbox_get_message_stream(LibBalsaMailbox * mailbox,
-                                         guint msgno)
+                                         guint msgno, gboolean peek)
 {
     LibBalsaMailboxMbox *mbox;
     struct message_info *msg_info;
@@ -1095,7 +1096,7 @@
     GMimeParser *parser;
     GMimeMessage *mime_message;
 
-    stream = libbalsa_mailbox_mbox_get_message_stream(mailbox, msgno);
+    stream = libbalsa_mailbox_mbox_get_message_stream(mailbox, msgno, TRUE);
     if (!stream)
 	return NULL;
     libbalsa_mime_stream_shared_lock(stream);

Modified: trunk/libbalsa/mailbox_mh.c
==============================================================================
--- trunk/libbalsa/mailbox_mh.c	(original)
+++ trunk/libbalsa/mailbox_mh.c	Tue Mar 25 19:27:55 2008
@@ -60,7 +60,8 @@
 
 static GMimeStream *libbalsa_mailbox_mh_get_message_stream(LibBalsaMailbox *
 							   mailbox,
-							   guint msgno);
+							   guint msgno,
+							   gboolean peek);
 static gint lbm_mh_check_files(const gchar * path, gboolean create);
 static void lbm_mh_set_path(LibBalsaMailboxLocal * mailbox,
                             const gchar * path);
@@ -264,7 +265,7 @@
 
 static GMimeStream *
 libbalsa_mailbox_mh_get_message_stream(LibBalsaMailbox * mailbox,
-				       guint msgno)
+				       guint msgno, gboolean peek)
 {
     GMimeStream *stream;
     struct message_info *msg_info;

Modified: trunk/libbalsa/message.c
==============================================================================
--- trunk/libbalsa/message.c	(original)
+++ trunk/libbalsa/message.c	Tue Mar 25 19:27:55 2008
@@ -1268,7 +1268,7 @@
 
     if (mailbox)
         return libbalsa_mailbox_get_message_stream(mailbox,
-                                                   message->msgno);
+                                                   message->msgno, FALSE);
 
     mime_stream = g_mime_stream_mem_new();
     g_mime_object_write_to_stream(GMIME_OBJECT(message->mime_msg),

Modified: trunk/libbalsa/source-viewer.c
==============================================================================
--- trunk/libbalsa/source-viewer.c	(original)
+++ trunk/libbalsa/source-viewer.c	Tue Mar 25 19:27:55 2008
@@ -156,7 +156,8 @@
 			     _("Mailbox closed"));
 	return;
     }
-    msg_stream = libbalsa_mailbox_get_message_stream(msg->mailbox, msg->msgno);
+    msg_stream = libbalsa_mailbox_get_message_stream(msg->mailbox, msg->msgno,
+						     TRUE);
     if (msg_stream == NULL)
 	return;
 

Modified: trunk/src/balsa-index.c
==============================================================================
--- trunk/src/balsa-index.c	(original)
+++ trunk/src/balsa-index.c	Tue Mar 25 19:27:55 2008
@@ -2252,7 +2252,7 @@
         fprintf(stderr, "popen failed for message %d\n", msgno);
     } else {
         GMimeStream *stream =
-            libbalsa_mailbox_get_message_stream(mailbox, msgno);
+            libbalsa_mailbox_get_message_stream(mailbox, msgno, TRUE);
         GMimeStream *pipe;
 
         g_return_if_fail(stream);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]