nexmon – Rev 1

Subversion Repositories:
Rev:
#!/usr/bin/env perl

# Copyright 2010, Jeff Morriss <jeff.morriss.ws[AT]gmail.com>
#
# A simple tool to remove bogus blurbs from hf entries.
# This has already been run so it may not be necessary any more, but
# may as well check it in in case it can serve as a base for other, future,
# global hf changes.
#
# Usage:
# fixhf.pl file1 [file2 file3 ...]
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#

use strict;

# Read through the files
while ($_ = $ARGV[0])
{
        shift;
        my $filename = $_;
        my $fileContents = '';
        my @foundAPIs = ();

        die "No such file: \"$filename\"" if (! -e $filename);

        # delete leading './'
        $filename =~ s{ ^ \. / } {}xo;

        # Read in the file (ouch, but it's easier that way)
        open(FC, $filename) || die("Couldn't open $filename");
        while (<FC>) { $fileContents .= $_; }
        close(FC);

        if ($fileContents =~ s{   
                                  (\{
                                  \s*
                                  &\s*[A-Z0-9_\[\]-]+           # &hf
                                  \s*,\s*
                                  \{\s*
                                  ("[A-Z0-9 '\./\(\)_:-]+")     # name
                                  \s*,\s*
                                  "[A-Z0-9_\.-]+"               # abbrev
                                  \s*,\s*
                                  FT_[A-Z0-9_]+                 # field type
                                  \s*,\s*
                                  [A-Z0-9x|_]+                  # display
                                  \s*,\s*
                                  [A-Z0-9&_\(\)' -]+            # convert
                                  \s*,\s*
                                  [A-Z0-9x_]+                   # bitmask
                                  \s*,\s*)
                                  \2                            # blurb
                                } [$1NULL]xgios)
                                 # \s*HFILL)
        {
                print STDERR "Warning: field with name==blurb found in " .$filename. " FIXING IT!\n";

                # Trim trailing white space while we're here
                $fileContents =~ s{[ \t]+$} []gom;

                open(FC, ">".$filename) || die("Couldn't open $filename");
                print FC $fileContents;
                close(FC);
        }

}