summaryrefslogtreecommitdiffstats
path: root/doc/tools
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-26 18:02:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-26 18:02:26 +0000
commit2ba8875a0b268d572ef2a27584d3f845ec1391b0 (patch)
tree70279d7624be264d69e3db5ab15a2af9278be0eb /doc/tools
parentMerged changes from 4.5 branch and removed that branch. (diff)
downloadrtems-2ba8875a0b268d572ef2a27584d3f845ec1391b0.tar.bz2
Patch rtemsdoc-4.5.0-rc-0.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
which contains the bulk of converting the documentation tree to automake and GNU conventions. Comments follow: This is the automake port of rtemsdoc. To apply: cvs co rtemsdoc cd rtemsdoc sh cvs-rm.sh patch -p0 < rtemsdoc-4.5.0-rc-0.diff sh cvs-add.sh [Attention: cvs-rm.sh and cvs-add.sh directly modify cvs] Known bugs: 1) src2html is not supported (yet? - Is this supposed to work?) 2) all *.pdf images now are generated on-the-fly, but not yet deleted during "make distclean" 3) All supplements, including the templated ones, get build and installed. 4) Building outside of the source tree is completely untested and very likely does not work. 5) Make [ps|pdf] are not (yet) supported, make [dvi|info] are supported by automake's default texinfo rules. Fixing 2, 3 and 5 is almost trivial and needs to be done. 4) is a matter of testing and tool-properties, for now it is simply untested. General issues: * gif vs jpg vs png. I would recommend to replace all images with pngs to avoid potential copyright issues (gif) or lack in quality (jpg, jpg is good for real world photographs, but extremely poor on artificial images, graphs). * pdf images do net get placed correctly in pdf-documents. * texinfo: We now use a local copy of texinfo-4.0's texinfo.tex in texinfo/texinfo.tex for generating infos. However pdftex's system-wide texinfo.tex and pdftexinfo.tex are used for generating *.dvi, *.ps, *.pdf. * .cvsignore files still missing. * I have renamed the supplements filename not to use c_<supplement>, because automake seems to have problems with it. Notes: * Again, I recommend not to put any generated files into CVS. Here, this comprises some *texi, all *.pdf and many *.html pages. Ie. I recommend to run make maintainer-clean before checking in any files. * To get building started, this should be sufficient: ./bootstrap ./configure cd tools; make; cd .. make info * To make a public tarball: [cvs co ; ./bootstrap] ./configure cd tools; make; cd .. make info [make clean] make dist => This generates a rtems-<version>.tar.gz in the toplevel directory. => Building the tools only is required after a "cvs co", but not in a distribution tarball.
Diffstat (limited to 'doc/tools')
-rw-r--r--doc/tools/Makefile.am13
-rw-r--r--doc/tools/bmenu/Makefile45
-rw-r--r--doc/tools/bmenu/Makefile.am16
-rw-r--r--doc/tools/configure.in32
-rw-r--r--doc/tools/pdl2texi/Makefile85
-rw-r--r--doc/tools/pdl2texi/Makefile.am59
-rw-r--r--doc/tools/src2html/Makefile38
-rw-r--r--doc/tools/src2html/Makefile.am25
-rw-r--r--doc/tools/src2html1.4a/Ctags/Makefile15
-rw-r--r--doc/tools/src2html1.4a/Ctags/Makefile.am10
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/Makefile.am21
-rw-r--r--doc/tools/src2html1.4a/Makefile.am8
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/Makefile.am5
-rw-r--r--doc/tools/texi2www/Makefile50
-rw-r--r--doc/tools/texi2www/Makefile.am24
-rw-r--r--doc/tools/word-replace2101
16 files changed, 314 insertions, 233 deletions
diff --git a/doc/tools/Makefile.am b/doc/tools/Makefile.am
new file mode 100644
index 0000000000..278b42e7ef
--- /dev/null
+++ b/doc/tools/Makefile.am
@@ -0,0 +1,13 @@
+## $Id$
+
+AUTOMAKE_OPTIONS = foreign 1.4
+
+EXTRA_DIST = \
+update word-replace
+
+SUBDIRS = \
+bmenu \
+src2html1.4a \
+src2html \
+pdl2texi \
+texi2www
diff --git a/doc/tools/bmenu/Makefile b/doc/tools/bmenu/Makefile
deleted file mode 100644
index 6d5da7b9d0..0000000000
--- a/doc/tools/bmenu/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# COPYRIGHT (c) 1988-1999.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-#
-# $Id$
-#
-
-CC=gcc
-#CFLAGS=-O4 -fomit-frame-pointer
-CFLAGS=-g
-
-#TEXINPUTS=/home/gnu/work/binutils-2.6/texinfo:.
-PROG=bmenu
-
-all: $(PROG)
-
-$(BASE).txt: $(BASE).d ./$(PROG)
- ./$(PROG) $(BASE).d
-
-$(PROG): main.o chain.o
- gcc main.o chain.o -o $(PROG)
-
-main.o: main.c base.h
-
-chain.o: chain.c
-
-info: c_user.texinfo timer.texi
- makeinfo c_user.texinfo
-
-TESTER=init
-test: all
- #rm -f timer.txt
- #./bmenu -v timer.texi
- #cp ../user/$(TESTER).texi .
- ./bmenu -u "DOCS UP" -p "DOCS PREV" -n "DOCS NEXT" -v testdoc.txt
- #mv $(TESTER).txt $(TESTER).texi
- #makeinfo c_user.texinfo
-
-
-clean:
- rm -f *.o $(PROG) *.txt core *.html
- rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE)
- rm -f c_user c_user-* _*
-
diff --git a/doc/tools/bmenu/Makefile.am b/doc/tools/bmenu/Makefile.am
new file mode 100644
index 0000000000..122467187b
--- /dev/null
+++ b/doc/tools/bmenu/Makefile.am
@@ -0,0 +1,16 @@
+#
+# COPYRIGHT (c) 1988-1998.
+# On-Line Applications Research Corporation (OAR).
+# All rights reserved.
+#
+# $Id$
+#
+
+AUTOMAKE_OPTIONS = foreign 1.4
+
+noinst_PROGRAMS=bmenu
+
+bmenu_SOURCES = \
+address.h chain.c isr.h \
+address.inl chain.h main.c \
+base.h chain.inl system.h
diff --git a/doc/tools/configure.in b/doc/tools/configure.in
new file mode 100644
index 0000000000..bf8d7efdc5
--- /dev/null
+++ b/doc/tools/configure.in
@@ -0,0 +1,32 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl NOTE: This is a very coarse port to automake
+AC_PREREQ(2.13)
+
+AC_INIT(update)
+
+AM_INIT_AUTOMAKE(rtemsdoc-tools,0.0.0,no)
+dnl Checks for programs.
+AC_PROG_CC
+
+dnl Checks for libraries.
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(limits.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+
+dnl Checks for library functions.
+AC_CHECK_FUNCS(strdup strstr)
+
+AC_OUTPUT(
+Makefile
+bmenu/Makefile
+src2html/Makefile
+src2html1.4a/Makefile
+src2html1.4a/Ctags/Makefile
+src2html1.4a/FreeBSD/Makefile
+src2html1.4a/ctags-emacs/Makefile
+pdl2texi/Makefile
+texi2www/Makefile
+)
diff --git a/doc/tools/pdl2texi/Makefile b/doc/tools/pdl2texi/Makefile
deleted file mode 100644
index 6827898edb..0000000000
--- a/doc/tools/pdl2texi/Makefile
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# COPYRIGHT (c) 1996-1997.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-#
-# $Id$
-#
-
-CC=gcc
-#CFLAGS=-O4 -fomit-frame-pointer
-CFLAGS=-g
-
-TEXINPUTS=/home/gnu/work/binutils-2.6/texinfo:.
-PROG=pdl2texi
-
-all: $(PROG)
-
-$(BASE).texi: $(BASE).d ./$(PROG)
- ./$(PROG) $(BASE).d
-
-$(PROG): main.o chain.o
- gcc -static main.o chain.o -o $(PROG)
-
-drive: Drive
-Drive: $(BASE).txt
- /usr1/home/joel/tmp/makeinfo $(PROJECT).texi
-
-main.o: main.c base.h
-
-chain.o: chain.c
-
-dvi: dirs $(PROJECT).dvi
-ps: $(PROJECT).ps
-pdf: dirs $(PROJECT).pdf
-
-$(PROJECT).pdf: $(FILES)
- $(TEXI2PDF) $(PROJECT).texi
-info: Drive
-html: $(PROJECT).texi $(BASE).txt
- ../textools/texi2html $(PROJECT).texi
-
-$(BASE).txt: $(BASE).d
- ./$(PROG) -v -p "Turret Subsystem" -u "Turret Subsystem" $(BASE).d
-
-$(PROJECT).ps: $(PROJECT).dvi
- dvips -o $(PROJECT).ps $(PROJECT).dvi
-
-$(PROJECT).dvi: $(FILES)
- $(TEXI2DVI) $(PROJECT).texi
- cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT)
-
-view:
- test -r $(PROJECT).ps && ghostview $(PROJECT).ps
-
-tests: test test1
-
-test: $(PROG)
- rm -f $(BASE).texi
- ./$(PROG) -v -p "Turret Subsystem" -u "Turret Subsystem" $(BASE).d
-
-test1:
- rm -f t1.txt
- ./$(PROG) -v t1.d
-
-wtest:
- rm -f $(BASE).txt
- ./$(PROG) -w -v -p "Turret Subsystem" -u "Turret Subsystem" $(BASE).d
-
-enum:
- ./$(PROG) -w -v -p "Magic Subsystem" \
- -u "Magic Subsystem" test_cases/enum.d
- ./$(PROG) -w -v -p "Magic Subsystem" \
- -u "Magic Subsystem" test_cases/enumbad.d
-
-avdas:
- ./$(PROG) -v -p "Magic Subsystem" \
- -u "Magic Subsystem" test_cases/avdas.d
- ./$(PROG) -w -v -p "Magic Subsystem" \
- -u "Magic Subsystem" test_cases/avdas.d
-
-clean:
- rm -f *.o $(PROG) *.txt core *.html $(PROJECT) Drive.texi $(PROJECT).pdf
- rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE)
- rm -f test_cases/*.txt test_cases/*.texi
-
diff --git a/doc/tools/pdl2texi/Makefile.am b/doc/tools/pdl2texi/Makefile.am
new file mode 100644
index 0000000000..0d31296e7a
--- /dev/null
+++ b/doc/tools/pdl2texi/Makefile.am
@@ -0,0 +1,59 @@
+#
+# COPYRIGHT (c) 1996-1997.
+# On-Line Applications Research Corporation (OAR).
+# All rights reserved.
+#
+# $Id$
+#
+
+AUTOMAKE_OPTIONS = foreign
+
+PROG=pdl2texi
+noinst_PROGRAMS=$(PROG)
+
+#$(BASE).texi: $(BASE).d ./$(PROG)
+# ./$(PROG) $(BASE).d
+
+pdl2texi_SOURCES = \
+address.inl chain.h main.c system.h \
+base.h chain.inl address.h chain.c \
+isr.h
+
+BASE=sample
+
+#drive: Drive
+#Drive: $(BASE).txt
+# /usr1/home/joel/tmp/makeinfo $(PROJECT).texi
+
+#dvi: $(PROJECT).dvi
+#ps: $(PROJECT).ps
+#info: Drive
+#html: $(PROJECT).texi $(BASE).txt
+# ../textools/texi2html $(PROJECT).texi
+
+$(BASE).txt: $(BASE).d
+ ./$(PROG) -v -p "Turret Subsystem" -u "Turret Subsystem" $(BASE).d
+
+wtest:
+ rm -f $(BASE).txt
+ ./$(PROG) -w -v -p "Turret Subsystem" -u "Turret Subsystem" $(BASE).d
+
+enum:
+ ./$(PROG) -w -v -p "Magic Subsystem" \
+ -u "Magic Subsystem" test_cases/enum.d
+ ./$(PROG) -w -v -p "Magic Subsystem" \
+ -u "Magic Subsystem" test_cases/enumbad.d
+
+avdas:
+ ./$(PROG) -v -p "Magic Subsystem" \
+ -u "Magic Subsystem" test_cases/avdas.d
+ ./$(PROG) -w -v -p "Magic Subsystem" \
+ -u "Magic Subsystem" test_cases/avdas.d
+
+clean:
+ rm -f *.o $(PROG) *.txt core *.html $(PROJECT) Drive.texi
+ rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE)
+ rm -f test_cases/*.txt test_cases/*.texi
+
+EXTRA_DIST = test_cases/enum.d test_cases/enumbad.d test_cases/table.d \
+ s.d sample.d
diff --git a/doc/tools/src2html/Makefile b/doc/tools/src2html/Makefile
deleted file mode 100644
index 6aa7b47e39..0000000000
--- a/doc/tools/src2html/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# COPYRIGHT (c) 1988-1999.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-#
-# $Id$
-#
-
-CC=gcc
-CFLAGS=-g
-
-PROGS=ctags-wr ctags-new ctags src2html
-
-SRC2HTMLDIR=src2html1.4a
-
-all: tools
-
-tools: $(PROGS)
- chmod +x $(PROGS)
-
-ctags-wr:
- cp ../$(SRC2HTMLDIR)/ctags-wr .
-
-ctags-new:
- cd ../$(SRC2HTMLDIR)/Ctags ; gmake
- cp ../$(SRC2HTMLDIR)/Ctags/ctags-new .
-
-# EMACS ctags with Ada awareness
-ctags:
- cp ../$(SRC2HTMLDIR)/ctags-emacs/ctags ctags
-
-src2html:
- cp ../$(SRC2HTMLDIR)/src2html .
-
-clean:
- rm -f $(PROGS)
- cd ../$(SRC2HTMLDIR)/Ctags ; gmake clean
-
diff --git a/doc/tools/src2html/Makefile.am b/doc/tools/src2html/Makefile.am
new file mode 100644
index 0000000000..76d61c75ce
--- /dev/null
+++ b/doc/tools/src2html/Makefile.am
@@ -0,0 +1,25 @@
+#
+# COPYRIGHT (c) 1988-1998.
+# On-Line Applications Research Corporation (OAR).
+# All rights reserved.
+#
+# $Id$
+#
+
+AUTOMAKE_OPTIONS = foreign
+
+SRC2HTMLDIR=$(top_srcdir)/src2html1.4a
+
+ctags-wr: $(SRC2HTMLDIR)/ctags-wr
+ cp $< $@
+ chmod 755 $@
+
+ctags-new: $(SRC2HTMLDIR)/Ctags/ctags-new
+ cp $< $@
+
+# EMACS ctags with Ada awareness
+ctags: $(SRC2HTMLDIR)/ctags-emacs/ctags
+ cp $< $@
+
+src2html: $(SRC2HTMLDIR)/src2html
+ cp $< $@
diff --git a/doc/tools/src2html1.4a/Ctags/Makefile b/doc/tools/src2html1.4a/Ctags/Makefile
deleted file mode 100644
index c6dd7f0d6a..0000000000
--- a/doc/tools/src2html1.4a/Ctags/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# @(#)Makefile 5.6 (Berkeley) 5/11/90
-
-CC=gcc
-
-PROG= ctags-new
-CFLAGS+=-I. -g
-
-SRCS= C.c ctags.c fortran.c lisp.c print.c tree.c yacc.c strerror.c
-
-ctags: C.o ctags.o fortran.o lisp.o print.o tree.o yacc.o strerror.o
- $(CC) -o ctags-new C.o ctags.o fortran.o lisp.o print.o tree.o yacc.o \
- strerror.o
-
-clean:
- rm -f *.o ctags-new
diff --git a/doc/tools/src2html1.4a/Ctags/Makefile.am b/doc/tools/src2html1.4a/Ctags/Makefile.am
new file mode 100644
index 0000000000..0066980147
--- /dev/null
+++ b/doc/tools/src2html1.4a/Ctags/Makefile.am
@@ -0,0 +1,10 @@
+## $Id$
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_PROGRAMS = ctags-new
+
+ctags_new_SOURCES = C.c ctags.c fortran.c lisp.c print.c \
+tree.c yacc.c strerror.c ctags.h
+
+EXTRA_DIST = ctags.1 z.c
diff --git a/doc/tools/src2html1.4a/FreeBSD/Makefile.am b/doc/tools/src2html1.4a/FreeBSD/Makefile.am
new file mode 100644
index 0000000000..df56641ebe
--- /dev/null
+++ b/doc/tools/src2html1.4a/FreeBSD/Makefile.am
@@ -0,0 +1,21 @@
+## $Id$
+
+AUTOMAKE_OPTIONS = foreign
+
+EXTRA_DIST = \
+FreeBSD.hdr \
+FreeBSD.s2h \
+conf.hdr \
+ddb.hdr \
+i386.i386.hdr \
+i386.include.hdr \
+i386.isa.hdr \
+i386.stand.hdr \
+kern.hdr \
+net.hdr \
+netinet.hdr \
+nfs.hdr \
+stand.hdr \
+sys.hdr \
+ufs.hdr \
+vm.hdr
diff --git a/doc/tools/src2html1.4a/Makefile.am b/doc/tools/src2html1.4a/Makefile.am
new file mode 100644
index 0000000000..8814866d6f
--- /dev/null
+++ b/doc/tools/src2html1.4a/Makefile.am
@@ -0,0 +1,8 @@
+AUTOMAKE_OPTIONS = foreign
+
+SUBDIRS = Ctags FreeBSD ctags-emacs
+
+noinst_SCRIPTS = ctags-wr src2html src2html.cgi
+
+EXTRA_DIST = src2html.1 Readme $(noinst_SCRIPTS)
+
diff --git a/doc/tools/src2html1.4a/ctags-emacs/Makefile.am b/doc/tools/src2html1.4a/ctags-emacs/Makefile.am
new file mode 100644
index 0000000000..8c0c4a0ac5
--- /dev/null
+++ b/doc/tools/src2html1.4a/ctags-emacs/Makefile.am
@@ -0,0 +1,5 @@
+## $Id$
+
+AUTOMAKE_OPTIONS = foreign
+
+EXTRA_DIST = ctags etags.c-ada-patch README
diff --git a/doc/tools/texi2www/Makefile b/doc/tools/texi2www/Makefile
deleted file mode 100644
index 11ef5a3d65..0000000000
--- a/doc/tools/texi2www/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# COPYRIGHT (c) 1988-1999.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-#
-# $Id$
-#
-
-PROJECT=texi2www
-
-include ../../Make.config
-
-all: html info ps pdf
-
-dirs:
- $(make-dirs)
-
-FILES= texi2www.texi
-
-info:
-
-dvi: dirs $(PROJECT).dvi
-
-ps: dirs $(PROJECT).ps
-pdf: dirs $(PROJECT).pdf
-
-$(PROJECT).pdf: $(FILES)
- #$(TEXI2PDF) $(PROJECT).texi
- #cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT)
-
-$(PROJECT).ps: $(PROJECT).dvi
- #dvips -o $(PROJECT).ps $(PROJECT).dvi
- #cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT)
-
-$(PROJECT).dvi: $(FILES)
- #$(TEXI2DVI) $(PROJECT).texi
- #cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT)
-
-html: dirs $(FILES)
- #-mkdir -p $(WWW_INSTALL)/$(PROJECT)
- #$(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \
- # $(PROJECT).texi
-
-clean:
- rm -f *.o $(PROG) *.txt core $(PROJECT).pdf
- rm -f *.dvi *.ps *.log *.aux *.cp *.cps
- rm -f *.fn *.ky *.pg *.toc *.tp *.vr $(BASE)
- rm -f $(PROJECT)-* $(GENERATED_FILES)
- rm -f *.fixed _*
-
diff --git a/doc/tools/texi2www/Makefile.am b/doc/tools/texi2www/Makefile.am
new file mode 100644
index 0000000000..08b530df5f
--- /dev/null
+++ b/doc/tools/texi2www/Makefile.am
@@ -0,0 +1,24 @@
+#
+# COPYRIGHT (c) 1988-1998.
+# On-Line Applications Research Corporation (OAR).
+# All rights reserved.
+#
+# $Id$
+#
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_SCRIPTS = texi2www texi2dvi
+
+EXTRA_DIST = \
+$(noinst_SCRIPTS) \
+dir-arrow.gif prev-arrow.gif \
+missing-arrow.gif up-arrow.gif \
+next-arrow.gif \
+texi2www.texi \
+archive/texi2www-960103.tgz
+
+PROJECT=texi2www
+
+# TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
+# info_TEXINFOS = texi2www.texi
diff --git a/doc/tools/word-replace2 b/doc/tools/word-replace2
new file mode 100644
index 0000000000..a56d88a688
--- /dev/null
+++ b/doc/tools/word-replace2
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+ if $running_under_some_shell;
+
+require 'getopts.pl';
+&Getopts("p:vh"); # help, pattern file, verbose,
+
+if ($opt_h || ! $opt_p) {
+ print STDERR <<NO_MORE_HELP;
+word-replace
+
+ Replace *words* with patterns. Pattern file specifies which patterns
+ to replace on each line. All patterns are wrapped with perl \\b regexp
+ specifiers.
+
+Usage: $0 [-v] -p pattern-file files to replace
+
+ -v -- possibly more verbose
+ -p file -- pattern file
+ -h -- help
+
+ anything else == this help message
+
+Pattern file looks like this:
+
+# Example:
+# ignores all lines with beginning with # or not exactly 2 fields
+_Dorky_Name rtems_dorky_name # comments, and blank lines are cool
+_Dorky_Name2 rtems_dorky_name2 # comments, and blank lines are cool
+NO_MORE_HELP
+ exit 0;
+}
+
+$verbose = $opt_v;
+$pattern_file = $opt_p;
+
+# make standard outputs unbuffered (so the '.'s come out ok)
+$oldfh = select(STDERR); $| = 1; select($oldfh);
+$oldfh = select(STDOUT); $| = 1; select($oldfh);
+
+# pull in the patterns
+open(PATTERNS, "<$pattern_file") ||
+ die "could not open $pattern_file: $!, crapped out at";
+
+
+
+foreach (<PATTERNS>)
+{
+ chop;
+ s/#.*//;
+ next if /^$/;
+ ($orig, $new, $junk, @rest) = split;
+ next if ( ! $orig || ! $new || $junk); # <2 or >2 patterns
+ die "pattern appears 2x: '$orig' in '$pattern_file'--" if defined($patterns{$orig});
+ $patterns{$orig} = $new;
+}
+close PATTERNS;
+# walk thru each line in each file
+
+$infile = '-' ;
+$outfile = '-' ;
+
+if ( $#ARGV > -1 )
+{
+ $infile = "@ARGV[0]" ;
+ shift @ARGV ;
+}
+
+if ( $#ARGV > -1 )
+{
+ $outfile = "@ARGV[0]" ;
+ shift @ARGV ;
+}
+
+print STDERR "$outfile\t";
+
+open (INFILE, "<$infile") ||
+ die "could not open input file $infile: $!";
+
+open (OUTFILE, ">$outfile") ||
+ die "could not open output file $outfile: $!";
+
+$line = join('',<INFILE>) ;
+
+ foreach $key (keys %patterns)
+ {
+ if ( $line =~ s/\b$key\b/$patterns{$key}/ge )
+ {
+ print STDERR "." ;
+ }
+ }
+
+print OUTFILE $line ;
+
+print STDERR "\n";
+close INFILE;
+close OUTFILE;