| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- #!/usr/bin/perl -w
 
- use strict;
 
- my %options = ();
 
- my %descOptions = ();
 
- my %torrcSampleOptions = ();
 
- my %torrcCompleteOptions = ();
 
- my %manPageOptions = ();
 
- # Load the canonical list as actually accepted by Tor.
 
- my $mostRecentOption;
 
- open(F, "./src/or/tor --list-torrc-options |") or die;
 
- while (<F>) {
 
-     next if m!\[notice\] Tor v0\.!;
 
-     if (m!^([A-Za-z0-9_]+)!) {
 
-         $mostRecentOption = lc $1;
 
-         $options{$mostRecentOption} = 1;
 
-     } elsif (m!^    !) {
 
-         $descOptions{$mostRecentOption} = 1;
 
-         if (m!\{DEPRECATED\}!) {
 
-             delete $descOptions{$mostRecentOption};
 
-             delete $options{$mostRecentOption};
 
-         }
 
-     } else {
 
-         print "Unrecognized output> ";
 
-         print;
 
-     }
 
- }
 
- close F;
 
- # Load the contents of torrc.sample and torrc.complete
 
- sub loadTorrc {
 
-     my ($fname, $options) = @_;
 
-     local *F;
 
-     open(F, "$fname") or die;
 
-     while (<F>) {
 
-         next if (m!##+!);
 
-         if (m!#([A-Za-z0-9_]+)!) {
 
-             $options->{lc $1} = 1;
 
-         }
 
-     }
 
-     close F;
 
-     0;
 
- }
 
- loadTorrc("./src/config/torrc.sample.in", \%torrcSampleOptions);
 
- loadTorrc("./src/config/torrc.complete.in", \%torrcCompleteOptions);
 
- # Try to figure out what's in the man page.
 
- my $considerNextLine = 0;
 
- open(F, "./doc/tor.1.in") or die;
 
- while (<F>) {
 
-     if ($considerNextLine and
 
-         m!^\\fB([A-Za-z0-9_]+)!) {
 
-         $manPageOptions{lc $1} = 1;
 
- 	next;
 
-     }
 
-     if (m!^\.(?:SH|TP|PP)!) {
 
-         $considerNextLine = 1; next;
 
-     } else {
 
-         $considerNextLine = 0;
 
-     }
 
- }
 
- close F;
 
- # Now, display differences:
 
- sub subtractHashes {
 
-     my ($s, $a, $b) = @_;
 
-     my @lst = ();
 
-     for my $k (keys %$a) {
 
-         push @lst, $k unless (exists $b->{$k});
 
-     }
 
-     print "$s: ", join(' ', sort @lst), "\n\n";
 
-     0;
 
- }
 
- subtractHashes("No online docs", \%options, \%descOptions);
 
- # subtractHashes("Orphaned online docs", \%descOptions, \%options);
 
- subtractHashes("Not in torrc.complete.in", \%options, \%torrcCompleteOptions);
 
- subtractHashes("Orphaned in torrc.complete.in", \%torrcCompleteOptions, \%options);
 
- subtractHashes("Orphaned in torrc.sample.in", \%torrcSampleOptions, \%options);
 
- subtractHashes("Not in man page", \%options, \%manPageOptions);
 
- subtractHashes("Orphaned in man page", \%manPageOptions, \%options);
 
 
  |