#!/usr/bin/perl while (<>) { if ($e = /^description:/ .. /^={77}/) { next if $e == 1 || $e =~ /E0/; if (/^-{28}/ .. /^date: /) { if (/^date: (\S+)\s.*author: (\S+);/) { ($date, $user) = ($1, $2); } } elsif (!/^branches: / && !/file .* was initially added on branch/ && !/empty log message/ && !/no_comment/) { $l{$date}{$user}{$file} .= $_; } } elsif (/Working file: (.*)/) { $file = $1; } } foreach $date (reverse sort keys %l) { foreach $user (sort keys %{$l{$date}}) { $fuser = $users{$user} || $user; print "$date $fuser\n\n"; my %inv; while (($file, $log) = each %{$l{$date}{$user}}) { $log =~ s/^\s+( \*)?//ms; $log =~ s/\s+$//ms; $log = "\n$log" if $log =~ /^-/; push @{$inv{$log}}, $file; } foreach $log (keys %inv) { $line = join(', ', @{$inv{$log}}) . ($log !~ /^\(/ && ':') . " $log"; print "\t* ", join("\n\t", auto_fill($line, 72)), "\n\n"; } } } 1; sub auto_fill { my ($line, $col) = @_; map { my @l; my $l = ''; $_ = " $_" if /^-/; while ($_) { s/^(\s*)(\S*)//; my $m = "$l$1$2"; if (length $m > $col) { push @l, $l; $l = $2; } else { $l = $m } } @l, $l; } split("\n", $line); } BEGIN { %users = ( 'gc' => 'Guillaume Cottenceau <gc@mandrakesoft.com>', 'fpons' => 'Fran�ois Pons <fpons@mandrakesoft.com>', 'pablo' => 'Pablo Saratxaga <pablo@mandrakesoft.com>', 'damien' => 'dam\'s <dams@idm.fr>', 'install' => 'DrakX <install@mandrakesoft.com>', 'prigaux' => 'Pixel <pixel@mandrakesoft.com>', 'flepied' => 'Frederic Lepied <flepied@mandrakesoft.com>', 'chmouel' => 'Chmouel Boudjnah <chmouel@mandrakesoft.com>', 'uid526' => 'dam\'s <damien@mandrakesoft.com>', 'uid533' => 'Fran�ois Pons <fpons@mandrakesoft.com>', 'uid535' => 'Guillaume Cottenceau <gc@mandrakesoft.com>', 'uid553' => 'Pixel <pixel@mandrakesoft.com>', 'tvignaud' => 'Thierry Vignaud <tvignaud@mandrakesoft.com>', 'sbenedict'=>'Stew Benedict <sbenedict@mandrakesoft.com>', 'tkamppeter' => 'Till Kamppeter <till@mandrakesoft.com>', 'yduret' => 'Yves Duret <yduret@mandrakesoft.com>', 'daouda' => 'Daouda Lo <daouda@mandrakesoft.com>', 'dchaumette' => 'Damien Chaumette <dchaumette@mandrakesoft.com>', 'cbelisle' => 'Christian Belisle <cbelisle@mandrakesoft.com>', 'warly' => 'Warly <warly@mandrakesoft.com>', 'jgotti' => 'Jonathan Gotti <jgotti@mandrakesoft.com>', 'fcrozat' => 'Frederic Crozat <fcrozat@mandrakesoft.com>', 'baudens' => 'David Baudens <baudens@mandrakesoft.com>', ); } all</option> <option value='topic/gdk-pixbuf-0-branch'>topic/gdk-pixbuf-0-branch</option> <option value='topic/gi-ppc'>topic/gi-ppc</option> <option value='topic/ia64-8_1'>topic/ia64-8_1</option> <option value='topic/mandrakesoft'>topic/mandrakesoft</option> <option value='topic/mlcd4'>topic/mlcd4</option> <option value='topic/ppp'>topic/ppp</option> <option value='topic/rp-pppoe'>topic/rp-pppoe</option> <option value='topic/switching_to_urpmi'>topic/switching_to_urpmi</option> <option value='topic/unlabeled-1.1.1'>topic/unlabeled-1.1.1</option> <option value='topic/v_webmin_0_87'>topic/v_webmin_0_87</option> <option value='topic/x86_64-branch'>topic/x86_64-branch</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>Mageia Installer and base platform for many utilities</td><td class='sub right'>Thierry Vignaud [tv]</td></tr></table> <table class='tabs'><tr><td> <a href='/software/drakx-backup-do-not-use/'>summary</a><a href='/software/drakx-backup-do-not-use/refs/?id=2217db2d8f69a6800b63756da7b49e85388ca593'>refs</a><a href='/software/drakx-backup-do-not-use/log/rescue/devices.pl'>log</a><a href='/software/drakx-backup-do-not-use/tree/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>tree</a><a class='active' href='/software/drakx-backup-do-not-use/commit/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>commit</a><a href='/software/drakx-backup-do-not-use/diff/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>diff</a><a href='/software/drakx-backup-do-not-use/stats/rescue/devices.pl'>stats</a></td><td class='form'><form class='right' method='get' action='/software/drakx-backup-do-not-use/log/rescue/devices.pl'> <input type='hidden' name='id' value='2217db2d8f69a6800b63756da7b49e85388ca593'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/software/drakx-backup-do-not-use/commit/?id=2217db2d8f69a6800b63756da7b49e85388ca593'>root</a>/<a href='/software/drakx-backup-do-not-use/commit/rescue?id=2217db2d8f69a6800b63756da7b49e85388ca593'>rescue</a>/<a href='/software/drakx-backup-do-not-use/commit/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>devices.pl</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='2217db2d8f69a6800b63756da7b49e85388ca593'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'> <tr><th>author</th><td>Olivier Blin <oblin@mandriva.org></td><td class='right'>2004-08-26 11:44:13 +0000</td></tr> <tr><th>committer</th><td>Olivier Blin <oblin@mandriva.org></td><td class='right'>2004-08-26 11:44:13 +0000</td></tr> <tr><th>commit</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/commit/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>2217db2d8f69a6800b63756da7b49e85388ca593</a> (<a href='/software/drakx-backup-do-not-use/patch/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>patch</a>)</td></tr> <tr><th>tree</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/tree/?id=2217db2d8f69a6800b63756da7b49e85388ca593'>ab6251114734d0ad7a6743cd0810311f417a8da6</a> /<a href='/software/drakx-backup-do-not-use/tree/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593'>rescue/devices.pl</a></td></tr> <tr><th>parent</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/commit/rescue/devices.pl?id=5b144db234759e521ca2adab99c0d15792ecf4c3'>5b144db234759e521ca2adab99c0d15792ecf4c3</a> (<a href='/software/drakx-backup-do-not-use/diff/rescue/devices.pl?id=2217db2d8f69a6800b63756da7b49e85388ca593&id2=5b144db234759e521ca2adab99c0d15792ecf4c3'>diff</a>)</td></tr><tr><th>download</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar'>drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.gz'>drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.gz</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.bz2'>drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.bz2</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.xz'>drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.tar.xz</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.zip'>drakx-backup-do-not-use-2217db2d8f69a6800b63756da7b49e85388ca593.zip</a><br/></td></tr></table> <div class='commit-subject'>(set_xfree_conf) don't create crappy auxmouse if there is none