Changeset 3526
- Timestamp:
- 03/26/08 13:47:40
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/bindings/vala/libtinymail-1.0/libtinymail-1.0.gi (modified) (6 diffs)
- trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.h (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c (modified) (2 diffs)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-bs-msg-header.c (modified) (5 diffs)
- trunk/libtinymail-camel/tny-camel-bs-msg-receive-strategy.c (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-bs-msg.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-folder.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-full-msg-receive-strategy.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-header.c (modified) (5 diffs)
- trunk/libtinymail-camel/tny-camel-mime-part.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-msg-header.c (modified) (12 diffs)
- trunk/libtinymail-camel/tny-camel-msg-remove-strategy.c (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-msg.c (modified) (4 diffs)
- trunk/libtinymail-camel/tny-camel-partial-msg-receive-strategy.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-pop-remote-msg-remove-strategy.c (modified) (4 diffs)
- trunk/libtinymail-camel/tny-camel-send-queue.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-store-account.c (modified) (1 diff)
- trunk/libtinymail/tny-expunged-header.c (modified) (2 diffs)
- trunk/libtinymail/tny-folder-monitor.c (modified) (3 diffs)
- trunk/libtinymail/tny-header.c (modified) (4 diffs)
- trunk/libtinymail/tny-header.h (modified) (2 diffs)
- trunk/libtinymailui-gtk/tny-gtk-header-list-model.c (modified) (14 diffs)
- trunk/libtinymailui-gtk/tny-gtk-header-view.c (modified) (1 diff)
- trunk/libtinymailui-gtk/tny-gtk-msg-window.c (modified) (1 diff)
- trunk/tests/c-demo/tny-demoui-summary-view.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r3522 r3526 1 2008-03-26 Jose Dapena Paz <jdapena@igalia.com> 2 3 * Replace old tny_header_get_ api for strings with 4 tny_header_dup_ api. This should be a bit better for 5 being thread safe. Also modified code using this. The 6 goal is being able to do the string copy in a lock. 7 8 * Now moving a folder copies all the cached messages, 9 but not the summaries, to avoid crashes trying to 10 reuse the old summary. 11 12 This is a major API change. 13 1 14 2008-03-25 Alberto Garcia Gonzalez <agarcia@igalia.com> 2 15 trunk/bindings/vala/libtinymail-1.0/libtinymail-1.0.gi
r3268 r3526 2154 2154 <interface name="GObject"/> 2155 2155 </requires> 2156 <method name=" get_bcc" symbol="tny_header_get_bcc">2157 <return-type type="gchar*"/> 2158 <parameters> 2159 <parameter name="self" type="TnyHeader*"/> 2160 </parameters> 2161 </method> 2162 <method name=" get_cc" symbol="tny_header_get_cc">2156 <method name="dup_bcc" symbol="tny_header_dup_bcc"> 2157 <return-type type="gchar*"/> 2158 <parameters> 2159 <parameter name="self" type="TnyHeader*"/> 2160 </parameters> 2161 </method> 2162 <method name="dup_cc" symbol="tny_header_dup_cc"> 2163 2163 <return-type type="gchar*"/> 2164 2164 <parameters> … … 2190 2190 </parameters> 2191 2191 </method> 2192 <method name=" get_from" symbol="tny_header_get_from">2193 <return-type type="gchar*"/> 2194 <parameters> 2195 <parameter name="self" type="TnyHeader*"/> 2196 </parameters> 2197 </method> 2198 <method name=" get_message_id" symbol="tny_header_get_message_id">2192 <method name="dup_from" symbol="tny_header_dup_from"> 2193 <return-type type="gchar*"/> 2194 <parameters> 2195 <parameter name="self" type="TnyHeader*"/> 2196 </parameters> 2197 </method> 2198 <method name="dup_message_id" symbol="tny_header_dup_message_id"> 2199 2199 <return-type type="gchar*"/> 2200 2200 <parameters> … … 2214 2214 </parameters> 2215 2215 </method> 2216 <method name=" get_replyto" symbol="tny_header_get_replyto">2217 <return-type type="gchar*"/> 2218 <parameters> 2219 <parameter name="self" type="TnyHeader*"/> 2220 </parameters> 2221 </method> 2222 <method name=" get_subject" symbol="tny_header_get_subject">2223 <return-type type="gchar*"/> 2224 <parameters> 2225 <parameter name="self" type="TnyHeader*"/> 2226 </parameters> 2227 </method> 2228 <method name=" get_to" symbol="tny_header_get_to">2229 <return-type type="gchar*"/> 2230 <parameters> 2231 <parameter name="self" type="TnyHeader*"/> 2232 </parameters> 2233 </method> 2234 <method name=" get_uid" symbol="tny_header_get_uid">2216 <method name="dup_replyto" symbol="tny_header_dup_replyto"> 2217 <return-type type="gchar*"/> 2218 <parameters> 2219 <parameter name="self" type="TnyHeader*"/> 2220 </parameters> 2221 </method> 2222 <method name="dup_subject" symbol="tny_header_dup_subject"> 2223 <return-type type="gchar*"/> 2224 <parameters> 2225 <parameter name="self" type="TnyHeader*"/> 2226 </parameters> 2227 </method> 2228 <method name="dup_to" symbol="tny_header_dup_to"> 2229 <return-type type="gchar*"/> 2230 <parameters> 2231 <parameter name="self" type="TnyHeader*"/> 2232 </parameters> 2233 </method> 2234 <method name="dup_uid" symbol="tny_header_dup_uid"> 2235 2235 <return-type type="gchar*"/> 2236 2236 <parameters> … … 2301 2301 </parameters> 2302 2302 </method> 2303 <vfunc name=" get_bcc_func">2304 <return-type type="gchar*"/> 2305 <parameters> 2306 <parameter name="self" type="TnyHeader*"/> 2307 </parameters> 2308 </vfunc> 2309 <vfunc name=" get_cc_func">2303 <vfunc name="dup_bcc_func"> 2304 <return-type type="gchar*"/> 2305 <parameters> 2306 <parameter name="self" type="TnyHeader*"/> 2307 </parameters> 2308 </vfunc> 2309 <vfunc name="dup_cc_func"> 2310 2310 <return-type type="gchar*"/> 2311 2311 <parameters> … … 2337 2337 </parameters> 2338 2338 </vfunc> 2339 <vfunc name=" get_from_func">2340 <return-type type="gchar*"/> 2341 <parameters> 2342 <parameter name="self" type="TnyHeader*"/> 2343 </parameters> 2344 </vfunc> 2345 <vfunc name=" get_message_id_func">2339 <vfunc name="dup_from_func"> 2340 <return-type type="gchar*"/> 2341 <parameters> 2342 <parameter name="self" type="TnyHeader*"/> 2343 </parameters> 2344 </vfunc> 2345 <vfunc name="dup_message_id_func"> 2346 2346 <return-type type="gchar*"/> 2347 2347 <parameters> … … 2355 2355 </parameters> 2356 2356 </vfunc> 2357 <vfunc name=" get_replyto_func">2358 <return-type type="gchar*"/> 2359 <parameters> 2360 <parameter name="self" type="TnyHeader*"/> 2361 </parameters> 2362 </vfunc> 2363 <vfunc name=" get_subject_func">2364 <return-type type="gchar*"/> 2365 <parameters> 2366 <parameter name="self" type="TnyHeader*"/> 2367 </parameters> 2368 </vfunc> 2369 <vfunc name=" get_to_func">2370 <return-type type="gchar*"/> 2371 <parameters> 2372 <parameter name="self" type="TnyHeader*"/> 2373 </parameters> 2374 </vfunc> 2375 <vfunc name=" get_uid_func">2357 <vfunc name="dup_replyto_func"> 2358 <return-type type="gchar*"/> 2359 <parameters> 2360 <parameter name="self" type="TnyHeader*"/> 2361 </parameters> 2362 </vfunc> 2363 <vfunc name="dup_subject_func"> 2364 <return-type type="gchar*"/> 2365 <parameters> 2366 <parameter name="self" type="TnyHeader*"/> 2367 </parameters> 2368 </vfunc> 2369 <vfunc name="dup_to_func"> 2370 <return-type type="gchar*"/> 2371 <parameters> 2372 <parameter name="self" type="TnyHeader*"/> 2373 </parameters> 2374 </vfunc> 2375 <vfunc name="dup_uid_func"> 2376 2376 <return-type type="gchar*"/> 2377 2377 <parameters> trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c
r3524 r3526 4035 4035 } 4036 4036 4037 void 4038 camel_folder_summary_lock () 4039 { 4040 g_static_rec_mutex_lock (&global_lock); 4041 } 4042 4043 void 4044 camel_folder_summary_unlock () 4045 { 4046 g_static_rec_mutex_unlock (&global_lock); 4047 } 4037 4048 4038 4049 static void trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.h
r3301 r3526 401 401 #endif 402 402 403 void camel_folder_summary_lock (); 404 void camel_folder_summary_unlock (); 405 403 406 G_END_DECLS 404 407 trunk/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c
r3520 r3526 61 61 GByteArray *buffer = NULL; 62 62 CamelStream *stream; 63 off_t start, end;63 uint start, end; 64 64 int fd = -1; 65 65 size_t len; … … 73 73 stream = NULL; 74 74 75 if ((stream || fd != -1) && (start = camel_mime_parser_tell (mp)) != -1) { 75 start = camel_mime_parser_tell (mp); 76 if ((stream || fd != -1) && (start != -1)) { 76 77 /* we can keep content on disk */ 77 78 } else { trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c
r3498 r3526 3033 3033 } 3034 3034 3035 static void 3036 move_cache (const gchar *oldpath, const gchar *newpath) 3037 { 3038 GDir *dir; 3039 3040 dir = g_dir_open (oldpath, 0, NULL); 3041 if (dir) { 3042 const gchar *file; 3043 gchar *new_summary; 3044 3045 g_mkdir (newpath, S_IRWXU); 3046 3047 while (file = g_dir_read_name (dir)) { 3048 gchar *old_fullname; 3049 gchar *new_fullname; 3050 old_fullname = g_strdup_printf ("%s/%s", oldpath, file); 3051 new_fullname = g_strdup_printf ("%s/%s", newpath, file); 3052 if (g_file_test (old_fullname, G_FILE_TEST_IS_DIR)) { 3053 move_cache (old_fullname, new_fullname); 3054 } else if (g_file_test (old_fullname, G_FILE_TEST_EXISTS)) { 3055 /* we don't move the summary */ 3056 if (strcmp (old_fullname, "summary.mmap")!=0) 3057 g_rename (old_fullname, new_fullname); 3058 } 3059 3060 g_free (old_fullname); 3061 g_free (new_fullname); 3062 } 3063 g_dir_close (dir); 3064 new_summary = g_strdup_printf ("%s/summary.mmap", newpath); 3065 if (g_file_test (new_summary, G_FILE_TEST_EXISTS)) { 3066 g_unlink (new_summary); 3067 } 3068 } 3069 } 3035 3070 3036 3071 static void … … 3124 3159 g_free (tpath); 3125 3160 3126 if (g_rename (oldpath, newpath) == -1) { 3127 g_warning ("Could not rename message cache '%s' to '%s': %s: cache reset", 3128 oldpath, newpath, strerror (errno)); 3129 } 3161 move_cache (oldpath, newpath); 3130 3162 3131 3163 g_free (oldpath); trunk/libtinymail-camel/tny-camel-bs-msg-header.c
r3304 r3526 37 37 38 38 39 static constgchar*40 tny_camel_bs_msg_header_ get_replyto (TnyHeader *self)41 { 42 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 43 return me->envelope->reply_to;39 static gchar* 40 tny_camel_bs_msg_header_dup_replyto (TnyHeader *self) 41 { 42 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 43 return g_strdup (me->envelope->reply_to); 44 44 } 45 45 … … 89 89 90 90 91 static constgchar*92 tny_camel_bs_msg_header_ get_cc (TnyHeader *self)93 { 94 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 95 return me->envelope->cc;96 } 97 98 static constgchar*99 tny_camel_bs_msg_header_ get_bcc (TnyHeader *self)100 { 101 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 102 return me->envelope->bcc;91 static gchar* 92 tny_camel_bs_msg_header_dup_cc (TnyHeader *self) 93 { 94 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 95 return g_strdup (me->envelope->cc); 96 } 97 98 static gchar* 99 tny_camel_bs_msg_header_dup_bcc (TnyHeader *self) 100 { 101 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 102 return g_strdup (me->envelope->bcc); 103 103 } 104 104 … … 137 137 } 138 138 139 static constgchar*140 tny_camel_bs_msg_header_ get_from (TnyHeader *self)141 { 142 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 143 return me->envelope->from;144 } 145 146 static constgchar*147 tny_camel_bs_msg_header_ get_subject (TnyHeader *self)148 { 149 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 150 return me->envelope->subject;151 } 152 153 154 static constgchar*155 tny_camel_bs_msg_header_ get_to (TnyHeader *self)156 { 157 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 158 return me->envelope->to;159 } 160 161 static constgchar*162 tny_camel_bs_msg_header_ get_message_id (TnyHeader *self)163 { 164 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 165 return me->envelope->message_id;139 static gchar* 140 tny_camel_bs_msg_header_dup_from (TnyHeader *self) 141 { 142 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 143 return g_strdup (me->envelope->from); 144 } 145 146 static gchar* 147 tny_camel_bs_msg_header_dup_subject (TnyHeader *self) 148 { 149 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 150 return g_strdup (me->envelope->subject); 151 } 152 153 154 static gchar* 155 tny_camel_bs_msg_header_dup_to (TnyHeader *self) 156 { 157 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 158 return g_strdup (me->envelope->to); 159 } 160 161 static gchar* 162 tny_camel_bs_msg_header_dup_message_id (TnyHeader *self) 163 { 164 TnyCamelBsMsgHeader *me = TNY_CAMEL_BS_MSG_HEADER (self); 165 return g_strdup (me->envelope->message_id); 166 166 } 167 167 … … 175 175 } 176 176 177 static constgchar*178 tny_camel_bs_msg_header_ get_uid (TnyHeader *self)179 { 180 g_warning ("tny_header_ get_uid: This is a header instance for a RFC822 message. "177 static gchar* 178 tny_camel_bs_msg_header_dup_uid (TnyHeader *self) 179 { 180 g_warning ("tny_header_dup_uid: This is a header instance for a RFC822 message. " 181 181 "The uid of it is therefore not available. This indicates a problem " 182 182 "in the software."); … … 215 215 TnyHeaderIface *klass = (TnyHeaderIface *)g; 216 216 217 klass-> get_from= tny_camel_bs_msg_header_get_from;218 klass-> get_message_id= tny_camel_bs_msg_header_get_message_id;217 klass->dup_from= tny_camel_bs_msg_header_dup_from; 218 klass->dup_message_id= tny_camel_bs_msg_header_dup_message_id; 219 219 klass->get_message_size= tny_camel_bs_msg_header_get_message_size; 220 klass-> get_to= tny_camel_bs_msg_header_get_to;221 klass-> get_subject= tny_camel_bs_msg_header_get_subject;220 klass->dup_to= tny_camel_bs_msg_header_dup_to; 221 klass->dup_subject= tny_camel_bs_msg_header_dup_subject; 222 222 klass->get_date_received= tny_camel_bs_msg_header_get_date_received; 223 223 klass->get_date_sent= tny_camel_bs_msg_header_get_date_sent; 224 klass-> get_cc= tny_camel_bs_msg_header_get_cc;225 klass-> get_bcc= tny_camel_bs_msg_header_get_bcc;226 klass-> get_replyto= tny_camel_bs_msg_header_get_replyto;227 klass-> get_uid= tny_camel_bs_msg_header_get_uid;224 klass->dup_cc= tny_camel_bs_msg_header_dup_cc; 225 klass->dup_bcc= tny_camel_bs_msg_header_dup_bcc; 226 klass->dup_replyto= tny_camel_bs_msg_header_dup_replyto; 227 klass->dup_uid= tny_camel_bs_msg_header_dup_uid; 228 228 klass->get_folder= tny_camel_bs_msg_header_get_folder; 229 229 klass->set_bcc= tny_camel_bs_msg_header_set_bcc; trunk/libtinymail-camel/tny-camel-bs-msg-receive-strategy.c
r3304 r3526 120 120 CamelFolder *cfolder = _tny_camel_folder_get_camel_folder (TNY_CAMEL_FOLDER (folder)); 121 121 122 uid = g_strdup (tny_header_get_uid (TNY_HEADER (header)));122 uid = tny_header_dup_uid (TNY_HEADER (header)); 123 123 structure_str = camel_folder_fetch_structure (cfolder, (const char *) uid, &ex); 124 124 trunk/libtinymail-camel/tny-camel-bs-msg.c
r3304 r3526 112 112 if (priv->folder) { 113 113 TnyHeader *header = tny_msg_get_header (self); 114 const gchar *uid = tny_header_get_uid (header);114 gchar *uid = tny_header_dup_uid (header); 115 115 116 116 if (uid) { … … 129 129 } 130 130 } 131 g_free (uid); 131 132 } 132 133 trunk/libtinymail-camel/tny-camel-folder.c
r3524 r3526 3786 3786 { 3787 3787 TnyHeader *header; 3788 constgchar *uid;3788 gchar *uid; 3789 3789 3790 3790 header = TNY_HEADER (tny_iterator_get_current (iter)); 3791 uid = tny_header_ get_uid (header);3791 uid = tny_header_dup_uid (header); 3792 3792 3793 3793 if (G_UNLIKELY (uid == NULL)) … … 3812 3812 return; 3813 3813 } else 3814 g_ptr_array_add (uids, (gpointer) g_strdup (uid));3814 g_ptr_array_add (uids, (gpointer) uid); 3815 3815 3816 3816 g_object_unref (header); trunk/libtinymail-camel/tny-camel-full-msg-receive-strategy.c
r3304 r3526 76 76 mtype = CAMEL_FOLDER_RECEIVE_ANY_OR_FULL; 77 77 78 id = g_strdup (tny_header_get_uid (TNY_HEADER (header)));78 id = tny_header_dup_uid (TNY_HEADER (header)); 79 79 message = NULL; 80 80 camel_message = camel_folder_get_message (priv->folder, (const char *) id, mtype, -1, &ex); … … 98 98 tny_header_get_date_received (header)); 99 99 _tny_camel_msg_set_folder (TNY_CAMEL_MSG (message), folder); 100 TNY_CAMEL_MSG_HEADER (nheader)->old_uid = g_strdup (tny_header_get_uid (header));100 TNY_CAMEL_MSG_HEADER (nheader)->old_uid = tny_header_dup_uid (header); 101 101 _tny_camel_msg_set_header (TNY_CAMEL_MSG (message), nheader); 102 102 _tny_camel_mime_part_set_part (TNY_CAMEL_MIME_PART (message), trunk/libtinymail-camel/tny-camel-header.c
r3496 r3526 72 72 73 73 74 static constgchar*75 tny_camel_header_ get_replyto (TnyHeader *self)74 static gchar* 75 tny_camel_header_dup_replyto (TnyHeader *self) 76 76 { 77 77 return NULL; … … 123 123 124 124 125 static const gchar* 126 tny_camel_header_get_cc (TnyHeader *self) 127 { 128 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 129 const gchar *retval = NULL; 130 131 retval = camel_message_info_cc (me->info); 132 133 return retval; 134 } 135 136 static const gchar* 137 tny_camel_header_get_bcc (TnyHeader *self) 125 static gchar* 126 tny_camel_header_dup_cc (TnyHeader *self) 127 { 128 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 129 gchar *retval = NULL; 130 131 camel_folder_summary_lock (); 132 retval = g_strdup (camel_message_info_cc (me->info)); 133 camel_folder_summary_unlock (); 134 135 return retval; 136 } 137 138 static gchar* 139 tny_camel_header_dup_bcc (TnyHeader *self) 138 140 { 139 141 return NULL; … … 223 225 } 224 226 225 static const gchar* 226 tny_camel_header_get_from (TnyHeader *self) 227 { 228 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 229 const gchar *retval = NULL; 230 231 retval = camel_message_info_from (me->info); 232 233 return retval; 234 } 235 236 static const gchar* 237 tny_camel_header_get_subject (TnyHeader *self) 238 { 239 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 240 const gchar *retval = NULL; 241 242 retval = camel_message_info_subject (me->info); 243 244 return retval; 245 } 246 247 248 static const gchar* 249 tny_camel_header_get_to (TnyHeader *self) 250 { 251 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 252 const gchar *retval = NULL; 253 254 retval = camel_message_info_to (me->info); 255 256 return retval; 257 } 258 259 static const gchar* 260 tny_camel_header_get_message_id (TnyHeader *self) 261 { 262 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 263 const gchar *retval = NULL; 264 265 retval = (const gchar*) camel_message_info_message_id (me->info); 227 static gchar* 228 tny_camel_header_dup_from (TnyHeader *self) 229 { 230 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 231 gchar *retval = NULL; 232 233 camel_folder_summary_lock (); 234 retval = g_strdup (camel_message_info_from (me->info)); 235 camel_folder_summary_unlock (); 236 237 return retval; 238 } 239 240 static gchar* 241 tny_camel_header_dup_subject (TnyHeader *self) 242 { 243 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 244 gchar *retval = NULL; 245 246 camel_folder_summary_lock (); 247 retval = g_strdup (camel_message_info_subject (me->info)); 248 camel_folder_summary_unlock (); 249 250 return retval; 251 } 252 253 254 static gchar* 255 tny_camel_header_dup_to (TnyHeader *self) 256 { 257 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 258 gchar *retval = NULL; 259 260 camel_folder_summary_lock (); 261 retval = g_strdup (camel_message_info_to (me->info)); 262 camel_folder_summary_unlock (); 263 264 return retval; 265 } 266 267 static gchar* 268 tny_camel_header_dup_message_id (TnyHeader *self) 269 { 270 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 271 gchar *retval = NULL; 272 273 camel_folder_summary_lock (); 274 retval = (gchar*) camel_message_info_message_id (me->info); 275 camel_folder_summary_unlock (); 266 276 267 277 return retval; … … 283 293 } 284 294 285 static constgchar*286 tny_camel_header_ get_uid (TnyHeader *self)287 { 288 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 289 constgchar *retval = NULL;290 291 retval = camel_message_info_uid (me->info);295 static gchar* 296 tny_camel_header_dup_uid (TnyHeader *self) 297 { 298 TnyCamelHeader *me = TNY_CAMEL_HEADER (self); 299 gchar *retval = NULL; 300 301 retval = g_strdup (camel_message_info_uid (me->info)); 292 302 293 303 return retval; … … 353 363 TnyHeaderIface *klass = (TnyHeaderIface *)g; 354 364 355 klass-> get_from= tny_camel_header_get_from;356 klass-> get_message_id= tny_camel_header_get_message_id;365 klass->dup_from= tny_camel_header_dup_from; 366 klass->dup_message_id= tny_camel_header_dup_message_id; 357 367 klass->get_message_size= tny_camel_header_get_message_size; 358 klass-> get_to= tny_camel_header_get_to;359 klass-> get_subject= tny_camel_header_get_subject;368 klass->dup_to= tny_camel_header_dup_to; 369 klass->dup_subject= tny_camel_header_dup_subject; 360 370 klass->get_date_received= tny_camel_header_get_date_received; 361 371 klass->get_date_sent= tny_camel_header_get_date_sent; 362 klass-> get_cc= tny_camel_header_get_cc;363 klass-> get_bcc= tny_camel_header_get_bcc;364 klass-> get_replyto= tny_camel_header_get_replyto;365 klass-> get_uid= tny_camel_header_get_uid;372 klass->dup_cc= tny_camel_header_dup_cc; 373 klass->dup_bcc= tny_camel_header_dup_bcc; 374 klass->dup_replyto= tny_camel_header_dup_replyto; 375 klass->dup_uid= tny_camel_header_dup_uid; 366 376 klass->get_folder= tny_camel_header_get_folder; 367 377 klass->set_bcc= tny_camel_header_set_bcc; trunk/libtinymail-camel/tny-camel-mime-part.c
r3487 r3526 353 353 TnyHeader *hdr = NULL; 354 354 TnyHeader *dest_header; 355 gchar *str; 355 356 356 357 hdr = tny_msg_get_header (TNY_MSG (orig)); 357 358 retval = TNY_MIME_PART (tny_camel_msg_new ()); 358 359 dest_header = tny_msg_get_header (TNY_MSG (retval)); 359 if (tny_header_get_bcc (hdr)) 360 tny_header_set_bcc (dest_header, tny_header_get_bcc (hdr)); 361 if (tny_header_get_cc (hdr)) 362 tny_header_set_cc (dest_header, tny_header_get_cc (hdr)); 363 if (tny_header_get_from (hdr)) 364 tny_header_set_from (dest_header, tny_header_get_from (hdr)); 365 if (tny_header_get_replyto (hdr)) 366 tny_header_set_replyto (dest_header, tny_header_get_replyto (hdr)); 367 if (tny_header_get_subject (hdr)) 368 tny_header_set_subject (dest_header, tny_header_get_subject (hdr)); 369 if (tny_header_get_to (hdr)) 370 tny_header_set_to (dest_header, tny_header_get_to (hdr)); 360 if (str = tny_header_dup_bcc (hdr)) { 361 tny_header_set_bcc (dest_header, str); 362 g_free (str); 363 } 364 if (str = tny_header_dup_cc (hdr)) { 365 tny_header_set_cc (dest_header, str); 366 g_free (str); 367 } 368 if (str = tny_header_dup_from (hdr)) { 369 tny_header_set_from (dest_header, str); 370 g_free (str); 371 } 372 if (str = tny_header_dup_replyto (hdr)) { 373 tny_header_set_replyto (dest_header, str); 374 g_free (str); 375 } 376 if (str = tny_header_dup_subject (hdr)) { 377 tny_header_set_subject (dest_header, str); 378 g_free (str); 379 } 380 if (str = tny_header_dup_to (hdr)) { 381 tny_header_set_to (dest_header, str); 382 g_free (str); 383 } 371 384 /* tny_header_set_priority (dest_header, tny_header_get_priority (hdr)); */ 372 385 g_object_unref (hdr); … … 696 709 if (dw->mime_type && (charset = camel_content_type_param 697 710 (dw->mime_type, "charset")) && 698 g_ascii_strncasecmp(charset, "iso-8859 -", 9) == 0)711 g_ascii_strncasecmp(charset, "iso-8859+-", 9) == 0) 699 712 { 700 713 CamelStream *null; trunk/libtinymail-camel/tny-camel-msg-header.c
r3373 r3526 89 89 } 90 90 91 static constgchar*92 tny_camel_msg_header_ get_replyto (TnyHeader *self)91 static gchar* 92 tny_camel_msg_header_dup_replyto (TnyHeader *self) 93 93 { 94 94 TnyCamelMsgHeader *me = TNY_CAMEL_MSG_HEADER (self); … … 100 100 } 101 101 102 return (const gchar *) me->reply_to;102 return g_strdup ((const gchar *) me->reply_to); 103 103 } 104 104 … … 205 205 206 206 207 static constgchar*208 tny_camel_msg_header_ get_cc (TnyHeader *self)207 static gchar* 208 tny_camel_msg_header_dup_cc (TnyHeader *self) 209 209 { 210 210 TnyCamelMsgHeader *me = TNY_CAMEL_MSG_HEADER (self); … … 216 216 } 217 217 218 return (const gchar *) me->cc;219 } 220 221 static constgchar*222 tny_camel_msg_header_ get_bcc (TnyHeader *self)218 return g_strdup ((const gchar *) me->cc); 219 } 220 221 static gchar* 222 tny_camel_msg_header_dup_bcc (TnyHeader *self) 223 223 { 224 224 TnyCamelMsgHeader *me = TNY_CAMEL_MSG_HEADER (self); … … 230 230 } 231 231 232 return (const gchar *) me->bcc;232 return g_strdup ((const gchar *) me->bcc); 233 233 } 234 234 … … 387 387 } 388 388 389 static constgchar*390 tny_camel_msg_header_ get_from (TnyHeader *self)389 static gchar* 390 tny_camel_msg_header_dup_from (TnyHe
