]> granicus.if.org Git - neomutt/commitdiff
Make sure email size is consistently computed in status bar and index
authorPietro Cerutti <gahr@gahr.ch>
Tue, 2 Apr 2019 10:47:28 +0000 (10:47 +0000)
committerPietro Cerutti <gahr@gahr.ch>
Tue, 2 Apr 2019 10:47:28 +0000 (10:47 +0000)
email/email.c
email/email.h
hdrline.c
mailbox.c

index b9b952dce67c60f853a68bbf761901754cb73b2e..15b8a5af13bb772628f0effa985f753d7f3f1501 100644 (file)
@@ -100,3 +100,15 @@ bool mutt_email_cmp_strict(const struct Email *e1, const struct Email *e2)
       return false;
   }
 }
+
+/**
+ * mutt_email_size - compute the size of an email
+ * @param e Email
+ * @retval num Size of the email, in bytes
+ */
+size_t mutt_email_size(const struct Email *e)
+{
+  if (!e || !e->content)
+    return 0;
+  return e->content->length + e->content->offset - e->content->hdr_offset;
+}
index 052f23923fe50a1f64a1cb27cc0137977388e8da..4b5249848bb05f46b061b3745bc629626ae0e38b 100644 (file)
@@ -129,5 +129,6 @@ STAILQ_HEAD(EmailList, EmailNode);
 bool          mutt_email_cmp_strict(const struct Email *e1, const struct Email *e2);
 void          mutt_email_free(struct Email **e);
 struct Email *mutt_email_new(void);
+size_t        mutt_email_size(const struct Email *e);
 
 #endif /* MUTT_EMAIL_EMAIL_H */
index a1023c89c8a46e192ee69832ef54187b936e495a..8571d192af8b7f62c8f7cd34620ff410b6855953 100644 (file)
--- a/hdrline.c
+++ b/hdrline.c
@@ -643,7 +643,7 @@ static const char *index_format_str(char *buf, size_t buflen, size_t col, int co
 
     case 'c':
       colorlen = add_index_color(buf, buflen, flags, MT_COLOR_INDEX_SIZE);
-      mutt_str_pretty_size(tmp, sizeof(tmp), (long) e->content->length);
+      mutt_str_pretty_size(tmp, sizeof(tmp), mutt_email_size(e));
       mutt_format_s(buf + colorlen, buflen - colorlen, prec, tmp);
       add_index_color(buf + colorlen, buflen - colorlen, flags, MT_COLOR_INDEX);
       break;
index 73af24afc9b8127abb03f8dc836041d3fe422036..c91cd3fbf0747eae8ac21eacb279c09e658efcd6 100644 (file)
--- a/mailbox.c
+++ b/mailbox.c
@@ -534,19 +534,6 @@ void mutt_mailbox_changed(struct Mailbox *m, enum MailboxNotification action)
   m->notify(m, action);
 }
 
-/**
- * email_size - Helper function to make sure we always use the same metric to
- * compute the size of an email
- * @param e Email
- * @retval num Size of the email, in bytes
- */
-static size_t email_size(const struct Email *e)
-{
-  if (!e || !e->content)
-    return 0;
-  return e->content->length + e->content->offset - e->content->hdr_offset;
-}
-
 /**
  * mutt_mailbox_size_add - Add an email's size to the total size of a Mailbox
  * @param m Mailbox
@@ -554,7 +541,7 @@ static size_t email_size(const struct Email *e)
  */
 void mutt_mailbox_size_add(struct Mailbox *m, const struct Email *e)
 {
-  m->size += email_size(e);
+  m->size += mutt_email_size(e);
 }
 
 /**
@@ -564,6 +551,6 @@ void mutt_mailbox_size_add(struct Mailbox *m, const struct Email *e)
  */
 void mutt_mailbox_size_sub(struct Mailbox *m, const struct Email *e)
 {
-  m->size -= email_size(e);
+  m->size -= mutt_email_size(e);
 }