case 'y':
if (optional)
- optional = hdr->env->x_label ? 1 : 0;
+ optional = hdr->env->labels ? 1 : 0;
- mutt_format_s (dest, destlen, prefix,
- mutt_labels(NULL, 0, hdr->env, NULL));
+ colorlen = add_index_color (dest, destlen, flags, MT_COLOR_INDEX_LABEL);
- mutt_format_s (dest + colorlen, destlen - colorlen, prefix, NONULL (hdr->env->x_label));
++ mutt_format_s (dest + colorlen, destlen - colorlen, prefix, mutt_labels(NULL, 0, hdr->env, NULL));
+ add_index_color (dest + colorlen, destlen - colorlen, flags, MT_COLOR_INDEX);
break;
case 'Y':
- if (hdr->env->x_label)
+ if (hdr->env->labels == NULL)
{
- i = 1; /* reduce reuse recycle */
- htmp = NULL;
- if (flags & MUTT_FORMAT_TREE
- && (hdr->thread->prev && hdr->thread->prev->message
- && hdr->thread->prev->message->env->x_label))
- htmp = hdr->thread->prev->message;
- else if (flags & MUTT_FORMAT_TREE
- && (hdr->thread->parent && hdr->thread->parent->message
- && hdr->thread->parent->message->env->x_label))
- htmp = hdr->thread->parent->message;
- if (htmp && mutt_strcasecmp (hdr->env->x_label,
- htmp->env->x_label) == 0)
- i = 0;
+ if (optional)
+ optional = 0;
+ mutt_format_s(dest, destlen, prefix, "");
+ break;
}
else
- i = 0;
-
- if (optional)
- optional = i;
-
- colorlen = add_index_color (dest, destlen, flags, MT_COLOR_INDEX_LABEL);
- if (i)
- mutt_format_s (dest + colorlen, destlen - colorlen, prefix, NONULL (hdr->env->x_label));
- else
- mutt_format_s (dest + colorlen, destlen - colorlen, prefix, "");
- add_index_color (dest + colorlen, destlen - colorlen, flags, MT_COLOR_INDEX);
+ {
+ char labels[HUGE_STRING];
+ char labelstmp[HUGE_STRING];
+
+ i = 1; /* reduce reuse recycle */
+ htmp = NULL;
+ if ((flags & MUTT_FORMAT_TREE) &&
+ hdr->thread->prev &&
+ hdr->thread->prev->message &&
+ hdr->thread->prev->message->env->labels)
+ htmp = hdr->thread->prev->message;
+ else if ((flags & MUTT_FORMAT_TREE) &&
+ hdr->thread->parent &&
+ hdr->thread->parent->message &&
+ hdr->thread->parent->message->env->labels)
+ htmp = hdr->thread->parent->message;
+
+ mutt_labels(labels, sizeof(labels), hdr->env, NULL);
+ if (htmp)
+ {
+ mutt_labels(labelstmp, sizeof(labelstmp), htmp->env, NULL);
+ if (htmp && mutt_strcasecmp (labels, labelstmp) == 0)
+ i = 0;
+ }
+
+ if (optional)
+ optional = i;
+
++ colorlen = add_index_color (dest, destlen, flags, MT_COLOR_INDEX_LABEL);
+ if (i)
- mutt_format_s (dest, destlen, prefix, labels);
++ mutt_format_s (dest + colorlen, destlen - colorlen, prefix, labels);
+ else
- mutt_format_s (dest, destlen, prefix, "");
++ mutt_format_s (dest + colorlen, destlen - colorlen, prefix, "");
++ add_index_color (dest + colorlen, destlen - colorlen, flags, MT_COLOR_INDEX);
+ }
break;
++
default:
snprintf (dest, destlen, "%%%s%c", prefix, op);
break;