Path: blob/main/mail/balsa/files/patch-libbalsa_mailbox_mh.c
16149 views
--- libbalsa/mailbox_mh.c.orig 2013-03-04 19:36:37.000000000 +00001+++ libbalsa/mailbox_mh.c 2014-04-30 13:49:32.084143219 +00002@@ -27,6 +27,8 @@3/* to compile this on BSD/Darwin */4#undef _POSIX_SOURCE56+#include <sys/types.h>7+#include <sys/stat.h>8#include <unistd.h>9#include <fcntl.h>10#include <errno.h>11@@ -45,7 +47,7 @@12struct message_info {13LibBalsaMailboxLocalMessageInfo local_info;14LibBalsaMessageFlag orig_flags; /* Has only real flags */15- gint fileno;16+ gint mi_fileno;17};1819#define REAL_FLAGS(flags) (flags & LIBBALSA_MESSAGE_FLAGS_REAL)20@@ -261,7 +263,7 @@2122#define MH_BASENAME(msg_info) \23g_strdup_printf((msg_info->orig_flags & LIBBALSA_MESSAGE_FLAG_DELETED) ? \24- ",%d" : "%d", msg_info->fileno)25+ ",%d" : "%d", msg_info->mi_fileno)2627static GMimeStream *28libbalsa_mailbox_mh_get_message_stream(LibBalsaMailbox * mailbox,29@@ -336,7 +338,7 @@30lbm_mh_compare_fileno(const struct message_info ** a,31const struct message_info ** b)32{33- return (*a)->fileno - (*b)->fileno;34+ return (*a)->mi_fileno - (*b)->mi_fileno;35}3637static void38@@ -353,7 +355,7 @@3940while ((filename = g_dir_read_name(dir)) != NULL) {41LibBalsaMessageFlag delete_flag = 0;42- guint fileno;43+ guint mh_fileno;4445if (filename[0] == ',') {46filename++;47@@ -362,22 +364,22 @@48if (lbm_mh_check_filename(filename) == FALSE)49continue;5051- if (sscanf(filename, "%10d", &fileno) != 1)52+ if (sscanf(filename, "%10d", &mh_fileno) != 1)53break; /* FIXME report error? */54- if (fileno > mh->last_fileno)55- mh->last_fileno = fileno;56+ if (mh_fileno > mh->last_fileno)57+ mh->last_fileno = mh_fileno;5859if (add_msg_info && mh->messages_info) {60struct message_info *msg_info =61g_hash_table_lookup(mh->messages_info,62- GINT_TO_POINTER(fileno));63+ GINT_TO_POINTER(mh_fileno));64if (!msg_info) {65msg_info = g_new0(struct message_info, 1);66msg_info->local_info.flags = INVALID_FLAG;67g_hash_table_insert(mh->messages_info,68- GINT_TO_POINTER(fileno), msg_info);69+ GINT_TO_POINTER(mh_fileno), msg_info);70g_ptr_array_add(mh->msgno_2_msg_info, msg_info);71- msg_info->fileno = fileno;72+ msg_info->mi_fileno = mh_fileno;73}74msg_info->orig_flags = delete_flag;75}76@@ -395,17 +397,17 @@77static const gchar *LibBalsaMailboxMhRecent = "recent:";7879static void80-lbm_mh_set_flag(LibBalsaMailboxMh * mh, guint fileno, LibBalsaMessageFlag flag)81+lbm_mh_set_flag(LibBalsaMailboxMh * mh, guint mh_fileno, LibBalsaMessageFlag flag)82{83struct message_info *msg_info;8485- if (!fileno)86+ if (!mh_fileno)87return;8889- msg_info = g_hash_table_lookup(mh->messages_info, GINT_TO_POINTER(fileno));90+ msg_info = g_hash_table_lookup(mh->messages_info, GINT_TO_POINTER(mh_fileno));9192if (!msg_info) {93- g_print("MH sequence info for nonexistent message %d\n", fileno);94+ g_print("MH sequence info for nonexistent message %d\n", mh_fileno);95return;96}9798@@ -434,7 +436,7 @@99100for (seq = sequences; *seq; seq++) {101guint end = 0;102- guint fileno;103+ guint mh_fileno;104105if (!**seq)106continue;107@@ -445,11 +447,11 @@108if (sscanf(line, "%10d", &end) != 1)109break; /* FIXME report error? */110}111- if (sscanf(*seq, "%10d", &fileno) != 1)112+ if (sscanf(*seq, "%10d", &mh_fileno) != 1)113break; /* FIXME report error? */114do115- lbm_mh_set_flag(mh, fileno, flag);116- while (++fileno <= end);117+ lbm_mh_set_flag(mh, mh_fileno, flag);118+ while (++mh_fileno <= end);119}120121g_strfreev(sequences);122@@ -581,7 +583,7 @@123sequences = g_strsplit(p, " ", 0);124for (seq = sequences; *seq; seq++) {125guint end = 0;126- guint fileno;127+ guint mh_fileno;128129if (!**seq)130continue;131@@ -592,15 +594,15 @@132if (sscanf(p, "%10d", &end) != 1)133break; /* FIXME report error? */134}135- if (sscanf(*seq, "%10d", &fileno) != 1)136+ if (sscanf(*seq, "%10d", &mh_fileno) != 1)137break; /* FIXME report error? */138do {139- p = g_strdup_printf("%s/%d", path, fileno);140+ p = g_strdup_printf("%s/%d", path, mh_fileno);141if (access(p, F_OK) == 0)142retval = TRUE;143g_free(p);144/* One undeleted unread message is enough. */145- } while (!retval && ++fileno <= end);146+ } while (!retval && ++mh_fileno <= end);147}148g_strfreev(sequences);149break;150@@ -687,7 +689,7 @@151else {152g_ptr_array_remove(mh->msgno_2_msg_info, msg_info);153g_hash_table_remove(mh->messages_info,154- GINT_TO_POINTER(msg_info->fileno));155+ GINT_TO_POINTER(msg_info->mi_fileno));156libbalsa_mailbox_local_msgno_removed(mailbox, msgno);157if (renumber > msgno)158/* First message that needs renumbering. */159@@ -764,11 +766,11 @@160if (!(msg_info->local_info.flags & flag))161return;162163- if (li->last < msg_info->fileno - 1) {164+ if (li->last < msg_info->mi_fileno - 1) {165lbm_mh_print_line(li);166- li->first = msg_info->fileno;167+ li->first = msg_info->mi_fileno;168}169- li->last = msg_info->fileno;170+ li->last = msg_info->mi_fileno;171}172173static gboolean174@@ -850,7 +852,7 @@175/* free old information */176g_ptr_array_remove(mh->msgno_2_msg_info, msg_info);177g_hash_table_remove(mh->messages_info,178- GINT_TO_POINTER(msg_info->fileno));179+ GINT_TO_POINTER(msg_info->mi_fileno));180libbalsa_mailbox_local_msgno_removed(mailbox, msgno);181} else {182lbm_mh_flag_line(msg_info, LIBBALSA_MESSAGE_FLAG_NEW, &unseen);183@@ -1039,7 +1041,7 @@184* we'll just add new lines and let the next sync merge them with any185* existing lines. */186static void187-lbm_mh_update_sequences(LibBalsaMailboxMh * mh, gint fileno,188+lbm_mh_update_sequences(LibBalsaMailboxMh * mh, gint mh_fileno,189LibBalsaMessageFlag flags)190{191FILE *fp;192@@ -1050,13 +1052,13 @@193return;194195if (flags & LIBBALSA_MESSAGE_FLAG_NEW)196- fprintf(fp, "unseen: %d\n", fileno);197+ fprintf(fp, "unseen: %d\n", mh_fileno);198if (flags & LIBBALSA_MESSAGE_FLAG_FLAGGED)199- fprintf(fp, "flagged: %d\n", fileno);200+ fprintf(fp, "flagged: %d\n", mh_fileno);201if (flags & LIBBALSA_MESSAGE_FLAG_REPLIED)202- fprintf(fp, "replied: %d\n", fileno);203+ fprintf(fp, "replied: %d\n", mh_fileno);204if (flags & LIBBALSA_MESSAGE_FLAG_RECENT)205- fprintf(fp, "recent: %d\n", fileno);206+ fprintf(fp, "recent: %d\n", mh_fileno);207fclose(fp);208}209210@@ -1073,7 +1075,7 @@211int fd;212GMimeStream *out_stream;213GMimeFilter *crlffilter;214- int fileno;215+ int mh_fileno;216int retries;217GMimeStream *in_stream;218219@@ -1116,14 +1118,14 @@220libbalsa_mime_stream_shared_unlock(stream);221g_object_unref(in_stream);222223- fileno = mh->last_fileno;224+ mh_fileno = mh->last_fileno;225retries = 10;226do {227/* rename tempfile to message-number-name */228char *new_filename;229gint rename_status;230231- new_filename = g_strdup_printf("%s/%d", path, ++fileno);232+ new_filename = g_strdup_printf("%s/%d", path, ++mh_fileno);233rename_status = libbalsa_safe_rename(tmp, new_filename);234g_free(new_filename);235if (rename_status != -1)236@@ -1146,9 +1148,9 @@237"Too high activity?");238return FALSE;239}240- mh->last_fileno = fileno;241+ mh->last_fileno = mh_fileno;242243- lbm_mh_update_sequences(mh, fileno,244+ lbm_mh_update_sequences(mh, mh_fileno,245flags | LIBBALSA_MESSAGE_FLAG_RECENT);246247return TRUE;248249250