File: check-sync.pl

package info (click to toggle)
plplot 5.10.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 26,280 kB
  • ctags: 13,512
  • sloc: ansic: 83,001; xml: 27,081; ada: 18,878; cpp: 15,966; tcl: 11,651; python: 7,075; f90: 7,058; ml: 6,974; java: 6,665; perl: 5,029; sh: 2,210; makefile: 199; lisp: 75; sed: 25; fortran: 7
file content (62 lines) | stat: -rwxr-xr-x 1,385 bytes parent folder | download | duplicates (6)
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
#!/usr/bin/perl -w

# Check if the perl examples are in sync with the C examples
#
# Run like this: check-sync.pl *.pl
#
# Copyright (C) 2006  Rafael Laboisssiere
# This file is part of PLplot and is distributed under the terms of the 
# GNU Lesser General Public License, version 2.1 or later.  No warranties.

(my $prog = $0) =~ s:.*/::;

if (scalar @ARGV == 0) {
  print "Usage: $prog file [file ...]\n";
  exit 0;
}

sub compver {
  my $v1 = shift;
  my $v2 = shift;
  my @V1 = split (/\./, $v1);
  my @V2 = split (/\./, $v2);
  my $n1 = scalar @V1;
  my $n2 = scalar @V2;
  my $retval = 0;
  for (my $i = 0; $i < $n1 and $i < $n2; $i++) {
    $retval = (int $V1 [$i] <=> int $V2 [$i]);
    last if $retval != 0;
  }
  $retval = ($n1 <=> $n2)
    if $retval == 0;
  return $retval;
}

my %currver;

open (ENTRIES, "< ../c/CVS/Entries")
  or die "$prog: Cannot open Entries file";

while (<ENTRIES>) {
  $currver {$1} = $2
    if m{^/(x\d\dc.c)/([\d.]+)};
}

foreach my $file (@ARGV) {
  open (IN, "< $file")
    or die "$prog: Cannot open $file.";
  while (<IN>) {
    if (/SYNC: (x\d\dc.c) ([\d.]+)/) {
      my $cfile = $1;
      my $ver = $2;
      my $cver = $currver {$cfile};
      print "$file: sync with ",
            compver ($ver, $cver) == 0
              ? "$cfile $cver"
              : "$ver, but $cfile version is $cver",
            "\n";
      next;
    }
  }
}