Mercurial > hg > easaier-soundaccess
annotate find-todo.pl @ 282:d9319859a4cf tip
(none)
author | benoitrigolleau |
---|---|
date | Fri, 31 Oct 2008 11:00:24 +0000 |
parents | fc9323a41f5a |
children |
rev | line source |
---|---|
lbajardsilogic@0 | 1 #!/usr/bin/perl -w |
lbajardsilogic@0 | 2 require 5; |
lbajardsilogic@0 | 3 use strict; |
lbajardsilogic@0 | 4 |
lbajardsilogic@0 | 5 # Command line should contain a list of files to look in. |
lbajardsilogic@0 | 6 # |
lbajardsilogic@0 | 7 # A likely invocation would be |
lbajardsilogic@0 | 8 # find . \( -name \*.h -o -name \*.cpp \) -print | xargs perl ./find-todo.pl |
lbajardsilogic@0 | 9 # |
lbajardsilogic@0 | 10 # Unusual or binary files will be ignored. |
lbajardsilogic@0 | 11 |
lbajardsilogic@0 | 12 my $todo_count = 0; |
lbajardsilogic@0 | 13 my $file_count = 0; |
lbajardsilogic@0 | 14 my $unfinished_count = 0; |
lbajardsilogic@0 | 15 |
lbajardsilogic@0 | 16 sub print_file_maybe |
lbajardsilogic@0 | 17 { |
lbajardsilogic@0 | 18 my ($pf, $file) = @_; |
lbajardsilogic@0 | 19 if (! $$pf) { |
lbajardsilogic@0 | 20 print "\n$file:\n"; |
lbajardsilogic@0 | 21 $$pf = 1; |
lbajardsilogic@0 | 22 $file_count++; |
lbajardsilogic@0 | 23 } |
lbajardsilogic@0 | 24 } |
lbajardsilogic@0 | 25 |
lbajardsilogic@0 | 26 foreach (@ARGV) { |
lbajardsilogic@0 | 27 |
lbajardsilogic@0 | 28 my $file = $_; |
lbajardsilogic@0 | 29 next if ($file =~ /~$/); |
lbajardsilogic@0 | 30 open FILE, $file or next; |
lbajardsilogic@0 | 31 my $in_todo = 0; |
lbajardsilogic@0 | 32 my $printed_file = 0; |
lbajardsilogic@0 | 33 my $line = 0; |
lbajardsilogic@0 | 34 |
lbajardsilogic@0 | 35 while (<FILE>) { |
lbajardsilogic@0 | 36 |
lbajardsilogic@0 | 37 $line++; |
lbajardsilogic@0 | 38 last if (m.^[\200-\377].); # probably a binary file |
lbajardsilogic@0 | 39 |
lbajardsilogic@0 | 40 if ($in_todo) { |
lbajardsilogic@0 | 41 |
lbajardsilogic@0 | 42 if (m, /[/\*](!!!)?\s* (.*) $ ,x) { |
lbajardsilogic@0 | 43 print " $2\n"; |
lbajardsilogic@0 | 44 } else { |
lbajardsilogic@0 | 45 $in_todo = 0; |
lbajardsilogic@0 | 46 } |
lbajardsilogic@0 | 47 |
lbajardsilogic@0 | 48 } else { |
lbajardsilogic@0 | 49 |
lbajardsilogic@0 | 50 if (m, /[/\*] !!!\s* (.*) $ ,x) { |
lbajardsilogic@0 | 51 print_file_maybe(\$printed_file, $file); |
lbajardsilogic@0 | 52 print sprintf("%8d", $line), ": $1\n"; |
lbajardsilogic@0 | 53 $in_todo = 1; |
lbajardsilogic@0 | 54 $todo_count++; |
lbajardsilogic@0 | 55 |
lbajardsilogic@0 | 56 } elsif (m, /[/\*] \Q...\E \s* (.*) $ ,x) { |
lbajardsilogic@0 | 57 print_file_maybe(\$printed_file, $file); |
lbajardsilogic@0 | 58 print sprintf("%8d", $line), ": [U] $1\n"; |
lbajardsilogic@0 | 59 $unfinished_count++; |
lbajardsilogic@0 | 60 } |
lbajardsilogic@0 | 61 } |
lbajardsilogic@0 | 62 } |
lbajardsilogic@0 | 63 |
lbajardsilogic@0 | 64 close FILE; |
lbajardsilogic@0 | 65 } |
lbajardsilogic@0 | 66 |
lbajardsilogic@0 | 67 print "\nTotal: $todo_count problem items, $unfinished_count unfinished " . |
lbajardsilogic@0 | 68 "markers in $file_count files\n\n"; |
lbajardsilogic@0 | 69 |