]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jc/mailinfo-header-cleanup'
authorJunio C Hamano <gitster@pobox.com>
Thu, 12 Sep 2024 18:47:22 +0000 (11:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Sep 2024 18:47:22 +0000 (11:47 -0700)
Code clean-up.

* jc/mailinfo-header-cleanup:
  mailinfo: we parse fixed headers

1  2 
mailinfo.c

diff --cc mailinfo.c
index ce1455f9436f742df94530911b36ae799f3d9f38,17d7c3b5946be9a301720e032a62815608a8637d..d1f42bd7e3e692aceb6806cedd71af1546c8aa4e
@@@ -348,10 -346,10 +348,9 @@@ static void cleanup_subject(struct mail
        strbuf_trim(subject);
  }
  
- #define MAX_HDR_PARSED 10
- static const char *header[MAX_HDR_PARSED] = {
-       "From","Subject","Date",
+ static const char * const header[] = {
+       "From", "Subject", "Date",
  };
 -#define MAX_HDR_PARSED (ARRAY_SIZE(header) + 1)
  
  static inline int skip_header(const struct strbuf *line, const char *hdr,
                              const char **outval)
@@@ -1208,8 -1206,8 +1207,8 @@@ int mailinfo(struct mailinfo *mi, cons
                return -1;
        }
  
--      mi->p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->p_hdr_data)));
--      mi->s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->s_hdr_data)));
++      mi->p_hdr_data = xcalloc(ARRAY_SIZE(header), sizeof(*(mi->p_hdr_data)));
++      mi->s_hdr_data = xcalloc(ARRAY_SIZE(header), sizeof(*(mi->s_hdr_data)));
  
        do {
                peek = fgetc(mi->input);
@@@ -1292,21 -1290,8 +1291,21 @@@ void clear_mailinfo(struct mailinfo *mi
        strbuf_release(&mi->inbody_header_accum);
        free(mi->message_id);
  
-       for (size_t i = 0; header[i]; i++) {
 -      strbuf_list_free(mi->p_hdr_data);
 -      strbuf_list_free(mi->s_hdr_data);
++      for (size_t i = 0; i < ARRAY_SIZE(header); i++) {
 +              if (!mi->p_hdr_data[i])
 +                      continue;
 +              strbuf_release(mi->p_hdr_data[i]);
 +              free(mi->p_hdr_data[i]);
 +      }
 +      free(mi->p_hdr_data);
 +
-       for (size_t i = 0; header[i]; i++) {
++      for (size_t i = 0; i < ARRAY_SIZE(header); i++) {
 +              if (!mi->s_hdr_data[i])
 +                      continue;
 +              strbuf_release(mi->s_hdr_data[i]);
 +              free(mi->s_hdr_data[i]);
 +      }
 +      free(mi->s_hdr_data);
  
        while (mi->content < mi->content_top) {
                free(*(mi->content_top));