OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [tools/] [update/] [word-replace.in] - Diff between revs 30 and 173

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 30 Rev 173
#!@PERL@
#!@PERL@
#
#
#  $Id: word-replace.in,v 1.2 2001-09-27 12:02:54 chris Exp $
#  $Id: word-replace.in,v 1.2 2001-09-27 12:02:54 chris Exp $
#
#
eval "exec @PERL@ -S $0 $*"
eval "exec @PERL@ -S $0 $*"
    if $running_under_some_shell;
    if $running_under_some_shell;
require 'getopts.pl';
require 'getopts.pl';
&Getopts("p:vh");               # help, pattern file, verbose,
&Getopts("p:vh");               # help, pattern file, verbose,
if ($opt_h || ! $opt_p) {
if ($opt_h || ! $opt_p) {
    print STDERR <
    print STDERR <
word-replace
word-replace
   Replace *words* with patterns.   Pattern file specifies which patterns
   Replace *words* with patterns.   Pattern file specifies which patterns
   to replace on each line.  All patterns are wrapped with perl \\b regexp
   to replace on each line.  All patterns are wrapped with perl \\b regexp
   specifiers.
   specifiers.
Usage: $0       [-v] -p pattern-file files to replace
Usage: $0       [-v] -p pattern-file files to replace
    -v          -- possibly more verbose
    -v          -- possibly more verbose
    -p file     -- pattern file
    -p file     -- pattern file
    -h          -- help
    -h          -- help
    anything else == this help message
    anything else == this help message
Pattern file looks like this:
Pattern file looks like this:
# Example:
# Example:
# ignores all lines with beginning with # or not exactly 2 fields
# ignores all lines with beginning with # or not exactly 2 fields
_Dorky_Name  rtems_dorky_name           # comments, and blank lines are cool
_Dorky_Name  rtems_dorky_name           # comments, and blank lines are cool
_Dorky_Name2 rtems_dorky_name2          # comments, and blank lines are cool
_Dorky_Name2 rtems_dorky_name2          # comments, and blank lines are cool
NO_MORE_HELP
NO_MORE_HELP
    exit 0;
    exit 0;
}
}
$verbose = $opt_v;
$verbose = $opt_v;
$pattern_file = $opt_p;
$pattern_file = $opt_p;
# make standard outputs unbuffered (so the '.'s come out ok)
# make standard outputs unbuffered (so the '.'s come out ok)
$oldfh = select(STDERR); $| = 1; select($oldfh);
$oldfh = select(STDERR); $| = 1; select($oldfh);
$oldfh = select(STDOUT); $| = 1; select($oldfh);
$oldfh = select(STDOUT); $| = 1; select($oldfh);
# pull in the patterns
# pull in the patterns
open(PATTERNS, "<$pattern_file") ||
open(PATTERNS, "<$pattern_file") ||
    die "could not open $pattern_file: $!, crapped out at";
    die "could not open $pattern_file: $!, crapped out at";
foreach ()
foreach ()
{
{
    chop;
    chop;
    s/#.*//;
    s/#.*//;
    next if /^$/;
    next if /^$/;
    ($orig, $new, $junk, @rest) = split;
    ($orig, $new, $junk, @rest) = split;
    next if ( ! $orig || ! $new || $junk); # <2 or >2 patterns
    next if ( ! $orig || ! $new || $junk); # <2 or >2 patterns
    die "pattern appears 2x: '$orig' in '$pattern_file'--" if defined($patterns{$orig});
    die "pattern appears 2x: '$orig' in '$pattern_file'--" if defined($patterns{$orig});
    $patterns{$orig} = $new;
    $patterns{$orig} = $new;
}
}
close PATTERNS;
close PATTERNS;
# walk thru each line in each file
# walk thru each line in each file
foreach $file (@ARGV)
foreach $file (@ARGV)
{
{
    print "$file\t";
    print "$file\t";
    open (INFILE, "<$file") ||
    open (INFILE, "<$file") ||
        die "could not open input file $file: $!";
        die "could not open input file $file: $!";
    $outfile = $file . ".fixed";;
    $outfile = $file . ".fixed";;
    open (OUTFILE, ">$outfile") ||
    open (OUTFILE, ">$outfile") ||
        die "could not open output file $outfile: $!";
        die "could not open output file $outfile: $!";
    while ()
    while ()
    {
    {
        study;                  # maybe make s/// faster
        study;                  # maybe make s/// faster
        foreach $key (keys %patterns)
        foreach $key (keys %patterns)
        {
        {
            if ( s/\b$key\b/$patterns{$key}/ge )
            if ( s/\b$key\b/$patterns{$key}/ge )
            {
            {
                print ".";
                print ".";
            }
            }
        }
        }
        print OUTFILE $_;
        print OUTFILE $_;
    }
    }
    print "\n";
    print "\n";
    close INFILE;
    close INFILE;
    close OUTFILE;
    close OUTFILE;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.