Annotation of libwww/config/makedefs.pl, revision 1.1

1.1     ! eric        1: #!/usr/local/bin/perl
        !             2: 
        !             3: $NumberDefs'at = 24;            # target at sign column
        !             4: $NumberDefs'tab = 8;            # how wide a tab looks in your editor
        !             5: $NumberDefs'offset = 0;         # starting number
        !             6: $NumberDefs'index;
        !             7: 
        !             8: sub NumberDefs'numberEach
        !             9: {
        !            10:     package NumberDefs;
        !            11:     local($name) = @_;
        !            12:     if ($name eq "") {
        !            13:        print "\n";
        !            14:        next;
        !            15:     }
        !            16:     if ($offset == 0) {
        !            17:        print "EXPORTS\n";
        !            18:     }
        !            19:     print $name;
        !            20:     if ($name =~ /^;/) {
        !            21:        ($module, $atsign, $start) = split(" ", $_);
        !            22: #      print "\"", $module, "\" ", $start;
        !            23:        if ($start && $start > $offset) {
        !            24:            $offset = $start;
        !            25:        } else {
        !            26:            $offset += 100;
        !            27:        }
        !            28:        $index = $offset;
        !            29:     }
        !            30:     $len = length($name);
        !            31:     if ($len >= $at) {
        !            32:        print " ";
        !            33:     } else {
        !            34:        $tabz = (($at-$len)/$tab);
        !            35:        for ($i = 0; $i < $tabz; $i++) {
        !            36:            print "\t";
        !            37:        }
        !            38:     }
        !            39:     print "@ ", $index, "\n";
        !            40:     $index ++;
        !            41: }
        !            42: 
        !            43: # numberAll - call this to renumber a def file
        !            44: #
        !            45: sub NumberDefs'numberAll
        !            46: {
        !            47:     package NumberDefs;
        !            48:     $INPUT = $_[0];
        !            49:     while(<$INPUT>) {
        !            50:        local($name) =  split(" ",$_);
        !            51:        &NumberDefs'numberEach($name);
        !            52:     }
        !            53: }
        !            54: 
        !            55: sub GrepPublic
        !            56: {
        !            57:     local($source) = @_;
        !            58:     if (!open (SOURCE, "../".$source)) {
        !            59:        warn "Can't open ../$source: $!\n"; 
        !            60:        return;
        !            61:     }
        !            62:     &NumberDefs'numberEach(';'.$source); # add source file as a source
        !            63:     while (<SOURCE>) {
        !            64:        if (!/^PUBLIC\s/) {
        !            65:             next;
        !            66:         }
        !            67:         if (!/(\w*)\W*\(/) {
        !            68:             warn "assuming global: ", $_;
        !            69:             next;
        !            70:         }
        !            71:         local($func) = $1;
        !            72: #       printf "\$_:\"%s\" \$func:\"%s\"\n", $_, $func;
        !            73:         &NumberDefs'numberEach($func);
        !            74:     }
        !            75: }
        !            76: 
        !            77: if (@ARGV[0] =~ /@(.*)/) {
        !            78:     local($name) = $1;
        !            79:     if ($name =~ /\w+/) {
        !            80:        if (!open(LIST, $name)) {
        !            81:            die "Can't open \"$1\", $!";
        !            82:        }
        !            83:        while (<LIST>) {
        !            84:            chop;
        !            85:            &GrepPublic($_);
        !            86:            print "\n";
        !            87:        }
        !            88:        exit 0;
        !            89:     }
        !            90:     while (<STDIN>) {
        !            91:        chop;
        !            92:        &GrepPublic($_);
        !            93:        print "\n";
        !            94:     }
        !            95:     exit 0;
        !            96: }
        !            97: foreach $source (@ARGV) {
        !            98:     &GrepPublic($source);
        !            99: }
        !           100: 
        !           101: #&NumberDefs'numberAll(STDIN);
        !           102: 

Webmaster