File: timestampsClean.pl

package info (click to toggle)
libreoffice 1%3A3.5.4%2Bdfsg2-0%2Bdeb7u6
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,692,956 kB
  • sloc: cpp: 4,679,168; java: 395,153; xml: 170,215; ansic: 99,333; perl: 60,572; python: 27,776; sh: 17,789; makefile: 8,738; yacc: 8,219; cs: 6,648; asm: 3,257; objc: 2,349; lex: 2,103; pascal: 890; awk: 758; csh: 247; lisp: 115; php: 104; sed: 9
file content (73 lines) | stat: -rwxr-xr-x 1,583 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/perl -w

my @output_buffer = ();
my $fname;
my $detectedSomeGuff = 0;
sub pure_guff($)
{
  my $array = shift;
  my @lines = @{$array};
  my $contains_sense = '';
  my $contains_guff = '';
  while (scalar @lines)
  {
    my $line = pop @lines;
    if ($line =~ m/Test run started :/ ||
    $line =~ m/ITEM Assertion OK/ ||
    $line =~ m/Test run finished :/) {
      $contains_guff = '1';
    } elsif ($line =~ m/^[\+\-][^\-\+]/) {
      $contains_sense = '1';
    }
  }
  if ($contains_guff && $contains_sense) {
    print STDERR "Patch fragment with mixed good/bad changes in '$ARGV' near $line_index\n";
    $contains_guff = '';
  }
  elsif ( $contains_guff ) {
    $detectedSomeGuff++;
  }
#  print "contains guff: $contains_guff\n";
  return $contains_guff;
}

sub output_lines($)
{
  my $array = shift;
  my @lines = @{$array};

  if (pure_guff (\@lines)) {
    return;
  }

  while (scalar @lines)
  {
    my $line = pop @lines;
    push @output_buffer, $line;
  }
}

my $header;
my @lines;
my $frag_count = 0;
$line_index = 0;

while (<>) {
  if (/^\@\@/ || /^[^ \-\+]/) {
    output_lines (\@lines);
    @lines = ();
    $frag_count++;
  }
  unshift @lines, $_;
  $line_index++;
  close ARGV if eof;
}
output_lines(\@lines);

# $detectedSomeGuff contains the skipped hunks that contain acceptable diff
# e.g. a timestamp or an OK assertion that contains different content
# like perhaps a path
#print "frag_count = $frag_count fragstocount = $fragstocount detectedSomeGuff = $detectedSomeGuff \n";
if ($frag_count > $detectedSomeGuff) {
  print @output_buffer;
}