⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cvslog2changelog.pl

📁 mutt-1.5.12 源代码。linux 下邮件接受的工具。
💻 PL
字号:
#!/usr/bin/perl# use Data::Dumper;%Authors = (roessler => 'Thomas Roessler <roessler@does-not-exist.org>',	    me => 'Michael Elkins <me@mutt.org>');@Changes = ();$change = {};while (<>) {    chomp $_;    if ($_ =~ /^Working file: (.*)$/) {	$workfile = $1;	$change->{workfile} = $workfile;	$change->{logmsg}   = '';	$change->{author}   = '';	$change->{revision} = '';#	print STDERR "workfile: ", $workfile, "\n";	    }     elsif ($_ =~ /^(=======|------)/) {	if ($change->{revision}) {	    	    # Some beautifications: Date, author.	    if ($change->{author} =~ /^(.*?)\s?\<(.*)\>/) {		$change->{author} = "$1  <$2>";	    }	    $change->{date} =~ s!/!-!g;	    	    # Record the change.	    push @Changes, $change unless $change->{logmsg} =~ /^#/;	    $change = {};	    $change->{workfile} = $workfile;	    $change->{logmsg}   = '';	    $change->{author}   = '';	}    } elsif ($_ =~ /^revision ([0-9.]*)/) {	$change->{revision} = $1;    } elsif ($_ =~ /^date: ([^; ]*) ([^; ]*)( \+[0-9]+)?;  author: ([^;]*);/) {	$change->{date} = $1;	$change->{hour} = $2;	$change->{author} = $Authors{$3} ? $Authors{$3} : $4;	$change->{committed} = $4;    } elsif ($_ =~ /^From: (.*)$/) {	$change->{author} = $1;    } elsif ($change->{revision}) {	if ($change->{logmsg} || $_) {	    $change->{logmsg} .= $_ . "\n";	}    }}# print Dumper @Changes;undef $last_logmsg; undef $last_author; undef $last_date; undef $last_hour; undef $last_comm;$files = [];for my $k (sort {($b->{date} cmp $a->{date}) || ($b->{hour} cmp $a->{hour}) || ($a->{author} cmp $b->{author}) || ($a->{workfile} cmp $b->{workfile})} @Changes) {        if (!($last_date eq $k->{date}) || !($last_author eq $k->{author}) ||	!($last_comm eq $k->{committed})) {	if (@$files) {	    &print_entry ($files, $last_logmsg);	    $files = [];	}	&print_header ($k->{author}, $k->{committed}, $k->{date}, $k->{hour});    }     if (@$files && !($last_logmsg eq $k->{logmsg})) {	&print_entry ($files, $last_logmsg);	$files = [];    }              $last_comm   = $k->{committed};    $last_logmsg = $k->{logmsg};    $last_author = $k->{author};    $last_date   = $k->{date};    $last_hour   = $k->{hour};        push @$files, $k->{workfile};}if (@$files) {    &print_entry ($files, $last_logmsg);}sub print_header {    my $author = shift;    my $committed = shift;    my $date = shift;    my $hour = shift;        print $date, " ", $hour, "  ", $author, "  (", $committed, ")\n\n";}sub print_entry  {    my $files = shift;    my $logmsg = shift;        print "\t* ";    my $c = '';        for my $f (@$files) {	print $c, $f;	$c = ', ' unless $c;    }        print ": ";        my $t = '';    for my $l (split ('\n', $logmsg)) {	print $t, $l, "\n";	$t = "\t" unless $t;    }    print "\n";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -