メーラにはいまだにmnewsという往年のテキストメーラを使っていてさすがにこないだmuttに乗り換えようかといろいろいじってみたのだけど、やっぱりmnewsに戻ってきてしまった。

muttはカスタマイズ性が高くていいのだけど、mnewsでもプログラムに手を入れてビルドしなおせば好きに改造することはできるので、結局のところオープンソースならばカスタマイズ性はあまり重要でないかなあという結論になってしまった。(それよりもソースをいじりやすいことのほうが重要。いやmuttもソースコードいじりやすいんだけどね)

で、ついでにmnews用のちょっとしたパッチを作ったので公開。mnewsはカラー表示ができるのだけど、メール一覧のサブジェクト表示でスレッドの場合に返信メールに色がつかないのだがその修正パッチとあとメーリングリストの場合に[]でくくられた部分に色づけするためのかなり適当な修正パッチ。

とうぜん無保証です。利用は各自の責任の上でどうぞ。


--- article.c.orig 2001-02-05 01:54:48.000000000 +0900
+++ article.c 2011-11-16 20:22:43.000000000 +0900
@@ -2441,7 +2441,36 @@
}
#endif /* COLOR */
euc_strncpy(buff, article_list[j].subject, l);
+#if 0
euc_printf("%s", buff);
+#else
+ {
+ char c, *p0, *p1;
+ term_attrib(color_code[REFER_COLOR]);
+ for (p0 = buff; *p0 && strchr(" |", *p0); p0++)
+ ;
+ c = *p0;
+ *p0 = '\0';
+ euc_printf("%s", buff);
+ *p0 = c;
+ if ((*p0 == '[') && (p1 = strchr(p0, ']'))) {
+ p1++;
+ c = *p1;
+ *p1 = '\0';
+ term_attrib(color_code[FROM2_COLOR]);
+ euc_printf("%s", p0);
+ *p1 = c;
+ } else {
+ p1 = p0;
+ }
+ if (article_list[j].mark & THREAD_MARK) {
+ term_attrib(color_code[THREAD_COLOR]);
+ } else {
+ term_attrib(color_code[SUBJECT_COLOR]);
+ }
+ euc_printf("%s", p1);
+ }
+#endif
}
}
}
@@ -3828,6 +3857,7 @@
strcpy(&sort_list[index].subject[i], THREAD_SUBJECT3);
if (strncasecmp(article_list[current_article].subject, REPLY_SUBJECT,
sizeof(REPLY_SUBJECT) - 1)) {
+ sort_list[index].mark |= THREAD_MARK;
euc_strncpy(&sort_list[index].subject[i + sizeof(THREAD_SUBJECT3) - 1],
article_list[current_article].subject,
MAX_SUBJECT_LEN - (i + sizeof(THREAD_SUBJECT3) - 1) - 1);