static gint summary_cmp_by_from (GtkCList *clist,
gconstpointer ptr1,
gconstpointer ptr2);
+static gint summary_cmp_by_to (GtkCList *clist,
+ gconstpointer ptr1,
+ gconstpointer ptr2);
static gint summary_cmp_by_subject (GtkCList *clist,
gconstpointer ptr1,
gconstpointer ptr2);
cmp_func = (GtkCListCompareFunc)summary_cmp_by_date;
break;
case SORT_BY_FROM:
- cmp_func = (GtkCListCompareFunc)summary_cmp_by_from;
+ cmp_func = summaryview->folder_item->stype != F_OUTBOX ?
+ (GtkCListCompareFunc) summary_cmp_by_from :
+ (GtkCListCompareFunc) summary_cmp_by_to;
break;
case SORT_BY_SUBJECT:
if (summaryview->simplify_subject_preg)
return strcasecmp(msginfo1->fromname, msginfo2->fromname);
}
+static gint summary_cmp_by_to(GtkCList *clist,
+ gconstpointer ptr1, gconstpointer ptr2)
+{
+ const gchar *str1, *str2;
+ const GtkCListRow *r1 = (const GtkCListRow *) ptr1;
+ const GtkCListRow *r2 = (const GtkCListRow *) ptr2;
+ const SummaryView *sv = gtk_object_get_data(GTK_OBJECT(clist), "summaryview");
+
+ g_return_val_if_fail(sv, -1);
+
+ str1 = GTK_CELL_TEXT(r1->cell[sv->col_pos[S_COL_FROM]])->text;
+ str2 = GTK_CELL_TEXT(r2->cell[sv->col_pos[S_COL_FROM]])->text;
+
+ if (!str1)
+ return str2 != NULL;
+
+ if (!str2)
+ return -1;
+
+ if (g_strncasecmp(str1, "-->", 3) == 0)
+ str1 += 3;
+ if (g_strncasecmp(str2, "-->", 3) == 0)
+ str2 += 3;
+
+ return strcasecmp(str1, str2);
+}
+
static gint summary_cmp_by_subject(GtkCList *clist,
gconstpointer ptr1, gconstpointer ptr2)
{