4 # translation_list を更新するために upd_tl.perl に与える
7 # original/ ディレクトリ以下にファイルを揃え、
8 # 変更/追加/削除されたファイルを git add で stage した上で
9 # git commit を実行する前に、original/ の一つ上のディレクトリで
10 # git status した結果を標準入力から与えてください。
11 # 結果は標準出力に出力するので、適当にリダイレクトして下さい。
13 # 結果にはささいな変更も含まれますので、実際にはそれらに
14 # 手動で対応した後、結果の該当部分を手動で削除してから
15 # upd_tl.perl を使うことになると思います。
18 # ゴミを出力することがあります。手動で削除してください。
24 if($fn =~ m@man./([-.\w]+)\.(\d)$@){
36 while ($input = <F>) {
37 if ($input =~ /^\.TH [^ ]+ +[1-8] +\"?([0-9]+)\-([0-9]+)\-([0-9]+)\"? /) {
38 $date = $1 . "/" . $2 . "/" . $3;
49 sub read_file_head() {
68 # NOTE: $mode should be either of 'A' or 'U'.
69 my ($mode, $fn, $top) = @_;
70 my ($valid, $cvfn) = &cvfn($fn);
71 my $prefix = &get_prefix($valid);
72 if($top =~ /^.so ([-\w]+)/i){
73 print $prefix . 'L' . ' ' . &cvfn($fn) . ' ' . &cvfn($top) . "\n";
75 print $prefix . $mode . ' ' . &cvfn($fn) . " " . &getdate($fn) . "\n";
79 sub print_removed_entry() {
81 my ($valid, $cvfn) = &cvfn($fn);
82 my $prefix = &get_prefix($valid);
83 print $prefix . 'R ' . $cvfn . "\n";
90 $state = "staged" if /^(# )?Changes to be committed/;
92 $state = ($state eq "staged") ? "target" : "done";
94 next if $state ne "target";
97 my($mode, $fn) = split(/: +/);
98 if($mode eq 'new file'){
99 $top = &read_file_head($fn);
100 &print_entry('A', $fn, $top);
102 if($mode eq 'modified'){
103 $top = &read_file_head($fn);
104 &print_entry('U', $fn, $top);
106 if($mode eq 'deleted'){
107 &print_removed_entry($fn);
109 if($mode eq 'renamed'){
110 my ($fn_old, $fn_new) = split(' -> ', $fn);
111 $top = &read_file_head($fn_new);
112 &print_entry('A', $fn_new, $top);
113 &print_removed_entry($fn_old);