だいこんの日々2

軸足をtwitterとfacebookに移しつつも、技術的な話はここに書いていきます。

cvs-mailcommitで日本語

Debiancvs-mailcommitは日本語をそのままスルーする。ので、CVSのコミット操作のコメントの文字コードと、ソースコード文字コードが違うと文字化けしたメールが届くことになる。

ということで日本語対応。

# apt-get install libjcode-perl

jcode.pmじゃないのは何となく。あとはcvs-mailcommitにパッチを当てる。

--- /usr/bin/cvs-mailcommit.orig        2006-10-11 14:04:03.995898455 +0900
+++ /usr/bin/cvs-mailcommit     2006-10-11 14:50:44.794855314 +0900
@@ -1,5 +1,7 @@
#! /usr/bin/perl

+require 'jcode.pl';
+
# cvs-mailcommit - Send CVS commitments via mail
# Copyright (c) 1998,2004  Martin Schulze <joey@infodrom.org>
#
@@ -254,7 +256,10 @@
     printf M "Approved: %s\n", $opt_approved if ($opt_approved);
     printf M "X-Loop: %s\n", $opt_xloop if ($opt_xloop);
     print  M "\n";
-    print M while (<>);
+    while (<>) {
+        &jcode::convert(\$_, 'jis');
+        print M;
+    }

     if ($opt_diff) {
        print  M "\n";
@@ -267,6 +272,7 @@
                    $lines = 0;
                    while (<R>) {
                        $lines++;
+                       &jcode::convert(\$_, 'jis');
                        print M if ($lines <= $opt_maxlines);
                    }
                    close (R);

って感じで。