summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Bailey <jbailey@raspberryginger.com>2000-02-17 03:09:09 +0000
committerEric Blake <ebb9@byu.net>2007-10-05 14:52:21 -0600
commit83df9fcd10147d8a3283845f324987574a015bd3 (patch)
treeb6c2029462a776ff508e69ef42ec24af7c96da18
parentf2efdfa6a528ab1cbc6bb891ba5b01eb460bcd77 (diff)
downloadm4-1.4i.tar.gz
Import of m4-1.4im4-1.4i
-rw-r--r--BACKLOG4
-rw-r--r--ChangeLog70
-rw-r--r--Makefile.am8
-rw-r--r--Makefile.in9
-rw-r--r--NEWS11
-rw-r--r--README31
-rw-r--r--THANKS12
-rw-r--r--TODO46
-rw-r--r--acconfig.h3
-rw-r--r--config.h.in3
-rwxr-xr-xconfigure483
-rw-r--r--configure.in32
-rw-r--r--doc/m4.14
-rw-r--r--doc/m4.info154
-rw-r--r--doc/m4.info-18
-rw-r--r--doc/m4.texinfo7
-rw-r--r--doc/stamp-vti6
-rw-r--r--doc/version.texi6
-rw-r--r--examples/Makefile.am11
-rw-r--r--examples/Makefile.in46
-rwxr-xr-xexamples/comments.test2
-rwxr-xr-xexamples/ddivert.test2
-rwxr-xr-xexamples/debug.test2
-rw-r--r--examples/defs54
-rwxr-xr-xexamples/iso8859.test2
-rwxr-xr-xexamples/reverse.test2
-rwxr-xr-xexamples/sysv-args.test2
-rwxr-xr-xexamples/wrap.test2
-rw-r--r--modules/Makefile.am9
-rw-r--r--modules/Makefile.in300
-rw-r--r--modules/README62
-rw-r--r--modules/test.c58
-rw-r--r--modules/test.m43
-rw-r--r--modules/time.c193
-rw-r--r--modules/time.m416
-rw-r--r--po/ChangeLog6
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/cat-id-tbl.c32
-rw-r--r--po/de.gmobin11731 -> 11731 bytes
-rw-r--r--po/de.po85
-rw-r--r--po/fr.gmobin11890 -> 11890 bytes
-rw-r--r--po/fr.po85
-rw-r--r--po/it.gmobin6118 -> 6118 bytes
-rw-r--r--po/it.po85
-rw-r--r--po/ja.gmobin12649 -> 12649 bytes
-rw-r--r--po/ja.po85
-rw-r--r--po/m4.pot85
-rw-r--r--po/nl.gmobin11766 -> 11661 bytes
-rw-r--r--po/nl.po94
-rw-r--r--po/pl.gmobin0 -> 11935 bytes
-rw-r--r--po/pl.po500
-rw-r--r--po/ru.gmobin11431 -> 11431 bytes
-rw-r--r--po/ru.po85
-rw-r--r--po/sv.gmobin356 -> 356 bytes
-rw-r--r--po/sv.po89
-rw-r--r--src/Makefile.am5
-rw-r--r--src/Makefile.in15
-rw-r--r--src/builtin.c130
-rw-r--r--src/builtin.h39
-rw-r--r--src/m4.c15
-rw-r--r--src/m4.h23
-rw-r--r--src/module.c206
-rw-r--r--src/path.c167
-rw-r--r--tests/Makefile.am98
-rw-r--r--tests/Makefile.in100
-rw-r--r--tests/defs4
-rwxr-xr-xtests/gentest/argument.1.m4 (renamed from tests/argument.1.test)4
-rwxr-xr-xtests/gentest/argument.2.m4 (renamed from tests/argument.2.test)4
-rwxr-xr-xtests/gentest/argument.3.m4 (renamed from tests/argument.3.test)4
-rwxr-xr-xtests/gentest/argument.4.m4 (renamed from tests/argument.4.test)4
-rwxr-xr-xtests/gentest/changeco.1.m4 (renamed from tests/changeco.1.test)4
-rwxr-xr-xtests/gentest/changeco.2.m4 (renamed from tests/changeco.2.test)4
-rwxr-xr-xtests/gentest/changequ.1.m4 (renamed from tests/changequ.1.test)4
-rwxr-xr-xtests/gentest/changequ.2.m4 (renamed from tests/changequ.2.test)4
-rwxr-xr-xtests/gentest/changequ.3.m4 (renamed from tests/changequ.3.test)4
-rwxr-xr-xtests/gentest/changesy.1.m4 (renamed from tests/changesy.1.test)4
-rwxr-xr-xtests/gentest/changesy.2.m4 (renamed from tests/changesy.2.test)4
-rwxr-xr-xtests/gentest/changesy.3.m4 (renamed from tests/changesy.3.test)4
-rwxr-xr-xtests/gentest/changesy.4.m4 (renamed from tests/changesy.4.test)4
-rwxr-xr-xtests/gentest/changesy.5.m4 (renamed from tests/changesy.5.test)4
-rwxr-xr-xtests/gentest/changesy.6.m4 (renamed from tests/changesy.6.test)4
-rwxr-xr-xtests/gentest/changesy.7.m4 (renamed from tests/changesy.7.test)4
-rwxr-xr-xtests/gentest/cleardiv.1.m4 (renamed from tests/cleardiv.1.test)4
-rwxr-xr-xtests/gentest/cleardiv.2.m4 (renamed from tests/cleardiv.2.test)4
-rwxr-xr-xtests/gentest/define.1.m4 (renamed from tests/define.1.test)4
-rwxr-xr-xtests/gentest/define.2.m4 (renamed from tests/define.2.test)4
-rwxr-xr-xtests/gentest/defn.1.m4 (renamed from tests/defn.1.test)4
-rwxr-xr-xtests/gentest/defn.2.m4 (renamed from tests/defn.2.test)4
-rwxr-xr-xtests/gentest/divert.1.m4 (renamed from tests/divert.1.test)4
-rwxr-xr-xtests/gentest/divert.2.m4 (renamed from tests/divert.2.test)4
-rwxr-xr-xtests/gentest/divnum.1.m4 (renamed from tests/divnum.1.test)4
-rwxr-xr-xtests/gentest/dnl.1.m4 (renamed from tests/dnl.1.test)4
-rwxr-xr-xtests/gentest/dumpdef.1.m4 (renamed from tests/dumpdef.1.test)4
-rwxr-xr-xtests/gentest/errprint.1.m4 (renamed from tests/errprint.1.test)4
-rwxr-xr-xtests/gentest/errprint.2.m4 (renamed from tests/errprint.2.test)4
-rwxr-xr-xtests/gentest/esyscmd.1.m4 (renamed from tests/esyscmd.1.test)4
-rwxr-xr-xtests/gentest/eval.1.m4 (renamed from tests/eval.1.test)4
-rwxr-xr-xtests/gentest/eval.2.m4 (renamed from tests/eval.2.test)4
-rwxr-xr-xtests/gentest/format.1.m4 (renamed from tests/format.1.test)4
-rwxr-xr-xtests/gentest/ifdef.1.m4 (renamed from tests/ifdef.1.test)4
-rwxr-xr-xtests/gentest/ifelse.1.m4 (renamed from tests/ifelse.1.test)4
-rwxr-xr-xtests/gentest/ifelse.2.m4 (renamed from tests/ifelse.2.test)4
-rwxr-xr-xtests/gentest/include.1.m4 (renamed from tests/include.1.test)4
-rwxr-xr-xtests/gentest/include.2.m4 (renamed from tests/include.2.test)4
-rwxr-xr-xtests/gentest/include.3.m4 (renamed from tests/include.3.test)4
-rwxr-xr-xtests/gentest/incr.1.m4 (renamed from tests/incr.1.test)4
-rwxr-xr-xtests/gentest/index.1.m4 (renamed from tests/index.1.test)4
-rwxr-xr-xtests/gentest/indir.1.m4 (renamed from tests/indir.1.test)4
-rwxr-xr-xtests/gentest/len.1.m4 (renamed from tests/len.1.test)4
-rwxr-xr-xtests/gentest/loops.1.m4 (renamed from tests/loops.1.test)4
-rwxr-xr-xtests/gentest/loops.2.m4 (renamed from tests/loops.2.test)4
-rwxr-xr-xtests/gentest/m4exit.1.m4 (renamed from tests/m4exit.1.test)4
-rwxr-xr-xtests/gentest/m4wrap.1.m4 (renamed from tests/m4wrap.1.test)4
-rwxr-xr-xtests/gentest/patsubst.1.m4 (renamed from tests/patsubst.1.test)4
-rwxr-xr-xtests/gentest/patsubst.2.m4 (renamed from tests/patsubst.2.test)4
-rwxr-xr-xtests/gentest/pseudoar.1.m4 (renamed from tests/pseudoar.1.test)4
-rwxr-xr-xtests/gentest/pseudoar.2.m4 (renamed from tests/pseudoar.2.test)4
-rwxr-xr-xtests/gentest/pseudoar.3.m4 (renamed from tests/pseudoar.3.test)4
-rwxr-xr-xtests/gentest/pseudoar.4.m4 (renamed from tests/pseudoar.4.test)4
-rwxr-xr-xtests/gentest/pseudoar.5.m4 (renamed from tests/pseudoar.5.test)4
-rwxr-xr-xtests/gentest/pushdef.1.m4 (renamed from tests/pushdef.1.test)4
-rwxr-xr-xtests/gentest/pushdef.2.m4 (renamed from tests/pushdef.2.test)4
-rwxr-xr-xtests/gentest/regexp.1.m4 (renamed from tests/regexp.1.test)4
-rwxr-xr-xtests/gentest/regexp.2.m4 (renamed from tests/regexp.2.test)4
-rwxr-xr-xtests/gentest/substr.1.m4 (renamed from tests/substr.1.test)4
-rwxr-xr-xtests/gentest/sysval.1.m4 (renamed from tests/sysval.1.test)4
-rwxr-xr-xtests/gentest/trace.1.m4 (renamed from tests/trace.1.test)4
-rwxr-xr-xtests/gentest/translit.1.m4 (renamed from tests/translit.1.test)4
-rwxr-xr-xtests/gentest/undefine.1.m4 (renamed from tests/undefine.1.test)4
-rwxr-xr-xtests/gentest/undivert.1.m4 (renamed from tests/undivert.1.test)4
-rwxr-xr-xtests/gentest/undivert.2.m4 (renamed from tests/undivert.2.test)4
-rwxr-xr-xtests/gentest/undivert.3.m4 (renamed from tests/undivert.3.test)4
-rwxr-xr-xtests/get-them6
-rwxr-xr-xtests/run-test29
134 files changed, 2962 insertions, 1034 deletions
diff --git a/BACKLOG b/BACKLOG
index c14711e1..b996b8bc 100644
--- a/BACKLOG
+++ b/BACKLOG
@@ -1,3 +1,7 @@
+
+
+This is completely out of date - René Seindal (rene@seindal.dk)
+------------------------------------------------------------------------
# Summary of pending email for GNU m4 1.4.1.
# Last updated: Saturday, December 03, 1994.
diff --git a/ChangeLog b/ChangeLog
index f65b4a67..ae91cdc8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+1998-10-04 Rene' Seindal <rene@seindal.dk>
+
+ * Prerelease 1.4i.
+
+ * configure.in (ALL_LINGUAS): Added Polish pl.po
+
+1998-10-03 Rene' Seindal <rene@seindal.dk>
+
+ * Many files: Incorporated changes to implement dynamic modules.
+ Detailed comments in src/modules.c and modules/README
+
+ * src/module.c: New file, implements the OS dependant parts of
+ dynamic module loading.
+
+ * src/Makefile.am (m4_SOURCES): Added module.c
+
+ * src/builtin.h: New file, declares some functions from builtin.c
+ that are of use for other modules (shipout_int, numeric_arg,
+ skip_space, bad_argc), and the macros ARG() and DECLARE().
+
+ * src/builtin.c (install_builtin_table): New function. Each
+ module brings in a builtin_table, which is pushed on a stack.
+ (struct builtin_table): New struct for list of builtin_tables.
+ (m4_loadmodule): New function to implement builtin "loadmodule".
+ (shipout_int): No longer static, to be used by modules.
+ (numeric_arg): do.
+ (skip_space): do.
+ (bad_argc): do.
+ (builtin_init): changed to call install_builtin_table()
+ (find_builtin_by_name): Now searches all builtin_tables
+ (find_builtin_by_addr): do.
+
+ * src/path.c: Reorganised to allow for two search paths, one for
+ include files and one for modules.
+
+ * src/m4.h: Added declarations for new functions in module.c and
+ in path.c.
+
+ * src/m4.c (main): Added call to module_init().
+
+ * modules: New directory with a few demo modules.
+
+ * Makefile.am (EXTRA_DIST): Added modules/* since modules/ is not
+ in SUBDIRS.
+
+ * configure.in: Added modules/Makefile to AC_OUTPUT.
+
+ * configure.in: Added code to implement --with-modules. Tests for
+ <dlfcn.h> and -ldl.
+
+ * acconfig.h: Added WITH_MODULES
+
+1998-10-02 Rene' Seindal <rene@seindal.dk>
+
+ * examples/Makefile.am (pkgdata_DATA): Removed special target for
+ check and variables TESTS. These tests are now run from the
+ tests/ directory.
+
+ * tests/Makefile.am (OTHER_TESTS): Added tests from the example/
+ directory. The files stay there but the tests are run from the
+ tests/ directory.
+
+ * tests/Makefile.am (EXTRA_DIST): Added run-test.
+
+ * tests/run-test: New file. Run a test manually
+
+ * tests/Makefile.am, tests/get_them: Moved automatically generated
+ tests (from the manual) to sub directory tests/gentest/. The
+ tests/ directory had gotten a bit messy.
+
1998-09-06 Erick Branderhorst <Erick.Branderhorst@asml.nl>
* examples/{comments,ddivert,debug,iso8859,reverse,sysv-args,\
diff --git a/Makefile.am b/Makefile.am
index 83a58432..e5de0d30 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,12 @@
AUTOMAKE_OPTIONS = 1.3b gnits
-SUBDIRS = acm4 intl po lib src doc examples tests
+SUBDIRS = acm4 intl po lib src doc examples tests # modules
+
+# These are excluded otherwise
+EXTRA_DIST = modules/Makefile.am modules/Makefile.in \
+ modules/test.c modules/test.m4 \
+ modules/time.c modules/time.m4 \
+ modules/README
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
diff --git a/Makefile.in b/Makefile.in
index 7531ee7c..07afcc77 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -90,7 +90,13 @@ l = @l@
AUTOMAKE_OPTIONS = 1.3b gnits
-SUBDIRS = acm4 intl po lib src doc examples tests
+SUBDIRS = acm4 intl po lib src doc examples tests # modules
+
+# These are excluded otherwise
+EXTRA_DIST = modules/Makefile.am modules/Makefile.in \
+ modules/test.c modules/test.m4 \
+ modules/time.c modules/time.m4 \
+ modules/README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
@@ -249,6 +255,7 @@ distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
+ $(mkinstalldirs) $(distdir)/modules
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
diff --git a/NEWS b/NEWS
index 22dd22a1..e92a4360 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
GNU m4 NEWS - History of user-visible changes. -*-indented-text-*-
Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
-Version 1.5 (1.4h) - August 1998, Erick Branderhorst and Rene' Seindal
+Version beta 1.4i - October 1998, by Erick Branderhorst and Rene' Seindal
* GNU m4 now uses gettext to support internationalization.
@@ -22,9 +22,16 @@ Version 1.5 (1.4h) - August 1998, Erick Branderhorst and Rene' Seindal
* Sync lines can be turned on and off with the `syncoutput' builtin. The
builtin `syncoutput' is a GNU extension.
+* New experimental feature: dynamically loadable modules. New builtin
+ `loadmodules' loads shared libraries, that can define new builtin
+ macros, ie, new macros can be written in C. Depends on the dlopen()
+ interface, and is currently only tested on Linux. Enabled at configure
+ time with `--with-modules'. Documentation is in src/module.c and
+ module/README.
+
* Implement a GNU message catalog for French (Franc,ois Pinard).
-Bugs fixed in 1.5
+Bugs fixed
* All 8-bit characters can now be used for quotes.
diff --git a/README b/README
index 76ac7a0c..a2925ffb 100644
--- a/README
+++ b/README
@@ -5,8 +5,9 @@ to macros). `m4' also has built-in functions for including files,
running shell commands, doing arithmetic, etc. Autoconf needs GNU
`m4' for generating `configure' scripts, but not for running them.
-GNU `m4' has been originally written by Rene' Seindal, from Denmark.
-This release is to be considered as stable.
+GNU `m4' has been originally written by René Seindal, from Denmark.
+
+This release is a development release. Last stable release is 1.4.
If GNU `m4' is meant to serve GNU `autoconf', beware that `m4'
should be fully installed *prior to* configuring `autoconf' itself.
@@ -15,22 +16,28 @@ In the subdirectory `examples' you will find various m4 files, ranging
from trivial test files to rather advanced macros. If you intend to
use m4 seriously, you might find useful material down there.
-See file `BACKLOG' for a summary of pending mail and articles.
See file `COPYING' for copying conditions.
See file `INSTALL' for compilation and installation instructions.
See file `ABOUT-NLS' for how to customize this program to your language.
See file `NEWS' for a list of major changes in the current release.
See file `THANKS' for a list of contributors.
-By using `./configure --enable-changeword', you get an experimental
-feature which allows for changing the syntax of what is a "word" in
-`m4'. This might go away, so don't count on it yet.
-
By using `./configure --with-gmp, you get an multiple precision integral
and rational arithmetic in eval. The implementation depends on GNU gmp
-v2. This might go away, so don't count on it yet.
+v2.
+
+By using `./configure --with-modules, you get the possibility of using
+dynamic modules. The implementation depends on dlopen(3) interface.
+This might change or go away, so don't count on it yet.
+
+By using `./configure --enable-changeword', you get an experimental
+feature which allows for changing the syntax of what is a "word" in
+`m4'. THIS WILL PROBABLY GO AWAY, so don't count on it. Some of the
+same things can be achieved with `changesyntax' at a much better speed.
-Send bug reports to `bug-gnu-utils@prep.ai.mit.edu'. A bug report is
-an adequate description of the problem: your input, what you expected,
-what you got, and why this is wrong. Diffs are welcome, but they only
-describe a solution, from which the problem might be uneasy to infer.
+Send bug reports, comments or ideas to `bug-m4@gnu.org'. A bug report
+is an adequate description of the problem: your input, what you
+expected, what you got, and why this is wrong. Diffs are welcome, but
+they only describe a solution, from which the problem might be uneasy to
+infer. Don't forget all relevant information about your operating
+system, compiler, libraries, ...
diff --git a/THANKS b/THANKS
index 9eca8012..3deae738 100644
--- a/THANKS
+++ b/THANKS
@@ -5,6 +5,8 @@ further contributed to GNU m4 by reporting problems, suggesting
various improvements or submitting actual code. Here is a list of
these people. Help me keep it complete and exempt of errors.
+
+
Akiko Matsushita matusita@sra.co.jp
Alan Magnuson awm@osc.edu
Alexander Lehmann alex@hal.rhein-main.de
@@ -22,6 +24,7 @@ David J. MacKenzie djm@uunet.uu.net
Erez Zadok ezk@cs.columbia.edu
Eric Allman eric@cs.berkeley.edu
Eric Backus ericb@lsid.hp.com
+Erick Branderhorst Erick.Branderhorst@asml.nl
Franc,ois Pinard pinard@iro.umontreal.ca
Geoff Russell grussell@guest.adelaide.edu.au
Greg A. Woods woods@web.apc.org
@@ -34,6 +37,7 @@ Jim Kingdom kingdon@cygnus.com
Jim Meyering meyering@acm.org
Joel Sherrill jsherril@uahcs2.cs.uah.edu
John David Anglin dave@hiauly1.hia.nrc.ca
+John Gerard Malecki johnm@artisan.com
Joseph E. Sacco jsacco@ssl.com
Karl Berry karl@cs.umb.edu
Karl Vogel vogelke@c-17igp.wpafb.af.mil
@@ -45,7 +49,7 @@ Mark Seiden mis@seiden.com
Matthias Rabe rabe@mathematik.uni-bielefeld.de
Michael Fetterman mafetter@ichips.intel.com
Michael L. Welcome welcome@bigbird.llnl.gov
-Mike Howard mike@clove.com
+Mike Howard mike@clove.com
Mike Lijewski lijewski@theory.tc.cornell.edu
Nick S. Kanakakorn skanan@otl.scu.edu
Nicolas Pioch pioch@inf.enst.fr
@@ -53,9 +57,10 @@ Noah Friedman friedman@gnu.ai.mit.edu
Pete Chown pete.chown@dale.dircon.co.uk
Pierre Gaumond gaumondp@ere.umontreal.ca
Pierre Mathieu mathieu@geod.emr.ca
-Robert Bernstein rocky@panix.com
+Rafael Corvalan rafael@club-internet.fr
Rene' Seindal rene@seindal.dk
Richard Stallman rms@gnu.ai.mit.edu
+Robert Bernstein rocky@panix.com
Roland H. Pesch roland@wrs.com
Roland McGrath roland@gnu.ai.mit.edu
Scott Bartram deneb!scottb
@@ -63,11 +68,12 @@ Simon Leinen simon@lia.di.epfl.ch
Skip Montanaro skip@automatrix.com
Stephen Perkins perkins@cps.msu.edu
Steve Williamson willy@uinpla.npl.uiuc.edu
+Terry Jones terry@teclata.es
Thorsten Ohl ohl@physics.harvard.edu
Tom McConnell tmcconne@sedona.intel.com
Tom Quinn trq@dionysos.thphys.ox.ac.uk
Tom Tromey tromey@cns.caltech.edu
-Ulrich Drepper drepper@ira.uka.de
+Ulrich Drepper drepper@cygnus.com
Vern Paxson vern@ee.lbl.gov
Vivek P. Singhal singhal@cs.utexas.edu
Walter Wong wcw+@cmu.edu
diff --git a/TODO b/TODO
index 136ff5d7..e0c2e625 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,49 @@
-* TODO file for GNU m4 -*- outline -*-
+* TODO file for GNU m4 -*- indented-text -*-
+Tell the maintainers at <bug-m4@gnu.org> if you feel like volunteering
+for any of these ideas or if you have others to add.
+
+
+* Features or problems
+
+ + Changes in the syntax_table are not saved to frozen files (René
+ Seindal).
+
+ + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B).
+
+ + The $ used in user defined macros cannot be changed through
+ changesyntax. It should be handled as a modifier (René Seindal).
+
+ + Make show include dependencies like gcc so targets are updated
+ when their (included) input files are updated (Erick B).
+
+ + The filename found by path_search should be displayed by error
+ messages instead of the specified filename (René Seindal).
+
+ + An escape character (like in TeX) should be definable through the
+ syntax table (René Seindal).
+
+* Optimization and clean up
+
+ + Have NULs go really undisturbed through GNU m4
+ GNU m4 is lousy regarding NULs in streams (this would require
+ maintaining the string lengths, and avoiding strlen, strcpy,
+ etc.).
+
+
+
+
+
+
+
+
+
+
+Below is the old 1.4 TODO list, several years old. Only a few points
+have been kept. Some things are fixed, many others just seem
+dated. Write me if I have been to harsh. (René Seindal)
+
+------------------------------------------------------------------------
Tell <pinard@iro.umontreal.ca> if you feel like volunteering for any
of these ideas, listed more or less in decreasing order of priority.
Some TODO items are implicit from received email. See file BACKLOG.
diff --git a/acconfig.h b/acconfig.h
index 280125ae..0fcb5165 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -38,6 +38,9 @@
/* Define to 1 if the GNU multiple precision library should be used. */
#undef WITH_GMP
+/* Define to 1 if the -ldl library should be used . */
+#undef WITH_MODULES
+
/* Define to 1 if NLS is requested. */
#undef ENABLE_NLS
diff --git a/config.h.in b/config.h.in
index f33be788..6b4845df 100644
--- a/config.h.in
+++ b/config.h.in
@@ -101,6 +101,9 @@
/* Define to 1 if the GNU multiple precision library should be used. */
#undef WITH_GMP
+/* Define to 1 if the -ldl library should be used . */
+#undef WITH_MODULES
+
/* Define to 1 if NLS is requested. */
#undef ENABLE_NLS
diff --git a/configure b/configure
index 96c8582e..c53026e8 100755
--- a/configure
+++ b/configure
@@ -16,6 +16,8 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-changeword enable -W and changeword() builtin"
ac_help="$ac_help
+ --with-modules add support for dynamic modules"
+ac_help="$ac_help
--with-gmp use gmp for extended and fractional arithmetic"
ac_help="$ac_help
--with-dmalloc use dmalloc, as in
@@ -586,7 +588,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:590: checking for a BSD compatible install" >&5
+echo "configure:592: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -639,7 +641,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:643: checking whether build environment is sane" >&5
+echo "configure:645: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -677,7 +679,7 @@ fi
rm -f conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:681: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:683: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -706,7 +708,7 @@ fi
PACKAGE=m4
-VERSION=1.4h
+VERSION=1.4i
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@@ -723,7 +725,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:727: checking for working aclocal" >&5
+echo "configure:729: checking for working aclocal" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -736,7 +738,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:740: checking for working autoconf" >&5
+echo "configure:742: checking for working autoconf" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -749,7 +751,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:753: checking for working automake" >&5
+echo "configure:755: checking for working automake" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -762,7 +764,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:766: checking for working autoheader" >&5
+echo "configure:768: checking for working autoheader" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -775,7 +777,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:779: checking for working makeinfo" >&5
+echo "configure:781: checking for working makeinfo" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -788,14 +790,14 @@ else
fi
-ALL_LINGUAS="de fr it ja nl ru sv"
+ALL_LINGUAS="de fr it ja nl pl ru sv"
for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:799: checking for $ac_word" >&5
+echo "configure:801: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -826,7 +828,7 @@ done
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:830: checking for $ac_word" >&5
+echo "configure:832: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -855,7 +857,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:859: checking for $ac_word" >&5
+echo "configure:861: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -903,7 +905,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:907: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:909: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -913,11 +915,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 917 "configure"
+#line 919 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -937,12 +939,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:941: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:946: checking whether we are using GNU C" >&5
+echo "configure:948: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -951,7 +953,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -966,7 +968,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:970: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:972: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1004,7 +1006,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1008: checking for a BSD compatible install" >&5
+echo "configure:1010: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1054,7 +1056,7 @@ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1058: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1060: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1083,7 +1085,7 @@ fi
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1087: checking for $ac_word" >&5
+echo "configure:1089: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1112,7 +1114,7 @@ fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1116: checking for $ac_word" >&5
+echo "configure:1118: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1142,7 +1144,7 @@ fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1146: checking how to run the C preprocessor" >&5
+echo "configure:1148: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1157,13 +1159,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1161 "configure"
+#line 1163 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1174,13 +1176,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1178 "configure"
+#line 1180 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1203,9 +1205,9 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1207: checking for AIX" >&5
+echo "configure:1209: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 1209 "configure"
+#line 1211 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
@@ -1227,7 +1229,7 @@ rm -f conftest*
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1231: checking for POSIXized ISC" >&5
+echo "configure:1233: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -1249,17 +1251,17 @@ fi
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1253: checking for minix/config.h" >&5
+echo "configure:1255: checking for minix/config.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1258 "configure"
+#line 1260 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1263: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1300,7 +1302,7 @@ fi
echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1304: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1306: checking for ${CC-cc} option to accept ANSI C" >&5
if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1316,7 +1318,7 @@ for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__
do
CC="$ac_save_CC $ac_arg"
cat > conftest.$ac_ext <<EOF
-#line 1320 "configure"
+#line 1322 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -1353,7 +1355,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
; return 0; }
EOF
-if { (eval echo configure:1357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_prog_cc_stdc="$ac_arg"; break
else
@@ -1379,7 +1381,7 @@ esac
echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
-echo "configure:1383: checking for function prototypes" >&5
+echo "configure:1385: checking for function prototypes" >&5
if test "$am_cv_prog_cc_stdc" != no; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
@@ -1392,12 +1394,12 @@ else
U=_ ANSI2KNR=./ansi2knr
# Ensure some checks needed by ansi2knr itself.
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1396: checking for ANSI C header files" >&5
+echo "configure:1398: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1401 "configure"
+#line 1403 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1405,7 +1407,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1422,7 +1424,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1426 "configure"
+#line 1428 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1440,7 +1442,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1444 "configure"
+#line 1446 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1461,7 +1463,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1465 "configure"
+#line 1467 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1472,7 +1474,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1499,17 +1501,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1503: checking for $ac_hdr" >&5
+echo "configure:1505: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1508 "configure"
+#line 1510 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1513: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1538,12 +1540,12 @@ done
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1542: checking for working const" >&5
+echo "configure:1544: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1547 "configure"
+#line 1549 "configure"
#include "confdefs.h"
int main() {
@@ -1592,7 +1594,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1617,17 +1619,17 @@ for ac_hdr in limits.h locale.h memory.h siginfo.h string.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1621: checking for $ac_hdr" >&5
+echo "configure:1623: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1626 "configure"
+#line 1628 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1631: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1654,12 +1656,12 @@ fi
done
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1658: checking for ANSI C header files" >&5
+echo "configure:1660: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1663 "configure"
+#line 1665 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1667,7 +1669,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1684,7 +1686,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1688 "configure"
+#line 1690 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1702,7 +1704,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1706 "configure"
+#line 1708 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1723,7 +1725,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1727 "configure"
+#line 1729 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1734,7 +1736,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1758,12 +1760,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1762: checking return type of signal handlers" >&5
+echo "configure:1764: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1767 "configure"
+#line 1769 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1780,7 +1782,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1799,12 +1801,12 @@ EOF
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1803: checking for size_t" >&5
+echo "configure:1805: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1808 "configure"
+#line 1810 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1835,12 +1837,12 @@ fi
for ac_func in mkstemp sigaction sigaltstack sigstack sigvec strerror tmpfile
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1839: checking for $ac_func" >&5
+echo "configure:1841: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1844 "configure"
+#line 1846 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1863,7 +1865,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1891,19 +1893,19 @@ done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:1895: checking for working alloca.h" >&5
+echo "configure:1897: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1900 "configure"
+#line 1902 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:1907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -1924,12 +1926,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:1928: checking for alloca" >&5
+echo "configure:1930: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1933 "configure"
+#line 1935 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -1952,7 +1954,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:1956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -1984,12 +1986,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:1988: checking whether alloca needs Cray hooks" >&5
+echo "configure:1990: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1993 "configure"
+#line 1995 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -2014,12 +2016,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2018: checking for $ac_func" >&5
+echo "configure:2020: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2023 "configure"
+#line 2025 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2042,7 +2044,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2069,7 +2071,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2073: checking stack direction for C alloca" >&5
+echo "configure:2075: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2077,7 +2079,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 2081 "configure"
+#line 2083 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -2096,7 +2098,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:2100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -2118,12 +2120,12 @@ EOF
fi
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2122: checking for vprintf" >&5
+echo "configure:2124: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2127 "configure"
+#line 2129 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -2146,7 +2148,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:2150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -2170,12 +2172,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2174: checking for _doprnt" >&5
+echo "configure:2176: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2179 "configure"
+#line 2181 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -2198,7 +2200,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:2202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -2225,12 +2227,12 @@ fi
for ac_func in strtol obstack xmalloc xstrdup
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2229: checking for $ac_func" >&5
+echo "configure:2231: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2234 "configure"
+#line 2236 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2253,7 +2255,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2280,12 +2282,12 @@ done
echo $ac_n "checking for getopt_long""... $ac_c" 1>&6
-echo "configure:2284: checking for getopt_long" >&5
+echo "configure:2286: checking for getopt_long" >&5
if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2289 "configure"
+#line 2291 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char getopt_long(); below. */
@@ -2308,7 +2310,7 @@ getopt_long();
; return 0; }
EOF
-if { (eval echo configure:2312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_getopt_long=yes"
else
@@ -2350,12 +2352,12 @@ fi
for ac_func in strerror strerror_r vprintf doprnt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2354: checking for $ac_func" >&5
+echo "configure:2356: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2359 "configure"
+#line 2361 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2378,7 +2380,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2403,12 +2405,12 @@ fi
done
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2407: checking for ANSI C header files" >&5
+echo "configure:2409: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2412 "configure"
+#line 2414 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2416,7 +2418,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2420: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2433,7 +2435,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2437 "configure"
+#line 2439 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2451,7 +2453,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2455 "configure"
+#line 2457 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2472,7 +2474,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2476 "configure"
+#line 2478 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2483,7 +2485,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2509,9 +2511,9 @@ fi
echo $ac_n "checking ecvt declaration""... $ac_c" 1>&6
-echo "configure:2513: checking ecvt declaration" >&5
+echo "configure:2515: checking ecvt declaration" >&5
cat > conftest.$ac_ext <<EOF
-#line 2515 "configure"
+#line 2517 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2527,12 +2529,12 @@ else
echo "$ac_t""no" 1>&6; for ac_func in ecvt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2531: checking for $ac_func" >&5
+echo "configure:2533: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2536 "configure"
+#line 2538 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2555,7 +2557,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2584,7 +2586,7 @@ rm -f conftest*
echo $ac_n "checking if stack overflow is detectable""... $ac_c" 1>&6
-echo "configure:2588: checking if stack overflow is detectable" >&5
+echo "configure:2590: checking if stack overflow is detectable" >&5
# Code from Jim Avera <jima@netcom.com>.
# stackovf.c requires:
# 1. Either sigaction with SA_ONSTACK, or sigvec with SV_ONSTACK
@@ -2594,7 +2596,7 @@ use_stackovf=no
if test "$ac_cv_func_sigaction" = yes || test "$ac_cv_func_sigvec" = yes; then
if test "$ac_cv_func_sigaltstack" = yes || test "$ac_cv_func_sigstack" = yes; then
cat > conftest.$ac_ext <<EOF
-#line 2598 "configure"
+#line 2600 "configure"
#include "confdefs.h"
#include <sys/time.h>
#include <sys/resource.h>
@@ -2607,7 +2609,7 @@ choke me /* SA_ONSTACK and/or SV_ONSTACK are not defined */
#endif
; return 0; }
EOF
-if { (eval echo configure:2611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
use_stackovf=yes
else
@@ -2626,7 +2628,7 @@ EOF
STACKOVF=stackovf.${U}o
cat > conftest.$ac_ext <<EOF
-#line 2630 "configure"
+#line 2632 "configure"
#include "confdefs.h"
#include <sys/resource.h>
EOF
@@ -2643,7 +2645,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 2647 "configure"
+#line 2649 "configure"
#include "confdefs.h"
#include <signal.h>
EOF
@@ -2660,7 +2662,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 2664 "configure"
+#line 2666 "configure"
#include "confdefs.h"
#include <signal.h>
EOF
@@ -2677,7 +2679,7 @@ rm -f conftest*
fi
echo $ac_n "checking if changeword is wanted""... $ac_c" 1>&6
-echo "configure:2681: checking if changeword is wanted" >&5
+echo "configure:2683: checking if changeword is wanted" >&5
# Check whether --enable-changeword or --disable-changeword was given.
if test "${enable_changeword+set}" = set; then
enableval="$enable_changeword"
@@ -2695,8 +2697,95 @@ else
fi
+echo $ac_n "checking if support for dynamic modules is wanted""... $ac_c" 1>&6
+echo "configure:2702: checking if support for dynamic modules is wanted" >&5
+# Check whether --with-modules or --without-modules was given.
+if test "${with_modules+set}" = set; then
+ withval="$with_modules"
+ use_modules=$withval
+else
+ use_modules=no
+fi
+
+echo "$ac_t""$use_modules" 1>&6
+
+if test "$use_modules" = yes; then
+ LIBS="$LIBS -ldl"
+ ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
+echo "configure:2717: checking for dlfcn.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2722 "configure"
+#include "confdefs.h"
+#include <dlfcn.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for dlopen in libdl""... $ac_c" 1>&6
+echo "configure:2744: checking for dlopen in libdl" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen_libdl'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2749 "configure"
+#include "confdefs.h"
+#include <dlfcn.h>
+int main() {
+(void)dlopen(0, RTLD_NOW)
+; return 0; }
+EOF
+if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ rm -rf conftest*
+ ac_cv_func_dlopen_libdl=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_func_dlopen_libdl=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_dlopen_libdl" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+ac_cv_func_dlopen_libdl=no
+fi
+
+
+ if test "$ac_cv_func_dlopen_libdl$ac_cv_header_dlfcn_h" = yesyes; then
+ cat >> confdefs.h <<\EOF
+#define WITH_MODULES 1
+EOF
+
+ LDFLAGS="$LDFLAGS -rdynamic"
+ else
+ LIBS=`echo $LIBS | sed -e 's/-ldl//'`
+ echo "configure: warning: -ldl library not found or does not appear to work" 1>&2
+ use_modules=no
+ fi
+fi
+
echo $ac_n "checking if extended and fractional arithmetic is wanted""... $ac_c" 1>&6
-echo "configure:2700: checking if extended and fractional arithmetic is wanted" >&5
+echo "configure:2789: checking if extended and fractional arithmetic is wanted" >&5
# Check whether --with-gmp or --without-gmp was given.
if test "${with_gmp+set}" = set; then
withval="$with_gmp"
@@ -2711,17 +2800,17 @@ if test "$use_gmp" = yes; then
LIBS="$LIBS -lgmp"
ac_safe=`echo "gmp.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for gmp.h""... $ac_c" 1>&6
-echo "configure:2715: checking for gmp.h" >&5
+echo "configure:2804: checking for gmp.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2720 "configure"
+#line 2809 "configure"
#include "confdefs.h"
#include <gmp.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2738,19 +2827,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for mpq_init in libgmp""... $ac_c" 1>&6
-echo "configure:2742: checking for mpq_init in libgmp" >&5
+echo "configure:2831: checking for mpq_init in libgmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_mpq_init_libgmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2747 "configure"
+#line 2836 "configure"
#include "confdefs.h"
#include <gmp.h>
int main() {
mpq_t x; (void)mpq_init(x)
; return 0; }
EOF
-if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
ac_cv_func_mpq_init_libgmp=yes
else
@@ -2783,7 +2872,7 @@ fi
if test "$use_gmp" != yes; then
echo $ac_n "checking size of long long int""... $ac_c" 1>&6
-echo "configure:2787: checking size of long long int" >&5
+echo "configure:2876: checking size of long long int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2791,7 +2880,7 @@ else
ac_cv_sizeof_long_long_int=0
else
cat > conftest.$ac_ext <<EOF
-#line 2795 "configure"
+#line 2884 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
@@ -2802,7 +2891,7 @@ main()
exit(0);
}
EOF
-if { (eval echo configure:2806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long_int=`cat conftestval`
else
@@ -2824,7 +2913,7 @@ EOF
fi
echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6
-echo "configure:2828: checking if malloc debugging is wanted" >&5
+echo "configure:2917: checking if malloc debugging is wanted" >&5
# Check whether --with-dmalloc or --without-dmalloc was given.
if test "${with_dmalloc+set}" = set; then
withval="$with_dmalloc"
@@ -2845,21 +2934,21 @@ fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2849: checking for inline" >&5
+echo "configure:2938: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 2856 "configure"
+#line 2945 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:2863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2952: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -2885,12 +2974,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2889: checking for off_t" >&5
+echo "configure:2978: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2894 "configure"
+#line 2983 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2921,17 +3010,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2925: checking for $ac_hdr" >&5
+echo "configure:3014: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2930 "configure"
+#line 3019 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2960,12 +3049,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2964: checking for $ac_func" >&5
+echo "configure:3053: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2969 "configure"
+#line 3058 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2988,7 +3077,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3013,7 +3102,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3017: checking for working mmap" >&5
+echo "configure:3106: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3021,7 +3110,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3025 "configure"
+#line 3114 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3161,7 +3250,7 @@ main()
}
EOF
-if { (eval echo configure:3165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -3189,17 +3278,17 @@ unistd.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3193: checking for $ac_hdr" >&5
+echo "configure:3282: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3198 "configure"
+#line 3287 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3229,12 +3318,12 @@ done
strdup __argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3233: checking for $ac_func" >&5
+echo "configure:3322: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3238 "configure"
+#line 3327 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3257,7 +3346,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3286,12 +3375,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3290: checking for $ac_func" >&5
+echo "configure:3379: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3295 "configure"
+#line 3384 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3314,7 +3403,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3348,19 +3437,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3352: checking for LC_MESSAGES" >&5
+echo "configure:3441: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3357 "configure"
+#line 3446 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:3364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -3381,7 +3470,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3385: checking whether NLS is requested" >&5
+echo "configure:3474: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@@ -3401,7 +3490,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3405: checking whether included gettext is requested" >&5
+echo "configure:3494: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -3420,17 +3509,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3424: checking for libintl.h" >&5
+echo "configure:3513: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3429 "configure"
+#line 3518 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3434: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3447,19 +3536,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:3451: checking for gettext in libc" >&5
+echo "configure:3540: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3456 "configure"
+#line 3545 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:3463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@@ -3475,7 +3564,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:3479: checking for bindtextdomain in -lintl" >&5
+echo "configure:3568: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3483,7 +3572,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3487 "configure"
+#line 3576 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3494,7 +3583,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:3498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3510,7 +3599,7 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:3514: checking for gettext in -lintl" >&5
+echo "configure:3603: checking for gettext in -lintl" >&5
ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3518,7 +3607,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3522 "configure"
+#line 3611 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3529,7 +3618,7 @@ int main() {
gettext()
; return 0; }
EOF
-if { (eval echo configure:3533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3566,7 +3655,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3570: checking for $ac_word" >&5
+echo "configure:3659: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3600,12 +3689,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3604: checking for $ac_func" >&5
+echo "configure:3693: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3609 "configure"
+#line 3698 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3628,7 +3717,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3655,7 +3744,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3659: checking for $ac_word" >&5
+echo "configure:3748: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3687,7 +3776,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3691: checking for $ac_word" >&5
+echo "configure:3780: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3719,7 +3808,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 3723 "configure"
+#line 3812 "configure"
#include "confdefs.h"
int main() {
@@ -3727,7 +3816,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:3731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -3750,7 +3839,7 @@ fi
if test "$CATOBJEXT" = "NONE"; then
echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
-echo "configure:3754: checking whether catgets can be used" >&5
+echo "configure:3843: checking whether catgets can be used" >&5
# Check whether --with-catgets or --without-catgets was given.
if test "${with_catgets+set}" = set; then
withval="$with_catgets"
@@ -3763,7 +3852,7 @@ fi
if test "$nls_cv_use_catgets" = "yes"; then
echo $ac_n "checking for main in -li""... $ac_c" 1>&6
-echo "configure:3767: checking for main in -li" >&5
+echo "configure:3856: checking for main in -li" >&5
ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3771,14 +3860,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-li $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3775 "configure"
+#line 3864 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:3782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3806,12 +3895,12 @@ else
fi
echo $ac_n "checking for catgets""... $ac_c" 1>&6
-echo "configure:3810: checking for catgets" >&5
+echo "configure:3899: checking for catgets" >&5
if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3815 "configure"
+#line 3904 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char catgets(); below. */
@@ -3834,7 +3923,7 @@ catgets();
; return 0; }
EOF
-if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_catgets=yes"
else
@@ -3856,7 +3945,7 @@ EOF
# Extract the first word of "gencat", so it can be a program name with args.
set dummy gencat; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3860: checking for $ac_word" >&5
+echo "configure:3949: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3888,7 +3977,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3892: checking for $ac_word" >&5
+echo "configure:3981: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3921,7 +4010,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3925: checking for $ac_word" >&5
+echo "configure:4014: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3956,7 +4045,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3960: checking for $ac_word" >&5
+echo "configure:4049: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4014,7 +4103,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4018: checking for $ac_word" >&5
+echo "configure:4107: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4048,7 +4137,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4052: checking for $ac_word" >&5
+echo "configure:4141: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4080,7 +4169,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4084: checking for $ac_word" >&5
+echo "configure:4173: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4173,7 +4262,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4177: checking for catalogs to be installed" >&5
+echo "configure:4266: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -4201,17 +4290,17 @@ echo "configure:4177: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:4205: checking for linux/version.h" >&5
+echo "configure:4294: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4210 "configure"
+#line 4299 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4378,7 +4467,7 @@ ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile acm4/Makefile intl/Makefile po/Makefile.in doc/Makefile \
-lib/Makefile src/Makefile tests/Makefile examples/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+lib/Makefile src/Makefile modules/Makefile tests/Makefile examples/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -4492,7 +4581,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile acm4/Makefile intl/Makefile po/Makefile.in doc/Makefile \
-lib/Makefile src/Makefile tests/Makefile examples/Makefile"}
+lib/Makefile src/Makefile modules/Makefile tests/Makefile examples/Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/configure.in b/configure.in
index e3635beb..5220f6bf 100644
--- a/configure.in
+++ b/configure.in
@@ -8,8 +8,8 @@ AC_INIT(src/m4.c)
AM_CONFIG_HEADER(config.h)
AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE(m4,1.4h)
-ALL_LINGUAS="de fr it ja nl ru sv"
+AM_INIT_AUTOMAKE(m4,1.4i)
+ALL_LINGUAS="de fr it ja nl pl ru sv"
AC_PROG_AWK
AC_PROG_CC
@@ -84,6 +84,32 @@ else
AC_MSG_RESULT(no)
fi], [AC_MSG_RESULT(no)])
+AC_MSG_CHECKING(if support for dynamic modules is wanted)
+AC_ARG_WITH(modules,
+[ --with-modules add support for dynamic modules],
+[use_modules=$withval], [use_modules=no])
+AC_MSG_RESULT($use_modules)
+
+if test "$use_modules" = yes; then
+ LIBS="$LIBS -ldl"
+ AC_CHECK_HEADER([dlfcn.h],
+ [AC_CACHE_CHECK([for dlopen in libdl], ac_cv_func_dlopen_libdl,
+ [AC_TRY_LINK([#include <dlfcn.h>],
+ [(void)dlopen(0, RTLD_NOW)],
+ ac_cv_func_dlopen_libdl=yes,
+ ac_cv_func_dlopen_libdl=no)])],
+ ac_cv_func_dlopen_libdl=no)
+
+ if test "$ac_cv_func_dlopen_libdl$ac_cv_header_dlfcn_h" = yesyes; then
+ AC_DEFINE(WITH_MODULES)
+ LDFLAGS="$LDFLAGS -rdynamic"
+ else
+ LIBS=`echo $LIBS | sed -e 's/-ldl//'`
+ AC_MSG_WARN([-ldl library not found or does not appear to work])
+ use_modules=no
+ fi
+fi
+
AC_MSG_CHECKING(if extended and fractional arithmetic is wanted)
AC_ARG_WITH(gmp,
[ --with-gmp use gmp for extended and fractional arithmetic],
@@ -118,7 +144,7 @@ AM_GNU_GETTEXT
dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
AC_OUTPUT(Makefile acm4/Makefile intl/Makefile po/Makefile.in doc/Makefile \
-lib/Makefile src/Makefile tests/Makefile examples/Makefile, \
+lib/Makefile src/Makefile modules/Makefile tests/Makefile examples/Makefile, \
[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile; \
test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])
diff --git a/doc/m4.1 b/doc/m4.1
index beb6a584..4daaa3f9 100644
--- a/doc/m4.1
+++ b/doc/m4.1
@@ -1,7 +1,7 @@
." DO NOT MODIFY THIS FILE! It was generated by helptoman 1.1.1.1.
-.TH M4 1 "October 1998" "GNU m4 1.4h" "GNU User's Manual"
+.TH M4 1 "October 1998" "GNU m4 1.4i" "GNU User's Manual"
.SH NAME
-m4 \- short documentation for m4 1.4h
+m4 \- short documentation for m4 1.4i
.SH SYNOPSIS
.B m4
[\fIOPTION\fR]...\fI \fR[\fIFILE\fR]...\fI\fR
diff --git a/doc/m4.info b/doc/m4.info
index bc06f08c..87dfb445 100644
--- a/doc/m4.info
+++ b/doc/m4.info
@@ -27,8 +27,8 @@ translation approved by the Foundation.

Indirect:
m4.info-1: 973
-m4.info-2: 50059
-m4.info-3: 97908
+m4.info-2: 49992
+m4.info-3: 97841

Tag Table:
(Indirect)
@@ -38,80 +38,80 @@ Node: Intro7656
Node: History9264
Node: Invoking m410185
Node: Bugs17049
-Node: Manual18317
-Node: Syntax19683
-Node: Names20521
-Node: Quoted strings21134
-Node: Other tokens21718
-Node: Comments21935
-Node: Input processing22622
-Node: Macros23775
-Node: Invocation24268
-Node: Inhibiting Invocation25079
-Node: Macro Arguments28224
-Node: Quoting Arguments29539
-Node: Macro expansion30344
-Node: Definitions31007
-Node: Define31784
-Node: Arguments33338
-Node: Pseudo Arguments34819
-Node: Undefine36670
-Node: Defn37332
-Node: Pushdef38802
-Node: Indir40861
-Node: Builtin41639
-Node: Conditionals42083
-Node: Ifdef42790
-Node: Ifelse43559
-Node: Loops45341
-Node: Debugging48633
-Node: Dumpdef49211
-Node: Trace50059
-Node: Debug Levels51438
-Node: Debug Output53823
-Node: Input Control54343
-Node: Dnl54956
-Node: Changequote56082
-Node: Changecom57446
-Node: Changesyntax58732
-Node: Changeword65006
-Node: M4wrap68241
-Node: File Inclusion69443
-Node: Include69759
-Node: Search Path71778
-Node: Diversions72565
-Node: Divert73802
-Node: Undivert74934
-Node: Divnum76905
-Node: Cleardiv77450
-Node: Text handling78505
-Node: Len79225
-Node: Index79623
-Node: Regexp80208
-Node: Substr81299
-Node: Translit81919
-Node: Patsubst83362
-Node: Format85453
-Node: Arithmetic86942
-Node: Incr87399
-Node: Eval87903
-Node: UNIX commands91509
-Node: Syscmd91980
-Node: Esyscmd92693
-Node: Sysval93641
-Node: Maketemp94048
-Node: Miscellaneous95105
-Node: Errprint95536
-Node: M4exit96518
-Node: Syncoutput97316
-Node: Frozen files97908
-Node: Compatibility102827
-Node: Extensions103443
-Node: Incompatibilities105913
-Node: Other Incompat106355
-Node: Experiments108518
-Node: Answers110025
-Node: Concept index110657
-Node: Macro index118078
+Node: Manual18250
+Node: Syntax19616
+Node: Names20454
+Node: Quoted strings21067
+Node: Other tokens21651
+Node: Comments21868
+Node: Input processing22555
+Node: Macros23708
+Node: Invocation24201
+Node: Inhibiting Invocation25012
+Node: Macro Arguments28157
+Node: Quoting Arguments29472
+Node: Macro expansion30277
+Node: Definitions30940
+Node: Define31717
+Node: Arguments33271
+Node: Pseudo Arguments34752
+Node: Undefine36603
+Node: Defn37265
+Node: Pushdef38735
+Node: Indir40794
+Node: Builtin41572
+Node: Conditionals42016
+Node: Ifdef42723
+Node: Ifelse43492
+Node: Loops45274
+Node: Debugging48566
+Node: Dumpdef49144
+Node: Trace49992
+Node: Debug Levels51371
+Node: Debug Output53756
+Node: Input Control54276
+Node: Dnl54889
+Node: Changequote56015
+Node: Changecom57379
+Node: Changesyntax58665
+Node: Changeword64939
+Node: M4wrap68174
+Node: File Inclusion69376
+Node: Include69692
+Node: Search Path71711
+Node: Diversions72498
+Node: Divert73735
+Node: Undivert74867
+Node: Divnum76838
+Node: Cleardiv77383
+Node: Text handling78438
+Node: Len79158
+Node: Index79556
+Node: Regexp80141
+Node: Substr81232
+Node: Translit81852
+Node: Patsubst83295
+Node: Format85386
+Node: Arithmetic86875
+Node: Incr87332
+Node: Eval87836
+Node: UNIX commands91442
+Node: Syscmd91913
+Node: Esyscmd92626
+Node: Sysval93574
+Node: Maketemp93981
+Node: Miscellaneous95038
+Node: Errprint95469
+Node: M4exit96451
+Node: Syncoutput97249
+Node: Frozen files97841
+Node: Compatibility102760
+Node: Extensions103376
+Node: Incompatibilities105846
+Node: Other Incompat106288
+Node: Experiments108451
+Node: Answers109958
+Node: Concept index110590
+Node: Macro index118011

End Tag Table
diff --git a/doc/m4.info-1 b/doc/m4.info-1
index 46fcdc7c..133dc931 100644
--- a/doc/m4.info-1
+++ b/doc/m4.info-1
@@ -42,7 +42,7 @@ changes by Franc,ois Pinard and other volunteers on the Internet. All
names and email addresses can be found in the file `THANKS' from the
GNU `m4' distribution.
- This is release 1.4h. It is now to be considered stable, future
+ This is release 1.4i. It is now to be considered stable, future
releases are only meant to fix bugs, increase speed, or improve
documentation. However...
@@ -457,10 +457,8 @@ say what you expected to occur; this will help us decide whether the
problem was really in the documentation.
Once you've got a precise problem, send e-mail to (Internet)
-`bug-gnu-utils@prep.ai.mit.edu' or (UUCP)
-`mit-eddie!prep.ai.mit.edu!bug-gnu-utils'. Please include the version
-number of `m4' you are using. You can get this information with the
-command `m4 --version'.
+`bug-m4@gnu.org'. Please include the version number of `m4' you are
+using. You can get this information with the command `m4 --version'.
Non-bug suggestions are always welcome as well. If you have
questions about things that are unclear in the documentation or are
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index 077a7387..0e969ff6 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -513,10 +513,9 @@ say what you expected to occur; this will help us decide whether the
problem was really in the documentation.
Once you've got a precise problem, send e-mail to (Internet)
-@file{bug-gnu-utils@@prep.ai.mit.edu} or (UUCP)
-@file{mit-eddie!prep.ai.mit.edu!bug-gnu-utils}. Please include the
-version number of @code{m4} you are using. You can get this information
-with the command @samp{m4 --version}.
+@file{bug-m4@@gnu.org}. Please include the version number of @code{m4}
+you are using. You can get this information with the command @samp{m4
+--version}.
Non-bug suggestions are always welcome as well. If you have questions
about things that are unclear in the documentation or are just obscure
diff --git a/doc/stamp-vti b/doc/stamp-vti
index c2e9c7e1..52950002 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,3 +1,3 @@
-@set UPDATED 8 September 1998
-@set EDITION 1.4h
-@set VERSION 1.4h
+@set UPDATED 4 October 1998
+@set EDITION 1.4i
+@set VERSION 1.4i
diff --git a/doc/version.texi b/doc/version.texi
index c2e9c7e1..52950002 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,3 +1,3 @@
-@set UPDATED 8 September 1998
-@set EDITION 1.4h
-@set VERSION 1.4h
+@set UPDATED 4 October 1998
+@set EDITION 1.4i
+@set VERSION 1.4i
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 18891610..45ad8cfc 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,15 +1,12 @@
-EXTRA_DIST = $(pkgdata_DATA) $(TESTS) defs
+EXTRA_DIST = $(pkgdata_DATA)
pkgdata_DATA = capitalize.m4 comments.m4 ddivert.m4 debug.m4 esyscmd.m4 \
exp.m4 file.m4 foreach.m4 forloop.m4 fstab.m4 hanoi.m4 incl-test.m4 \
include.m4 indir.m4 misc.m4 multiquotes.m4 patsubst.m4 pushpop.m4 \
regexp.m4 reverse.m4 stackovf.sh sync-lines.m4 sysv-args.m4 trace.m4 \
- translit.m4 undivert.incl undivert.m4 wrap.m4 iso8859.m4
-
-TESTS = comments.test ddivert.test debug.test iso8859.test \
+ translit.m4 undivert.incl undivert.m4 wrap.m4 iso8859.m4 \
+ \
+ comments.test ddivert.test debug.test iso8859.test \
reverse.test sysv-args.test wrap.test
all:
-
-defs: $(top_srcdir)/tests/defs
- cp $(top_srcdir)/tests/defs $@
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 629253a6..2b97153e 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -88,15 +88,15 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
l = @l@
-EXTRA_DIST = $(pkgdata_DATA) $(TESTS) defs
+EXTRA_DIST = $(pkgdata_DATA)
pkgdata_DATA = capitalize.m4 comments.m4 ddivert.m4 debug.m4 esyscmd.m4 \
exp.m4 file.m4 foreach.m4 forloop.m4 fstab.m4 hanoi.m4 incl-test.m4 \
include.m4 indir.m4 misc.m4 multiquotes.m4 patsubst.m4 pushpop.m4 \
regexp.m4 reverse.m4 stackovf.sh sync-lines.m4 sysv-args.m4 trace.m4 \
- translit.m4 undivert.incl undivert.m4 wrap.m4 iso8859.m4
-
-TESTS = comments.test ddivert.test debug.test iso8859.test \
+ translit.m4 undivert.incl undivert.m4 wrap.m4 iso8859.m4 \
+ \
+ comments.test ddivert.test debug.test iso8859.test \
reverse.test sysv-args.test wrap.test
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
@@ -154,35 +154,9 @@ distdir: $(DISTFILES)
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
-check-TESTS: $(TESTS)
- @failed=0; all=0; \
- srcdir=$(srcdir); export srcdir; \
- for tst in $(TESTS); do \
- if test -f $$tst; then dir=.; \
- else dir="$(srcdir)"; fi; \
- if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
- all=`expr $$all + 1`; \
- echo "PASS: $$tst"; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0
info:
dvi:
check: all
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
installcheck:
install-exec:
@$(NORMAL_INSTALL)
@@ -221,18 +195,14 @@ maintainer-clean: maintainer-clean-generic distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-.PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir \
-check-TESTS info dvi installcheck install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
+.PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info dvi \
+installcheck install-exec install-data install uninstall all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
all:
-defs: $(top_srcdir)/tests/defs
- cp $(top_srcdir)/tests/defs $@
-
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/examples/comments.test b/examples/comments.test
index 63161dc2..276a8976 100755
--- a/examples/comments.test
+++ b/examples/comments.test
@@ -19,6 +19,6 @@ Macro foo expansion
Macro foo expansion
EOF
-M4PATH=$srcdir $M4 -d in >out
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out
$CMP -s out ok
diff --git a/examples/ddivert.test b/examples/ddivert.test
index 5db82e90..491c4c65 100755
--- a/examples/ddivert.test
+++ b/examples/ddivert.test
@@ -13,6 +13,6 @@ Text diverted a first time.
Text diverted a second time.
EOF
-M4PATH=$srcdir $M4 -d in >out
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out
$CMP -s out ok
diff --git a/examples/debug.test b/examples/debug.test
index 0260641e..fd410d24 100755
--- a/examples/debug.test
+++ b/examples/debug.test
@@ -27,7 +27,7 @@ m4trace: -1- countdown(`0') -> ???
m4trace: -1- countdown(...) -> `0 ifelse(eval(0 > 0), 1, `countdown(decr(0))', `Liftoff')'
EOF
-M4PATH=$srcdir $M4 -d in >out 2>err
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out 2>err
sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err
$CMP -s out ok && $CMP -s err okerr
diff --git a/examples/defs b/examples/defs
deleted file mode 100644
index cf97e3b3..00000000
--- a/examples/defs
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- ksh -*-
-# Defines for GNU m4 testing environment.
-# Erick Branderhorst <Erick.Branderhorst@asml.nl>
-
-# Ensure $srcdir set correctly.
-test -f ${srcdir}/defs || {
- echo "defs: installation error" 1>&2
- exit 1
-}
-
-# If srcdir is relative, we need to modify it.
-case "$srcdir" in
- /*)
- ;;
-
- *)
- srcdir="../$srcdir"
- ;;
-esac
-
-rm -rf testSubDir > /dev/null 2>&1
-mkdir testSubDir
-cd testSubDir
-
-# Build appropriate environment in test directory. Eg create
-# configure.in, touch all necessary files, etc.
-
-# nothing yet
-
-# See how redirections should work. User can set VERBOSE to see all
-# output.
-test -z "$VERBOSE" && {
- exec > /dev/null 2>&1
-}
-
-# User can set MAKE to choose which make to use. Must use GNU make.
-test -z "$MAKE" && MAKE=make
-
-echo "=== Running test $0"
-
-# See how GNU m4 should be run. No options as default.
-test -z "$M4" && M4=../../src/m4
-
-# See how cmp should be run.
-test -z "$CMP" && CMP=cmp
-
-# Setting nls related vars. Override them in the test when needed.
-LANGUAGE=C
-export LANGUAGE
-LC_ALL=C
-export LC_ALL
-LANG=C
-export LANG
-
diff --git a/examples/iso8859.test b/examples/iso8859.test
index 3cca92e1..5128f3fc 100755
--- a/examples/iso8859.test
+++ b/examples/iso8859.test
@@ -28,6 +28,6 @@ Comparing strings: MATCH
This will be seen.
EOF
-M4PATH=$srcdir $M4 -d in >out
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out
$CMP -s out ok
diff --git a/examples/reverse.test b/examples/reverse.test
index 63b4cefa..6f4a0ed0 100755
--- a/examples/reverse.test
+++ b/examples/reverse.test
@@ -15,6 +15,6 @@ cat <<\EOF >ok
`hej, med, dig' => dig, med, hej
EOF
-M4PATH=$srcdir $M4 -d in >out
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out
$CMP -s out ok
diff --git a/examples/sysv-args.test b/examples/sysv-args.test
index ceb68c9a..1ad2d805 100755
--- a/examples/sysv-args.test
+++ b/examples/sysv-args.test
@@ -47,7 +47,7 @@ m4trace: -1- concat
m4trace: -1- concat
EOF
-M4PATH=$srcdir $M4 in >out 2>err
+M4PATH=$srcdir:$srcdir/../examples $M4 in >out 2>err
sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err
$CMP -s out ok && $CMP -s err okerr
diff --git a/examples/wrap.test b/examples/wrap.test
index a6bba3c2..03064eec 100755
--- a/examples/wrap.test
+++ b/examples/wrap.test
@@ -17,6 +17,6 @@ Wrapper no. 3
Wrapper no. 4
EOF
-M4PATH=$srcdir $M4 -d in >out
+M4PATH=$srcdir:$srcdir/../examples $M4 -d in >out
$CMP -s out ok
diff --git a/modules/Makefile.am b/modules/Makefile.am
new file mode 100644
index 00000000..01ef5c23
--- /dev/null
+++ b/modules/Makefile.am
@@ -0,0 +1,9 @@
+noinst_PROGRAMS = test.so time.so
+
+test_so_SOURCES = test.c
+time_so_SOURCES = time.c
+
+EXTRA_DIST = test.m4 time.m4
+
+INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib
+LDFLAGS = -shared
diff --git a/modules/Makefile.in b/modules/Makefile.in
new file mode 100644
index 00000000..06248f02
--- /dev/null
+++ b/modules/Makefile.in
@@ -0,0 +1,300 @@
+# Makefile.in generated automatically by automake 1.3b from Makefile.am
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+STACKOVF = @STACKOVF@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+noinst_PROGRAMS = test.so time.so
+
+test_so_SOURCES = test.c
+time_so_SOURCES = time.c
+
+EXTRA_DIST = test.m4 time.m4
+
+INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib
+LDFLAGS = -shared
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LIBS = @LIBS@
+test_so_OBJECTS = test.o
+test_so_LDADD = $(LDADD)
+test_so_DEPENDENCIES =
+test_so_LDFLAGS =
+time_so_OBJECTS = time.o
+time_so_LDADD = $(LDADD)
+time_so_DEPENDENCIES =
+time_so_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = README Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP = --best
+DEP_FILES = .deps/test.P .deps/time.P
+SOURCES = $(test_so_SOURCES) $(time_so_SOURCES)
+OBJECTS = $(test_so_OBJECTS) $(time_so_OBJECTS)
+
+all: Makefile $(PROGRAMS)
+
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+test.so: $(test_so_OBJECTS) $(test_so_DEPENDENCIES)
+ @rm -f test.so
+ $(LINK) $(test_so_LDFLAGS) $(test_so_OBJECTS) $(test_so_LDADD) $(LIBS)
+
+time.so: $(time_so_OBJECTS) $(time_so_DEPENDENCIES)
+ @rm -f time.so
+ $(LINK) $(time_so_LDFLAGS) $(time_so_OBJECTS) $(time_so_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = modules
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu modules/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+
+maintainer-clean-depend:
+ -rm -rf .deps
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
+ @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
+ < .deps/$(*F).p > .deps/$(*F).P
+ @-rm -f .deps/$(*F).p
+info:
+dvi:
+check: all
+installcheck:
+install-exec:
+ @$(NORMAL_INSTALL)
+
+install-data:
+ @$(NORMAL_INSTALL)
+
+install: install-exec install-data all
+ @:
+
+uninstall:
+
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean: mostlyclean-noinstPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+clean: clean-noinstPROGRAMS clean-compile clean-tags clean-depend \
+ clean-generic mostlyclean
+
+distclean: distclean-noinstPROGRAMS distclean-compile distclean-tags \
+ distclean-depend distclean-generic clean
+ -rm -f config.status
+
+maintainer-clean: maintainer-clean-noinstPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir mostlyclean-depend \
+distclean-depend clean-depend maintainer-clean-depend info dvi \
+installcheck install-exec install-data install uninstall all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/README b/modules/README
new file mode 100644
index 00000000..93e7bbb1
--- /dev/null
+++ b/modules/README
@@ -0,0 +1,62 @@
+This directory contains demonstration modules for GNU m4.
+
+Nothing in this directory is built by default.
+
+Dynamic modules is a experimental feature of GNU m4, and might change or
+disappear altogether in future versions. Currently it has only been
+certified to work under Linux 2.0.
+
+Dynamic modules are only available if GNU m4 was configured with
+--with-modules and if the dlopen(3) interface is available in the
+operating system.
+
+Implementation details are in ../src/module.c
+
+A module is a compiled shared object, i.e., modules are written in C and
+then compiled. The compiled file can then be loaded into a running m4
+process by calling the builtin "loadmodule". This will give GNU m4
+access to any system feature with a C interface.
+
+A module extends GNU m4 by defining new builtins, It can define builtins
+with the same names as existing builtins, which will then be
+unavailable. A module cannot redefine internal functions of GNU m4,
+such as the input parser or argument handling.
+
+The infrastructure for writing and compiling modules is still a bit
+wanting, quasi non-existent.
+
+Each module should include the two header files ../src/m4.h and
+../src/builtin.h. These will include <ctype.h>, <stdio.h>,
+../lib/obstack.h and ../config.h.
+
+Each module *must* define the symbol "m4_macro_table" as a pointer to a
+table of "struct builtin" (defined in m4.h). The table ends with an
+entry with name == NULL. The builtins described in the table will be
+defined by GNU m4 as were they normal builtins.
+
+If a module defines the symbol "m4_init_module", it is supposed to be a
+function with a prototype of "void m4_init_module(struct obstack *obs)",
+and it will be called as soon as the module is loaded. Any non-finished
+object left on the obstack will be the expansion of the call of the
+builtin "loadmodule". The obstack pointer might be NULL (in the future).
+
+If a module defines the symbol "m4_finish_module", it is supposed to be
+a function with a prototype of "void m4_finish_module(void)", and it
+will be called just before GNU m4 exits. This will allow a module to
+clean up before exit. There is no way of communicating information to
+the user, as GNU m4 exits immeidately afterwards.
+
+No other symbols will be used by GNU m4. Other external symbols within
+the module are private and will not be accessible to GNU m4 or to other
+modules.
+
+Modules are allowed to call external functions already defined within
+the GNU m4 sources. Some of these have prototypes in builtin.h.
+
+
+A complete, though silly, example is found in test.c. A more
+interesting example is in time.c.
+
+To try the demos, compile with `make' and run them with the commands as:
+
+ M4MODPATH=`pwd` ../src/m4 time.m4
diff --git a/modules/test.c b/modules/test.c
new file mode 100644
index 00000000..1a8a8092
--- /dev/null
+++ b/modules/test.c
@@ -0,0 +1,58 @@
+/* GNU m4 -- A simple macro processor
+ Copyright (C) 1998 Free Software Foundation, Inc.
+
+ 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <m4.h> /* These are obligatory */
+#include <builtin.h>
+
+module_init_t m4_init_module; /* initialisation function */
+module_finish_t m4_finish_module; /* cleanup function */
+
+DECLARE(test); /* declare test as implementing
+ a builtin */
+
+#undef DECLARE
+
+/* The table of builtins defined by this module - just one */
+
+builtin m4_macro_table[] =
+{
+ /* name GNUext macros blind function */
+ { "test", FALSE, FALSE, FALSE, test },
+ { 0, FALSE, FALSE, FALSE, 0 },
+};
+
+void
+m4_init_module(struct obstack *obs)
+{
+ char *s = "Test module loaded.";
+ obstack_grow (obs, s, strlen(s));
+}
+
+void
+m4_finish_module(void)
+{
+ return;
+}
+
+/* The functions for builtins can be static */
+static void
+test (struct obstack *obs, int argc, token_data **argv)
+{
+ char *s = "Test module called";
+ obstack_grow (obs, s, strlen(s));
+}
diff --git a/modules/test.m4 b/modules/test.m4
new file mode 100644
index 00000000..f8486578
--- /dev/null
+++ b/modules/test.m4
@@ -0,0 +1,3 @@
+loadmodule(`test.so')
+test
+Dumpdef: dumpdef(`test')
diff --git a/modules/time.c b/modules/time.c
new file mode 100644
index 00000000..5f98e8a7
--- /dev/null
+++ b/modules/time.c
@@ -0,0 +1,193 @@
+/* GNU m4 -- A simple macro processor
+ Copyright (C) 1998 Free Software Foundation, Inc.
+
+ 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <m4.h>
+#include <builtin.h>
+
+#include <time.h>
+
+DECLARE(m4_currenttime);
+DECLARE(m4_ctime);
+DECLARE(m4_gmtime);
+DECLARE(m4_localtime);
+DECLARE(m4_mktime);
+DECLARE(m4_strftime);
+
+#undef DECLARE
+
+builtin m4_macro_table[] =
+{
+ /* name GNUext macros blind function */
+ { "currenttime", TRUE, FALSE, FALSE, m4_currenttime },
+ { "ctime", TRUE, FALSE, FALSE, m4_ctime },
+ { "gmtime", TRUE, FALSE, TRUE, m4_gmtime },
+ { "localtime", TRUE, FALSE, TRUE, m4_localtime },
+ { "mktime", TRUE, FALSE, TRUE, m4_mktime },
+ { "strftime", TRUE, FALSE, TRUE, m4_strftime },
+ { 0, FALSE, FALSE, FALSE, 0 },
+};
+
+
+
+static void
+m4_currenttime (struct obstack *obs, int argc, token_data **argv)
+{
+ char buf[64];
+ time_t now;
+ int l;
+
+ if (bad_argc (argv[0], argc, 1, 1))
+ return;
+
+ now = time(0L);
+ l = sprintf(buf, "%ld", now);
+
+ obstack_grow (obs, buf, l);
+}
+
+static void
+m4_ctime (struct obstack *obs, int argc, token_data **argv)
+{
+ char buf[64];
+ time_t t;
+ int l;
+
+ if (bad_argc (argv[0], argc, 1, 2))
+ return;
+
+ if (argc == 2)
+ numeric_arg(argv[0], ARG(1), (int *)&t);
+ else
+ t = time(0L);
+
+ obstack_grow (obs, ctime(&t), 24);
+}
+
+static void
+format_tm(struct obstack *obs, struct tm *tm)
+{
+ shipout_int(obs, tm->tm_sec);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_min);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_hour);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_mday);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_mon);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_year);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_wday);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_yday);
+ obstack_1grow(obs, ',');
+
+ shipout_int(obs, tm->tm_isdst);
+}
+
+static void
+m4_gmtime (struct obstack *obs, int argc, token_data **argv)
+{
+ time_t t;
+ struct tm *tm;
+
+ if (bad_argc (argv[0], argc, 2, 2))
+ return;
+
+ if (!numeric_arg (argv[0], ARG (1), (int *)&t))
+ return;
+
+ format_tm(obs, gmtime(&t));
+}
+
+static void
+m4_localtime (struct obstack *obs, int argc, token_data **argv)
+{
+ time_t t;
+ struct tm *tm;
+
+ if (bad_argc (argv[0], argc, 2, 2))
+ return;
+
+ if (!numeric_arg (argv[0], ARG (1), (int *)&t))
+ return;
+
+ format_tm(obs, localtime(&t));
+}
+
+/*-------------------------------------------.
+| mktime(sec,min,hour,mday,month,year,isdst) |
+`-------------------------------------------*/
+
+static void
+m4_mktime (struct obstack *obs, int argc, token_data **argv)
+{
+ struct tm tm;
+ time_t t;
+
+ if (bad_argc (argv[0], argc, 7, 8))
+ return;
+
+ if (!numeric_arg (argv[0], ARG (1), &tm.tm_sec))
+ return;
+ if (!numeric_arg (argv[0], ARG (2), &tm.tm_min))
+ return;
+ if (!numeric_arg (argv[0], ARG (3), &tm.tm_hour))
+ return;
+ if (!numeric_arg (argv[0], ARG (4), &tm.tm_mday))
+ return;
+ if (!numeric_arg (argv[0], ARG (5), &tm.tm_mon))
+ return;
+ if (!numeric_arg (argv[0], ARG (6), &tm.tm_year))
+ return;
+ if (ARG(7) && !numeric_arg (argv[0], ARG (7), &tm.tm_isdst))
+ return;
+
+ t = mktime(&tm);
+
+ shipout_int(obs, t);
+}
+
+static void
+m4_strftime (struct obstack *obs, int argc, token_data **argv)
+{
+ struct tm *tm;
+ time_t t;
+ char *buf;
+ int l;
+
+ if (bad_argc (argv[0], argc, 3, 3))
+ return;
+
+ if (!numeric_arg (argv[0], ARG (2), (int *)&t))
+ return;
+
+ tm = localtime(&t);
+
+ buf = (char *) obstack_alloc(obs, 1024);
+ l = strftime(buf, 1024, ARG(1), tm);
+ obstack_grow(obs, buf, l);
+}
diff --git a/modules/time.m4 b/modules/time.m4
new file mode 100644
index 00000000..e87f6bdf
--- /dev/null
+++ b/modules/time.m4
@@ -0,0 +1,16 @@
+loadmodule(`time.so')
+
+`currenttime' = currenttime
+`ctime' = ctime != ctime(eval(currenttime+60*60*24))
+gmtime = gmtime(currenttime)
+localtime = localtime(currenttime)
+define(`q', `$1,$2,$3,$4,$5,$6,$9')dnl
+
+currenttime
+eval(currenttime+60*60*24)
+localtime(eval(currenttime+60*60*24))
+q(localtime(eval(currenttime+60*60*24)))
+mktime = mktime(q(localtime(eval(currenttime+60*60*24))))
+
+%A %B %d, %Y = strftime(`%A %B %d, %Y', currenttime)
+%X on %x = strftime(`%X on %x', currenttime)
diff --git a/po/ChangeLog b/po/ChangeLog
index 77b4e9c0..caaa2cad 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,9 @@
+1998-10-04 Rene' Seindal <rene@seindal.dk>
+
+ * pl.po: Polish translation added.
+
+ * POTFILES.in: src/module.c added.
+
1998-05-23 Erick Branderhorst <Erick.Branderhorst@asml.nl>
* nl.po: Dutch translation by Erick Branderhorst.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5578b784..f72955e0 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -6,6 +6,7 @@ src/freeze.c
src/input.c
src/m4.c
src/macro.c
+src/module.c
src/output.c
src/path.c
src/stackovf.c
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
index 1dbefc60..e0c32e0a 100644
--- a/po/cat-id-tbl.c
+++ b/po/cat-id-tbl.c
@@ -77,7 +77,7 @@ Preprocessor features:\n\
-I, --include=DIRECTORY search this directory second for includes\n\
-D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n\
-U, --undefine=NAME delete builtin NAME\n\
-#ifdef SHOW_DEPENDENCIES", 55},
+ -s, --synclines generate `#line NO \"FILE\"' lines\n", 55},
{"\
\n\
Limits control:\n\
@@ -113,22 +113,20 @@ FLAGS is any of:\n\
{"\
\n\
If no FILE or if FILE is `-', standard input is read.\n", 60},
- {"\
-\n\
-Report bugs to <m4-bugs@gnu.org>.\n", 61},
- {"Bad debug flags: `%s'", 62},
- {"INTERNAL ERROR: Bad code in deferred arguments", 63},
- {"INTERNAL ERROR: Bad token type in expand_token ()", 64},
- {"ERROR: EOF in argument list", 65},
- {"INTERNAL ERROR: Bad token type in expand_argument ()", 66},
- {"INTERNAL ERROR: Bad symbol type in call_macro ()", 67},
- {"ERROR: Recursion limit of %d exceeded, use -L<N> to change it", 68},
- {"ERROR: Cannot create temporary file for diversion", 69},
- {"ERROR: Cannot flush diversion to temporary file", 70},
- {"ERROR: Copying inserted file", 71},
- {"ERROR: Reading inserted file", 72},
- {"Cannot stat diversion", 73},
- {"Path search for `%s' found `%s'", 74},
+ {"Bad debug flags: `%s'", 61},
+ {"INTERNAL ERROR: Bad code in deferred arguments", 62},
+ {"INTERNAL ERROR: Bad token type in expand_token ()", 63},
+ {"ERROR: EOF in argument list", 64},
+ {"INTERNAL ERROR: Bad token type in expand_argument ()", 65},
+ {"INTERNAL ERROR: Bad symbol type in call_macro ()", 66},
+ {"ERROR: Recursion limit of %d exceeded, use -L<N> to change it", 67},
+ {"ERROR: Cannot create temporary file for diversion", 68},
+ {"ERROR: Cannot flush diversion to temporary file", 69},
+ {"ERROR: Copying inserted file", 70},
+ {"ERROR: Reading inserted file", 71},
+ {"Cannot stat diversion", 72},
+ {"Path search for `%s' found `%s'", 73},
+ {"Module search for `%s' found `%s'", 74},
{"VMEM limit exceeded?\n", 75},
{"\
Memory bounds violation detected (SIGSEGV). Either a stack overflow\n\
diff --git a/po/de.gmo b/po/de.gmo
index 3a5546d9..e5030d9d 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 6f5b7745..ba2a46b9 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: 1996-09-30 10:38 GMT+0100\n"
"Last-Translator: Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>\n"
"Language-Team: German <de@li.org>\n"
@@ -14,102 +14,102 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Warnung: Zu wenig Argumente für eingebaute Funktion `%s'"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"Warnung: Überschüssige Argumente für eingebaute Funktion `%s' ignoriert"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Nicht-numerisches Argument in eingebauter Funktion `%s'"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "Name %s nicht definiert"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!"
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in m4_dumpdef ()"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "Makro `%s' nicht definiert"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNER FEHLER: Falscher Symboltyp in m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Kann keine `pipe' für Kommando `%s' öffnen"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Basis in `eval' nicht in den Grenzen (Basis = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "Negative Breite in `eval'"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Nicht-numerisches Argument in %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "Kann Umleitung %s nicht aufheben"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Name %s nicht definiert"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "Kann %s nicht öffnen"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Debug Modus: falsche Debug Flags: `%s'"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "Kann Fehlerdatei nicht vorbereiten: %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "WARNUNG: \\0 wird wegfallen, benutze \\& stattdessen"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Falscher regulärer Ausdruck `%s': %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Fehler beim Erkennen des regulären Ausdrucks `%s'"
@@ -240,21 +240,21 @@ msgstr "NONE"
msgid "ERROR: EOF in string"
msgstr "FEHLER: Dateiende in Zeichenkette"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "FEHLER: Keller voll. (Unendliche `define' Rekursion?)"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "`%s --help' zeigt weitere Informationen.\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Aufruf: %s [OPTION]... [DATEI]...\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -280,11 +280,11 @@ msgstr ""
" -P, --prefix-builtins erzwinge `m4_' Präfix für eingebaute "
"Funktionen\n"
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP benutze REGEXP für Makronamensyntax\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -292,7 +292,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"Präprozessoreigenschaften:\n"
@@ -302,7 +302,7 @@ msgstr ""
" -U, --undefine=NAME lösche eingebaute Funktion NAME\n"
" -s, --synclines erzeuge `#line NR \"DATEI\"' Zeilen\n"
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -317,7 +317,7 @@ msgstr ""
" -L, --nesting-limit=NUMMER setze künstliche Grenze für "
"Schachtelungstiefe\n"
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -331,7 +331,7 @@ msgstr ""
" -R, --reload-state=DATEI lade zu Beginn Zustand von eingefrorener "
"DATEI\n"
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -349,7 +349,7 @@ msgstr ""
" -o, --error-output=DATEI leite Debug- und Verfolgungsausgaben nach "
"DATEI\n"
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -379,7 +379,7 @@ msgstr ""
" i gebe Veränderungen der Eingabedatei aus\n"
" V Kurzform für alle Flags oben zusammen\n"
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -387,18 +387,12 @@ msgstr ""
"\n"
"Ohne DATEI oder wenn DATEI `-' ist, wird die Standardeingabe gelesen\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Falsche Debug Flags: `%s'"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNER FEHLER: Falscher Kode in zurückgestellten Argumenten"
@@ -444,11 +438,16 @@ msgstr "FEHLER: Während Lesen einer eingefügten Datei"
msgid "Cannot stat diversion"
msgstr "Kann `stat' nicht auf Umleitung anwenden"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "Pfad für Suche nach `%s' hat `%s' gefunden"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "Pfad für Suche nach `%s' hat `%s' gefunden"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/fr.gmo b/po/fr.gmo
index 8ffb5029..4b76a657 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 67550d2b..7b68d451 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4d\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: 1998-05-23 11:53+02:00\n"
"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n"
"Language-Team: dutch <nl@li.org>\n"
@@ -15,102 +15,102 @@ msgstr ""
"Content-Type: text/plain; charset=\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Attention: Trop peu d'arguments pour «%s» prédéfini"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "Attention: Les arguments superflus pour «%s» prédéfini sont ignorés"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Argument non-numérique pour «%s» prédéfini"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ERREUR INTERNE: Mauvais type de lexčme dans define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "Nom «%s» non-défini"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis!"
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "ERREUR INTERNE: Mauvais type de données pour lexčme dans m4_dumpdef ()"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "Macro «%s» non-défini"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ERREUR INTERNE: Mauvais type de symbole dans m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Incapable d'ouvrir un «pipe» pour la commande «%s»"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Base hors intervalle dans «eval» (base = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "Largeur négative dans «eval»"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Argument non-numérique pour %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "Incapble de ramener la diversion %s"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Nom «%s» non-défini"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "Incapable d'ouvrir %s"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Debugmode: mauvais indicateurs de mise-au-point: «%s»"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "Incapable de préparer le fichier d'erreurs: %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
"ATTENTION: \\\\0 disparaîtra, utiliser \\\\& plutôt pour les remplacements"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Mauvaise expression réguličre «%s»: %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Erreur d'appariement pour l'expressio réguličre «%s»"
@@ -237,21 +237,21 @@ msgstr "AUCUN"
msgid "ERROR: EOF in string"
msgstr "ERREUR: Fin-de-fichier dans la chaîne"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ERREUR INTERNE: Mauvais type de lexčme dans expand_token ()"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pour plus d'information, essayez «%s --help».\\n\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Usage: %s [OPTION]... [FICHIER]...\\n\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -277,12 +277,12 @@ msgstr ""
" -Q, --quiet, --silent inhiber certains diagnostics prédéfinis\n"
" -P, --prefix-builtins préfixer tous les prédéfinis par «m4_»\n"
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
" -W, --word-regexp=REGEXP utiliser REGEXP pour les noms de macro\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -290,7 +290,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"Capacités de préprocesseur:\n"
@@ -300,7 +300,7 @@ msgstr ""
" -s, --synclines engendrer des lignes «#line NNN "
"\\\"FICHIER\\\"»\n"
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -315,7 +315,7 @@ msgstr ""
" -L, --nesting-limit=NOMBRE modifier la limite artificielle "
"d'imbrication\n"
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -327,7 +327,7 @@ msgstr ""
" -F, --freeze-state=FICHIER produire un FICHIER figé ŕ la fin\n"
" -R, --reload-state=FICHIER recharger un FICHIER figé au départ\n"
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -345,7 +345,7 @@ msgstr ""
" -o, --error-output=FICHIER rediriger la sortie de trace et "
"mise-au-point\n"
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -375,7 +375,7 @@ msgstr ""
" i afficher les modifications dans les fichiers d'entrée\n"
" V abbréviation commode pour toutes les options précédentes ŕ la fois\n"
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -383,18 +383,12 @@ msgstr ""
"\n"
"Si aucun FICHIER ou si FICHIER vaut «-», lit l'entrée standard.\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Mauvais indicateurs de mise-au-point: «%s»"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ERREUR INTERNE: Mauvais code dans les arguments différés"
@@ -440,11 +434,16 @@ msgstr "ERREUR: Pendant la lecture d'un fichier inséré"
msgid "Cannot stat diversion"
msgstr "Incapable d'opérer «stat» pour la diversion"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "La fouille du chemin pour «%s» trouve «%s»"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "La fouille du chemin pour «%s» trouve «%s»"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/it.gmo b/po/it.gmo
index 24ddae32..0b94806b 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 39b816d1..6f1a9cff 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"Version: \n"
"Date: 1995-06-30 21:00:12+0200\n"
"From: Ulrich Drepper <drepper@myware>\n"
@@ -12,103 +12,103 @@ msgstr ""
"Files: ../lib/regex.c ../lib/xmalloc.c\n"
"Update on Fri Jun 30 21:00:27 MET 1995 \n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Attenzione: Troppo pochi argomenti per la funzione predefinita `%s'"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"Attenzione: Gli argumenti in eccesso alla funzione predefinita `%s' sono "
"ignorati"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Argumento non numerico a funzione predefinita `%s'"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ERRORE INTERNO: Tipo dato `token' errato in define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "Nome `%s' non definito"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr ""
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr ""
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "Macro `%s' non definita"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ERRORE INTERNO: Tipo simbolo errato in m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Impossibile aprire una `pipe' per il comando `%s'"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Base fuori intervallo in `eval' (base = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "Larghezza negativa in `eval'"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Argumento non numerico a %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "Impossibile ripristinare la deviazione %s"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Nome `%s' non definito"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "Impossibile aprire %s"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Modalitŕ di debug: indicatori di debug errati: `%s'"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "Impossibile aprire l' archivio di errore: %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Espressione regolare errata `%s': %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Errore nel confronto dell' espressione regolare `%s'"
@@ -231,21 +231,21 @@ msgstr "NESSUNO"
msgid "ERROR: EOF in string"
msgstr "ERRORE: Fine prematura di una stringa"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ERRORE: Stack overflow. (Ricorsione infinita in `define'?)"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Per ulteriori informazioni provare `%s --help'.\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Usage: %s [OPZIONE]... [ARCHIVIO]...\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -259,21 +259,21 @@ msgid ""
" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
msgstr ""
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
-#: src/m4.c:160
+#: src/m4.c:155
msgid ""
"\n"
"Preprocessor features:\n"
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -282,7 +282,7 @@ msgid ""
" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
msgstr ""
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -290,7 +290,7 @@ msgid ""
" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
msgstr ""
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -300,7 +300,7 @@ msgid ""
" -o, --error-output=FILE redirect debug and trace output\n"
msgstr ""
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -317,24 +317,18 @@ msgid ""
" V shorthand for all of the above flags\n"
msgstr ""
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
msgstr ""
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Indicatori di debug errati: `%s'"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ERRORE INTERNO: Codice errato in argomenti differiti"
@@ -379,11 +373,16 @@ msgstr "ERRORE: Leggendo archivio inserito"
msgid "Cannot stat diversion"
msgstr "Impossibile effettuare la `stat' per la deviazione"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/ja.gmo b/po/ja.gmo
index ab065d06..65168671 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index cfe23d0a..77d8eb97 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU m4 1.4.3\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: 1996-03-28 11:52 EST\n"
"Last-Translator: Akiko Matsushita <matusita@sra.co.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
@@ -13,101 +13,101 @@ msgstr ""
"Content-Type: text/plain; charset=EUC\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "·Ůąđˇ§%s ¤Ř¤Î°úżô¤¬ÉÔ­¤·¤Ć¤¤¤Ţ¤ąˇŁ"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "·Ůąđˇ§%s ¤Ř¤Î°úżô¤¬Âż˛á¤®¤Ţ¤ą (Ķ¤¨¤żĘ¬¤Ď̵»ë¤µ¤ě¤Ţ¤ą)ˇŁ"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "`%s' ¤Ëżô»ú¤Ç¤Ę¤¤°úżô¤¬ĹϤµ¤ě¤Ć¤¤¤Ţ¤ąˇŁ"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ĆâÉôĄ¨ĄéˇĽˇ§´Řżô define_macro () Ćâ¤ÎĄČˇĽĄŻĄóĄÇˇĽĄż¤ÎĽďÎबÉÔŔµ¤Ç¤ąˇŁ"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "`%s' ¤ĎÄęµÁ¤µ¤ě¤Ć¤¤¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "ĆâÉôĄ¨ĄéˇĽˇ§`Built-in' ¤Č¤¤¤¦ĄÓĄëĄČĄ¤ĄóĄŢĄŻĄí¤Ď¤˘¤ę¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "ĆâÉôĄ¨ĄéˇĽˇ§´Řżô m4_dumpdef () ¤ÎĄČˇĽĄŻĄóĄÇˇĽĄż¤ÎĽďÎबÉÔŔµ¤Ç¤ąˇŁ"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "ĄŢĄŻĄí `%s' ¤ĎÄęµÁ¤µ¤ě¤Ć¤¤¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ĆâÉôĄ¨ĄéˇĽˇ§´Řżô m4_defn () Ćâ¤ÎĄ·ĄóĄÜĄë¤ÎĽďÎबÉÔŔµ¤Ç¤ąˇŁ"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "ĄłĄŢĄóĄÉ `%s' ¤Ř¤ÎĄŃĄ¤Ą×¤¬ĄŞˇĽĄ×Ąó¤Ç¤­¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "eval ¤Î´đżô ( %d żĘˡ) ¤Î·ĺżô¤¬µöÍĆČĎ°Ďł°¤Ë¤˘¤ę¤Ţ¤ąˇŁ"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "eval ¤Î˝ĐÎĎ·ĺżô¤¬Ééżô¤Ë¤Ę¤Ă¤Ć¤¤¤Ţ¤ąˇŁ"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "`%s' ¤Ëżô»ú¤Ç¤Ę¤¤°úżô¤¬ĹϤµ¤ě¤Ć¤¤¤Ţ¤ąˇŁ"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "`%s' ¤ň undivert ¤Ç¤­¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "`%s' ¤ĎÄęµÁ¤µ¤ě¤Ć¤¤¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "`%s' ¤ňĄŞˇĽĄ×Ąó¤Ç¤­¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "debugmode ĄŢĄŻĄí¤Ë¤Ş¤¤¤Ć %s ¤ĎÉÔŔµ¤ĘĄÇĄĐĄĂĄ°ĄŞĄ×Ą·ĄçĄó¤Ç¤ąˇŁ"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "`%s' ¤ňĄ¨ĄéˇĽĄíĄ°ĄŐĄˇĄ¤Ąë¤Č¤·¤ĆĄ»ĄĂĄČ¤Ç¤­¤Ţ¤»¤óˇŁ"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "·Ůąđˇ§\\0 ¤ĎµěĽ°¤ÎÍŃˡ¤Ç¤ąˇŁ\\& ¤ňÂĺ¤ď¤ę¤Ë»Č¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "`%s' : %s ¤Ďˇ˘ÉÔŔµ¤ĘŔµµ¬É˝¸˝¤Ç¤ąˇŁ"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Ŕµµ¬É˝¸˝ %s ¤ÎĄŢĄĂĄÁĄóĄ°¤ËĽşÇÔ¤·¤Ţ¤·¤żˇŁ"
@@ -237,23 +237,23 @@ msgstr "¤Ę¤·"
msgid "ERROR: EOF in string"
msgstr "Ą¨ĄéˇĽ: ʸ»úÎóĆâ¤ËĄŐĄˇĄ¤Ąë¤Î˝ŞĂĽµ­ąć¤¬¤˘¤ę¤Ţ¤ąˇŁ"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr ""
"Ą¨ĄéˇĽ: ĄąĄżĄĂĄŻ¤¬ĄŞˇĽĄĐˇĽĄŐĄíˇĽ¤ňµŻ¤ł¤·¤Ć¤¤¤Ţ¤ąˇŁ\n"
" (̵¸Â¤ËşĆµ˘ĹŞÄęµÁ¤ň¤·¤Ć¤¤¤Ţ¤»¤ó¤«ˇ©)"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ľÜ¤·¤Ż¤Ď `%s --help' ¤Î˝ĐÎϤň¸ćÍ÷˛Ľ¤µ¤¤ˇŁ\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "»ČÍŃĘýˡ: %s [ĄŞĄ×Ą·ĄçĄó]...[ĄŐĄˇĄ¤ĄëĚľ]\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -279,13 +279,13 @@ msgstr ""
" -P, --prefix-builtins Á´¤Ć¤ÎĄÓĄëĄČĄ¤ĄóĄŢĄŻĄí¤Ë `m4_' ¤Č¤¤¤¦ŔÜƬĽ­¤ň "
" ¶ŻŔ©ĹޤËÄɲ䷤ޤąˇŁ\n"
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
"-W, --word-regexp=REGEXP ĄŢĄŻĄíĚľ¤ÎĄ·ĄóĄżĄĂĄŻĄą¤Ë REGEXP ¤ň "
" Ŕµµ¬É˝¸˝¤Č¤·¤ĆÍѤ¤¤Ţ¤ąˇŁ\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -293,7 +293,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"Ą×ĄęĄ×ĄíĄ»ĄĂĄµµˇÇ˝:\n"
@@ -305,7 +305,7 @@ msgstr ""
" -U, --undefine=NAME NAME ¤ÎÄęµÁ¤ňĽč¤ęľĂ¤·¤Ţ¤ąˇŁ\n"
" -s, --synclines ąÔČÖąć¤ČĄŐĄˇĄ¤ĄëĚľ¤ÎąÔ¤ňŔ¸Ŕ®¤·¤Ţ¤ąˇŁ\n"
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -321,7 +321,7 @@ msgstr ""
" -L, --nesting-limit=NUNBER "
"ĄŢĄŻĄí¤ÎĄÍĄąĄČ˛óżô¤Îľĺ¸ÂĂͤňżÍ°ŮĹŞ¤ËĘŃąą¤·¤Ţ¤ąˇŁ\n"
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -334,7 +334,7 @@ msgstr ""
" -R, --reload-state=FILE şÇ˝é¤Ë»ŘÄꤵ¤ě¤ż FILE ¤«¤é\n"
" Ĺŕ·ë¤µ¤ě¤żÄęµÁ¤ňĄíˇĽĄÉ¤·¤Ţ¤ą\n"
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -352,7 +352,7 @@ msgstr ""
" -o, --error-output=FILE ĄÇĄĐĄĂĄ°¤ČĄČĄěˇĽĄą¤Î˝ĐÎϤň FILE ¤Ë\n"
" ĄęĄŔĄ¤ĄěĄŻĄČ¤·¤Ţ¤ąˇŁ\n"
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -384,7 +384,7 @@ msgstr ""
" i ĆţÎĎĄŐĄˇĄ¤Ąë¤ËŔ¸¤¸¤żĘѲ˝¤ňÉ˝Ľ¨¤·¤Ţ¤ąˇŁ\n"
" V ľĺµ­¤ÎÁ´¤Ć¤Î FLAG ¤ň»ŘÄꤹ¤ë¤ł¤Č¤ň°ŐĚŁ¤·¤Ţ¤ąˇŁ\n"
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -393,18 +393,12 @@ msgstr ""
"FILE ¤¬»ŘÄꤵ¤ě¤Ć¤¤¤Ę¤¤ľěąç¤Ş¤č¤Ó»ŘÄꤵ¤ě¤żĄŐĄˇĄ¤Ąë¤¬ `-' ¤Îľěąç¤Ď\n"
" ɸ˝ŕĆţÎϤ¬Ćɤ߹ţ¤Ţ¤ě¤Ţ¤ąˇŁ\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "`%s' ¤ĎÉÔŔµ¤ĘĄÇĄĐĄĂĄ°ĄŞĄ×Ą·ĄçĄó°úżô¤Ç¤ąˇŁ"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ĆâÉôĄ¨ĄéˇĽˇ§ĄŞĄ×Ą·ĄçĄó¤Î¸ĺ˝čÍý¤Çˇ˘ÉÔŔµĄłˇĽĄÉ¤¬¸ˇ˝Đ¤µ¤ě¤Ţ¤·¤żˇŁ"
@@ -453,11 +447,16 @@ msgstr ""
"divert ¤Î¤ż¤á¤ÎĄŐĄˇĄ¤Ąë¤ÎĄąĄĆˇĽĄżĄą¤ňĆŔ¤ë¤ł¤Č¤¬¤Ç¤­¤Ţ¤»¤óˇŁ\n"
" (stat ¤Ç¤­¤Ţ¤»¤óˇŁ)"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "`%s' ¤Č¤¤¤¦ĄÇĄŁĄěĄŻĄČĄę¤«¤é `%s' ¤Č¤¤¤¦ĄŐĄˇĄ¤Ąë¤ň¸«¤Ä¤±¤Ţ¤·¤żˇŁ"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "`%s' ¤Č¤¤¤¦ĄÇĄŁĄěĄŻĄČĄę¤«¤é `%s' ¤Č¤¤¤¦ĄŐĄˇĄ¤Ąë¤ň¸«¤Ä¤±¤Ţ¤·¤żˇŁ"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/m4.pot b/po/m4.pot
index 9763aaa0..cf3ff601 100644
--- a/po/m4.pot
+++ b/po/m4.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -14,101 +14,101 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr ""
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr ""
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr ""
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr ""
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr ""
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr ""
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr ""
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr ""
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr ""
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr ""
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr ""
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr ""
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr ""
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, c-format
msgid "Undefined syntax code %c"
msgstr ""
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr ""
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr ""
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr ""
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr ""
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr ""
@@ -231,21 +231,21 @@ msgstr ""
msgid "ERROR: EOF in string"
msgstr ""
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr ""
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -259,21 +259,21 @@ msgid ""
" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
msgstr ""
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
-#: src/m4.c:160
+#: src/m4.c:155
msgid ""
"\n"
"Preprocessor features:\n"
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -282,7 +282,7 @@ msgid ""
" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
msgstr ""
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -290,7 +290,7 @@ msgid ""
" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
msgstr ""
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -300,7 +300,7 @@ msgid ""
" -o, --error-output=FILE redirect debug and trace output\n"
msgstr ""
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -317,24 +317,18 @@ msgid ""
" V shorthand for all of the above flags\n"
msgstr ""
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
msgstr ""
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr ""
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr ""
@@ -379,11 +373,16 @@ msgstr ""
msgid "Cannot stat diversion"
msgstr ""
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr ""
+#: src/path.c:239
+#, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr ""
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/nl.gmo b/po/nl.gmo
index 1fcb4a41..51cabca8 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index b0201804..341b1dae 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4d\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: 1998-05-23 09:27+02:00\n"
"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n"
"Language-Team: dutch <nl@li.org>\n"
@@ -13,102 +13,102 @@ msgstr ""
"Content-Type: text/plain; charset=\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Let op: Te weinig argument voor ingebouwde functie `%s'"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"Let op: Overbodige argumenten voor ingebouwde functie `%s' worden genegeerd"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Niet numeriek argument voor ingebouwde functie `%s'"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNE FOUT: Onjuist teken data type in define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "Ongedefinieerde naam %s"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!"
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNE FOUT: Onjuist teken data type in m4_dumpdef ()"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "Ongedefinieerde macro `%s'"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNE FOUT: Onjuist symbool type in m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Kan geen pijp openen voor commando `%s'"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Radix in evaluatie buiten bereik (radix = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "Negatieve breedte te evalueren"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Niet numeriek argument voor %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "Cannot undivert %s"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, c-format
msgid "Undefined syntax code %c"
msgstr "Ongedefinieerde syntax code %c"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "Kan %s niet openen"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Debugmode: onjuiste debug vlaggen: `%s'"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "Kan fout bestand niet instellen: %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "LET OP: \\0 zal verdwijnen, gebruik hiervoor \\& als vervanging"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Onjuiste reguliere expressie `%s': %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Fout overeenkomen reguliere expressies `%s'"
@@ -233,21 +233,21 @@ msgstr "GEEN"
msgid "ERROR: EOF in string"
msgstr "FOUT: Einde van bestand teken in string"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "FOUT: Stapel overflow. (Infinite define recursion?)"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Gebruik: %s [OPTIE]... [BESTAND]...\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -273,11 +273,11 @@ msgstr ""
" -P, --prefix-builtins forceer een `m4_' voorvoegsel voor alle \n"
" ingebouwde functies\n"
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP gebruik REGEXP voor macro naam syntax\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -285,7 +285,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"Voorbewerkings features:\n"
@@ -296,7 +296,7 @@ msgstr ""
" -U, --undefine=NAME verwijder ingebouwde functie NAME\n"
" -s, --synclines genereer `#line NO \"FILE\"' regel\n"
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -310,7 +310,7 @@ msgstr ""
" -H, --hashsize=PRIME stel symbolen opzoek hash tabel grootte\n"
" -L, --nesting-limit=NUMBER verander kunstmatige nesting limiet\n"
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -324,7 +324,7 @@ msgstr ""
" -R, --reload-state=FILE herlaad een gefixeerde staat van BESTAND\n"
" aan het begin\n"
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -341,7 +341,7 @@ msgstr ""
" -l, --arglength=NUM restrict macro traceer grootte\n"
" -o, --error-output=FILE redirect debug en traceer uitvoer\n"
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -371,7 +371,7 @@ msgstr ""
" i show changes in input files\n"
" V shorthand for all of the above flags\n"
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -379,20 +379,12 @@ msgstr ""
"\n"
"Als geen BESTAND of als BESTAND `-' is, standaard invoer wordt gelezen.\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-"\n"
-"Meld fouten via <m4-bugs@gnu.org>.\n"
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Onjuiste debug vlaggen: `%s'"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNE FOUT: Onjuiste code in afgeleide argumenten"
@@ -438,11 +430,16 @@ msgstr "FOUT: Lezen ingevoegd bestand"
msgid "Cannot stat diversion"
msgstr "Cannot stat diversion"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "Zoeken naar `%s' via PATH levert `%s'"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "Zoeken naar `%s' via PATH levert `%s'"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
@@ -469,3 +466,10 @@ msgstr "INTERNE FOUT: Ongeldige mode voor symbol_lookup ()"
#, c-format
msgid "Name `%s' is unknown\n"
msgstr "Naam `%s' is niet bekend\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Report bugs to <m4-bugs@gnu.org>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Meld fouten via <m4-bugs@gnu.org>.\n"
diff --git a/po/pl.gmo b/po/pl.gmo
new file mode 100644
index 00000000..4bb38992
--- /dev/null
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 00000000..8cdf9481
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,500 @@
+# Polish translations for the GNU m4 messages.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Rafał Maszkowski <rzm@icm.edu.pl>, 1998.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: m4 1.4.3\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
+"PO-Revision-Date: 1998-08-05 17:30+0200\n"
+"Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/builtin.c:317
+#, c-format
+msgid "Warning: Too few arguments to built-in `%s'"
+msgstr "Uwaga: Za mało argumentów dla wbodowanego `%s'"
+
+#: src/builtin.c:323
+#, c-format
+msgid "Warning: Excess arguments to built-in `%s' ignored"
+msgstr "Uwaga: Nadmiarowe argumenty do built-in `%s' zostały zignorowane"
+
+#: src/builtin.c:351
+#, c-format
+msgid "Non-numeric argument to built-in `%s'"
+msgstr "Nienumeryczny argument do built-in `%s'"
+
+#: src/builtin.c:450
+msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
+msgstr "BŁˇD WEWNĘTRZNY: Zły typ danych tokenu w define_macro ()"
+
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
+#, c-format
+msgid "Undefined name %s"
+msgstr "Niezdefiniowana nazwa %s"
+
+#: src/builtin.c:673
+msgid "INTERNAL ERROR: Builtin not found in builtin table!"
+msgstr "BŁˇD WEWNĘTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!"
+
+#: src/builtin.c:681
+msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
+msgstr "BŁˇD WEWNĘTRZNY: Zły typ danych tokenu w m4_dumpref ()"
+
+#: src/builtin.c:732
+#, c-format
+msgid "Undefined macro `%s'"
+msgstr "Niezdefiniowane makro `%s'"
+
+#: src/builtin.c:772
+msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
+msgstr "BŁˇD WEWNETRZNY: Zły typ symbolu w m4_defn ()"
+
+#: src/builtin.c:838
+#, c-format
+msgid "Cannot open pipe to command `%s'"
+msgstr "Nie mogę otworzyć potoku do komendy `%s'"
+
+#: src/builtin.c:875
+#, c-format
+msgid "Radix in eval out of range (radix = %d)"
+msgstr "Baza w eval poza zakresem (radix = %d)"
+
+#: src/builtin.c:884
+msgid "Negative width to eval"
+msgstr "Ujemna długo¶ć w eval"
+
+#: src/builtin.c:976
+#, c-format
+msgid "Non-numeric argument to %s"
+msgstr "Nienumeryczny argument dla %s"
+
+#: src/builtin.c:988
+#, c-format
+msgid "Cannot undivert %s"
+msgstr "Nie mogę przetowrzyć z powrotem %s"
+
+#: src/builtin.c:1132
+#, fuzzy, c-format
+msgid "Undefined syntax code %c"
+msgstr "Niezdefiniowana nazwa %s"
+
+#: src/builtin.c:1182 src/freeze.c:207
+#, c-format
+msgid "Cannot open %s"
+msgstr "Nie mogę otworzyć %s"
+
+#: src/builtin.c:1391
+#, c-format
+msgid "Debugmode: bad debug flags: `%s'"
+msgstr "Tryb debugowania: złe flagi debugowania: `%s'"
+
+#: src/builtin.c:1427
+#, c-format
+msgid "Cannot set error file: %s"
+msgstr "Nie mogę ustawić pliku błędów: %s"
+
+#: src/builtin.c:1644
+msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
+msgstr "UWAGA: \\0 zniknie, w podstawieniach użyj zamiast tego \\&"
+
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
+#, c-format
+msgid "Bad regular expression `%s': %s"
+msgstr "Błędne wyrażenie regularne `%s': %s"
+
+#: src/builtin.c:1716 src/builtin.c:1789
+#, c-format
+msgid "Error matching regular expression `%s'"
+msgstr "Bł±d dopasowania do wyrażenia regularnego `%s'"
+
+#: src/debug.c:379
+msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
+msgstr ""
+"BŁˇD WEWNĘTRZNY: Wbudowane nie znalezione w tablicy wbudowanych! (trace_pre "
+"())"
+
+#: src/debug.c:387
+msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
+msgstr "BŁˇD WEWNĘTRZNY: Zły typ danych tokenu (trace_pre ())"
+
+#: src/eval.c:297
+#, c-format
+msgid "Bad expression in eval (missing right parenthesis): %s"
+msgstr "Błędne wyrażenie w eval (brakuj±cy prawy nawias): %s"
+
+#: src/eval.c:303
+#, c-format
+msgid "Bad expression in eval: %s"
+msgstr "Błędne wyrażenie w eval: %s"
+
+#: src/eval.c:308
+#, c-format
+msgid "Bad expression in eval (bad input): %s"
+msgstr "Błędne wyrażenie w eval (złe dane wej¶ciowe): %s"
+
+#: src/eval.c:313
+#, c-format
+msgid "Bad expression in eval (excess input): %s"
+msgstr "Błędne wyrażenie w eval (nadmiarowe dane): %s"
+
+#: src/eval.c:318
+#, c-format
+msgid "Divide by zero in eval: %s"
+msgstr "Dzielenie przez zero w eval: %s"
+
+#: src/eval.c:323
+#, c-format
+msgid "Modulo by zero in eval: %s"
+msgstr "Modulo zero w eval: %s"
+
+#: src/eval.c:328
+msgid "INTERNAL ERROR: Bad error code in evaluate ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny kod błędu w evaluate ()"
+
+#: src/eval.c:582
+msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny operator porównania w cmp_term ()"
+
+#: src/eval.c:627
+msgid "INTERNAL ERROR: Bad shift operator in shift_term ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny operator przesunięcia w shift_term ()"
+
+#: src/eval.c:726
+msgid "INTERNAL ERROR: Bad operator in mult_term ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny opertaotr w mult_term ()"
+
+#: src/freeze.c:115
+msgid "INTERNAL ERROR: Built-in not found in builtin table!"
+msgstr "BŁˇD WEWNĘTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!"
+
+#: src/freeze.c:128
+msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny typ danych tokenu w freeze_one_symbol ()"
+
+#: src/freeze.c:159
+msgid "Expecting line feed in frozen file"
+msgstr "Oczekiwany line fedd w pliku zamrożonym"
+
+#: src/freeze.c:161
+#, c-format
+msgid "Expecting character `%c' in frozen file"
+msgstr "Oczekiwany znak `%c' w pliku zamrożonym"
+
+#: src/freeze.c:218
+msgid "Ill-formated frozen file"
+msgstr "¬le sformatowy plik zamrożony"
+
+#: src/freeze.c:273 src/freeze.c:289
+msgid "Premature end of frozen file"
+msgstr "Przedwczesny koniec pliku zamrożonego"
+
+#: src/freeze.c:323
+#, c-format
+msgid "`%s' from frozen file not found in builtin table!"
+msgstr "`%s' z pliku zamrożonego nie znalezione w tablicy wbudowanych!"
+
+#: src/input.c:306
+#, c-format
+msgid "Input reverted to %s, line %d"
+msgstr "Dane wej¶ciowe wycofane do %s, linia %d"
+
+#: src/input.c:334
+#, c-format
+msgid "Input read from %s"
+msgstr "Dane wej¶ciowe przeczytane z %s"
+
+#: src/input.c:494
+msgid "INTERNAL ERROR: Recursive push_string!"
+msgstr "BŁˇD WEWNĘTRZNY: Rekursywny push_string!"
+
+#: src/input.c:611
+msgid "INTERNAL ERROR: Bad call to init_macro_token ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędne wywołanie init_macro_token ()"
+
+#: src/input.c:651
+msgid "INTERNAL ERROR: Input stack botch in next_char ()"
+msgstr "BŁˇD WEWNĘTRZNY: Bł±d stosu wej¶ciowego w next_char ()"
+
+#: src/input.c:688
+msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
+msgstr "BŁˇD WEWNĘTRZNY: Bł±d stosu wej¶ciowego w peek_input ()"
+
+#: src/input.c:791
+msgid "NONE"
+msgstr "ŻADEN"
+
+#: src/input.c:1130 src/input.c:1157
+msgid "ERROR: EOF in string"
+msgstr "BŁˇD: EOF w łańcuchu"
+
+#: src/m4.c:106
+msgid "ERROR: Stack overflow. (Infinite define recursion?)"
+msgstr "BŁˇD: Przepełnienie stosu. (Nieskończona rekursja definicji?)"
+
+#: src/m4.c:133
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Spróbuj `%s --help' żeby dowiedzieć się więcej.\n"
+
+#: src/m4.c:137
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]...\n"
+msgstr "Użycie: %s [OPCJA]... [PLIK]...\n"
+
+#: src/m4.c:138
+msgid ""
+"Mandatory or optional arguments to long options are mandatory or optional\n"
+"for short options too.\n"
+"\n"
+"Operation modes:\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+" -e, --interactive unbuffer output, ignore interrupts\n"
+" -E, --fatal-warnings stop execution after first warning\n"
+" -Q, --quiet, --silent suppress some warnings for builtins\n"
+" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
+msgstr ""
+"Argumenty obowi±zkowe lub opcjonalne dla opcji długich s± obowi±zkowe lub\n"
+"opcjonalne również dla krótkich.\n"
+"\n"
+"Tryby pracy:\n"
+" --help wy¶wietl ten opis i zakończ\n"
+" --version wy¶wietl informację o wersji i zakończ\n"
+" -e, --intercative nie buforuj wyj¶cia, ignoruj przerwania\n"
+" -E, --fatal-warnings zatrzymaj się po pierwszym ostrzżeniu\n"
+" -Q, --quiet, --silent nie pokazuj niektórych ostrzeżeń dla "
+"wbudowanych\n"
+" -P, --prefix-builtins dodaj zawsze `m4_' przez wszystkimi "
+"wbudowanymi\n"
+
+#: src/m4.c:151
+msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
+msgstr " -W, --word-regexp=WYR_REGUL użyj WYR_REGUL w składni nazw makr\n"
+
+#: src/m4.c:155
+msgid ""
+"\n"
+"Preprocessor features:\n"
+" -I, --include=DIRECTORY search this directory second for includes\n"
+" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
+" -U, --undefine=NAME delete builtin NAME\n"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
+msgstr ""
+"\n"
+"Wła¶ciwo¶ci preprocesora:\n"
+" -I, --include=KATALOG szukaj includes w tym KATALOGu\n"
+" -D, --define=NAZWA[=WARTO¦Ć] wprowadĽ NAZWĘ z WARTO¦CIˇ lub pust±\n"
+" -U, --undefine=NAZWA skasuj wbudowan± NAZWĘ\n"
+" -s, --synclines generuj linie `#line NR \"PLIK\"\n"
+
+#: src/m4.c:163
+msgid ""
+"\n"
+"Limits control:\n"
+" -G, --traditional suppress all GNU extensions\n"
+" -H, --hashsize=PRIME set symbol lookup hash table size\n"
+" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
+msgstr ""
+"\n"
+"Sterowanie ograniczeniami:\n"
+" -G, --traditional wył±cz wszystkie rozszrzenia GNU\n"
+" -H, --hashzize=PIERWSZA ustaw rozmiar tablicy mieszaj±cej dla "
+"symboli\n"
+" -L, --nesting-limit=LICZBA zmień sztuczny limit zagłebień\n"
+
+#: src/m4.c:170
+msgid ""
+"\n"
+"Frozen state files:\n"
+" -F, --freeze-state=FILE produce a frozen state on FILE at end\n"
+" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
+msgstr ""
+"\n"
+"Zamrożone pliki stanu:\n"
+" -F, --freeze-state=PLIK zapisz zamrożony PLIK stanu na końcu\n"
+" -R, --reload-state=PLIK załaduj zamrożony PLIK stanu na pocz±tku\n"
+
+#: src/m4.c:176
+msgid ""
+"\n"
+"Debugging:\n"
+" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n"
+" -t, --trace=NAME trace NAME when it will be defined\n"
+" -l, --arglength=NUM restrict macro tracing size\n"
+" -o, --error-output=FILE redirect debug and trace output\n"
+msgstr ""
+"\n"
+"Debugowanie:\n"
+" -d, --debug=[FLAGI] ustaw poziom debugowania (bez FLAG: `aeg')\n"
+" -t, --trace=NAZWA ¶ledĽ NAZWĘ, kiedy będzie zdefiniowana\n"
+" -l, --arglength=ILE ogranicz rozmiar ¶ledzenia makr\n"
+" -o, --error-output=PLIK przekieruj wyniki debugowania i ¶ledzenia\n"
+
+#: src/m4.c:184
+msgid ""
+"\n"
+"FLAGS is any of:\n"
+" t trace for all macro calls, not only traceon'ed\n"
+" a show actual arguments\n"
+" e show expansion\n"
+" q quote values as necessary, with a or e flag\n"
+" c show before collect, after collect and after call\n"
+" x add a unique macro call id, useful with c flag\n"
+" f say current input file name\n"
+" l say current input line number\n"
+" p show results of path searches\n"
+" i show changes in input files\n"
+" V shorthand for all of the above flags\n"
+msgstr ""
+"\n"
+"FLAGI mog± być następuj±ce:\n"
+" t ¶ledĽ wszystkie wywołania makr, nie tylko te z traceon\n"
+" a pokaż wła¶ciwe argumenty\n"
+" e pokaż rozwinięcie\n"
+" q zabezpiecz znaki specjalne, z flag± a lub e\n"
+" c pokaż przez zebraniem, po zebraniu i po wywołaniu\n"
+" x dodaj unikalny identfikator wywołania makra, pożyteczne z flag± c\n"
+" f podaj nazwę bież±cego pliku wej¶ciowego\n"
+" l podaj numer bież±cej linii\n"
+" p pokaż wyniki przeszukiwań ¶cieżek\n"
+" i pokaż zmiany plików wej¶ciowych\n"
+" V skrót do wszystkich powyższych flag\n"
+
+#: src/m4.c:199
+msgid ""
+"\n"
+"If no FILE or if FILE is `-', standard input is read.\n"
+msgstr ""
+"\n"
+"Jeżeli brak PLIKu lub PLIK to `-', czytane jest std. wej¶cie.\n"
+
+#: src/m4.c:365
+#, c-format
+msgid "Bad debug flags: `%s'"
+msgstr "Błędne flagi debugowania: `%s'"
+
+#: src/m4.c:444
+msgid "INTERNAL ERROR: Bad code in deferred arguments"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny kod w odłożonych argumentach"
+
+#: src/macro.c:92
+msgid "INTERNAL ERROR: Bad token type in expand_token ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny typ tokena w expand_token ()"
+
+#: src/macro.c:158
+msgid "ERROR: EOF in argument list"
+msgstr "BŁˇD: EOF w li¶cie argumentów"
+
+#: src/macro.c:176
+msgid "INTERNAL ERROR: Bad token type in expand_argument ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny typ tokena w expand_argument ()"
+
+#: src/macro.c:253
+msgid "INTERNAL ERROR: Bad symbol type in call_macro ()"
+msgstr "BŁˇD WEWNĘTRZNY: Błędny symbol w call_macro ()"
+
+#: src/macro.c:282
+#, c-format
+msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
+msgstr "BŁˇD: Osi±gnięty limit rekursji %d, użyj -L<N> żeby go zmienić"
+
+#: src/output.c:198
+msgid "ERROR: Cannot create temporary file for diversion"
+msgstr "BŁˇD: Nie mogę utworzyć plików tymczasowych dla przetwarzania"
+
+#: src/output.c:208
+msgid "ERROR: Cannot flush diversion to temporary file"
+msgstr "BŁˇD: Nie mogę zapisac zmian przetwarzania do pliku tymczasowego"
+
+#: src/output.c:292
+msgid "ERROR: Copying inserted file"
+msgstr "BŁˇD: Kopiowanie włożonego pliku"
+
+#: src/output.c:473
+msgid "ERROR: Reading inserted file"
+msgstr "BŁˇD: Czytanie włożonego pliku"
+
+#: src/output.c:572
+msgid "Cannot stat diversion"
+msgstr "Nie mogę zrobić stat na danych przetwarzanych"
+
+#: src/path.c:162
+#, c-format
+msgid "Path search for `%s' found `%s'"
+msgstr "Przeszukanie ¶cieżki dla `%s' znalazło `%s'"
+
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "Przeszukanie ¶cieżki dla `%s' znalazło `%s'"
+
+#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
+#. if the stack limit has not been reached.
+#: src/stackovf.c:168
+msgid "VMEM limit exceeded?\n"
+msgstr "przekroczony limit VMEM\n"
+
+#: src/stackovf.c:190
+msgid ""
+"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
+"occurred, or there is a bug in "
+msgstr ""
+"Wykryto pogwałcenie ograniczeń adresów pamięci (SIGSEGV). Albo doszło do\n"
+"przepełnienia stosu albo jest bł±d w "
+
+#: src/stackovf.c:195
+msgid ". Check for possible infinite recursion.\n"
+msgstr ". SprawdĽ czy nie doszło do nieskończonej rekursji.\n"
+
+#: src/symtab.c:190
+msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()"
+msgstr "BŁˇD WEWNĘTRZNY: Nielegalny tryb w symbol_lookup ()"
+
+#: src/symtab.c:243
+#, c-format
+msgid "Name `%s' is unknown\n"
+msgstr "Nazwa `%s' jest nieznana\n"
+
+#~ msgid "Bad regular expression: `%s': %s"
+#~ msgstr "Złe wyrażenie regularne: `%s': %s"
+
+#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
+#~ msgstr "BŁˇD WEWNĘTRZNY: Bł±d stosu wej¶ciowego w pop_input ()"
+
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: opcja `%s' jest niejednoznaczna\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: opcja `--%s' nie może mieć argumentu\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: opcja `%c%s' nie może mieć argumentu\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: opcja `%s' wymaga argumentu\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: nierozpoznana opcja --%s'\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: nierozpoznana opcja %c%s'\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: nielegalna opcja -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: błędna opcja -- %c\n"
+
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: opcja wymaga argumentu -- %c\n"
+
+#~ msgid "No previous regular expression"
+#~ msgstr "Brak uprzedniego wyrażenia regularnego"
+
+#~ msgid "Memory exhausted"
+#~ msgstr "Pamięć wyczerpana"
diff --git a/po/ru.gmo b/po/ru.gmo
index 0aeea95c..ee17d932 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 670e5b67..3c112932 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
"PO-Revision-Date: 1997-07-12 20:58\n"
"Last-Translator: Denis Y. Pershin <dyp@siblug.org>\n"
"Language-Team: Russian <ru@li.org>\n"
@@ -12,103 +12,103 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "đŇĹÄŐĐŇĹÖÄĹÎÉĹ: óĚÉŰËĎÍ ÍÁĚĎ ÁŇÇŐÍĹÎÔĎ× ÄĚŃ ×ÓÔŇĎĹÎÎĎĘ ĚĹËÓĹÍŮ '%s'"
-#: src/builtin.c:282
+#: src/builtin.c:323
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"đŇĹÄŐĐŇĹÖÄĹÎÉĹ: éÚÂŮÔĎŢÎŮĹ ÁŇÇŐÍĹÎÔŮ ÄĚŃ ×ÓÔŇĎĹÎÎĎĘ ĚĹËÓĹÍŮ '%s' "
"ĐŇĎÉÇÎĎŇÉŇĎ×ÁÎŮ"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "îĹ ŢÉÓĚĎ×ĎĘ ÁŇÇŐÍĹÎÔ ÄĚŃ ×ÓÔŇĎĹÎÎĎĘ ĚĹËÓĹÍŮ '%s'"
-#: src/builtin.c:409
+#: src/builtin.c:450
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "÷îőôňĺîîńń ďűéâëá: îĹ×ĹŇÎŮĘ ÔÉĐ ĚĹËÓĹÍŮ × define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, c-format
msgid "Undefined name %s"
msgstr "éÍŃ %s ÎĹĎĐŇĹÄĹĚĹÎĎ"
-#: src/builtin.c:607
+#: src/builtin.c:673
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "÷îőôňĺîîńń ďűéâëá: ÷ÓÔŇĎĹÎÎÁŃ ĚĹËÓĹÍÁ ÎĹ ÎÁĘÄĹÎÁ!"
-#: src/builtin.c:615
+#: src/builtin.c:681
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "÷îőôňĺîîńń ďűéâëá: îĹ×ĹŇÎŮĘ ÔÉĐ ĚĹËÓĹÍŮ × m4_dumpdef ()"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, c-format
msgid "Undefined macro `%s'"
msgstr "îĹĎĐŇĹÄĹĚĹÎÎŮĘ ÍÁËŇĎÓ '%s'"
-#: src/builtin.c:706
+#: src/builtin.c:772
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "÷îőôňĺîîńń ďűéâëá: îĹ×ĹŇÎŮĘ ÔÉĐ ÓÉÍ×ĎĚÁ × m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "îĹ×ĎÚÍĎÖÎĎ ĎÔËŇŮÔŘ ËÁÎÁĚ ÄĚŃ ËĎÍÍÁÎÄŮ '%s'"
-#: src/builtin.c:809
+#: src/builtin.c:875
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "ňÁÄÉËÓ × ×ŮŇÁÖĹÎÉÉ ×ŮČĎÄÉÔ ÚÁ ĐŇĹÄĹĚŮ (radix = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
msgid "Negative width to eval"
msgstr "ďÔŇÉĂÁÔĹĚŘÎÁŃ ŰÉŇÉÎÁ"
-#: src/builtin.c:910
+#: src/builtin.c:976
#, c-format
msgid "Non-numeric argument to %s"
msgstr "îĹ ŢÉÓĚĎ×ĎĘ ÁŇÇŐÍĹÎÔ ÄĚŃ %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, c-format
msgid "Cannot undivert %s"
msgstr "îĹ×ĎÚÍĎÖÎĎ ×ĹŇÎŐÔŘ ×Ů×ĎÄ ÉÚ %s"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "éÍŃ %s ÎĹĎĐŇĹÄĹĚĹÎĎ"
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, c-format
msgid "Cannot open %s"
msgstr "îĹ×ĎÚÍĎÖÎĎ ĎÔËŇŮÔŘ %s"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "ňĹÖÉÍ ĎÔĚÁÄËÉ: ÎĹ×ĹŇÎŮĘ ĆĚÁÇ ĎÔĚÁÄËÉ: '%s'"
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, c-format
msgid "Cannot set error file: %s"
msgstr "îĹ×ĎÚÍĎÖÎĎ ÎÁÚÎÁŢÉÔŘ ĆÁĘĚ ĎŰÉÂĎË %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "đňĺäőđňĺöäĺîéĺ: \\0 ÉÓŢĹÚÎĹÔ, ÉÓĐĎĚŘÚŐĘÔĹ \\& × ÚÁÍĹÎÁČ"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "îĹ×ĹŇÎĎĹ ŇĹÇŐĚŃŇÎĎĹ ×ŮŇÁÖĹÎÉĹ: '%s': %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "ďŰÉÂËÁ ÓĎĐĎÓÔÁ×ĚĹÎÉŃ ŇĹÇŐĚŃŇÎĎÇĎ ×ŮŇÁÖĹÎÉŃ '%s'"
@@ -231,21 +231,21 @@ msgstr "îéţĺçď"
msgid "ERROR: EOF in string"
msgstr "ďűéâëá: ëĎÎĹĂ ĆÁĘĚÁ × ÓÔŇĎËĹ"
-#: src/m4.c:111
+#: src/m4.c:106
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ďűéâëá: đĹŇĹĐĎĚÎĹÎÉĹ ÓÔĹËÁ. (âĹÓËĎÎĹŢÎĎĹ ŇĹËŐŇÓÉ×ÎĎĹ ĎĐŇĹÄĹĚĹÎÉĹ?)"
-#: src/m4.c:138
+#: src/m4.c:133
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "đĎĐŇĎÂŐĘÔĹ '%s --help' ÄĚŃ ÉÎĆĎŇÍÁĂÉÉ.\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "éÓĐĎĚŘÚĎ×ÁÎÉĹ: %s [OPTION]... [FILE]...\n"
-#: src/m4.c:143
+#: src/m4.c:138
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -272,13 +272,13 @@ msgstr ""
" -P, --prefix-builtins ÄĎÂÁ×ĚŃÔŘ ĐŇĹĆÉËÓ `m4_' ÄĚŃ ×ÓĹČ ×ÓÔŇĎĹÎÎŮČ "
"ĆŐÎËĂÉĘ\n"
-#: src/m4.c:156
+#: src/m4.c:151
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
" -W, --word-regexp=REGEXP ÉÓĐĎĚŘÚĎ×ÁÔŘ REGEXP ÄĚŃ ÓÉÎÔÁËÓÉÓÁ ÉÍĹÎ "
"ÍÁËŇĎÓĎ×\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -286,7 +286,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"ďĐĂÉÉ ĐŇĹĐŇĎĂĹÓÓĎŇÁ:\n"
@@ -295,7 +295,7 @@ msgstr ""
" -U, --undefine=NAME ŐÄÁĚÉÔŘ ×ÓÔŇĎĹÎÎŐŔ ĆŐÎËĂÉŔ NAME\n"
" -s, --synclines ÇĹÎĹŇÉŇĎ×ÁÔŘ ÓÔŇĎËÉ `#line NO \"FILE\"'\n"
-#: src/m4.c:171
+#: src/m4.c:163
msgid ""
"\n"
"Limits control:\n"
@@ -311,7 +311,7 @@ msgstr ""
" -L, --nesting-limit=NUMBER ÉÚÍĹÎÉÔŘ ĐŇĹÄĹĚ ÇĚŐÂÉÎŮ ÉÎÔĹĚĹËÔŐÁĚŘÎĎÇĎ "
"ĐĎÉÓËÁ\n"
-#: src/m4.c:178
+#: src/m4.c:170
msgid ""
"\n"
"Frozen state files:\n"
@@ -323,7 +323,7 @@ msgstr ""
" -F, --freeze-state=FILE × ËĎÎĂĹ ÓĎÚÄÁÔŘ ĎÂŇÁÚ ĐÁÍŃÔÉ ÄĚŃ FILE\n"
" -R, --reload-state=FILE × ÎÁŢÁĚĹ ÚÁÇŇŐÖÁÔŘ ĎÂŇÁÚ ĐÁÍŃÔÉ ÄĚŃ FILE\n"
-#: src/m4.c:184
+#: src/m4.c:176
msgid ""
"\n"
"Debugging:\n"
@@ -341,7 +341,7 @@ msgstr ""
" -o, --error-output=FILE ĐĹŇĹÎÁĐŇÁ×ÉÔŘ ĎÔĚÁÄĎŢÎŮĘ É ÔŇÁÓÓÉŇĎ×ĎŢÎŮĘ "
"×Ů×ĎÄ × ĆÁĘĚ FILE\n"
-#: src/m4.c:192
+#: src/m4.c:184
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -372,7 +372,7 @@ msgstr ""
" i ĐĎËÁÚŮ×ÁÔŘ ÉÚÍĹÎĹÎÉŃ ×Ď ×ČĎÄÎŮČ ĆÁĘĚÁČ\n"
" V ÓĎËŇÁÝĹÎÉĹ ÄĚŃ ×ÓĹČ ĆĚÁÇĎ× ×ÍĹÓÔĹ\n"
-#: src/m4.c:207
+#: src/m4.c:199
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -380,18 +380,12 @@ msgstr ""
"\n"
"ĺÓĚÉ FILE ÎĹ ÓŐÝĹÓÔ×ŐĹÔ ÉĚÉ FILE ÜÔĎ `-', ÉÓĐĎĚŘÚŐĹÔÓŃ ÓÔÁÎÄÁŇÔÎŮĘ ×ČĎÄ.\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "îĹ×ĹŇÎŮĘ ĆĚÁÇ ĎÔĚÁÄËÉ: '%s'"
-#: src/m4.c:458
+#: src/m4.c:444
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "÷îőôňĺîîńń ďűéâëá: îĹ×ĹŇÎŮĘ ËĎÄ × ËĎÓ×ĹÎÎŮČ ÁŇÇŐÍĹÎÔÁČ"
@@ -437,11 +431,16 @@ msgstr "ďűéâëá: ţÉÔÁŔ ×ÓÔÁ×ĚĹÎÎŮĘ ĆÁĘĚ"
msgid "Cannot stat diversion"
msgstr "îĹ×ĎÚÍĎÖÎĎ ĐĎÄÓŢÉÔÁÔŘ ŇÁÚ×ĹÔ×ĚĹÎÉĹ"
-#: src/path.c:138
+#: src/path.c:162
#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "đŐÔŘ ĐĎÉÓËÁ ÄĚŃ `%s' ÎÁĘÄĹÎ `%s'"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "đŐÔŘ ĐĎÉÓËÁ ÄĚŃ `%s' ÎÁĘÄĹÎ `%s'"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/po/sv.gmo b/po/sv.gmo
index f01c6505..3c1d55ef 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index c9c5714e..a345037b 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,120 +1,120 @@
# Swedish messages for m4
# Copyright (C) 1996 Free Software Foundation, Inc.
# <Jan.Djarv@mbox200.swipnet.se>, 1996.
-# $Revision: 1.1.1.3 $
+# $Revision: 1.1.1.4 $
#
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-09-08 09:33+0200\n"
-"PO-Revision-Date: $Date: 2000/02/17 03:07:20 $\n"
+"POT-Creation-Date: 1998-10-04 01:31+0200\n"
+"PO-Revision-Date: $Date: 2000/02/17 03:09:09 $\n"
"Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:276
+#: src/builtin.c:317
#, fuzzy, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Varning: För fĺ argument till inbyggt makro \"%s\""
-#: src/builtin.c:282
+#: src/builtin.c:323
#, fuzzy, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "Varning: Överskottsargument till inbyggt makro \"%s\" ignorerade"
-#: src/builtin.c:310
+#: src/builtin.c:351
#, fuzzy, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Ickenumeriskt argument till inbyggt makro \"%s\""
-#: src/builtin.c:409
+#: src/builtin.c:450
#, fuzzy
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNT FEL: Otillĺten lexikalisk datatyp i define_macro ()"
-#: src/builtin.c:579 src/builtin.c:642 src/builtin.c:1261 src/builtin.c:1285
+#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355
#, fuzzy, c-format
msgid "Undefined name %s"
msgstr "Odefinierat namn \"%s\""
-#: src/builtin.c:607
+#: src/builtin.c:673
#, fuzzy
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!"
-#: src/builtin.c:615
+#: src/builtin.c:681
#, fuzzy
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNT FEL: Otillĺten lexikalisk datatyp i m4_dumpdef ()"
-#: src/builtin.c:666
+#: src/builtin.c:732
#, fuzzy, c-format
msgid "Undefined macro `%s'"
msgstr "Odefinierat makro \"%s\""
-#: src/builtin.c:706
+#: src/builtin.c:772
#, fuzzy
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNT FEL: Otillĺten symboltyp i m4_defn ()"
-#: src/builtin.c:772
+#: src/builtin.c:838
#, fuzzy, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Kan inte skapa rör till kommandot \"%s\""
-#: src/builtin.c:809
+#: src/builtin.c:875
#, fuzzy, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Otillĺten bas i \"eval\" (bas = %d)"
-#: src/builtin.c:818
+#: src/builtin.c:884
#, fuzzy
msgid "Negative width to eval"
msgstr "Negativ bredd till \"eval\""
-#: src/builtin.c:910
+#: src/builtin.c:976
#, fuzzy, c-format
msgid "Non-numeric argument to %s"
msgstr "Ickenumeriskt argument till %s"
-#: src/builtin.c:922
+#: src/builtin.c:988
#, fuzzy, c-format
msgid "Cannot undivert %s"
msgstr "Kan inte ĺterleda %s"
-#: src/builtin.c:1066
+#: src/builtin.c:1132
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Odefinierat namn \"%s\""
-#: src/builtin.c:1116 src/freeze.c:207
+#: src/builtin.c:1182 src/freeze.c:207
#, fuzzy, c-format
msgid "Cannot open %s"
msgstr "Kan inte öppna %s"
-#: src/builtin.c:1321
+#: src/builtin.c:1391
#, fuzzy, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Felsökningsläge: okänd flagga: \"%s\""
-#: src/builtin.c:1357
+#: src/builtin.c:1427
#, fuzzy, c-format
msgid "Cannot set error file: %s"
msgstr "Kan inte sätta felutskriftsfil: %s"
-#: src/builtin.c:1574
+#: src/builtin.c:1644
#, fuzzy
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "VARNING: \\0 kommer att försvinna, använd \\& i ersättningar"
-#: src/builtin.c:1635 src/builtin.c:1695 src/input.c:979
+#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979
#, fuzzy, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Otillĺtet reguljäruttryck \"%s\": %s"
-#: src/builtin.c:1646 src/builtin.c:1719
+#: src/builtin.c:1716 src/builtin.c:1789
#, fuzzy, c-format
msgid "Error matching regular expression `%s'"
msgstr "Reguljäruttrycket \"%s\" matchar inte"
@@ -254,22 +254,22 @@ msgstr "INGET"
msgid "ERROR: EOF in string"
msgstr "FEL: Filslut i sträng"
-#: src/m4.c:111
+#: src/m4.c:106
#, fuzzy
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "FEL: Stacken flödar över. (Oändlig rekursion?)"
-#: src/m4.c:138
+#: src/m4.c:133
#, fuzzy, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Försök med \"%s --help\" för mer information.\n"
-#: src/m4.c:142
+#: src/m4.c:137
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Användning: %s [FLAGGA]... [FIL]...\n"
-#: src/m4.c:143
+#: src/m4.c:138
#, fuzzy
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
@@ -295,12 +295,12 @@ msgstr ""
"makron\n"
" -P, --prefix-builtins alla inbyggda makron börjar med `m4_'\n"
-#: src/m4.c:156
+#: src/m4.c:151
#, fuzzy
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP använd REGEXP som makronamnsyntax\n"
-#: src/m4.c:160
+#: src/m4.c:155
#, fuzzy
msgid ""
"\n"
@@ -308,7 +308,7 @@ msgid ""
" -I, --include=DIRECTORY search this directory second for includes\n"
" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
" -U, --undefine=NAME delete builtin NAME\n"
-"#ifdef SHOW_DEPENDENCIES"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
"\n"
"Förprocessorstyrning:\n"
@@ -317,7 +317,7 @@ msgstr ""
" -U, --undefine=NAMN ta bort inbyggt makro\n"
" -s, --synclines generera `#line NNN \"FIL\"' rader\n"
-#: src/m4.c:171
+#: src/m4.c:163
#, fuzzy
msgid ""
"\n"
@@ -332,7 +332,7 @@ msgstr ""
" -H, --hashsize=PRIMTAL sätt storlek pĺ symboltabellen\n"
" -L, --nesting-limit=NUMMER ändra artificiell nästningsnivĺ\n"
-#: src/m4.c:178
+#: src/m4.c:170
#, fuzzy
msgid ""
"\n"
@@ -345,7 +345,7 @@ msgstr ""
" -F, --freeze-state=FIL spara fryst tillstĺnd i FIL i slutet\n"
" -R, --reload-state=FIL läs fryst tillstĺnd frĺn FIL i början\n"
-#: src/m4.c:184
+#: src/m4.c:176
#, fuzzy
msgid ""
"\n"
@@ -364,7 +364,7 @@ msgstr ""
" -o, --error-output=FIL avled felsöknings och spĺrutskrifter till "
"FIL\n"
-#: src/m4.c:192
+#: src/m4.c:184
#, fuzzy
msgid ""
"\n"
@@ -395,7 +395,7 @@ msgstr ""
" i visa byten av infil\n"
" V förkortning för alla ovanstĺende flaggor\n"
-#: src/m4.c:207
+#: src/m4.c:199
#, fuzzy
msgid ""
"\n"
@@ -404,18 +404,12 @@ msgstr ""
"\n"
"Om ingen FIL anges eller om FIL är `-', sĺ läses standard in.\n"
-#: src/m4.c:211
-msgid ""
-"\n"
-"Report bugs to <m4-bugs@gnu.org>.\n"
-msgstr ""
-
-#: src/m4.c:379
+#: src/m4.c:365
#, fuzzy, c-format
msgid "Bad debug flags: `%s'"
msgstr "Okänd felsökningsflagga \"%s\""
-#: src/m4.c:458
+#: src/m4.c:444
#, fuzzy
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNT FEL: Otillĺten kod i argument"
@@ -470,11 +464,16 @@ msgstr "FEL: Läsning av insatt fil"
msgid "Cannot stat diversion"
msgstr "Kan inte ta status pĺ avledningen"
-#: src/path.c:138
+#: src/path.c:162
#, fuzzy, c-format
msgid "Path search for `%s' found `%s'"
msgstr "\"%s\" hittades som \"%s\" i sökvägen"
+#: src/path.c:239
+#, fuzzy, c-format
+msgid "Module search for `%s' found `%s'"
+msgstr "\"%s\" hittades som \"%s\" i sökvägen"
+
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
#: src/stackovf.c:168
diff --git a/src/Makefile.am b/src/Makefile.am
index 53aa39ae..bdbfda57 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,8 +8,9 @@ bin_PROGRAMS = m4
INCLUDES = -I$(top_srcdir)/lib
-m4_SOURCES = m4.c m4.h builtin.c debug.c eval.c numb.c numb.h format.c \
- freeze.c input.c macro.c output.c path.c symtab.c stackovf.c
+m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c numb.c numb.h \
+ format.c freeze.c input.c macro.c output.c path.c symtab.c \
+ stackovf.c module.c
m4_LDADD = ../lib/libm4.a @INTLLIBS@
diff --git a/src/Makefile.in b/src/Makefile.in
index de5840c9..75c5dd0b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -98,8 +98,9 @@ bin_PROGRAMS = m4
INCLUDES = -I$(top_srcdir)/lib
-m4_SOURCES = m4.c m4.h builtin.c debug.c eval.c numb.c numb.h format.c \
- freeze.c input.c macro.c output.c path.c symtab.c stackovf.c
+m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c numb.c numb.h \
+ format.c freeze.c input.c macro.c output.c path.c symtab.c \
+ stackovf.c module.c
m4_LDADD = ../lib/libm4.a @INTLLIBS@
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -114,7 +115,7 @@ LDFLAGS = @LDFLAGS@
ANSI2KNR = @ANSI2KNR@
m4_OBJECTS = m4$U.o builtin$U.o debug$U.o eval$U.o numb$U.o format$U.o \
freeze$U.o input$U.o macro$U.o output$U.o path$U.o symtab$U.o \
-stackovf$U.o
+stackovf$U.o module$U.o
m4_DEPENDENCIES = ../lib/libm4.a
m4_LDFLAGS =
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -226,6 +227,8 @@ m4_.c: m4.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/m4.c; then echo $(srcdir)/m4.c; else echo m4.c; fi` | $(ANSI2KNR) > m4_.c
macro_.c: macro.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/macro.c; then echo $(srcdir)/macro.c; else echo macro.c; fi` | $(ANSI2KNR) > macro_.c
+module_.c: module.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/module.c; then echo $(srcdir)/module.c; else echo module.c; fi` | $(ANSI2KNR) > module_.c
numb_.c: numb.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/numb.c; then echo $(srcdir)/numb.c; else echo numb.c; fi` | $(ANSI2KNR) > numb_.c
output_.c: output.c $(ANSI2KNR)
@@ -237,7 +240,7 @@ stackovf_.c: stackovf.c $(ANSI2KNR)
symtab_.c: symtab.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | $(ANSI2KNR) > symtab_.c
builtin_.o debug_.o eval_.o format_.o freeze_.o input_.o m4_.o macro_.o \
-numb_.o output_.o path_.o stackovf_.o symtab_.o : $(ANSI2KNR)
+module_.o numb_.o output_.o path_.o stackovf_.o symtab_.o : $(ANSI2KNR)
tags: TAGS
@@ -275,7 +278,8 @@ distdir: $(DISTFILES)
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
-builtin.o: builtin.c m4.h ../config.h ../lib/obstack.h ../lib/regex.h
+builtin.o: builtin.c m4.h ../config.h ../lib/obstack.h builtin.h \
+ ../lib/regex.h
debug.o: debug.c m4.h ../config.h ../lib/obstack.h
eval.o: eval.c m4.h ../config.h ../lib/obstack.h numb.h
format.o: format.c m4.h ../config.h ../lib/obstack.h
@@ -283,6 +287,7 @@ freeze.o: freeze.c m4.h ../config.h ../lib/obstack.h
input.o: input.c m4.h ../config.h ../lib/obstack.h
m4.o: m4.c m4.h ../config.h ../lib/obstack.h ../lib/getopt.h
macro.o: macro.c m4.h ../config.h ../lib/obstack.h
+module.o: module.c m4.h ../config.h ../lib/obstack.h
numb.o: numb.c m4.h ../config.h ../lib/obstack.h numb.h
output.o: output.c m4.h ../config.h ../lib/obstack.h
path.o: path.c m4.h ../config.h ../lib/obstack.h
diff --git a/src/builtin.c b/src/builtin.c
index 941c799d..d83b0def 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -1,5 +1,5 @@
/* GNU m4 -- A simple macro processor
- Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
+ Copyright (C) 1989, 90, 91, 92, 93, 94, 98 Free Software Foundation, Inc.
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
@@ -20,20 +20,16 @@
expansion of user defined macros. */
#include "m4.h"
+#include "builtin.h"
extern FILE *popen ();
#include "regex.h"
-#define ARG(i) (argc > (i) ? TOKEN_DATA_TEXT (argv[i]) : "")
-
/* Initialisation of builtin and predefined macros. The table
"builtin_tab" is both used for initialisation, and by the "builtin"
builtin. */
-#define DECLARE(name) \
- static void name __P ((struct obstack *, int, token_data **))
-
DECLARE (m4___file__);
DECLARE (m4___line__);
DECLARE (m4_builtin);
@@ -63,6 +59,9 @@ DECLARE (m4_incr);
DECLARE (m4_index);
DECLARE (m4_indir);
DECLARE (m4_len);
+#ifdef WITH_MODULES
+DECLARE (m4_loadmodule);
+#endif /* WITH_MODULES */
DECLARE (m4_m4exit);
DECLARE (m4_m4wrap);
DECLARE (m4_maketemp);
@@ -119,6 +118,9 @@ builtin_tab[] =
{ "index", FALSE, FALSE, TRUE, m4_index },
{ "indir", TRUE, FALSE, FALSE, m4_indir },
{ "len", FALSE, FALSE, TRUE, m4_len },
+#ifdef WITH_MODULES
+ { "loadmodule", TRUE, FALSE, TRUE, m4_loadmodule },
+#endif /* WITH_MODULES */
{ "m4exit", FALSE, FALSE, FALSE, m4_m4exit },
{ "m4wrap", FALSE, FALSE, FALSE, m4_m4wrap },
{ "maketemp", FALSE, FALSE, TRUE, m4_maketemp },
@@ -149,7 +151,23 @@ predefined_tab[] =
{ NULL, NULL, NULL },
};
+
+/*------------------------------------------------------------------.
+| If dynamic modules are enabled, more builtin tables can be active |
+| at a time. This implements a list of tables of builtins. |
+`------------------------------------------------------------------*/
+
+struct builtin_table
+{
+ struct builtin_table *next;
+ builtin *table;
+};
+
+typedef struct builtin_table builtin_table;
+
+static builtin_table *builtin_tables = NULL;
+
/*----------------------------------------.
| Find the builtin, which lives on ADDR. |
`----------------------------------------*/
@@ -157,11 +175,13 @@ predefined_tab[] =
const builtin *
find_builtin_by_addr (builtin_func *func)
{
+ const builtin_table *bt;
const builtin *bp;
- for (bp = &builtin_tab[0]; bp->name != NULL; bp++)
- if (bp->func == func)
- return bp;
+ for (bt = builtin_tables; bt != NULL; bt = bt->next)
+ for (bp = bt->table; bp->name != NULL; bp++)
+ if (bp->func == func)
+ return bp;
return NULL;
}
@@ -172,13 +192,16 @@ find_builtin_by_addr (builtin_func *func)
const builtin *
find_builtin_by_name (const char *name)
{
+ const builtin_table *bt;
const builtin *bp;
- for (bp = &builtin_tab[0]; bp->name != NULL; bp++)
- if (strcmp (bp->name, name) == 0)
- return bp;
+ for (bt = builtin_tables; bt != NULL; bt = bt->next)
+ for (bp = bt->table; bp->name != NULL; bp++)
+ if (strcmp (bp->name, name) == 0)
+ return bp;
return NULL;
}
+
/*-------------------------------------------------------------------------.
| Install a builtin macro with name NAME, bound to the C function given in |
@@ -200,6 +223,37 @@ define_builtin (const char *name, const builtin *bp, symbol_lookup mode,
SYMBOL_TRACED (sym) = traced;
}
+/*------------------------------.
+| Install a new builtin_table. |
+`------------------------------*/
+
+static void
+install_builtin_table (builtin *table)
+{
+ builtin_table *bt;
+ const builtin *bp;
+ char *string;
+
+ bt = (builtin_table *)xmalloc(sizeof(struct builtin_table));
+ bt->next = builtin_tables;
+ bt->table = table;
+ builtin_tables = bt;
+
+ for (bp = table; bp->name != NULL; bp++)
+ if (!no_gnu_extensions || !bp->gnu_extension)
+ if (prefix_all_builtins)
+ {
+ string = (char *) xmalloc (strlen (bp->name) + 4);
+ strcpy (string, "m4_");
+ strcat (string, bp->name);
+ define_builtin (string, bp, SYMBOL_INSERT, FALSE);
+ free (string);
+ }
+ else
+ define_builtin (bp->name, bp, SYMBOL_INSERT, FALSE);
+}
+
+
/*-------------------------------------------------------------------------.
| Define a predefined or user-defined macro, with name NAME, and expansion |
| TEXT. MODE destinguishes between the "define" and the "pushdef" case. |
@@ -226,22 +280,9 @@ define_user_macro (const char *name, const char *text, symbol_lookup mode)
void
builtin_init (void)
{
- const builtin *bp;
const predefined *pp;
- char *string;
- for (bp = &builtin_tab[0]; bp->name != NULL; bp++)
- if (!no_gnu_extensions || !bp->gnu_extension)
- if (prefix_all_builtins)
- {
- string = (char *) xmalloc (strlen (bp->name) + 4);
- strcpy (string, "m4_");
- strcat (string, bp->name);
- define_builtin (string, bp, SYMBOL_INSERT, FALSE);
- free (string);
- }
- else
- define_builtin (bp->name, bp, SYMBOL_INSERT, FALSE);
+ install_builtin_table (builtin_tab);
for (pp = &predefined_tab[0]; pp->func != NULL; pp++)
if (no_gnu_extensions)
@@ -264,7 +305,7 @@ builtin_init (void)
| applicable. |
`------------------------------------------------------------------------*/
-static boolean
+boolean
bad_argc (token_data *name, int argc, int min, int max)
{
boolean isbad = FALSE;
@@ -290,7 +331,7 @@ bad_argc (token_data *name, int argc, int min, int max)
| If the conversion fails, print error message for macro MACRO. Return |
| TRUE iff conversion succeeds. |
`--------------------------------------------------------------------------*/
-static const char *
+const char *
skip_space (const char *arg)
{
while (IS_SPACE(*arg))
@@ -298,7 +339,7 @@ skip_space (const char *arg)
return arg;
}
-static boolean
+boolean
numeric_arg (token_data *macro, const char *arg, int *valuep)
{
char *endp;
@@ -319,7 +360,7 @@ numeric_arg (token_data *macro, const char *arg, int *valuep)
| expanding to numbers. |
`----------------------------------------------------------------------*/
-static void
+void
shipout_int (struct obstack *obs, int val)
{
char buf[128];
@@ -439,6 +480,31 @@ m4_popdef (struct obstack *obs, int argc, token_data **argv)
return;
lookup_symbol (ARG (1), SYMBOL_POPDEF);
}
+
+
+/*-------------------------------------.
+| Loading external module at runtime. |
+`-------------------------------------*/
+
+#ifdef WITH_MODULES
+
+static void
+m4_loadmodule (struct obstack *obs, int argc, token_data **argv)
+{
+ builtin *bp;
+
+ if (bad_argc (argv[0], argc, 2, 2))
+ return;
+
+ bp = module_load (ARG (1), obs);
+
+ if (bp != NULL)
+ install_builtin_table(bp);
+}
+
+
+#endif /* WITH_MODULES */
+
/*---------------------.
| Conditionals of m4. |
@@ -1206,6 +1272,10 @@ m4_m4exit (struct obstack *obs, int argc, token_data **argv)
if (argc == 2 && !numeric_arg (argv[0], ARG (1), &exit_code))
exit_code = 0;
+#ifdef WITH_MODULES
+ module_unload_all();
+#endif /* WITH_MODULES */
+
exit (exit_code);
}
diff --git a/src/builtin.h b/src/builtin.h
new file mode 100644
index 00000000..89088513
--- /dev/null
+++ b/src/builtin.h
@@ -0,0 +1,39 @@
+/* GNU m4 -- A simple macro processor
+ Copyright (C) 1998 Free Software Foundation, Inc.
+
+ 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+/* Declarations for builtin macros. */
+
+#ifndef BUILTIN_H
+#define BUILTIN_H 1
+
+#include <m4.h>
+
+#define ARG(i) (argc > (i) ? TOKEN_DATA_TEXT (argv[i]) : "")
+
+#define DECLARE(name) \
+ static void name __P ((struct obstack *, int, token_data **))
+
+
+
+boolean bad_argc (token_data *name, int argc, int min, int max);
+const char *skip_space (const char *arg);
+
+boolean numeric_arg (token_data *macro, const char *arg, int *valuep);
+void shipout_int (struct obstack *obs, int val);
+
+#endif /* BUILTIN_H */
diff --git a/src/m4.c b/src/m4.c
index 0986e883..f77a12c0 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -219,6 +219,9 @@ static const struct option long_options[] =
{"hashsize", required_argument, NULL, 'H'},
{"include", required_argument, NULL, 'I'},
{"interactive", no_argument, NULL, 'e'},
+#ifdef WITH_MODULES
+ {"module", required_argument, NULL, 'M'},
+#endif /* WITH_MODULES */
{"nesting-limit", required_argument, NULL, 'L'},
{"prefix-builtins", no_argument, NULL, 'P'},
{"quiet", no_argument, NULL, 'Q'},
@@ -262,8 +265,13 @@ main (int argc, char *const *argv, char *const *envp)
textdomain(PACKAGE);
#endif
- include_init ();
debug_init ();
+ include_init ();
+
+#ifdef WITH_MODULES
+ module_init ();
+#endif /* WITH_MODULES */
+
#ifdef USE_STACKOVF
setup_stackovf_trap (argv, envp, stackovf_handler);
#endif
@@ -328,7 +336,6 @@ main (int argc, char *const *argv, char *const *envp)
case 'I':
add_include_directory (optarg);
break;
-
case 'L':
nesting_limit = atoi (optarg);
break;
@@ -492,5 +499,9 @@ main (int argc, char *const *argv, char *const *envp)
undivert_all ();
}
+#ifdef WITH_MODULES
+ module_unload_all();
+#endif /* WITH_MODULES */
+
exit (EXIT_SUCCESS);
}
diff --git a/src/m4.h b/src/m4.h
index d2c5f088..9c7b5ef9 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -536,6 +536,28 @@ void format __P ((struct obstack *, int, token_data **));
void produce_frozen_state __P ((const char *));
void reload_frozen_state __P ((const char *));
+
+
+/* File: module.c --- dynamic modules */
+
+typedef void module_init_t (struct obstack *obs);
+typedef void module_finish_t (void);
+
+#ifdef WITH_MODULES
+
+typedef voidstar module_func (const char *);
+
+void module_init (void);
+void module_unload_all (void);
+
+builtin *module_load (const char *modname, struct obstack *obs);
+
+/* These are really in path.c */
+void module_env_init (void);
+void add_module_directory (const char *dir);
+voidstar module_search (const char *dir, module_func *try);
+#endif /* WITH_MODULES */
+
/* Debugging the memory allocator. */
@@ -551,6 +573,7 @@ void reload_frozen_state __P ((const char *));
# define DEBUG_MACRO
# define DEBUG_SYM
# define DEBUG_INCL
+# define DEBUG_MODULE
#endif
#endif /* M4_H */
diff --git a/src/module.c b/src/module.c
new file mode 100644
index 00000000..fb42884c
--- /dev/null
+++ b/src/module.c
@@ -0,0 +1,206 @@
+/* GNU m4 -- A simple macro processor
+ Copyright (C) 1998 Free Software Foundation, Inc.
+
+ 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "m4.h"
+
+#ifdef WITH_MODULES
+
+#define DEBUG_MODULES
+#undef DEBUG_MODULES
+
+/*
+ * This file implements dynamic modules in GNU m4. A module is a
+ * compiled shared object, that can be linked into GNU m4 at run
+ * time. Information about creating modules is in ../modules/README.
+ *
+ * The current implementation uses dlopen(3). To enable this
+ * experimental feature give configure the `--with-modules' switch.
+ * This implementation is only tested on Linux.
+ *
+ * A m4 module need only define one external symbol, called
+ * `m4_macro_table'. This symbol should point to a table of `struct
+ * builtin' exactly as the one in builtin.c. This table is pushed on a
+ * list of builtin tables and each definition therein is added to the
+ * symbol table.
+ *
+ * The code implementing loadable modules is modest. It is divided
+ * between the files path.c (search in module path), builtin.c (user
+ * interface and support for multiple builtin tables) and this file (OS
+ * dependant routines).
+ *
+ * To load a module, use `loadmodule(modulename.so)', where .so is the
+ * normal extention for shared object files. The function
+ * `m4_loadmodule' calls module_load() in this file, which uses
+ * module_search() in path.c to find the module in the module search
+ * path. This path is initialised from the environment variable
+ * M4MODPATH, and cannot be modified in any way. Module_search()
+ * constructs absolute file names and calls module_try_load() in this
+ * file. This function returns NULL on failure and a non-NULL void* on
+ * success. If succesful module_search() returns the value of this
+ * void*, which is a handle for the vm segment mapped. Module_load()
+ * checks to see if the module is alreay loaded, and if not, retrives
+ * the symbol `m4_macro_table' and returns it's value to
+ * m4_loadmodule(). This pointer should be a builtin*, which is
+ * installed using install_builtin_table().
+ *
+ * When a module is loaded, the function "void m4_init_module(struct
+ * obstack *obs)" is called, if defined. Any non NULL return value of
+ * this function will be the expansion of "loadmodule". Before program
+ * exit, all modules are unloaded and the function "void
+ * m4_finish_module(void)" is called, if defined.
+ *
+ * There is no way to unload a module unless at program exit. It is
+ * safe to load the same module several times, it has no effect.
+ **/
+
+#include <dlfcn.h>
+
+/* This list is used to check for repeated loading of the same modules. */
+
+struct module_list {
+ struct module_list *next;
+ char *modname;
+ void *handle;
+};
+
+typedef struct module_list module_list;
+
+static module_list *modules;
+
+/*
+ * Initialisation. Currently the module search path in path.c is
+ * initialised from M4MODPATH. Only absolute path names are accepted to
+ * prevent the path search of the dlopen library from finding wrong
+ * files.
+ */
+void
+module_init (void)
+{
+ module_env_init ();
+}
+
+/*
+ * Attempt to load a module with a absolute file name. It is used as a
+ * callback from module_search() in path.c.
+ */
+voidstar
+module_try_load (const char *modname)
+{
+ return dlopen (modname, RTLD_NOW);
+}
+
+
+/*
+ * Load a module. Modname can be a absolute file name or, if relative,
+ * is is searched in the module path. Return value is the value of the
+ * symbol `m4_macro_table' in the module. The module is unloaded in
+ * case of error. The builtins from the module are installed in the
+ * symbol table by the caller, m4_loadmodule() in builtin.c.
+ */
+
+struct builtin *
+module_load (const char *modname, struct obstack *obs)
+{
+ void *handle;
+ struct module_list *list;
+
+ builtin *btab;
+ module_init_t *init_func;
+
+ handle = module_search(modname, module_try_load);
+ if (handle == NULL)
+ {
+ M4ERROR ((1, 0, _("Error: cannot find module `%s'"), modname));
+ }
+
+ for (list = modules; list != NULL; list = list->next)
+ if (list->handle == handle)
+ {
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s handle already seen", modname);
+#endif /* DEBUG_MODULES */
+ dlclose(handle);
+ return NULL;
+ }
+
+ btab = (builtin *) dlsym (handle, "m4_macro_table");
+ if (btab == NULL) {
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s no symbol m4_macro_table", modname);
+#endif /* DEBUG_MODULES */
+ dlclose(handle);
+ return NULL;
+ }
+
+ list = xmalloc (sizeof (struct module_list));
+ list->next = modules;
+ list->modname = xstrdup(modname);
+ list->handle = handle;
+ modules = list;
+
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s loaded ok", modname);
+#endif /* DEBUG_MODULES */
+
+ init_func = (module_init_t *) dlsym (handle, "m4_init_module");
+ if (init_func != NULL)
+ {
+ (*init_func)(obs);
+
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s init hook called", modname);
+#endif /* DEBUG_MODULES */
+ }
+
+ return btab;
+}
+
+void
+module_unload_all(void)
+{
+ struct module_list *next;
+ module_finish_t *finish_func;
+
+ while (modules != NULL)
+ {
+ finish_func = (module_finish_t *) dlsym (modules->handle,
+ "m4_finish_module");
+ if (finish_func != NULL)
+ {
+ (*finish_func)();
+
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s finish hook called", modules->modname);
+#endif /* DEBUG_MODULES */
+ }
+
+ dlclose(modules->handle);
+
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE1("module %s unloaded", modules->modname);
+#endif /* DEBUG_MODULES */
+
+ next = modules->next;
+ xfree(modules);
+ modules = next;
+ }
+}
+
+
+
+#endif /* WITH_MODULES */
diff --git a/src/path.c b/src/path.c
index 036f5fb7..363eafc0 100644
--- a/src/path.c
+++ b/src/path.c
@@ -1,5 +1,5 @@
/* GNU m4 -- A simple macro processor
- Copyright (C) 1989, 90, 91, 92, 93 Free Software Foundation, Inc.
+ Copyright (C) 1989, 90, 91, 92, 93, 98 Free Software Foundation, Inc.
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
@@ -29,29 +29,64 @@ struct includes
typedef struct includes includes;
-static includes *dir_list; /* the list of path directories */
-static includes *dir_list_end; /* the end of same */
-static int dir_max_length; /* length of longest directory name */
+struct include_list
+{
+ includes *list; /* the list of path directories */
+ includes *list_end; /* the end of same */
+ int max_length; /* length of longest directory name */
+};
+
+typedef struct include_list include_list;
+
+static include_list dirpath; /* the list of path directories */
+
+#ifdef WITH_MODULES
+static include_list modpath; /* the list of module directories */
+#endif /* WITH_MODULES */
void
include_init (void)
{
- dir_list = NULL;
- dir_list_end = NULL;
- dir_max_length = 0;
+ dirpath.list = NULL;
+ dirpath.list_end = NULL;
+ dirpath.max_length = 0;
+
+#ifdef WITH_MODULES
+ modpath.list = NULL;
+ modpath.list_end = NULL;
+ modpath.max_length = 0;
+#endif /* WITH_MODULES */
}
-void
-include_env_init (void)
+static void
+include_directory (struct include_list *list, const char *dir)
{
- char *path;
- char *path_end;
+ includes *incl;
- if (no_gnu_extensions)
- return;
+ if (*dir == '\0')
+ dir = ".";
+
+ incl = (includes *) xmalloc (sizeof (struct includes));
+ incl->next = NULL;
+ incl->len = strlen (dir);
+ incl->dir = xstrdup (dir);
+
+ if (incl->len > list->max_length) /* remember len of longest directory */
+ list->max_length = incl->len;
+
+ if (list->list_end == NULL)
+ list->list = incl;
+ else
+ list->list_end->next = incl;
+ list->list_end = incl;
+}
+
+static void
+env_init (struct include_list *list, char *path, boolean abs)
+{
+ char *path_end;
- path = getenv ("M4PATH");
if (path == NULL)
return;
@@ -60,36 +95,32 @@ include_env_init (void)
path_end = strchr (path, ':');
if (path_end)
*path_end = '\0';
- add_include_directory (path);
+ if (!abs || *path == '/')
+ include_directory (list, path);
path = path_end + 1;
}
while (path_end);
}
+
+/* Functions for normal input path search */
+
void
-add_include_directory (const char *dir)
+include_env_init (void)
{
- includes *incl;
-
if (no_gnu_extensions)
return;
- if (*dir == '\0')
- dir = ".";
-
- incl = (includes *) xmalloc (sizeof (struct includes));
- incl->next = NULL;
- incl->len = strlen (dir);
- incl->dir = xstrdup (dir);
+ env_init (&dirpath, getenv ("M4PATH"), FALSE);
+}
- if (incl->len > dir_max_length) /* remember len of longest directory */
- dir_max_length = incl->len;
+void
+add_include_directory (const char *dir)
+{
+ if (no_gnu_extensions)
+ return;
- if (dir_list_end == NULL)
- dir_list = incl;
- else
- dir_list_end->next = incl;
- dir_list_end = incl;
+ include_directory (&dirpath, dir);
#ifdef DEBUG_INCL
fprintf (stderr, "add_include_directory (%s);\n", dir);
@@ -112,9 +143,9 @@ path_search (const char *dir)
if (*dir == '/' || no_gnu_extensions)
return NULL;
- name = (char *) xmalloc (dir_max_length + 1 + strlen (dir) + 1);
+ name = (char *) xmalloc (dirpath.max_length + 1 + strlen (dir) + 1);
- for (incl = dir_list; incl != NULL; incl = incl->next)
+ for (incl = dirpath.list; incl != NULL; incl = incl->next)
{
strncpy (name, incl->dir, incl->len);
name[incl->len] = '/';
@@ -144,8 +175,74 @@ include_dump (void)
includes *incl;
fprintf (stderr, "include_dump:\n");
- for (incl = dir_list; incl != NULL; incl = incl->next)
+ for (incl = dirpath.list; incl != NULL; incl = incl->next)
fprintf (stderr, "\t%s\n", incl->dir);
}
#endif /* DEBUG_INCL */
+
+
+/* Functions for module search path */
+
+#ifdef WITH_MODULES
+
+void
+module_env_init (void)
+{
+ if (no_gnu_extensions)
+ return;
+
+ env_init (&modpath, getenv ("M4MODPATH"), TRUE);
+}
+
+void
+add_module_directory (const char *dir)
+{
+ if (no_gnu_extensions)
+ return;
+
+ if (*dir == '/')
+ include_directory (&modpath, dir);
+
+#ifdef DEBUG_INCL
+ fprintf (stderr, "add_module_directory (%s);\n", dir);
+#endif
+}
+
+voidstar
+module_search (const char *modname, module_func *try)
+{
+ voidstar value = NULL;
+ includes *incl;
+ char *name; /* buffer for constructed name */
+
+ /* If absolute, modname is a filename. */
+ if (*modname == '/')
+ return (*try) (modname);
+
+ name = (char *) xmalloc (modpath.max_length + 1 + strlen (modname) + 1);
+
+ for (incl = modpath.list; incl != NULL; incl = incl->next)
+ {
+ strncpy (name, incl->dir, incl->len);
+ name[incl->len] = '/';
+ strcpy (name + incl->len + 1, modname);
+
+#ifdef DEBUG_MODULE
+ fprintf (stderr, "module_search (%s) -- trying %s\n", modname, name);
+#endif
+
+ value = (*try) (name);
+ if (value != NULL)
+ {
+ if (debug_level & DEBUG_TRACE_PATH)
+ DEBUG_MESSAGE2 (_("Module search for `%s' found `%s'"),
+ modname, name);
+ break;
+ }
+ }
+ xfree (name);
+ return value;
+}
+
+#endif /* WITH_MODULES */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7aed6dc3..d16044d7 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -2,34 +2,92 @@
# Ty Coon, President of Vice
# The previous line is needed by `./esyscmd.1.test'
-EXTRA_DIST = get-them foo incl.m4 stamp-TESTS $(TESTS) defs m4wrap.1.test
+EXTRA_DIST = get-them run-test foo incl.m4 stamp-TESTS \
+ defs $(GENERATED_TESTS)
-TESTS = $(OTHER_TESTS) $(GENERATED_TESTS)
+TESTS = $(GENERATED_TESTS) $(OTHER_TESTS)
GENERATED_TESTS = \
- argument.1.test argument.2.test argument.3.test argument.4.test \
- changeco.1.test changeco.2.test changequ.1.test changequ.2.test \
- changequ.3.test changesy.1.test changesy.2.test changesy.3.test \
- changesy.4.test changesy.5.test changesy.6.test changesy.7.test \
- cleardiv.1.test cleardiv.2.test define.1.test define.2.test \
- defn.1.test defn.2.test divert.1.test divert.2.test divnum.1.test \
- dnl.1.test dumpdef.1.test errprint.1.test errprint.2.test \
- esyscmd.1.test eval.1.test eval.2.test format.1.test ifdef.1.test \
- ifelse.1.test ifelse.2.test include.1.test include.2.test \
- include.3.test incr.1.test index.1.test indir.1.test len.1.test \
- loops.1.test loops.2.test m4exit.1.test patsubst.1.test \
- patsubst.2.test pseudoar.1.test pseudoar.2.test pseudoar.3.test \
- pseudoar.4.test pseudoar.5.test pushdef.1.test pushdef.2.test \
- regexp.1.test regexp.2.test substr.1.test sysval.1.test trace.1.test \
- translit.1.test undefine.1.test undivert.1.test undivert.2.test \
- undivert.3.test
+ gentest/argument.1.m4 \
+ gentest/argument.2.m4 \
+ gentest/argument.3.m4 \
+ gentest/argument.4.m4 \
+ gentest/changeco.1.m4 \
+ gentest/changeco.2.m4 \
+ gentest/changequ.1.m4 \
+ gentest/changequ.2.m4 \
+ gentest/changequ.3.m4 \
+ gentest/changesy.1.m4 \
+ gentest/changesy.2.m4 \
+ gentest/changesy.3.m4 \
+ gentest/changesy.4.m4 \
+ gentest/changesy.5.m4 \
+ gentest/changesy.6.m4 \
+ gentest/changesy.7.m4 \
+ gentest/cleardiv.1.m4 \
+ gentest/cleardiv.2.m4 \
+ gentest/define.1.m4 \
+ gentest/define.2.m4 \
+ gentest/defn.1.m4 \
+ gentest/defn.2.m4 \
+ gentest/divert.1.m4 \
+ gentest/divert.2.m4 \
+ gentest/divnum.1.m4 \
+ gentest/dnl.1.m4 \
+ gentest/dumpdef.1.m4 \
+ gentest/errprint.1.m4 \
+ gentest/errprint.2.m4 \
+ gentest/esyscmd.1.m4 \
+ gentest/eval.1.m4 \
+ gentest/eval.2.m4 \
+ gentest/format.1.m4 \
+ gentest/ifdef.1.m4 \
+ gentest/ifelse.1.m4 \
+ gentest/ifelse.2.m4 \
+ gentest/include.1.m4 \
+ gentest/include.2.m4 \
+ gentest/include.3.m4 \
+ gentest/incr.1.m4 \
+ gentest/index.1.m4 \
+ gentest/indir.1.m4 \
+ gentest/len.1.m4 \
+ gentest/loops.1.m4 \
+ gentest/loops.2.m4 \
+ gentest/m4exit.1.m4 \
+ gentest/m4wrap.1.m4 \
+ gentest/patsubst.1.m4 \
+ gentest/patsubst.2.m4 \
+ gentest/pseudoar.1.m4 \
+ gentest/pseudoar.2.m4 \
+ gentest/pseudoar.3.m4 \
+ gentest/pseudoar.4.m4 \
+ gentest/pseudoar.5.m4 \
+ gentest/pushdef.1.m4 \
+ gentest/pushdef.2.m4 \
+ gentest/regexp.1.m4 \
+ gentest/regexp.2.m4 \
+ gentest/substr.1.m4 \
+ gentest/sysval.1.m4 \
+ gentest/trace.1.m4 \
+ gentest/translit.1.m4 \
+ gentest/undefine.1.m4 \
+ gentest/undivert.1.m4 \
+ gentest/undivert.2.m4 \
+ gentest/undivert.3.m4
+
+OTHER_TESTS = \
+ ../examples/comments.test \
+ ../examples/ddivert.test \
+ ../examples/debug.test \
+ ../examples/iso8859.test \
+ ../examples/reverse.test \
+ ../examples/sysv-args.test \
+ ../examples/wrap.test
-OTHER_TESTS =
all: stamp-TESTS
stamp-TESTS: $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo
cd $(srcdir) \
- && rm -f *.[0-9].test \
&& AWK=$(AWK) $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo \
&& > $@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e8f24129..412f67dd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -92,29 +92,87 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
l = @l@
-EXTRA_DIST = get-them foo incl.m4 stamp-TESTS $(TESTS) defs m4wrap.1.test
+EXTRA_DIST = get-them run-test foo incl.m4 stamp-TESTS \
+ defs $(GENERATED_TESTS)
-TESTS = $(OTHER_TESTS) $(GENERATED_TESTS)
+TESTS = $(GENERATED_TESTS) $(OTHER_TESTS)
GENERATED_TESTS = \
- argument.1.test argument.2.test argument.3.test argument.4.test \
- changeco.1.test changeco.2.test changequ.1.test changequ.2.test \
- changequ.3.test changesy.1.test changesy.2.test changesy.3.test \
- changesy.4.test changesy.5.test changesy.6.test changesy.7.test \
- cleardiv.1.test cleardiv.2.test define.1.test define.2.test \
- defn.1.test defn.2.test divert.1.test divert.2.test divnum.1.test \
- dnl.1.test dumpdef.1.test errprint.1.test errprint.2.test \
- esyscmd.1.test eval.1.test eval.2.test format.1.test ifdef.1.test \
- ifelse.1.test ifelse.2.test include.1.test include.2.test \
- include.3.test incr.1.test index.1.test indir.1.test len.1.test \
- loops.1.test loops.2.test m4exit.1.test patsubst.1.test \
- patsubst.2.test pseudoar.1.test pseudoar.2.test pseudoar.3.test \
- pseudoar.4.test pseudoar.5.test pushdef.1.test pushdef.2.test \
- regexp.1.test regexp.2.test substr.1.test sysval.1.test trace.1.test \
- translit.1.test undefine.1.test undivert.1.test undivert.2.test \
- undivert.3.test
-
-OTHER_TESTS =
+ gentest/argument.1.m4 \
+ gentest/argument.2.m4 \
+ gentest/argument.3.m4 \
+ gentest/argument.4.m4 \
+ gentest/changeco.1.m4 \
+ gentest/changeco.2.m4 \
+ gentest/changequ.1.m4 \
+ gentest/changequ.2.m4 \
+ gentest/changequ.3.m4 \
+ gentest/changesy.1.m4 \
+ gentest/changesy.2.m4 \
+ gentest/changesy.3.m4 \
+ gentest/changesy.4.m4 \
+ gentest/changesy.5.m4 \
+ gentest/changesy.6.m4 \
+ gentest/changesy.7.m4 \
+ gentest/cleardiv.1.m4 \
+ gentest/cleardiv.2.m4 \
+ gentest/define.1.m4 \
+ gentest/define.2.m4 \
+ gentest/defn.1.m4 \
+ gentest/defn.2.m4 \
+ gentest/divert.1.m4 \
+ gentest/divert.2.m4 \
+ gentest/divnum.1.m4 \
+ gentest/dnl.1.m4 \
+ gentest/dumpdef.1.m4 \
+ gentest/errprint.1.m4 \
+ gentest/errprint.2.m4 \
+ gentest/esyscmd.1.m4 \
+ gentest/eval.1.m4 \
+ gentest/eval.2.m4 \
+ gentest/format.1.m4 \
+ gentest/ifdef.1.m4 \
+ gentest/ifelse.1.m4 \
+ gentest/ifelse.2.m4 \
+ gentest/include.1.m4 \
+ gentest/include.2.m4 \
+ gentest/include.3.m4 \
+ gentest/incr.1.m4 \
+ gentest/index.1.m4 \
+ gentest/indir.1.m4 \
+ gentest/len.1.m4 \
+ gentest/loops.1.m4 \
+ gentest/loops.2.m4 \
+ gentest/m4exit.1.m4 \
+ gentest/m4wrap.1.m4 \
+ gentest/patsubst.1.m4 \
+ gentest/patsubst.2.m4 \
+ gentest/pseudoar.1.m4 \
+ gentest/pseudoar.2.m4 \
+ gentest/pseudoar.3.m4 \
+ gentest/pseudoar.4.m4 \
+ gentest/pseudoar.5.m4 \
+ gentest/pushdef.1.m4 \
+ gentest/pushdef.2.m4 \
+ gentest/regexp.1.m4 \
+ gentest/regexp.2.m4 \
+ gentest/substr.1.m4 \
+ gentest/sysval.1.m4 \
+ gentest/trace.1.m4 \
+ gentest/translit.1.m4 \
+ gentest/undefine.1.m4 \
+ gentest/undivert.1.m4 \
+ gentest/undivert.2.m4 \
+ gentest/undivert.3.m4
+
+OTHER_TESTS = \
+ ../examples/comments.test \
+ ../examples/ddivert.test \
+ ../examples/debug.test \
+ ../examples/iso8859.test \
+ ../examples/reverse.test \
+ ../examples/sysv-args.test \
+ ../examples/wrap.test
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -144,6 +202,7 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = tests
distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/gentest
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
@@ -226,7 +285,6 @@ all: stamp-TESTS
stamp-TESTS: $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo
cd $(srcdir) \
- && rm -f *.[0-9].test \
&& AWK=$(AWK) $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo \
&& > $@
diff --git a/tests/defs b/tests/defs
index cf97e3b3..4752eb71 100644
--- a/tests/defs
+++ b/tests/defs
@@ -13,6 +13,10 @@ case "$srcdir" in
/*)
;;
+ .)
+ srcdir=".."
+ ;;
+
*)
srcdir="../$srcdir"
;;
diff --git a/tests/argument.1.test b/tests/gentest/argument.1.m4
index 9398608f..04909dc9 100755
--- a/tests/argument.1.test
+++ b/tests/gentest/argument.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# argument.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1037
+# gentest/argument.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1036
. ${srcdir}/defs
diff --git a/tests/argument.2.test b/tests/gentest/argument.2.m4
index abd434f3..59814143 100755
--- a/tests/argument.2.test
+++ b/tests/gentest/argument.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# argument.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1047
+# gentest/argument.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1046
. ${srcdir}/defs
diff --git a/tests/argument.3.test b/tests/gentest/argument.3.m4
index 0231981b..3dae6ca9 100755
--- a/tests/argument.3.test
+++ b/tests/gentest/argument.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# argument.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1067
+# gentest/argument.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1066
. ${srcdir}/defs
diff --git a/tests/argument.4.test b/tests/gentest/argument.4.m4
index a0c5cbfd..39389759 100755
--- a/tests/argument.4.test
+++ b/tests/gentest/argument.4.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# argument.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1077
+# gentest/argument.4.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1076
. ${srcdir}/defs
diff --git a/tests/changeco.1.test b/tests/gentest/changeco.1.m4
index d1a60b0c..533b931b 100755
--- a/tests/changeco.1.test
+++ b/tests/gentest/changeco.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changeco.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1960
+# gentest/changeco.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1959
. ${srcdir}/defs
diff --git a/tests/changeco.2.test b/tests/gentest/changeco.2.m4
index 21854f26..dfd0aa1d 100755
--- a/tests/changeco.2.test
+++ b/tests/gentest/changeco.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changeco.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1981
+# gentest/changeco.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1980
. ${srcdir}/defs
diff --git a/tests/changequ.1.test b/tests/gentest/changequ.1.m4
index 4e6f1fa6..7022cec9 100755
--- a/tests/changequ.1.test
+++ b/tests/gentest/changequ.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changequ.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1896
+# gentest/changequ.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1895
. ${srcdir}/defs
diff --git a/tests/changequ.2.test b/tests/gentest/changequ.2.m4
index 45fd0dbe..5eba166b 100755
--- a/tests/changequ.2.test
+++ b/tests/gentest/changequ.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changequ.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1908
+# gentest/changequ.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1907
. ${srcdir}/defs
diff --git a/tests/changequ.3.test b/tests/gentest/changequ.3.m4
index d9432142..6174e994 100755
--- a/tests/changequ.3.test
+++ b/tests/gentest/changequ.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changequ.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1920
+# gentest/changequ.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1919
. ${srcdir}/defs
diff --git a/tests/changesy.1.test b/tests/gentest/changesy.1.m4
index 76512aae..c608a21f 100755
--- a/tests/changesy.1.test
+++ b/tests/gentest/changesy.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2126
+# gentest/changesy.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2125
. ${srcdir}/defs
diff --git a/tests/changesy.2.test b/tests/gentest/changesy.2.m4
index d34dbb29..55a99375 100755
--- a/tests/changesy.2.test
+++ b/tests/gentest/changesy.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2142
+# gentest/changesy.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2141
. ${srcdir}/defs
diff --git a/tests/changesy.3.test b/tests/gentest/changesy.3.m4
index 15a51f77..8f86a03a 100755
--- a/tests/changesy.3.test
+++ b/tests/gentest/changesy.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2159
+# gentest/changesy.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2158
. ${srcdir}/defs
diff --git a/tests/changesy.4.test b/tests/gentest/changesy.4.m4
index 5dcde934..9ee5b7d1 100755
--- a/tests/changesy.4.test
+++ b/tests/gentest/changesy.4.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2178
+# gentest/changesy.4.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2177
. ${srcdir}/defs
diff --git a/tests/changesy.5.test b/tests/gentest/changesy.5.m4
index 1156668f..2035d2b9 100755
--- a/tests/changesy.5.test
+++ b/tests/gentest/changesy.5.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.5.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2202
+# gentest/changesy.5.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2201
. ${srcdir}/defs
diff --git a/tests/changesy.6.test b/tests/gentest/changesy.6.m4
index cae2ee23..88cac7a4 100755
--- a/tests/changesy.6.test
+++ b/tests/gentest/changesy.6.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.6.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2224
+# gentest/changesy.6.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2223
. ${srcdir}/defs
diff --git a/tests/changesy.7.test b/tests/gentest/changesy.7.m4
index 9d4b4b08..7a366945 100755
--- a/tests/changesy.7.test
+++ b/tests/gentest/changesy.7.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# changesy.7.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2235
+# gentest/changesy.7.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2234
. ${srcdir}/defs
diff --git a/tests/cleardiv.1.test b/tests/gentest/cleardiv.1.m4
index 40f09405..36cba76a 100755
--- a/tests/cleardiv.1.test
+++ b/tests/gentest/cleardiv.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# cleardiv.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2739
+# gentest/cleardiv.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2738
. ${srcdir}/defs
diff --git a/tests/cleardiv.2.test b/tests/gentest/cleardiv.2.m4
index 1f5df3ac..e44667a9 100755
--- a/tests/cleardiv.2.test
+++ b/tests/gentest/cleardiv.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# cleardiv.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2754
+# gentest/cleardiv.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2753
. ${srcdir}/defs
diff --git a/tests/define.1.test b/tests/gentest/define.1.m4
index cffdbacb..17f30775 100755
--- a/tests/define.1.test
+++ b/tests/gentest/define.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# define.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 988
+# gentest/define.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 987
. ${srcdir}/defs
diff --git a/tests/define.2.test b/tests/gentest/define.2.m4
index e4df34eb..62e2ea0e 100755
--- a/tests/define.2.test
+++ b/tests/gentest/define.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# define.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1008
+# gentest/define.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1007
. ${srcdir}/defs
diff --git a/tests/defn.1.test b/tests/gentest/defn.1.m4
index bf54769c..c3f06939 100755
--- a/tests/defn.1.test
+++ b/tests/gentest/defn.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# defn.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1231
+# gentest/defn.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1230
. ${srcdir}/defs
diff --git a/tests/defn.2.test b/tests/gentest/defn.2.m4
index 33ea48bd..0422980b 100755
--- a/tests/defn.2.test
+++ b/tests/gentest/defn.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# defn.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1251
+# gentest/defn.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1250
. ${srcdir}/defs
diff --git a/tests/divert.1.test b/tests/gentest/divert.1.m4
index 3a2a82ac..acfc17d7 100755
--- a/tests/divert.1.test
+++ b/tests/gentest/divert.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# divert.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2581
+# gentest/divert.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2580
. ${srcdir}/defs
diff --git a/tests/divert.2.test b/tests/gentest/divert.2.m4
index 2f22d845..13075ff7 100755
--- a/tests/divert.2.test
+++ b/tests/gentest/divert.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# divert.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2601
+# gentest/divert.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2600
. ${srcdir}/defs
diff --git a/tests/divnum.1.test b/tests/gentest/divnum.1.m4
index c1c2638d..4f49f918 100755
--- a/tests/divnum.1.test
+++ b/tests/gentest/divnum.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# divnum.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2708
+# gentest/divnum.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2707
. ${srcdir}/defs
diff --git a/tests/dnl.1.test b/tests/gentest/dnl.1.m4
index ecfa0077..5d0d7632 100755
--- a/tests/dnl.1.test
+++ b/tests/gentest/dnl.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# dnl.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1858
+# gentest/dnl.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1857
. ${srcdir}/defs
diff --git a/tests/dumpdef.1.test b/tests/gentest/dumpdef.1.m4
index 45a21ddd..bc31e1df 100755
--- a/tests/dumpdef.1.test
+++ b/tests/gentest/dumpdef.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# dumpdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1661
+# gentest/dumpdef.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1660
. ${srcdir}/defs
diff --git a/tests/errprint.1.test b/tests/gentest/errprint.1.m4
index b1d6145c..107ef789 100755
--- a/tests/errprint.1.test
+++ b/tests/gentest/errprint.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# errprint.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3427
+# gentest/errprint.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3426
. ${srcdir}/defs
diff --git a/tests/errprint.2.test b/tests/gentest/errprint.2.m4
index 8f44ca0a..5259782d 100755
--- a/tests/errprint.2.test
+++ b/tests/gentest/errprint.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# errprint.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3452
+# gentest/errprint.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3451
. ${srcdir}/defs
diff --git a/tests/esyscmd.1.test b/tests/gentest/esyscmd.1.m4
index b32c6ced..856620e4 100755
--- a/tests/esyscmd.1.test
+++ b/tests/gentest/esyscmd.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# esyscmd.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3316
+# gentest/esyscmd.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3315
. ${srcdir}/defs
diff --git a/tests/eval.1.test b/tests/gentest/eval.1.m4
index ef9a3ca3..b3d38cc3 100755
--- a/tests/eval.1.test
+++ b/tests/gentest/eval.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# eval.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3200
+# gentest/eval.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3199
. ${srcdir}/defs
diff --git a/tests/eval.2.test b/tests/gentest/eval.2.m4
index 374b7039..bd394eb4 100755
--- a/tests/eval.2.test
+++ b/tests/gentest/eval.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# eval.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3231
+# gentest/eval.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3230
. ${srcdir}/defs
diff --git a/tests/format.1.test b/tests/gentest/format.1.m4
index 0434ff23..ddfdb7f6 100755
--- a/tests/format.1.test
+++ b/tests/gentest/format.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# format.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3036
+# gentest/format.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3035
. ${srcdir}/defs
diff --git a/tests/ifdef.1.test b/tests/gentest/ifdef.1.m4
index 9cb0935b..721608c0 100755
--- a/tests/ifdef.1.test
+++ b/tests/gentest/ifdef.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# ifdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1441
+# gentest/ifdef.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1440
. ${srcdir}/defs
diff --git a/tests/ifelse.1.test b/tests/gentest/ifelse.1.m4
index 7942a0c2..0d6fbcf0 100755
--- a/tests/ifelse.1.test
+++ b/tests/gentest/ifelse.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# ifelse.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1479
+# gentest/ifelse.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1478
. ${srcdir}/defs
diff --git a/tests/ifelse.2.test b/tests/gentest/ifelse.2.m4
index d2049f5d..0cf36999 100755
--- a/tests/ifelse.2.test
+++ b/tests/gentest/ifelse.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# ifelse.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1498
+# gentest/ifelse.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1497
. ${srcdir}/defs
diff --git a/tests/include.1.test b/tests/gentest/include.1.m4
index 535a1292..e2912c84 100755
--- a/tests/include.1.test
+++ b/tests/gentest/include.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# include.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2455
+# gentest/include.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2454
. ${srcdir}/defs
diff --git a/tests/include.2.test b/tests/gentest/include.2.m4
index 1e0c428f..15a2ea64 100755
--- a/tests/include.2.test
+++ b/tests/gentest/include.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# include.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2475
+# gentest/include.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2474
. ${srcdir}/defs
diff --git a/tests/include.3.test b/tests/gentest/include.3.m4
index edf228d0..0f286a81 100755
--- a/tests/include.3.test
+++ b/tests/gentest/include.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# include.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2490
+# gentest/include.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2489
. ${srcdir}/defs
diff --git a/tests/incr.1.test b/tests/gentest/incr.1.m4
index d20be4df..16035bd3 100755
--- a/tests/incr.1.test
+++ b/tests/gentest/incr.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# incr.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3106
+# gentest/incr.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3105
. ${srcdir}/defs
diff --git a/tests/index.1.test b/tests/gentest/index.1.m4
index 1cee65fa..28771378 100755
--- a/tests/index.1.test
+++ b/tests/gentest/index.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# index.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2822
+# gentest/index.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2821
. ${srcdir}/defs
diff --git a/tests/indir.1.test b/tests/gentest/indir.1.m4
index 3cbc0511..e1714a5b 100755
--- a/tests/indir.1.test
+++ b/tests/gentest/indir.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# indir.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1370
+# gentest/indir.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1369
. ${srcdir}/defs
diff --git a/tests/len.1.test b/tests/gentest/len.1.m4
index a60bb1b0..1fa71023 100755
--- a/tests/len.1.test
+++ b/tests/gentest/len.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# len.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2796
+# gentest/len.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2795
. ${srcdir}/defs
diff --git a/tests/loops.1.test b/tests/gentest/loops.1.m4
index 3a872fc9..791e2560 100755
--- a/tests/loops.1.test
+++ b/tests/gentest/loops.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# loops.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1535
+# gentest/loops.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1534
. ${srcdir}/defs
diff --git a/tests/loops.2.test b/tests/gentest/loops.2.m4
index 35e4db17..88c305f5 100755
--- a/tests/loops.2.test
+++ b/tests/gentest/loops.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# loops.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1547
+# gentest/loops.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1546
. ${srcdir}/defs
diff --git a/tests/m4exit.1.test b/tests/gentest/m4exit.1.m4
index c721d434..7ba446b1 100755
--- a/tests/m4exit.1.test
+++ b/tests/gentest/m4exit.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# m4exit.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3475
+# gentest/m4exit.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3474
. ${srcdir}/defs
diff --git a/tests/m4wrap.1.test b/tests/gentest/m4wrap.1.m4
index 1a27ac3c..a8315641 100755
--- a/tests/m4wrap.1.test
+++ b/tests/gentest/m4wrap.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# m4wrap.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2396
+# gentest/m4wrap.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2395
. ${srcdir}/defs
diff --git a/tests/patsubst.1.test b/tests/gentest/patsubst.1.m4
index 152d961d..1b39ecba 100755
--- a/tests/patsubst.1.test
+++ b/tests/gentest/patsubst.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# patsubst.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2984
+# gentest/patsubst.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2983
. ${srcdir}/defs
diff --git a/tests/patsubst.2.test b/tests/gentest/patsubst.2.m4
index 47ce0b77..f8644359 100755
--- a/tests/patsubst.2.test
+++ b/tests/gentest/patsubst.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# patsubst.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3001
+# gentest/patsubst.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3000
. ${srcdir}/defs
diff --git a/tests/pseudoar.1.test b/tests/gentest/pseudoar.1.m4
index 060af181..29721fa1 100755
--- a/tests/pseudoar.1.test
+++ b/tests/gentest/pseudoar.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pseudoar.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1101
+# gentest/pseudoar.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1100
. ${srcdir}/defs
diff --git a/tests/pseudoar.2.test b/tests/gentest/pseudoar.2.m4
index 765e73b2..47231cf4 100755
--- a/tests/pseudoar.2.test
+++ b/tests/gentest/pseudoar.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pseudoar.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1115
+# gentest/pseudoar.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1114
. ${srcdir}/defs
diff --git a/tests/pseudoar.3.test b/tests/gentest/pseudoar.3.m4
index ef7bae06..997641f3 100755
--- a/tests/pseudoar.3.test
+++ b/tests/gentest/pseudoar.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pseudoar.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1126
+# gentest/pseudoar.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1125
. ${srcdir}/defs
diff --git a/tests/pseudoar.4.test b/tests/gentest/pseudoar.4.m4
index b95fade9..68b7b6ef 100755
--- a/tests/pseudoar.4.test
+++ b/tests/gentest/pseudoar.4.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pseudoar.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1136
+# gentest/pseudoar.4.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1135
. ${srcdir}/defs
diff --git a/tests/pseudoar.5.test b/tests/gentest/pseudoar.5.m4
index c739ef51..8c01d6f7 100755
--- a/tests/pseudoar.5.test
+++ b/tests/gentest/pseudoar.5.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pseudoar.5.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1156
+# gentest/pseudoar.5.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1155
. ${srcdir}/defs
diff --git a/tests/pushdef.1.test b/tests/gentest/pushdef.1.m4
index fecfa31a..ac11f585 100755
--- a/tests/pushdef.1.test
+++ b/tests/gentest/pushdef.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pushdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1295
+# gentest/pushdef.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1294
. ${srcdir}/defs
diff --git a/tests/pushdef.2.test b/tests/gentest/pushdef.2.m4
index d391e5da..07eb0c79 100755
--- a/tests/pushdef.2.test
+++ b/tests/gentest/pushdef.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# pushdef.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1319
+# gentest/pushdef.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1318
. ${srcdir}/defs
diff --git a/tests/regexp.1.test b/tests/gentest/regexp.1.m4
index a83a2228..d27cf8e7 100755
--- a/tests/regexp.1.test
+++ b/tests/gentest/regexp.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# regexp.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2854
+# gentest/regexp.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2853
. ${srcdir}/defs
diff --git a/tests/regexp.2.test b/tests/gentest/regexp.2.m4
index 6ed53dd8..a75bdc6f 100755
--- a/tests/regexp.2.test
+++ b/tests/gentest/regexp.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# regexp.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2866
+# gentest/regexp.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2865
. ${srcdir}/defs
diff --git a/tests/substr.1.test b/tests/gentest/substr.1.m4
index ebfc000f..6354c598 100755
--- a/tests/substr.1.test
+++ b/tests/gentest/substr.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# substr.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2892
+# gentest/substr.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2891
. ${srcdir}/defs
diff --git a/tests/sysval.1.test b/tests/gentest/sysval.1.m4
index e79a0ef5..f1ffeb7b 100755
--- a/tests/sysval.1.test
+++ b/tests/gentest/sysval.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# sysval.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3347
+# gentest/sysval.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 3346
. ${srcdir}/defs
diff --git a/tests/trace.1.test b/tests/gentest/trace.1.m4
index 7d103f7f..eae2a55e 100755
--- a/tests/trace.1.test
+++ b/tests/gentest/trace.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# trace.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1706
+# gentest/trace.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1705
. ${srcdir}/defs
diff --git a/tests/translit.1.test b/tests/gentest/translit.1.m4
index 51a4396a..4ac2bd7a 100755
--- a/tests/translit.1.test
+++ b/tests/gentest/translit.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# translit.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2933
+# gentest/translit.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2932
. ${srcdir}/defs
diff --git a/tests/undefine.1.test b/tests/gentest/undefine.1.m4
index e2450f79..cd7db2ad 100755
--- a/tests/undefine.1.test
+++ b/tests/gentest/undefine.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# undefine.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1187
+# gentest/undefine.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1186
. ${srcdir}/defs
diff --git a/tests/undivert.1.test b/tests/gentest/undivert.1.m4
index 10c6625e..db869a32 100755
--- a/tests/undivert.1.test
+++ b/tests/gentest/undivert.1.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# undivert.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2632
+# gentest/undivert.1.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2631
. ${srcdir}/defs
diff --git a/tests/undivert.2.test b/tests/gentest/undivert.2.m4
index d49f7fc4..0663e0dd 100755
--- a/tests/undivert.2.test
+++ b/tests/gentest/undivert.2.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# undivert.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2656
+# gentest/undivert.2.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2655
. ${srcdir}/defs
diff --git a/tests/undivert.3.test b/tests/gentest/undivert.3.m4
index 146374d9..d0b92cae 100755
--- a/tests/undivert.3.test
+++ b/tests/gentest/undivert.3.m4
@@ -1,7 +1,7 @@
#!/bin/sh
-# undivert.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2682
+# gentest/undivert.3.m4 is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 2681
. ${srcdir}/defs
diff --git a/tests/get-them b/tests/get-them
index ca42991a..e42ec152 100755
--- a/tests/get-them
+++ b/tests/get-them
@@ -6,6 +6,8 @@
FILE=${1-/dev/null}
+rm -f gentest/*.m4 2>/dev/null
+
${AWK-gawk} '
BEGIN {
@@ -51,7 +53,7 @@ BEGIN {
error_flag = 0;
i = 0;
include_flag = 0;
- file = sprintf("%s.%d.test", node, seq);
+ file = sprintf("gentest/%s.%d.m4", node, seq);
printf ("#!/bin/sh\n\n") > file;
printf ("# %s is part of the GNU m4 testsuite\n", file) >> file;
printf ("# generated from example in %s line %d\n\n", FILENAME, NR) >>file;
@@ -109,4 +111,4 @@ function printthem(thearray, thecounter, thefile) {
' $FILE >/dev/null
-chmod +x *.[0-9].test
+chmod +x gentest/*.m4
diff --git a/tests/run-test b/tests/run-test
new file mode 100755
index 00000000..c5223163
--- /dev/null
+++ b/tests/run-test
@@ -0,0 +1,29 @@
+#!/bin/sh
+# Run a test manually
+# Copyright (C) 1998 Free Software Foundation, Inc.
+
+srcdir=.
+export srcdir
+
+if sh "$@"; then
+ echo "Test succeeded"
+else
+ echo "TEST FAILED"
+
+ if cmp testSubDir/ok testSubDir/out 2>/dev/null; then
+ :
+ else
+ echo "stdout mosmatch"
+ diff -c testSubDir/ok testSubDir/out
+ fi
+
+ msgerr=""
+ if test -e testSubDir/err; then
+ if cmp testSubDir/okerr testSubDir/err 2>/dev/null; then
+ :
+ else
+ echo "stderr mismatch"
+ diff -c testSubDir/okerr testSubDir/err
+ fi
+ fi
+fi