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)
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);
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));