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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [tools/] [word-replace2] - Diff between revs 1026 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 1026 Rev 1765
#!/usr/bin/perl
#!/usr/bin/perl
#
#
#  word-replace2,v 1.4 2002/01/17 21:47:47 joel Exp
#  word-replace2,v 1.4 2002/01/17 21:47:47 joel Exp
#
#
eval "exec /usr/local/bin/perl -S $0 $*"
eval "exec /usr/local/bin/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-replace2
word-replace2
   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
$infile = '-' ;
$infile = '-' ;
$outfile = '-' ;
$outfile = '-' ;
if ( $#ARGV > -1 )
if ( $#ARGV > -1 )
{
{
  $infile = "@ARGV[0]" ;
  $infile = "@ARGV[0]" ;
  shift @ARGV ;
  shift @ARGV ;
}
}
if ( $#ARGV > -1 )
if ( $#ARGV > -1 )
{
{
  $outfile = "@ARGV[0]" ;
  $outfile = "@ARGV[0]" ;
  shift @ARGV ;
  shift @ARGV ;
}
}
open (INFILE, "<$infile") ||
open (INFILE, "<$infile") ||
        die "could not open input file $infile: $!";
        die "could not open input file $infile: $!";
$line = join('',) ;
$line = join('',) ;
close INFILE;
close INFILE;
print STDERR "$outfile\t";
print STDERR "$outfile\t";
open (OUTFILE, ">$outfile") ||
open (OUTFILE, ">$outfile") ||
        die "could not open output file $outfile: $!";
        die "could not open output file $outfile: $!";
foreach $key (keys %patterns)
foreach $key (keys %patterns)
{
{
  if ( $line =~ s/\b$key\b/$patterns{$key}/ge )
  if ( $line =~ s/\b$key\b/$patterns{$key}/ge )
  {
  {
    print STDERR "." ;
    print STDERR "." ;
  }
  }
}
}
print OUTFILE $line ;
print OUTFILE $line ;
print STDERR "\n";
print STDERR "\n";
close OUTFILE;
close OUTFILE;
 
 

powered by: WebSVN 2.1.0

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