diff options
author | Jeff Bailey <jbailey@raspberryginger.com> | 2000-02-17 03:10:18 +0000 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2007-10-05 16:11:38 -0600 |
commit | 2a43c62450a3d8ba46fc269b79d9139f90d4a199 (patch) | |
tree | 0c94e26dfe11a1fc6c84cfe74142b94ad826a94c | |
parent | ee1aa6c825458998a116b92d50763dbfee165a83 (diff) | |
download | m4-1.4n.tar.gz |
Import of m4-1.4nm4-1.4n
172 files changed, 4945 insertions, 3506 deletions
@@ -1,5 +1,125 @@ +1998-11-29 Rene' Seindal <rene@seindal.dk> + + * Prerelease 1.4n. + + * tests/Makefile.am (OTHER_TESTS, OTHER_FILES): New tests. + + * tests/other-tests/import-environment.{m4,test}: New test. + + * tests/other-tests/discard-comments.{m4,test}: New test. + + * doc/m4.texinfo (Invoking m4): Updated for --discard-comments. + + * src/m4.c (main): New option -c --discard-comments. + New global variable discard_comments. + + * src/m4.h (token_type): New TOKEN_NONE for tokens to be + discarded, ie never returned from next_token(). + Added declaration of discard_comments. + + * src/input.c (next_token): Now loops until token type is not + TOKEN_NONE. Comments are now given this type when comments should + be discarded. + + * doc/m4.texinfo (Invoking m4): Updated for --import-environment + and mpeval. + +1998-11-28 Rene' Seindal <rene@seindal.dk> + + * src/m4.c (main): New option --import-environment (no single + letter option). + + * When configured with --with-gmp both the normal (fast) eval() + and the gmp aware mpeval() are defined. To restore previous + bahaviour use "define(`eval', defn(`mpeval'))". + + * tests/other-tests/gmp.m4: Changed to use mpeval(). + + * src/evalmp.c: New file for compiling eval.c as gmp aware. + Just defines USE_GMP if WITH_GMP is defined and includes eval.c. + + * src/eval.c: Now includes "numb.c" directly. Everything in this + file must by static, except evaluate(), which is changed to + mp_evaluate() if USE_GMP in force. + + * src/numb.c: Changed to be included by eval.c instead of being + compiled separately. Everything is declared static. + + * src/numb.h: Removed declarations of functions, as numb.c is now + included by eval.c. + + * src/builtin.c: Declaration of m4_mpeval() added. + Inserted `mpeval' in builtin table. + (do_eval): New function with common code for m4_eval and m4_mpeval. + (m4_mpeval): New function for gmp version of eval. + + * src/m4.h: Declaration of mp_evaluate(). + + * src/Makefile.am (m4_SOUCES): Includes mpeval.c. + (EXTRA_m4_SOURCES): Now has numb.c and numb.h + + * src/m4.c (main): m4 --version also shows which options were used + for compilation, such as: "GNU m4 1.4n (options: modules gmp)" + +1998-11-27 Rene' Seindal <rene@seindal.dk> + + * Error messages now always print program name before input file + name as specified by GNU coding standards. Reported by Akim + Demaille <demaille@inf.enst.fr>. + + * doc/m4.texinfo (Include): Change due to changed error message + format. + (Eval): Do. + + * tests/get-them: Minor change to sed script due to changed error + message format. + + * src/m4.c (print_program_name): New func used to print program + name, input file and line number in error (). Used as an + error_print_progname handler. + (reference_error): Removed. + (main): Assigns error_print_progname. + + * src/m4.h (M4ERROR): Removed reference_error (). + +1998-11-25 Rene' Seindal <rene@seindal.dk> + + * Updated to libtool 1.2b. + + * src/builtin.c (install_builtin_table): Added braces to avoid + warning of ambiguous 'else'. + + * src/module.c: Inserted search path code from path.c modified to + use new interface. + (module_init): Configured default path used only if M4MODPATH is + not set. + (module_try_load): Now reads libMODULE.la as generated by libtool + for actual module name. + (module_load): Gives better error messages on failure. + + * src/m4.h: Added declarations of structures and functions for + generic search path handling. + + * src/path.c: Removed all module specific code and introduced new + functions of more generic search path handling. + +1998-11-24 Rene' Seindal <rene@seindal.dk> + + * configure.in: Defines INTLINCL to -I$(top_srcdir)/intl if using + included gettext, as <libintl.h> might not be found + otherwise. Reported by Andrew Bettison <andrewb@zip.com.au>. + +1998-11-22 Rene' Seindal <rene@seindal.dk> + + * src/output.c (insert_diversion): Fixed bug that might cause m4 + to read from standard output! Triggered by input + 'divert(1)undivert(0)'. Test for divnum>0 changed to divnum>=0, + so now 'undivert(0)' does nothing. + 1998-11-18 Rene' Seindal <rene@seindal.dk> + * Prerelease 1.4m. + * src/input.c (set_word_regexp): Fixed a bug, where word_regexp could be changed when compiling a illegal regexp, causing later use of the regexp to dump core. diff --git a/Makefile.in b/Makefile.in index 11760474..ead932e4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ @@ -1,6 +1,32 @@ GNU m4 NEWS - History of user-visible changes. -*-indented-text-*- Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc. +Version beta 1.4n - November 1998, by Rene' Seindal + +* The module code has been reorganised yet again, and now compiles + correctly on GNU/Linux, HPUX 9 and 10, SunOS 5 and Solaris 5. + +* When configured --with-gmp a new builtin `mpeval' is now defined. The + builtin `eval' retains its normal behaviour. + +* m4 --version also shows which options were used for compilation, such as: + "GNU m4 1.4n (options: modules gmp changeword)" + +* New option --import-environment defines all environment variables as + macros. This is done before -D and -U are handled, so the macros can be + changed through these options. + +* Error messages now always print program name before input file name as + specified by GNU coding standards. Reported by Akim Demaille + <demaille@inf.enst.fr>. + +* Bug fixed: "undivert(0)" could cause m4 to read standard output. A call + of "undivert(0)" is now silently ignored. + +* Bug fixed: when compiling --with-included-gettext, <libintl.h> wasn't + found in intl/ directory. Reported by Andrew Bettison + <andrewb@zip.com.au>. + Version beta 1.4m - November 1998, by Rene' Seindal * Using libtool for compiling modules and for linking main app. @@ -7,6 +7,8 @@ running shell commands, doing arithmetic, etc. Autoconf needs GNU GNU `m4' has been originally written by René Seindal, from Denmark. +GNU `m4' has a web site at http://www.seindal.dk/rene/gnu/. + If GNU `m4' is meant to serve GNU `autoconf', beware that `m4' should be fully installed *prior to* configuring `autoconf' itself. @@ -22,8 +24,8 @@ See file `NEWS' for a list of major changes in the current release. See file `THANKS' for a list of contributors. By using `./configure --with-gmp, you get multiple precision integral -and rational arithmetic in eval. The implementation depends on the GNU -gmp v2 library. +and rational arithmetic using mpeval. The implementation depends on the +GNU gmp v2 library. By using `./configure --with-modules, you get the possibility of using dynamic modules. The implementation depends on dlopen(3) interface. @@ -8,6 +8,7 @@ these people. Help me keep it complete and exempt of errors. Akiko Matsushita matusita@sra.co.jp +Akim Demaille demaille@inf.enst.fr Alan Magnuson awm@osc.edu Alexander Lehmann alex@hal.rhein-main.de Amos Shapira amoss@cs.huji.ac.il @@ -4,24 +4,40 @@ 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 +* KNOWN BUGS - + GMP eval() should be enables if the library is present, maybe by - providing two different versions of eval(). That way users can - choose whether to use gmp on an individual basis. + + Changes in the syntax_table are not saved to frozen files. - + There should be a way ot have m4 discard comments instead of - outputting them. + + Information about loaded modules is not saved to frozen files. - + Implement discarding comment delimiters with the syntax table. + + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B). - + The module system is still rudimentary (see below) + + The test case `other-tests/stackovf.test' does not work. - + Changes in the syntax_table are not saved to frozen files. + + sigstack/sigaltstack and ENOSYS - + Information about loaded modules is not saved to frozen files. + When sigstack or sigaltstack fail with errno == ENOSYS, m4 should + fall back silently to not using an alternate signal stack. + Otherwise, problems arise in at least the following case: glibc + 2.1 test releases, built with Linux 2.1 headers (as recommended + for glibc 2.1), so the library has sigstack and sigaltstack, but + run with a Linux 2.0 kernel, so the kernel support is not present + and ENOSYS is returned. + + (GNU m4 1.4k, built with glibc 2.0.100 (itself built with Linux + 2.1.126 headers), and running on Linux 2.0.36pre15.) + + -- + Joseph S. Myers + jsm28@cam.ac.uk - + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B). + + +* FEATURES OR PROBLEMS + + + Implement discarding comment delimiters with the syntax table. + + + The module system is still rudimentary (see below) + The $ used in user defined macros cannot be changed through changesyntax. It should be handled as a modifier. @@ -29,8 +45,6 @@ for any of these ideas or if you have others to add. + Make show include dependencies like gcc so targets are updated when their (included) input files are updated (Erick B). - + The test case `other-tests/stackovf.test' does not work. - + Sort out all the weird forms of interaction between changesyntax, changecom and changequote. What happens if you install a quote with changequote and removes it with changesyntax and vice versa. @@ -38,7 +52,8 @@ for any of these ideas or if you have others to add. + Add support for wide character sets. -* Optimization and clean up + +* OPTIMIZATION AND CLEAN UP + Have NULs go really undisturbed through GNU m4 GNU m4 is lousy regarding NULs in streams (this would require @@ -46,10 +61,12 @@ for any of these ideas or if you have others to add. etc.). -* Module specific issues + +* MODULE SPECIFIC ISSUES - + Support for other DL interfaces besides dlopen, such as dld and - hpux is still missing. + + Support for other DL interfaces besides dlopen and shl_load. + Currently it compiles and works on HPUX (v9,v10), SunOS (v5), + Solaris (v5) and GNU/Linux (v2.0). + Modules should be loadable from the command line with something like `-M module.so' o `--load-module=module.so'. M4 should abort if it @@ -41,6 +41,9 @@ /* Define to 1 if the GNU multiple precision library should be used. */ #undef WITH_GMP +/* Define to 1 if there is support for dynamic loading of modules. */ +#undef WITH_MODULES + /* Define to 1 if the -ldl library should be used . */ #undef HAVE_DLOPEN diff --git a/acinclude.m4 b/acinclude.m4 index 8d46f931..5e8f0042 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -446,6 +446,15 @@ AC_DEFUN(AM_WITH_GMP, AC_CHECK_SIZEOF(long long int, 0) fi ]) +# Written by René Seindal (rene@seindal.dk) +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + AC_DEFUN(AM_WITH_MODULES, [AC_MSG_CHECKING(if support for dynamic modules is wanted) @@ -455,6 +464,7 @@ AC_DEFUN(AM_WITH_MODULES, AC_MSG_RESULT($use_modules) if test "$use_modules" = yes; then + dnl We might no have it anyway, after all. with_modules=no dnl Test for dlopen in libc @@ -489,7 +499,7 @@ AC_DEFUN(AM_WITH_MODULES, if test "$ac_cv_lib_dld_shl_load" = yes; then with_modules=yes - LIBS="$LIBS -ldld" +# LIBS="$LIBS -ldld" AC_DEFINE(HAVE_SHL_LOAD,1) fi fi @@ -500,6 +510,8 @@ AC_DEFUN(AM_WITH_MODULES, MODULES_DIR=modules MODULE_PATH="${pkglibexecdir}" + + AC_DEFINE(WITH_MODULES, 1) fi AC_SUBST(DLLDFLAGS) @@ -508,3 +520,4 @@ AC_DEFUN(AM_WITH_MODULES, fi ]) + @@ -458,6 +458,15 @@ AC_DEFUN(AM_WITH_GMP, AC_CHECK_SIZEOF(long long int, 0) fi ]) +# Written by René Seindal (rene@seindal.dk) +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + AC_DEFUN(AM_WITH_MODULES, [AC_MSG_CHECKING(if support for dynamic modules is wanted) @@ -467,6 +476,7 @@ AC_DEFUN(AM_WITH_MODULES, AC_MSG_RESULT($use_modules) if test "$use_modules" = yes; then + dnl We might no have it anyway, after all. with_modules=no dnl Test for dlopen in libc @@ -501,7 +511,7 @@ AC_DEFUN(AM_WITH_MODULES, if test "$ac_cv_lib_dld_shl_load" = yes; then with_modules=yes - LIBS="$LIBS -ldld" +# LIBS="$LIBS -ldld" AC_DEFINE(HAVE_SHL_LOAD,1) fi fi @@ -512,6 +522,8 @@ AC_DEFUN(AM_WITH_MODULES, MODULES_DIR=modules MODULE_PATH="${pkglibexecdir}" + + AC_DEFINE(WITH_MODULES, 1) fi AC_SUBST(DLLDFLAGS) @@ -521,6 +533,7 @@ AC_DEFUN(AM_WITH_MODULES, ]) + # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, @@ -646,7 +659,7 @@ fi AC_SUBST($1)]) -# serial 24 AM_PROG_LIBTOOL +# serial 25 AM_PROG_LIBTOOL AC_DEFUN(AM_PROG_LIBTOOL, [AC_REQUIRE([AM_ENABLE_SHARED])dnl AC_REQUIRE([AM_ENABLE_STATIC])dnl @@ -700,9 +713,13 @@ esac # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || AC_MSG_ERROR([libtool configure failed]) + +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log ]) # AM_ENABLE_SHARED - implement the --enable-shared flag @@ -713,10 +730,8 @@ AC_DEFUN(AM_ENABLE_SHARED, [define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(shared, changequote(<<, >>)dnl -<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT] +<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT], changequote([, ])dnl -[ --enable-shared=PKGS only build shared libraries if the current package - appears as an element in the PKGS list], [p=${PACKAGE-default} case "$enableval" in yes) enable_shared=yes ;; @@ -752,10 +767,8 @@ AC_DEFUN(AM_ENABLE_STATIC, [define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(static, changequote(<<, >>)dnl -<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT] +<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT], changequote([, ])dnl -[ --enable-static=PKGS only build shared libraries if the current package - appears as an element in the PKGS list], [p=${PACKAGE-default} case "$enableval" in yes) enable_static=yes ;; @@ -789,7 +802,9 @@ if test "$ac_cv_prog_gcc" = yes; then ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. +changequote(,)dnl /* | [A-Za-z]:\\*) +changequote([,])dnl test -z "$LD" && LD="$ac_prog" ;; "") @@ -852,11 +867,10 @@ fi]) AC_DEFUN(AM_PROG_NM, [AC_MSG_CHECKING([for BSD-compatible nm]) AC_CACHE_VAL(ac_cv_path_NM, -[case "$NM" in -/* | [A-Za-z]:\\*) - ac_cv_path_NM="$NM" # Let the user override the test with a path. - ;; -*) +[if test -n "$NM"; then + # Let the user override the test. + ac_cv_path_NM="$NM" +else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && ac_dir=. @@ -876,8 +890,7 @@ AC_CACHE_VAL(ac_cv_path_NM, done IFS="$ac_save_ifs" test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm - ;; -esac]) +fi]) NM="$ac_cv_path_NM" AC_MSG_RESULT([$NM]) AC_SUBST(NM) diff --git a/acm4/Makefile.in b/acm4/Makefile.in index dd72ea7e..1a605efc 100644 --- a/acm4/Makefile.in +++ b/acm4/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ diff --git a/acm4/modules.m4 b/acm4/modules.m4 index 32e14330..94904d43 100644 --- a/acm4/modules.m4 +++ b/acm4/modules.m4 @@ -51,7 +51,7 @@ AC_DEFUN(AM_WITH_MODULES, if test "$ac_cv_lib_dld_shl_load" = yes; then with_modules=yes - LIBS="$LIBS -ldld" +# LIBS="$LIBS -ldld" AC_DEFINE(HAVE_SHL_LOAD,1) fi fi @@ -62,6 +62,8 @@ AC_DEFUN(AM_WITH_MODULES, MODULES_DIR=modules MODULE_PATH="${pkglibexecdir}" + + AC_DEFINE(WITH_MODULES, 1) fi AC_SUBST(DLLDFLAGS) diff --git a/config.h.in b/config.h.in index b1edd73f..4ac29c6f 100644 --- a/config.h.in +++ b/config.h.in @@ -29,6 +29,9 @@ /* Define if you have a working `mmap' system call. */ #undef HAVE_MMAP +/* Define if you have the strftime function. */ +#undef HAVE_STRFTIME + /* Define if you have the vprintf function. */ #undef HAVE_VPRINTF @@ -66,6 +69,9 @@ /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Define if your <sys/time.h> declares struct tm. */ +#undef TM_IN_SYS_TIME + /* Define to 1 if the changeword(REGEXP) functionnality is wanted. */ #undef ENABLE_CHANGEWORD @@ -101,6 +107,9 @@ /* Define to 1 if the GNU multiple precision library should be used. */ #undef WITH_GMP +/* Define to 1 if there is support for dynamic loading of modules. */ +#undef WITH_MODULES + /* Define to 1 if the -ldl library should be used . */ #undef HAVE_DLOPEN @@ -137,6 +146,9 @@ /* Define if you have the __argz_stringify function. */ #undef HAVE___ARGZ_STRINGIFY +/* Define if you have the clearenv function. */ +#undef HAVE_CLEARENV + /* Define if you have the dcgettext function. */ #undef HAVE_DCGETTEXT @@ -152,12 +164,18 @@ /* Define if you have the getcwd function. */ #undef HAVE_GETCWD +/* Define if you have the gethostname function. */ +#undef HAVE_GETHOSTNAME + /* Define if you have the getpagesize function. */ #undef HAVE_GETPAGESIZE /* Define if you have the mkstemp function. */ #undef HAVE_MKSTEMP +/* Define if you have the mktime function. */ +#undef HAVE_MKTIME + /* Define if you have the munmap function. */ #undef HAVE_MUNMAP @@ -209,6 +227,12 @@ /* Define if you have the tmpfile function. */ #undef HAVE_TMPFILE +/* Define if you have the uname function. */ +#undef HAVE_UNAME + +/* Define if you have the unsetenv function. */ +#undef HAVE_UNSETENV + /* Define if you have the vprintf function. */ #undef HAVE_VPRINTF @@ -1,6 +1,6 @@ #! /bin/sh # Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -149,19 +149,20 @@ esac case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arm \ - | arme[lb] | pyramid | mn10300 \ + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | alpha | we32k | ns16k | clipper | i370 | sh \ - | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ - | pdp11 | mips64el | mips64orion | mips64orionel \ - | sparc | sparclet | sparclite | sparc64) + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i[3456]86) + i[34567]86) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -170,14 +171,18 @@ case $basic_machine in exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ - | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ - | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ - | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -204,9 +209,9 @@ case $basic_machine in amiga | amiga-*) basic_machine=m68k-cbm ;; - amigados) + amigaos | amigados) basic_machine=m68k-cbm - os=-amigados + os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm @@ -345,19 +350,19 @@ case $basic_machine in os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[3456]86v32) + i[34567]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; - i[3456]86v4*) + i[34567]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; - i[3456]86v) + i[34567]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; - i[3456]86sol2) + i[34567]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; @@ -391,11 +396,11 @@ case $basic_machine in ;; mipsel*-linux*) basic_machine=mipsel-unknown - os=-linux + os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown - os=-linux + os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` @@ -464,25 +469,23 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5) - basic_machine=i586-intel + pentium | p5 | k5 | nexen) + basic_machine=i586-pc ;; - pentiumpro | p6) - basic_machine=i686-intel + pentiumpro | p6 | k6 | 6x86) + basic_machine=i686-pc ;; - pentium-* | p5-*) + pentiumii | pentium2) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | nexen-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumpro-* | p6-*) + pentiumpro-* | p6-* | k6-* | 6x86-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - k5) - # We don't have specific support for AMD's K5 yet, so just call it a Pentium - basic_machine=i586-amd - ;; - nexen) - # We don't have specific support for Nexgen yet, so just call it a Pentium - basic_machine=i586-nexgen + pentiumii-* | pentium2-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -566,6 +569,12 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -585,7 +594,7 @@ case $basic_machine in basic_machine=vax-dec os=-vms ;; - vpp*|vx|vx-*) + vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) @@ -615,7 +624,7 @@ case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. mips) - if [ x$os = x-linux ]; then + if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips @@ -680,9 +689,12 @@ case $os in -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; @@ -693,7 +705,8 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ @@ -701,7 +714,7 @@ case $os in | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -linux-gnu* | -uxpv*) + | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) @@ -827,7 +840,7 @@ case $basic_machine in os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux @@ -12,13 +12,9 @@ ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help - --enable-shared build shared libraries [default=yes] - --enable-shared=PKGS only build shared libraries if the current package - appears as an element in the PKGS list" + --enable-shared[=PKGS] build shared libraries [default=yes]" ac_help="$ac_help - --enable-static build static libraries [default=no] - --enable-static=PKGS only build shared libraries if the current package - appears as an element in the PKGS list" + --enable-static[=PKGS] build static libraries [default=no]" ac_help="$ac_help --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ac_help="$ac_help @@ -598,7 +594,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:602: checking for a BSD compatible install" >&5 +echo "configure:598: 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 @@ -651,7 +647,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:655: checking whether build environment is sane" >&5 +echo "configure:651: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -689,7 +685,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:693: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:689: 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 @@ -718,7 +714,7 @@ fi PACKAGE=m4 -VERSION=1.4m +VERSION=1.4n 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; } @@ -735,7 +731,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:739: checking for working aclocal" >&5 +echo "configure:735: 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. @@ -748,7 +744,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:752: checking for working autoconf" >&5 +echo "configure:748: 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. @@ -761,7 +757,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:765: checking for working automake" >&5 +echo "configure:761: 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. @@ -774,7 +770,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:778: checking for working autoheader" >&5 +echo "configure:774: 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. @@ -787,7 +783,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:791: checking for working makeinfo" >&5 +echo "configure:787: 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. @@ -810,7 +806,7 @@ 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:814: checking for $ac_word" >&5 +echo "configure:810: 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 @@ -841,7 +837,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:845: checking for $ac_word" >&5 +echo "configure:841: 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 @@ -870,7 +866,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:874: checking for $ac_word" >&5 +echo "configure:870: 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 @@ -918,7 +914,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:922: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:918: 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. @@ -928,11 +924,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 932 "configure" +#line 928 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:932: \"$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 @@ -952,12 +948,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:956: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:952: 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:961: checking whether we are using GNU C" >&5 +echo "configure:957: 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 @@ -966,7 +962,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:970: \"$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:966: \"$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 @@ -981,7 +977,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:985: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:981: 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 @@ -1019,7 +1015,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:1023: checking for a BSD compatible install" >&5 +echo "configure:1019: 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 @@ -1069,7 +1065,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:1073: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1069: 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 @@ -1095,39 +1091,10 @@ else SET_MAKE="MAKE=${MAKE-make}" 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:1102: 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 - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -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:1131: checking for $ac_word" >&5 +echo "configure:1098: 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 @@ -1209,7 +1176,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1213: checking host system type" >&5 +echo "configure:1180: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1229,6 +1196,35 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 +# 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:1203: 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 + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" @@ -1242,11 +1238,11 @@ ac_prog=ld if test "$ac_cv_prog_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1246: checking for ld used by GCC" >&5 +echo "configure:1242: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /* | A-Za-z:\\*) + /* | [A-Za-z]:\\*) test -z "$LD" && LD="$ac_prog" ;; "") @@ -1260,10 +1256,10 @@ echo "configure:1246: checking for ld used by GCC" >&5 esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1264: checking for GNU ld" >&5 +echo "configure:1260: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1267: checking for non-GNU ld" >&5 +echo "configure:1263: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1299,7 +1295,7 @@ fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1303: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1299: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1315,15 +1311,14 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1319: checking for BSD-compatible nm" >&5 +echo "configure:1315: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - case "$NM" in -/* | A-Za-z:\\*) - ac_cv_path_NM="$NM" # Let the user override the test with a path. - ;; -*) + if test -n "$NM"; then + # Let the user override the test. + ac_cv_path_NM="$NM" +else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && ac_dir=. @@ -1343,8 +1338,7 @@ else done IFS="$ac_save_ifs" test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm - ;; -esac +fi fi NM="$ac_cv_path_NM" @@ -1352,7 +1346,7 @@ echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1356: checking whether ln -s works" >&5 +echo "configure:1350: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1388,8 +1382,8 @@ test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" case "$host" in *-*-irix6*) # Find out which ABI we are using. - echo '#line 1392 "configure"' > conftest.$ac_ext - if { (eval echo configure:1393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 1386 "configure"' > conftest.$ac_ext + if { (eval echo configure:1387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *32-bit*) LD="${LD-ld} -32" @@ -1414,13 +1408,17 @@ esac # Actually configure libtool. ac_aux_dir is where install-sh is found. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1424: checking how to run the C preprocessor" >&5 +echo "configure:1422: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1435,13 +1433,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 1439 "configure" +#line 1437 "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:1445: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1452,13 +1450,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1456 "configure" +#line 1454 "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:1462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1481,9 +1479,9 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:1485: checking for AIX" >&5 +echo "configure:1483: checking for AIX" >&5 cat > conftest.$ac_ext <<EOF -#line 1487 "configure" +#line 1485 "configure" #include "confdefs.h" #ifdef _AIX yes @@ -1505,7 +1503,7 @@ rm -f conftest* echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1509: checking for POSIXized ISC" >&5 +echo "configure:1507: 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 @@ -1527,17 +1525,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:1531: checking for minix/config.h" >&5 +echo "configure:1529: 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 1536 "configure" +#line 1534 "configure" #include "confdefs.h" #include <minix/config.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1541: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1578,7 +1576,7 @@ fi echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 -echo "configure:1582: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:1580: 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 @@ -1594,7 +1592,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 1598 "configure" +#line 1596 "configure" #include "confdefs.h" #include <stdarg.h> #include <stdio.h> @@ -1631,7 +1629,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } EOF -if { (eval echo configure:1635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_prog_cc_stdc="$ac_arg"; break else @@ -1657,7 +1655,7 @@ esac echo $ac_n "checking for function prototypes""... $ac_c" 1>&6 -echo "configure:1661: checking for function prototypes" >&5 +echo "configure:1659: checking for function prototypes" >&5 if test "$am_cv_prog_cc_stdc" != no; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -1670,12 +1668,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:1674: checking for ANSI C header files" >&5 +echo "configure:1672: 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 1679 "configure" +#line 1677 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -1683,7 +1681,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1687: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1685: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1700,7 +1698,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 1704 "configure" +#line 1702 "configure" #include "confdefs.h" #include <string.h> EOF @@ -1718,7 +1716,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 1722 "configure" +#line 1720 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -1739,7 +1737,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 1743 "configure" +#line 1741 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1750,7 +1748,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -1777,17 +1775,17 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1781: checking for $ac_hdr" >&5 +echo "configure:1779: 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 1786 "configure" +#line 1784 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1816,12 +1814,12 @@ done fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1820: checking for working const" >&5 +echo "configure:1818: 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 1825 "configure" +#line 1823 "configure" #include "confdefs.h" int main() { @@ -1870,7 +1868,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:1874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1895,17 +1893,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:1899: checking for $ac_hdr" >&5 +echo "configure:1897: 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 1904 "configure" +#line 1902 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1932,12 +1930,12 @@ fi done echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1936: checking for ANSI C header files" >&5 +echo "configure:1934: 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 1941 "configure" +#line 1939 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -1945,7 +1943,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1949: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1962,7 +1960,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 1966 "configure" +#line 1964 "configure" #include "confdefs.h" #include <string.h> EOF @@ -1980,7 +1978,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 1984 "configure" +#line 1982 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2001,7 +1999,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 2005 "configure" +#line 2003 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2012,7 +2010,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -2036,12 +2034,12 @@ EOF fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:2040: checking return type of signal handlers" >&5 +echo "configure:2038: 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 2045 "configure" +#line 2043 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -2058,7 +2056,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:2062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -2077,12 +2075,12 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2081: checking for size_t" >&5 +echo "configure:2079: 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 2086 "configure" +#line 2084 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2113,12 +2111,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:2117: checking for $ac_func" >&5 +echo "configure:2115: 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 2122 "configure" +#line 2120 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2141,7 +2139,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2169,19 +2167,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:2173: checking for working alloca.h" >&5 +echo "configure:2171: 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 2178 "configure" +#line 2176 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:2185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -2202,12 +2200,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:2206: checking for alloca" >&5 +echo "configure:2204: 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 2211 "configure" +#line 2209 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -2230,7 +2228,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -2262,12 +2260,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:2266: checking whether alloca needs Cray hooks" >&5 +echo "configure:2264: 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 2271 "configure" +#line 2269 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -2292,12 +2290,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:2296: checking for $ac_func" >&5 +echo "configure:2294: 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 2301 "configure" +#line 2299 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2320,7 +2318,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2347,7 +2345,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:2351: checking stack direction for C alloca" >&5 +echo "configure:2349: 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 @@ -2355,7 +2353,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 2359 "configure" +#line 2357 "configure" #include "confdefs.h" find_stack_direction () { @@ -2374,7 +2372,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:2378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2376: \"$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 @@ -2396,12 +2394,12 @@ EOF fi echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2400: checking for vprintf" >&5 +echo "configure:2398: 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 2405 "configure" +#line 2403 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vprintf(); below. */ @@ -2424,7 +2422,7 @@ vprintf(); ; return 0; } EOF -if { (eval echo configure:2428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -2448,12 +2446,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2452: checking for _doprnt" >&5 +echo "configure:2450: 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 2457 "configure" +#line 2455 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt(); below. */ @@ -2476,7 +2474,7 @@ _doprnt(); ; return 0; } EOF -if { (eval echo configure:2480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2503,12 +2501,12 @@ fi for ac_func in strtol obstack xmalloc xstrdup do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2507: checking for $ac_func" >&5 +echo "configure:2505: 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 2512 "configure" +#line 2510 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2531,7 +2529,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2558,12 +2556,12 @@ done echo $ac_n "checking for getopt_long""... $ac_c" 1>&6 -echo "configure:2562: checking for getopt_long" >&5 +echo "configure:2560: 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 2567 "configure" +#line 2565 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getopt_long(); below. */ @@ -2586,7 +2584,7 @@ getopt_long(); ; return 0; } EOF -if { (eval echo configure:2590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_getopt_long=yes" else @@ -2628,12 +2626,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:2632: checking for $ac_func" >&5 +echo "configure:2630: 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 2637 "configure" +#line 2635 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2656,7 +2654,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2681,12 +2679,12 @@ fi done echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2685: checking for ANSI C header files" >&5 +echo "configure:2683: 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 2690 "configure" +#line 2688 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -2694,7 +2692,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2711,7 +2709,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 2715 "configure" +#line 2713 "configure" #include "confdefs.h" #include <string.h> EOF @@ -2729,7 +2727,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 2733 "configure" +#line 2731 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2750,7 +2748,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 2754 "configure" +#line 2752 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2761,7 +2759,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -2787,9 +2785,9 @@ fi echo $ac_n "checking ecvt declaration""... $ac_c" 1>&6 -echo "configure:2791: checking ecvt declaration" >&5 +echo "configure:2789: checking ecvt declaration" >&5 cat > conftest.$ac_ext <<EOF -#line 2793 "configure" +#line 2791 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2805,12 +2803,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:2809: checking for $ac_func" >&5 +echo "configure:2807: 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 2814 "configure" +#line 2812 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2833,7 +2831,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2862,7 +2860,7 @@ rm -f conftest* echo $ac_n "checking if stack overflow is detectable""... $ac_c" 1>&6 -echo "configure:2866: checking if stack overflow is detectable" >&5 +echo "configure:2864: 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 @@ -2872,7 +2870,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 2876 "configure" +#line 2874 "configure" #include "confdefs.h" #include <sys/time.h> #include <sys/resource.h> @@ -2885,7 +2883,7 @@ choke me /* SA_ONSTACK and/or SV_ONSTACK are not defined */ #endif ; return 0; } EOF -if { (eval echo configure:2889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* use_stackovf=yes else @@ -2904,7 +2902,7 @@ EOF STACKOVF=stackovf.${U}o cat > conftest.$ac_ext <<EOF -#line 2908 "configure" +#line 2906 "configure" #include "confdefs.h" #include <sys/resource.h> EOF @@ -2921,7 +2919,7 @@ fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 2925 "configure" +#line 2923 "configure" #include "confdefs.h" #include <signal.h> EOF @@ -2938,7 +2936,7 @@ fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 2942 "configure" +#line 2940 "configure" #include "confdefs.h" #include <signal.h> EOF @@ -2955,7 +2953,7 @@ rm -f conftest* fi echo $ac_n "checking if changeword is wanted""... $ac_c" 1>&6 -echo "configure:2959: checking if changeword is wanted" >&5 +echo "configure:2957: 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" @@ -2974,7 +2972,7 @@ fi echo $ac_n "checking if support for dynamic modules is wanted""... $ac_c" 1>&6 -echo "configure:2978: checking if support for dynamic modules is wanted" >&5 +echo "configure:2976: 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" @@ -2986,17 +2984,17 @@ fi echo "$ac_t""$use_modules" 1>&6 if test "$use_modules" = yes; then - with_modules=no + with_modules=no for ac_func in dlopen do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2995: checking for $ac_func" >&5 +echo "configure:2993: 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 3000 "configure" +#line 2998 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3019,7 +3017,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3049,7 +3047,7 @@ done if test "$with_modules" = no; then echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:3053: checking for dlopen in -ldl" >&5 +echo "configure:3051: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3057,7 +3055,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3061 "configure" +#line 3059 "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 @@ -3068,7 +3066,7 @@ int main() { dlopen() ; return 0; } EOF -if { (eval echo configure:3072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3070: \"$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 @@ -3117,7 +3115,7 @@ EOF if test "$with_modules" = no; then echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:3121: checking for shl_load in -ldld" >&5 +echo "configure:3119: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3125,7 +3123,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <<EOF -#line 3129 "configure" +#line 3127 "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 @@ -3136,7 +3134,7 @@ int main() { shl_load() ; return 0; } EOF -if { (eval echo configure:3140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3138: \"$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 @@ -3166,7 +3164,7 @@ fi if test "$ac_cv_lib_dld_shl_load" = yes; then with_modules=yes - LIBS="$LIBS -ldld" +# LIBS="$LIBS -ldld" cat >> confdefs.h <<\EOF #define HAVE_SHL_LOAD 1 EOF @@ -3179,6 +3177,11 @@ EOF MODULES_DIR=modules MODULE_PATH="${pkglibexecdir}" + + cat >> confdefs.h <<\EOF +#define WITH_MODULES 1 +EOF + fi @@ -3186,8 +3189,251 @@ EOF fi + +echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 +echo "configure:3195: checking whether struct tm is in sys/time.h or time.h" >&5 +if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 3200 "configure" +#include "confdefs.h" +#include <sys/types.h> +#include <time.h> +int main() { +struct tm *tp; tp->tm_sec; +; return 0; } +EOF +if { (eval echo configure:3208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm=time.h +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_struct_tm=sys/time.h +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_struct_tm" 1>&6 +if test $ac_cv_struct_tm = sys/time.h; then + cat >> confdefs.h <<\EOF +#define TM_IN_SYS_TIME 1 +EOF + +fi + +echo $ac_n "checking for strftime""... $ac_c" 1>&6 +echo "configure:3229: checking for strftime" >&5 +if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 3234 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strftime(); below. */ +#include <assert.h> +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strftime(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_strftime) || defined (__stub___strftime) +choke me +#else +strftime(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_strftime=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_strftime=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'strftime`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_STRFTIME 1 +EOF + +else + echo "$ac_t""no" 1>&6 +# strftime is in -lintl on SCO UNIX. +echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 +echo "configure:3279: checking for strftime in -lintl" >&5 +ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lintl $LIBS" +cat > conftest.$ac_ext <<EOF +#line 3287 "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 + builtin and then its argument prototype would still apply. */ +char strftime(); + +int main() { +strftime() +; return 0; } +EOF +if { (eval echo configure:3298: \"$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 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_STRFTIME 1 +EOF + +LIBS="-lintl $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +for ac_func in getcwd gethostname mktime uname +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:3327: 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 3332 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +#include <assert.h> +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <<EOF +#define $ac_tr_func 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + +for ac_func in setenv unsetenv putenv clearenv +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:3382: 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 3387 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +#include <assert.h> +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <<EOF +#define $ac_tr_func 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + + + echo $ac_n "checking if extended and fractional arithmetic is wanted""... $ac_c" 1>&6 -echo "configure:3191: checking if extended and fractional arithmetic is wanted" >&5 +echo "configure:3437: 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" @@ -3202,17 +3448,17 @@ fi LIBS="$LIBS -lgmp" ac_safe=`echo "gmp.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gmp.h""... $ac_c" 1>&6 -echo "configure:3206: checking for gmp.h" >&5 +echo "configure:3452: 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 3211 "configure" +#line 3457 "configure" #include "confdefs.h" #include <gmp.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3462: \"$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,19 +3475,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:3233: checking for mpq_init in libgmp" >&5 +echo "configure:3479: 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 3238 "configure" +#line 3484 "configure" #include "confdefs.h" #include <gmp.h> int main() { mpq_t x; (void)mpq_init(x) ; return 0; } EOF -if { (eval echo configure:3245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_mpq_init_libgmp=yes else @@ -3274,7 +3520,7 @@ EOF if test "$use_gmp" != yes; then echo $ac_n "checking size of long long int""... $ac_c" 1>&6 -echo "configure:3278: checking size of long long int" >&5 +echo "configure:3524: 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 @@ -3282,7 +3528,7 @@ else ac_cv_sizeof_long_long_int=0 else cat > conftest.$ac_ext <<EOF -#line 3286 "configure" +#line 3532 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -3293,7 +3539,7 @@ main() exit(0); } EOF -if { (eval echo configure:3297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3543: \"$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 @@ -3316,7 +3562,7 @@ EOF echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6 -echo "configure:3320: checking if malloc debugging is wanted" >&5 +echo "configure:3566: 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" @@ -3337,21 +3583,21 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3341: checking for inline" >&5 +echo "configure:3587: 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 3348 "configure" +#line 3594 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:3355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3377,12 +3623,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3381: checking for off_t" >&5 +echo "configure:3627: 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 3386 "configure" +#line 3632 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3413,17 +3659,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:3417: checking for $ac_hdr" >&5 +echo "configure:3663: 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 3422 "configure" +#line 3668 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3427: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3452,12 +3698,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3456: checking for $ac_func" >&5 +echo "configure:3702: 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 3461 "configure" +#line 3707 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3480,7 +3726,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3505,7 +3751,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3509: checking for working mmap" >&5 +echo "configure:3755: 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 @@ -3513,7 +3759,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 3517 "configure" +#line 3763 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -3653,7 +3899,7 @@ main() } EOF -if { (eval echo configure:3657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3903: \"$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 @@ -3681,17 +3927,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:3685: checking for $ac_hdr" >&5 +echo "configure:3931: 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 3690 "configure" +#line 3936 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3695: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3721,12 +3967,12 @@ done strdup __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3725: checking for $ac_func" >&5 +echo "configure:3971: 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 3730 "configure" +#line 3976 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3749,7 +3995,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3778,12 +4024,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3782: checking for $ac_func" >&5 +echo "configure:4028: 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 3787 "configure" +#line 4033 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3806,7 +4052,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3840,19 +4086,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3844: checking for LC_MESSAGES" >&5 +echo "configure:4090: 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 3849 "configure" +#line 4095 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -3873,7 +4119,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3877: checking whether NLS is requested" >&5 +echo "configure:4123: 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" @@ -3893,7 +4139,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3897: checking whether included gettext is requested" >&5 +echo "configure:4143: 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" @@ -3912,17 +4158,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3916: checking for libintl.h" >&5 +echo "configure:4162: 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 3921 "configure" +#line 4167 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3926: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -3939,19 +4185,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:3943: checking for gettext in libc" >&5 +echo "configure:4189: 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 3948 "configure" +#line 4194 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -3967,7 +4213,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:3971: checking for bindtextdomain in -lintl" >&5 +echo "configure:4217: 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 @@ -3975,7 +4221,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3979 "configure" +#line 4225 "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 @@ -3986,7 +4232,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:3990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4236: \"$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 @@ -4002,7 +4248,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:4006: checking for gettext in -lintl" >&5 +echo "configure:4252: 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 @@ -4010,7 +4256,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 4014 "configure" +#line 4260 "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 @@ -4021,7 +4267,7 @@ int main() { gettext() ; return 0; } EOF -if { (eval echo configure:4025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4271: \"$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 @@ -4058,7 +4304,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:4062: checking for $ac_word" >&5 +echo "configure:4308: 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 @@ -4092,12 +4338,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4096: checking for $ac_func" >&5 +echo "configure:4342: 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 4101 "configure" +#line 4347 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4120,7 +4366,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4147,7 +4393,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:4151: checking for $ac_word" >&5 +echo "configure:4397: 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 @@ -4179,7 +4425,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:4183: checking for $ac_word" >&5 +echo "configure:4429: 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 @@ -4211,7 +4457,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 4215 "configure" +#line 4461 "configure" #include "confdefs.h" int main() { @@ -4219,7 +4465,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:4223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -4242,7 +4488,7 @@ fi if test "$CATOBJEXT" = "NONE"; then echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 -echo "configure:4246: checking whether catgets can be used" >&5 +echo "configure:4492: 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" @@ -4255,7 +4501,7 @@ fi if test "$nls_cv_use_catgets" = "yes"; then echo $ac_n "checking for main in -li""... $ac_c" 1>&6 -echo "configure:4259: checking for main in -li" >&5 +echo "configure:4505: 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 @@ -4263,14 +4509,14 @@ else ac_save_LIBS="$LIBS" LIBS="-li $LIBS" cat > conftest.$ac_ext <<EOF -#line 4267 "configure" +#line 4513 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:4274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4520: \"$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 @@ -4298,12 +4544,12 @@ else fi echo $ac_n "checking for catgets""... $ac_c" 1>&6 -echo "configure:4302: checking for catgets" >&5 +echo "configure:4548: 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 4307 "configure" +#line 4553 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char catgets(); below. */ @@ -4326,7 +4572,7 @@ catgets(); ; return 0; } EOF -if { (eval echo configure:4330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_catgets=yes" else @@ -4348,7 +4594,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:4352: checking for $ac_word" >&5 +echo "configure:4598: 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 @@ -4380,7 +4626,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:4384: checking for $ac_word" >&5 +echo "configure:4630: 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 @@ -4413,7 +4659,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:4417: checking for $ac_word" >&5 +echo "configure:4663: 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 @@ -4448,7 +4694,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:4452: checking for $ac_word" >&5 +echo "configure:4698: 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 @@ -4506,7 +4752,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:4510: checking for $ac_word" >&5 +echo "configure:4756: 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 @@ -4540,7 +4786,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:4544: checking for $ac_word" >&5 +echo "configure:4790: 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 @@ -4572,7 +4818,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:4576: checking for $ac_word" >&5 +echo "configure:4822: 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 @@ -4665,7 +4911,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4669: checking for catalogs to be installed" >&5 +echo "configure:4915: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4693,17 +4939,17 @@ echo "configure:4669: 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:4697: checking for linux/version.h" >&5 +echo "configure:4943: 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 4702 "configure" +#line 4948 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4707: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -4768,6 +5014,14 @@ fi < $srcdir/po/POTFILES.in > po/POTFILES +if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLINCL='-I$(top_srcdir)/intl' + + +fi + + + trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure @@ -4914,13 +5168,13 @@ s%@SET_MAKE@%$SET_MAKE%g s%@pkglibexecdir@%$pkglibexecdir%g s%@AWK@%$AWK%g s%@CC@%$CC%g -s%@RANLIB@%$RANLIB%g s%@PERL@%$PERL%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g s%@host_vendor@%$host_vendor%g s%@host_os@%$host_os%g +s%@RANLIB@%$RANLIB%g s%@LD@%$LD%g s%@NM@%$NM%g s%@LN_S@%$LN_S%g @@ -4955,6 +5209,7 @@ s%@GT_NO@%$GT_NO%g s%@GT_YES@%$GT_YES%g s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g s%@l@%$l%g +s%@INTLINCL@%$INTLINCL%g CEOF EOF diff --git a/configure.in b/configure.in index 473137d9..74008230 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ AC_INIT(src/m4.c) AM_CONFIG_HEADER(config.h) AC_ARG_PROGRAM -AM_INIT_AUTOMAKE(m4,1.4m) +AM_INIT_AUTOMAKE(m4,1.4n) ALL_LINGUAS="de fr it ja nl pl ru sv" pkglibexecdir='${libexecdir}'/$PACKAGE @@ -18,7 +18,6 @@ AC_PROG_AWK AC_PROG_CC AC_PROG_INSTALL AC_PROG_MAKE_SET -AC_PROG_RANLIB AC_PATH_PROG(PERL,perl) AM_ENABLE_SHARED @@ -91,10 +90,26 @@ else fi], [AC_MSG_RESULT(no)]) AM_WITH_MODULES + +dnl This is for the modules +AC_STRUCT_TM +AC_FUNC_STRFTIME +AC_CHECK_FUNCS(getcwd gethostname mktime uname) +AC_CHECK_FUNCS(setenv unsetenv putenv clearenv) + + AM_WITH_GMP AM_WITH_DMALLOC AM_GNU_GETTEXT + +if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLINCL='-I$(top_srcdir)/intl' + + AC_SUBST(INTLINCL) +fi + + dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) AC_OUTPUT(Makefile acm4/Makefile intl/Makefile po/Makefile.in doc/Makefile \ diff --git a/doc/Makefile.in b/doc/Makefile.in index bff362c1..1af78ddb 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ diff --git a/doc/m4.info b/doc/m4.info index 757f2be1..1a6d6605 100644 --- a/doc/m4.info +++ b/doc/m4.info @@ -27,91 +27,92 @@ translation approved by the Foundation. Indirect: m4.info-1: 973 -m4.info-2: 50118 -m4.info-3: 99156 +m4.info-2: 50410 +m4.info-3: 99746 Tag Table: (Indirect) Node: Top973 -Node: Preliminaries7061 -Node: Intro7786 -Node: History9394 -Node: Invoking m410309 -Node: Bugs17174 -Node: Manual18375 -Node: Syntax19742 -Node: Names20580 -Node: Quoted strings21193 -Node: Other tokens21777 -Node: Comments21994 -Node: Input processing22681 -Node: Macros23834 -Node: Invocation24327 -Node: Inhibiting Invocation25138 -Node: Macro Arguments28283 -Node: Quoting Arguments29598 -Node: Macro expansion30403 -Node: Definitions31066 -Node: Define31843 -Node: Arguments33397 -Node: Pseudo Arguments34878 -Node: Undefine36729 -Node: Defn37391 -Node: Pushdef38861 -Node: Indir40920 -Node: Builtin41698 -Node: Conditionals42142 -Node: Ifdef42849 -Node: Ifelse43618 -Node: Loops45400 -Node: Debugging48692 -Node: Dumpdef49270 -Node: Trace50118 -Node: Debug Levels51497 -Node: Debug Output53883 -Node: Input Control54403 -Node: Dnl55016 -Node: Changequote56142 -Node: Changecom57506 -Node: Changesyntax58792 -Node: Changeword66041 -Node: M4wrap69417 -Node: File Inclusion70619 -Node: Include70935 -Node: Search Path72954 -Node: Diversions73741 -Node: Divert74978 -Node: Undivert76110 -Node: Divnum78081 -Node: Cleardiv78626 -Node: Text handling79681 -Node: Len80401 -Node: Index80799 -Node: Regexp81384 -Node: Substr82475 -Node: Translit83095 -Node: Patsubst84538 -Node: Format86629 -Node: Arithmetic88191 -Node: Incr88648 -Node: Eval89152 -Node: UNIX commands92758 -Node: Syscmd93229 -Node: Esyscmd93942 -Node: Sysval94890 -Node: Maketemp95295 -Node: Miscellaneous96353 -Node: Errprint96784 -Node: M4exit97766 -Node: Syncoutput98564 -Node: Frozen files99156 -Node: Compatibility104075 -Node: Extensions104691 -Node: Incompatibilities107161 -Node: Other Incompat107603 -Node: Experiments109768 -Node: Answers111275 -Node: Concept index111907 -Node: Macro index119328 +Node: Preliminaries7105 +Node: Intro7830 +Node: History9438 +Node: Invoking m410353 +Node: Bugs17466 +Node: Manual18667 +Node: Syntax20034 +Node: Names20872 +Node: Quoted strings21485 +Node: Other tokens22069 +Node: Comments22286 +Node: Input processing22973 +Node: Macros24126 +Node: Invocation24619 +Node: Inhibiting Invocation25430 +Node: Macro Arguments28575 +Node: Quoting Arguments29890 +Node: Macro expansion30695 +Node: Definitions31358 +Node: Define32135 +Node: Arguments33689 +Node: Pseudo Arguments35170 +Node: Undefine37021 +Node: Defn37683 +Node: Pushdef39153 +Node: Indir41212 +Node: Builtin41990 +Node: Conditionals42434 +Node: Ifdef43141 +Node: Ifelse43910 +Node: Loops45692 +Node: Debugging48984 +Node: Dumpdef49562 +Node: Trace50410 +Node: Debug Levels51789 +Node: Debug Output54175 +Node: Input Control54695 +Node: Dnl55308 +Node: Changequote56434 +Node: Changecom57798 +Node: Changesyntax59084 +Node: Changeword66333 +Node: M4wrap69709 +Node: File Inclusion70911 +Node: Include71227 +Node: Search Path73247 +Node: Diversions74034 +Node: Divert75271 +Node: Undivert76403 +Node: Divnum78374 +Node: Cleardiv78919 +Node: Text handling79974 +Node: Len80694 +Node: Index81092 +Node: Regexp81677 +Node: Substr82768 +Node: Translit83388 +Node: Patsubst84831 +Node: Format86922 +Node: Arithmetic88484 +Node: Incr88952 +Node: Eval89456 +Node: Mpeval92592 +Node: UNIX commands93348 +Node: Syscmd93819 +Node: Esyscmd94532 +Node: Sysval95480 +Node: Maketemp95885 +Node: Miscellaneous96943 +Node: Errprint97374 +Node: M4exit98356 +Node: Syncoutput99154 +Node: Frozen files99746 +Node: Compatibility104665 +Node: Extensions105281 +Node: Incompatibilities107751 +Node: Other Incompat108193 +Node: Experiments110358 +Node: Answers111865 +Node: Concept index112497 +Node: Macro index119918 End Tag Table diff --git a/doc/m4.info-1 b/doc/m4.info-1 index a78305cc..5280383b 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 BETA release 1.4m. This is a development release, and is as + This is BETA release 1.4n. This is a development release, and is as such prone to bugs, crashes, unforeseen features, incomplete documentation, ... therefore, use at your own peril. In case of problems, please do not hesitate to report them (see the README file in @@ -75,6 +75,7 @@ the distribution). * Concept index:: Index for many concepts * Macro index:: Index for all m4 macros + -- The Detailed Node Listing -- Introduction and preliminaries @@ -160,6 +161,7 @@ Macros for doing arithmetic * Incr:: Decrement and increment operators * Eval:: Evaluating integer or rational expressions +* Mpeval:: Running UNIX commands @@ -318,6 +320,10 @@ options: Makes this invocation of `m4' interactive. This means that all output will be unbuffered, and interrupts will be ignored. +`-c' +`--discard-comments' + Discard all comments instead of copying them to the output. + `-s' `--synclines' Generate synchronisation lines, for use by the C preprocessor or @@ -431,6 +437,10 @@ using the `-D' and `-U' options. They have the following format: Before execution starts, recover the internal state from the specified frozen FILE (*note Frozen files::.). +`--import-environment' + Imports every variable in the environment as a macro. This is done + before `-D' and `-U', so these can change the macros. + The remaining arguments on the command line are taken to be input file names. If no names are present, the standard input is read. A file name of `-' is taken to mean the standard input. diff --git a/doc/m4.info-2 b/doc/m4.info-2 index 20449257..39a695d0 100644 --- a/doc/m4.info-2 +++ b/doc/m4.info-2 @@ -744,7 +744,7 @@ include a file, if it exists, expanding to nothing if it does not. include(`no-such-file') => - error-->in:1: m4: Cannot open no-such-file: No such file or directory + error-->m4: in: 1: Cannot open no-such-file: No such file or directory sinclude(`no-such-file') => @@ -1276,6 +1276,7 @@ decrement operations. * Incr:: Decrement and increment operators * Eval:: Evaluating integer or rational expressions +* Mpeval:: File: m4.info, Node: Incr, Next: Eval, Prev: Arithmetic, Up: Arithmetic @@ -1301,7 +1302,7 @@ decremented, respectively, by one. arguments. -File: m4.info, Node: Eval, Prev: Incr, Up: Arithmetic +File: m4.info, Node: Eval, Next: Mpeval, Prev: Incr, Up: Arithmetic Evaluating integer or rational expressions ========================================== @@ -1371,17 +1372,8 @@ then the digits making the number. For any radix, the digits are `0', Lower and upper case letters can be used interchangeably in numbers prefixes and as number digits. - Calculations are done in 32 bit, but `m4' will use wider integers if -available. - - When compiled with a multiple precision arithmetic library (*note -Experiments::.), numbers may be of any length. The `:' operator -rationally divides two numbers and canonicalizes the result. The `/' -operator always returns the quotient of the division. To convert a -rational value to integral, divide (`/') by 1. Some operators such as -`%', `<<', `>>', `~', `&', `|' and `^' operate only on integers and -will truncate any rational remainder. `**' assumes that the exponent -is integral. + Calculations are done in at lease 32 bit, but `m4' will use wider +integers if available. Parentheses may be used to group subexpressions whenever needed. For the relational operators, a true relation returns `1', and a false @@ -1402,7 +1394,7 @@ relation return `0'. define(`foo', `666') => eval(`foo'/6) - error-->in:7: m4: Bad expression in eval: foo/6 + error-->m4: in: 7: Bad expression in eval: foo/6 => eval(foo/6) =>111 @@ -1434,6 +1426,25 @@ requested width. The builtin macro `eval' is recognized only when given arguments. +File: m4.info, Node: Mpeval, Prev: Eval, Up: Arithmetic + +Multiple precision arithmetic +============================= + + When `m4' is compiled with a multiple precision arithmetic library +(*note Experiments::.), a builtin `mpeval' is defined. + + It is almost identical to `eval', except the calculations are done +with infinite precision. Numbers may be of any length. + + The `:' operator rationally divides two numbers and canonicalizes +the result. The `/' operator always returns the quotient of the +division. To convert a rational value to integral, divide (`/') by 1. +Some operators such as `%', `<<', `>>', `~', `&', `|' and `^' operate +only on integers and will truncate any rational remainder. `**' +assumes that the exponent is integral. + + File: m4.info, Node: UNIX commands, Next: Miscellaneous, Prev: Arithmetic, Up: Top Running UNIX commands diff --git a/doc/m4.texinfo b/doc/m4.texinfo index 8baedcee..dbad16c1 100644 --- a/doc/m4.texinfo +++ b/doc/m4.texinfo @@ -128,7 +128,8 @@ the distribution). * Concept index:: Index for many concepts * Macro index:: Index for all m4 macros -@detailmenu --- The Detailed Node Listing --- +@detailmenu + --- The Detailed Node Listing --- Introduction and preliminaries @@ -214,6 +215,7 @@ Macros for doing arithmetic * Incr:: Decrement and increment operators * Eval:: Evaluating integer or rational expressions +* Mpeval:: Running UNIX commands @@ -372,6 +374,10 @@ the current working directory. @xref{Search Path} for more details. Makes this invocation of @code{m4} interactive. This means that all output will be unbuffered, and interrupts will be ignored. +@item -c +@itemx --discard-comments +Discard all comments instead of copying them to the output. + @item -s @itemx --synclines Generate synchronisation lines, for use by the C preprocessor or other @@ -490,6 +496,10 @@ Once execution is finished, write out the frozen state on the specified Before execution starts, recover the internal state from the specified frozen @var{file} (@pxref{Frozen files}). +@item --import-environment +Imports every variable in the environment as a macro. This is done +before @code{-D} and @code{-U}, so these can change the macros. + @end table @cindex command line, file names on the @@ -2508,7 +2518,7 @@ does not. @example include(`no-such-file') @result{} -@error{}in:1: m4: Cannot open no-such-file: No such file or directory +@error{}m4: in: 1: Cannot open no-such-file: No such file or directory sinclude(`no-such-file') @result{} @end example @@ -3134,6 +3144,7 @@ decrement operations. @menu * Incr:: Decrement and increment operators * Eval:: Evaluating integer or rational expressions +* Mpeval:: @end menu @node Incr, Eval, Arithmetic, Arithmetic @@ -3166,7 +3177,7 @@ decr(7) The builtin macros @code{incr} and @code{decr} are recognized only when given arguments. -@node Eval, , Incr, Arithmetic +@node Eval, Mpeval, Incr, Arithmetic @section Evaluating integer or rational expressions @cindex integer expression evaluation @@ -3232,17 +3243,8 @@ then the digits making the number. For any radix, the digits are @samp{a}, @samp{b} @dots{} up to @samp{z}. Lower and upper case letters can be used interchangeably in numbers prefixes and as number digits. -Calculations are done in 32 bit, but @code{m4} will use wider integers -if available. - -When compiled with a multiple precision arithmetic library -(@pxref{Experiments}), numbers may be of any length. The @code{:} -operator rationally divides two numbers and canonicalizes the result. -The @code{/} operator always returns the quotient of the division. To -convert a rational value to integral, divide (@code{/}) by 1. Some -operators such as @code{%}, @code{<<}, @code{>>}, @code{~}, @code{&}, -@code{|} and @code{^} operate only on integers and will truncate any -rational remainder. @code{**} assumes that the exponent is integral. +Calculations are done in at lease 32 bit, but @code{m4} will use wider +integers if available. Parentheses may be used to group subexpressions whenever needed. For the relational operators, a true relation returns @code{1}, and a false @@ -3264,7 +3266,7 @@ square(square(5)+1) define(`foo', `666') @result{} eval(`foo'/6) -@error{}in:7: m4: Bad expression in eval: foo/6 +@error{}m4: in: 7: Bad expression in eval: foo/6 @result{} eval(foo/6) @result{}111 @@ -3298,6 +3300,25 @@ Take note that @var{radix} cannot be larger than 36. The builtin macro @code{eval} is recognized only when given arguments. +@node Mpeval, , Eval, Arithmetic +@comment node-name, next, previous, up +@section Multiple precision arithmetic + +When @code{m4} is compiled with a multiple precision arithmetic library +(@pxref{Experiments}), a builtin @code{mpeval} is defined. + +It is almost identical to @code{eval}, except the calculations are done +with infinite precision. Numbers may be of any length. + +The @code{:} operator rationally divides two numbers and canonicalizes +the result. The @code{/} operator always returns the quotient of the +division. To convert a rational value to integral, divide (@code{/}) by +1. Some operators such as @code{%}, @code{<<}, @code{>>}, @code{~}, +@code{&}, @code{|} and @code{^} operate only on integers and will +truncate any rational remainder. @code{**} assumes that the exponent is +integral. + + @node UNIX commands, Miscellaneous, Arithmetic, Top @chapter Running UNIX commands diff --git a/doc/stamp-vti b/doc/stamp-vti index 146275f3..f7aa287b 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,3 +1,3 @@ -@set UPDATED 18 November 1998 -@set EDITION 1.4m -@set VERSION 1.4m +@set UPDATED 29 November 1998 +@set EDITION 1.4n +@set VERSION 1.4n diff --git a/doc/version.texi b/doc/version.texi index 146275f3..f7aa287b 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 18 November 1998 -@set EDITION 1.4m -@set VERSION 1.4m +@set UPDATED 29 November 1998 +@set EDITION 1.4n +@set VERSION 1.4n diff --git a/examples/Makefile.in b/examples/Makefile.in index e14bdb96..5bdf08a8 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ diff --git a/examples/WWW/Makefile b/examples/WWW/Makefile index f143493e..f47a40e9 100644 --- a/examples/WWW/Makefile +++ b/examples/WWW/Makefile @@ -16,3 +16,13 @@ all: *.htm fi *.htm: m4lib/*.m4 + +changelog.htm: m4/ChangeLog +readme.htm: m4/README +todo.htm: m4/TODO +news.htm: m4/NEWS +modules.htm: m4/modules/README + +.PHONY: man +man: + cd man; $(MAKE) diff --git a/examples/WWW/bugs.htm b/examples/WWW/bugs.htm new file mode 100644 index 00000000..207fcc31 --- /dev/null +++ b/examples/WWW/bugs.htm @@ -0,0 +1,284 @@ +<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> +<HTML> +<HEAD> +<TITLE>GNU m4 - Known bugs in GNU m4 \__m4_version__</TITLE> +<META NAME="AUTHOR" CONTENT="René Seindal"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> +</HEAD> + <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> +<TABLE cellpadding=5 width="100%"> +<TR align=left valign=bottom> +<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900"> + +<H1>GNU m4</H1> + +<H2>Known bugs in GNU m4 1.4n</H2> + +</TD> + +</TR> + <TR > +<TD align=left valign=top width="15%" bgcolor="#FF9900"> + + + + + + + + + + + +<TABLE align=left valign=top columns=1> +<TR> +<TD bgcolor="#CC6600"> +<P> +<B>Generel info</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> +</P> +</FONT> + +</TD> + +</TR> + <TR> +<TD height=5> + +</TD> + +</TR> + <TR> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="man/m4_toc.html">Manual</A></B> +</P> +</FONT> + +</TD> + +</TR> + <TR> +<TD height=5> + +</TD> + +</TR> + <TR> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> +</P> +</FONT> + +</TD> + +</TR> + <TR> +<TD height=5> + +</TD> + +</TR> + <TR> +<TD bgcolor="#CC6600"> +<P> +<B>The Future</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> +</P> +</FONT> + +</TD> + +</TR> + <TR> +<TD height=5> + +</TD> + +</TR> + <TR> +<TD bgcolor="#CC6600"> +<P> +<B>Development</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> +</P> +</FONT> + +</TD> + +</TR> + <TR> +<TD height=5> + +</TD> + +</TR> + <TR> +<TD bgcolor="#CC6600"> +<P> +<B>Examples</B> +</P> + +</TD> + +</TR> + <TR> +<TD> + +<FONT size=-1><P> +<B><A HREF="thissite.htm">This site</A></B> +</P> +</FONT> + +</TD> + +</TR> + +</TABLE> + + + + + + + + +</TD> + <TD align=left valign=top width="90%"> + + +<H2>Known bugs in GNU m4</H2> + + + + + + +<UL> + + +<LI> <A HREF="#undivert">undivert(0) might read from standard output.</A> + + + + +<LI> <A HREF="#sigaltstack">failure if sigaltstack or sigstack returns ENOSYS.</A> + + + + + +</UL> + + +<P> +See also the <A HREF="todo.htm">TODO</A> file. +</P> + + + +<HR align=center width=50%><A NAME="undivert"> +<H2>undivert(0) might read from standard output</H2> +</A><P> +If calling <TT>undivert(0)</TT> when diverting to a non-zero diversion +will cause m4 to read from standard output in an attempt to bring back +diversion 0, which is not possible. +</P> + + +<P> +Fixed in version 1.4n +</P> + + + +<HR align=center width=50%><A NAME="sigaltstack"> +<H2>failure if sigaltstack or sigstack returns ENOSYS</H2> +</A><P> +If stack overflow detection is configured but the system doesn't +support sigaltstack(2) or sigstack(2), m4 fails when the system call +returns ENOSYS. It should silently revert to default behaviour. +</P> + + +<P> +A <A +HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: failure if sigaltstack or sigstack returns ENOSYS" +>volunteer</A> is badly needed for this, as I have no way of testing +this myself. +</P> + + + + +</TD> + +</TR> + +</TABLE> + +</BODY> + + +</HTML> + + diff --git a/examples/WWW/changelog.htm b/examples/WWW/changelog.htm index 56713edc..83522fb4 100644 --- a/examples/WWW/changelog.htm +++ b/examples/WWW/changelog.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - ChangeLog</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,12 +198,133 @@ + + + </TD> <TD align=left valign=top width="90%"> -<PRE>1998-11-18 Rene' Seindal <rene@seindal.dk> +<PRE>1998-11-29 Rene' Seindal <rene@seindal.dk> + + * tests/Makefile.am (OTHER_TESTS, OTHER_FILES): New tests. + + * tests/other-tests/import-environment.{m4,test}: New test. + + * tests/other-tests/discard-comments.{m4,test}: New test. + + * doc/m4.texinfo (Invoking m4): Updated for --discard-comments. + + * src/m4.c (main): New option -c --discard-comments. + New global variable discard_comments. + + * src/m4.h (token_type): New TOKEN_NONE for tokens to be + discarded, ie never returned from next_token(). + Added declaration of discard_comments. + + * src/input.c (next_token): Now loops until token type is not + TOKEN_NONE. Comments are now given this type when comments should + be discarded. + + * doc/m4.texinfo (Invoking m4): Updated for --import-environment + and mpeval. + +1998-11-28 Rene' Seindal <rene@seindal.dk> + + * src/m4.c (main): New option --import-environment (no single + letter option). + + * When configured with --with-gmp both the normal (fast) eval() + and the gmp aware mpeval() are defined. To restore previous + bahaviour use "define(`eval', defn(`mpeval'))". + + * tests/other-tests/gmp.m4: Changed to use mpeval(). + + * src/evalmp.c: New file for compiling eval.c as gmp aware. + Just defines USE_GMP if WITH_GMP is defined and includes eval.c. + + * src/eval.c: Now includes "numb.c" directly. Everything in this + file must by static, except evaluate(), which is changed to + mp_evaluate() if USE_GMP in force. + + * src/numb.c: Changed to be included by eval.c instead of being + compiled separately. Everything is declared static. + + * src/numb.h: Removed declarations of functions, as numb.c is now + included by eval.c. + + * src/builtin.c: Declaration of m4_mpeval() added. + Inserted `mpeval' in builtin table. + (do_eval): New function with common code for m4_eval and m4_mpeval. + (m4_mpeval): New function for gmp version of eval. + + * src/m4.h: Declaration of mp_evaluate(). + + * src/Makefile.am (m4_SOUCES): Includes mpeval.c. + (EXTRA_m4_SOURCES): Now has numb.c and numb.h + + * src/m4.c (main): m4 --version also shows which options were used + for compilation, such as: "GNU m4 1.4n (options: modules gmp)" + +1998-11-27 Rene' Seindal <rene@seindal.dk> + + * Error messages now always print program name before input file + name as specified by GNU coding standards. Reported by Akim + Demaille <demaille@inf.enst.fr>. + + * doc/m4.texinfo (Include): Change due to changed error message + format. + (Eval): Do. + + * tests/get-them: Minor change to sed script due to changed error + message format. + + * src/m4.c (print_program_name): New func used to print program + name, input file and line number in error (). Used as an + error_print_progname handler. + (reference_error): Removed. + (main): Assigns error_print_progname. + + * src/m4.h (M4ERROR): Removed reference_error (). + +1998-11-25 Rene' Seindal <rene@seindal.dk> + + * Updated to libtool 1.2b. + + * src/builtin.c (install_builtin_table): Added braces to avoid + warning of ambiguous 'else'. + + * src/module.c: Inserted search path code from path.c modified to + use new interface. + (module_init): Configured default path used only if M4MODPATH is + not set. + (module_try_load): Now reads libMODULE.la as generated by libtool + for actual module name. + (module_load): Gives better error messages on failure. + + * src/m4.h: Added declarations of structures and functions for + generic search path handling. + + * src/path.c: Removed all module specific code and introduced new + functions of more generic search path handling. + +1998-11-24 Rene' Seindal <rene@seindal.dk> + + * configure.in: Defines INTLINCL to -I$(top_srcdir)/intl if using + included gettext, as <libintl.h> might not be found + otherwise. Reported by Andrew Bettison <andrewb@zip.com.au>. + +1998-11-22 Rene' Seindal <rene@seindal.dk> + + * src/output.c (insert_diversion): Fixed bug that might cause m4 + to read from standard output! Triggered by input + 'divert(1)undivert(0)'. Test for divnum>0 changed to divnum>=0, + so now 'undivert(0)' does nothing. + +1998-11-18 Rene' Seindal <rene@seindal.dk> + + * Prerelease 1.4m. * src/input.c (set_word_regexp): Fixed a bug, where word_regexp could be changed when compiling a illegal regexp, causing later diff --git a/examples/WWW/download.htm b/examples/WWW/download.htm index 9b714f32..04a8108f 100644 --- a/examples/WWW/download.htm +++ b/examples/WWW/download.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Download</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/WWW/features.htm b/examples/WWW/features.htm index ce8f1895..8281aca9 100644 --- a/examples/WWW/features.htm +++ b/examples/WWW/features.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - New feaures since version 1.4</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/WWW/feedback.htm b/examples/WWW/feedback.htm index f6a991d1..09fab86d 100644 --- a/examples/WWW/feedback.htm +++ b/examples/WWW/feedback.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Feedback</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/WWW/index.htm b/examples/WWW/index.htm index 8e739aef..7a1568e4 100644 --- a/examples/WWW/index.htm +++ b/examples/WWW/index.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Development site</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,12 +198,15 @@ + + + </TD> <TD align=left valign=top width="90%"> -<H2>Current development version is 1.4l.</H2> +<H2>Current development version is 1.4n.</H2> <P> diff --git a/examples/WWW/lists.htm b/examples/WWW/lists.htm index afa2b9be..1b6f4550 100644 --- a/examples/WWW/lists.htm +++ b/examples/WWW/lists.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Mailing lists</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/WWW/m4lib/bugs.m4 b/examples/WWW/m4lib/bugs.m4 new file mode 100644 index 00000000..f3204317 --- /dev/null +++ b/examples/WWW/m4lib/bugs.m4 @@ -0,0 +1,52 @@ +include(`setup.m4') + +\set_author([René Seindal]) +\set_title([Known bugs in GNU m4 \__m4_version__]) + +\divert(1) +\h2([Known bugs in GNU m4]) + +\define([fixed], [\p([Fixed in version 1.4$1])]) + +\define([notme], [\p([A <A +HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: \defn([_item])" +>volunteer</A> is badly needed for this, as I have no way of testing +this myself.])]) + +\ul([ + +\item([undivert], [undivert(0) might read from standard output], + +[\p([If calling \tt(undivert(0)) when diverting to a non-zero diversion +will cause m4 to read from standard output in an attempt to bring back +diversion 0, which is not possible.]) + +\fixed(n) + +]) + +\item([sigaltstack], [failure if sigaltstack or sigstack returns ENOSYS], + +[\p([If stack overflow detection is configured but the system doesn't +support sigaltstack(2) or sigstack(2), m4 fails when the system call +returns ENOSYS. It should silently revert to default behaviour.]) + +\notme +]) + +]) + +\p([See also the \link(todo.htm, TODO) file.]) + +\print_items + +\divert(0)\dnl +\DO_LAYOUT([\undivert(1)]) +\divert(-1) + + +\item([], [], + +[\p([]) + +]) diff --git a/examples/WWW/m4lib/html.m4 b/examples/WWW/m4lib/html.m4 index 50330af2..1a5eb1d5 100644 --- a/examples/WWW/m4lib/html.m4 +++ b/examples/WWW/m4lib/html.m4 @@ -68,8 +68,8 @@ \define([td], [\large_container([$0], $@)]) \define([th], [\large_container([$0], $@)]) -\define([link], [<A HREF="$1">\shift($@)</A>]) -\define([target], [<A NAME="$1">\shift($@)</A>]) +\define([link], [<A HREF="$1">\shift($*)</A>]) +\define([target], [<A NAME="$1">\shift($*)</A>]) \define([font], [\n\container([$0], $@)\n]) @@ -82,12 +82,15 @@ \define([p], [\large_simple_container([$0], $@)]) +\define([hr], [\simple_tag([$0], $@)]) \define([ul], [\large_container([$0], $@)]) \define([ol], [\large_container([$0], $@)]) \define([li], [\simple_tag([$0], $@)]) +\define([blockquote], [\large_simple_container([$0], $@)]) + \define([dl], [\large_simple_container([$0], $@)]) \define([dt], [\simple_container([$0], $@)]) \define([dd], [\large_simple_container([$0], $@)]) diff --git a/examples/WWW/m4lib/layout.m4 b/examples/WWW/m4lib/layout.m4 index 6feb08ec..7d285614 100644 --- a/examples/WWW/m4lib/layout.m4 +++ b/examples/WWW/m4lib/layout.m4 @@ -48,3 +48,24 @@ The semicolons are just to get GNU Emacs C mode to indent properly. \define([showlink], [\link($1, $1)]); \define([mailto], [\link(mailto:$1, $1)]); + +<!-- These macros are for having first a simple toc and later a more +thorough description of each item --> + +\define([_items], []) + +\define([register_item], [\define([H_$1], [$2]) +\define([T_$1], [$3]) +\define([_items], \defn([_items])[\print_item([$1])])]) + +\define([print_item], [ +\define([_item], \defn([H_$1]))\dnl +\hr([align=center width=50%])\dnl +\target([$1], [\h2([\indir([H_$1])])])\dnl +\indir([T_$1])\dnl +]) + +\define([print_items], [\indir([_items])]) + +\define([item], [\li \link([[#]$1], [$2.]) +\register_item([$1], [$2], [$3])]) diff --git a/examples/WWW/m4lib/menu.m4 b/examples/WWW/m4lib/menu.m4 index 1a770b63..57af4f37 100644 --- a/examples/WWW/m4lib/menu.m4 +++ b/examples/WWW/m4lib/menu.m4 @@ -1,35 +1,70 @@ + \pushdef([header], [\tr([\td([\C_BG3], [\p([\b([$1])])])])]) -\pushdef([row], [\tr([\td([\font([size=-1], [\p([\b([\link([$1], [$2])])])])])])]) + +\pushdef([separator], [\tr([\td([height=5], [])])]) + +\pushdef([_row], [\link([$1], [$2])]) + +\pushdef([_rows], + [\ifelse($#, 0, [], + $#, 1, [], + $#, 2, [\_row([$1], [$2])], + $#, 3, [\_row([$1], [$2])], + [\_row([$1], [$2])\br\n\_rows(\shift(\shift($@)))])]) + +\pushdef([rows], [\tr([\td([\font([size=-1], + \p([\b([\_rows($@)])]))])])]) \table([align=left valign=top columns=1], [\header([Generel info])], - [\row([whatis.htm], [What is m4])], - [\row([features.htm], [Features])], - [\row([uses.htm], [Uses of m4])], + [\rows( + [whatis.htm], [What is m4], + [features.htm], [Features], + [uses.htm], [Uses of m4], + )], + [\separator], [\header([Documentation])], - [\row([man/m4_toc.html], [Manual])], + [\rows( + [man/m4_toc.html], [Manual], + )], + [\separator], [\header([Source files])], - [\row([readme.htm], [README])], - [\row([todo.htm], [TODO])], - [\row([news.htm], [NEWS])], - [\row([changelog.htm], [ChangeLog])], - [\row([thanks.htm], [Contributors])], - [\row([m4/], [Browse it])], + [\rows( + [readme.htm], [README], + [todo.htm], [TODO], + [news.htm], [NEWS], + [changelog.htm], [ChangeLog], + [thanks.htm], [Contributors], + [m4/], [Browse it], + )], + [\separator], [\header([The Future])], - [\row([modules.htm], [Modules])], - [\row([visions.htm], [Visions])], + [\rows( + [modules.htm], [Modules], + [visions.htm], [Visions], + )], + [\separator], [\header([Development])], - [\row([lists.htm], [Mailing-lists])], - [\row([feedback.htm], [Feedback])], - [\row([download.htm], [Download])], + [\rows( + [lists.htm], [Mailing-lists], + [feedback.htm], [Feedback], + [download.htm], [Download], + [bugs.htm], [Known bugs], + )], + [\separator], [\header([Examples])], - [\row([thissite.htm], [This site])], + [\rows( + [thissite.htm], [This site], + )], ) \popdef([header]) -\popdef([row]) +\popdef([rows]) +\popdef([_rows]) +\popdef([_row]) +\popdef([separator]) diff --git a/examples/WWW/m4lib/test.m4 b/examples/WWW/m4lib/test.m4 index 9fdef40b..90d63a69 100644 --- a/examples/WWW/m4lib/test.m4 +++ b/examples/WWW/m4lib/test.m4 @@ -1,9 +1,30 @@ -include(`_setup.m4') -\include([_html.m4]) -\include([_layout.m4]) +include(`setup.m4') -\set_title([Development site]) +\divert(1) -\divert +\define([_ideas], []) + +\define([register_idea], +[\define([H_$1], [$2])\dnl +\define([T_$1], [$3])\dnl +\define([_ideas], [\print_idea([$1])]\defn([_ideas]))]) + +\define([print_idea], [ +\target([$1], [\h2([\indir([H_$1])])]) +\indir([T_$1]) +]) + +\define([print_ideas], [\indir([_ideas])]) + +\define([idea], [\li \p([\link([[#]$1], [$2.])])\register_idea([$1], [$2], [$3])]) + +\idea([guile], [Guile as an extension language], [gfhjdsfsarhgew]) +\idea([pquote], [Persistent quotes],[asdffhfdghgdsfh]) +\idea([deps], [Dependencies generation],[afsdffasdf]) + +\print_ideas + +\undivert(1) + +\defn([_ideas]) -\DO_BODY([BODY]) diff --git a/examples/WWW/m4lib/thissite.m4 b/examples/WWW/m4lib/thissite.m4 index 0d4d772b..a8a18df3 100644 --- a/examples/WWW/m4lib/thissite.m4 +++ b/examples/WWW/m4lib/thissite.m4 @@ -5,34 +5,37 @@ include(`setup.m4') \divert(1) -\p(This GNU m4 site is maintained by René Seindal, -(\mailto(rene@seindal)).) +\p([This GNU m4 site is maintained by René Seindal, +(\mailto(rene@seindal)).]) -\p(All files are generated using GNU m4 \__m4_version__. You can view +\p([All files are generated using GNU m4 \__m4_version__. You can view the \link(m4lib/, source files). They are very simple. They use some -features from Gnu m4 1.4l) +features from Gnu m4 1.4l]) -\p(The basic M4 definitions of quotes, comments, escapes are in +\p([The basic M4 definitions of quotes, comments, escapes are in \showlink(m4lib/setup.m4). This is first included by all files to configure the enviroment correctly for the other files. To avoid have macros called by accident, an escape character is defined with -changesyntax. \i(This is a new feature in m4 1.4l).) +changesyntax. \i(This is a new feature in m4 1.4l).]) -\p(Some fairly general macros to generate various HTML construct are +\p([Some fairly general macros to generate various HTML construct are found in \showlink(m4lib/html.m4). There are macros for simple tags, -containers with and with attributes, links and a few utility macros.) +containers with and with attributes, links and a few utility macros.]) -\p(The visual aspects of the pages are in \showlink(m4lib/layout.m4). +\p([The visual aspects of the pages are in \showlink(m4lib/layout.m4). The macros herein generate the complete HTML structure for the pages. -There are macros for making the header and the body of the document.) +There are macros for making the header and the body of the document.]) -\p(The page body is passed to the layout definitions as an argument. As +\p([The definition of the left hand menu is in \showlink(m4lib/menu.m4). +I convinced GNU Emacs to do the indentation by switching to c-mode.]) + +\p([The page body is passed to the layout definitions as an argument. As the text can be large, it is first diverted and the text passed to the layout macros is simply a call to undivert. That way a very large text can be passed around with very little cost. This page is made with -\link(m4lib/thissite.m4, these definitions).) +\link(m4lib/thissite.m4, these definitions).]) -\p(There is a single file for each HTML file.) +\p([There is a single file for each HTML file.]) \divert(0)\dnl \DO_LAYOUT([\undivert(1)]) diff --git a/examples/WWW/m4lib/visions.m4 b/examples/WWW/m4lib/visions.m4 index c904976d..c644f50a 100644 --- a/examples/WWW/m4lib/visions.m4 +++ b/examples/WWW/m4lib/visions.m4 @@ -3,26 +3,227 @@ include(`setup.m4') \set_author([René Seindal]) \set_title([The Road Ahead]) +\define([originator], +[\p([Idea contributed by [$1]]\ifelse($#, 2, [ (\mailto([$2]))])[.])]) + +\define([noone], [\p([There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: \defn([_item])" >volunteer</A>?])]) + + +\define([done], [\p([Done in version 1.4$1])]) + + \divert(1) -\h2([Possible features for future versions]) +\h2([Ideas for future versions of GNU m4]) + +\p([Here are some ideas and suggestion for the future of GNU m4, large +and small. The order here is fairly random.]) + +\ul([ + +\item([guile], [Guile as an extension language], + +[\p([\link([http://www.red-bean.com/guile/], [Guile]) can be used as an +extension language so complicated macros can be written in Scheme while +still maintaining the m4 interface. It will require some changes to the +base code, as guile cannot be used from a module.]) + +\noone <!-- \originator([René Seindal], [rene@seindal]) --> +]) + + +\item([utf8], [UTF-8 or wide characters], + +[\p([GNU m4 should be able to handle UTF-8 input or wide characters so +it can be more usable for different environments.]) + +\noone <!-- \originator([François Pinard]) --> +]) + + +\item([pquote], [Syntax: persistent quotes], + +[\p([Persistent quotes is a way of getting text unharmed through m4's +processing. While normal quotes are stripped when a quoted string is +read, the persistent quotes are removed just before being output. This +will ensure that the quoted text is always output verbatim.]) + +\p([The bulk of the changes will be in the parser (in input.c function +next_token). Persistent quotes cannot be nested, they must balance +within a normally quoted string, but normal quotes need not balance +within persistent quotes (neither within persistent quotes within normal +quotes). The quotes should be removed before being shipped out (in +macro.c).]) + +\noone <!-- \originator([Keith Bostic]) --> +]) + + + + +\item([comment2], [Syntax: removable comments], + +[\p([With the syntax table a category for discardable comments can be +defined, causing that type of comments to be discarded.]) + +\noone +]) + + + + +\item([comment1], [Option: remove comments], + +[\p([There should be an option (--discard-comments) to get m4 to discard +comments instead of passing them to the output.]) + +\done(n) +]) + + + +\item([deps], [Option: show dependencies], + +[\p([There should be an options to generate makefile dependencies for an +M4 input file.]) + +\p([It is not enough to scan the files for includes, as file names can +be generated and builtins renamed. To make it work, m4 will have to do +a complete run of the input file, discard the output and print the +dependencies instead.]) + +\p([It cannot be made to work in all cases when input file names are +generated on the fly.]) + +\noone <!-- \originator([Erick Branderhorst]) --> +]) + + +\item([safer], [Option: render GNU m4 safer], + +[\p([There should be a --safer option that disables all functions, that +could compromise system security if used by root. It will have to +include various functions, such as file inclusion, sub shells, module +loading, ...]) + +\noone <!-- \originator([Santiago Vila]) --> +]) + -\ul( +\item([import], [Option: import environment], -\li \p(Guile can be used as an extension language so complicated macros can be -written in Scheme while still maintaining the m4 interface.) +[\p([An option to defined each environment variable as a macro on +startup would be useful in many cases.]) -\li\p(A kind of super-quotes can be added, quotes that aren't stripped -when read, as are normal quotes. These quotes should be stripped when -output. In that way text can be super-quote and consequently passed -untouched to the output. It is a bit like comments, but there the -quotes are removed before output.) +\done(n) <!-- \originator([René Seindal]) --> +]) -) -\p(See also the \link(todo.htm, TODO) file.) + +\item([m4expand], [Builtin: quote expanded text], + +[\p([A builtin to quote expanded text would be useful. Now it is not +possible to quote the expansion of a macro; the macro itself has to +provide the quotes. Some builtins return quoted strings, others +don't.]) + +\p([A possible solution is a build in macro that takes one argument. It +expands this argument fully and returns the quoted expansion.]) + +\p([It will require changes to input handling and macro expansion code.]) + +\noone <!-- \originator([Axel Boldt]) --> +]) + + + +\item([perl], [Module: embedded perl], + +[\p([Perl could be embedded in m4, giving users a powerful programming +language for writing macros. A single builtin "perleval" could do the +job. First argument could be a perl function and the rest arguments. +The return value of the function as a string would be the expansion.]) + +\p([The perl interpreter should be set up when the module is loaded and +closed down before m4 exits, using the appropriate hooks in the module +interface.]) + +\p([A perl module could potentially give users access to any facility +perl has access to, such as databases.]) + +\p([On systems with perl compiled as a shared library the size penalty +would be minimal.]) + +\p([(It might not be workable as a module, as it will need to link with non-shared libraries. Don't know how it can be fixed. (RS))]) + +\noone <!-- \originator([René Seindal]) --> +]) + + + +\item([output], [Module: better output control], + +[\p([It has been suggested a couple of times that it should be possible +to divert to named files, in order to create several output files.]) + +\p([I think this a bit a misunderstanding. Diversion are inteded to be +brought back later, ie, they are temporary and recoverable. Output +text, on the other hand, once output it is lost (for m4). Therefore +better output control should be made in a different way.]) + +\p([My suggestion is a set of builtins defined by a module:]) + +\pre([setoutput(file) +appendoutput(file) +pipeoutput(command)]) + +\p([With these output can be directed better, diversion can be sent to +different files, and groups of files can be built by a single m4 run. +Calling \tt(setoutput) without arguments should resume output to +standard output.]) + +\p([(Admittedly, diversion 0 (standard output) has always been +different, as it cannot be undiverted.)]) + +\noone <!-- \originator([René Seindal]) --> +]) + + + +\item([require], [Module: require/provide functionality], + +[\p([Two new builtins \tt(require) and \tt(provide) could provide a +handy interface to include. It has proven difficult to write these +robustly as normal macros. As an example, the files \tt(test.m4) and +\tt(../test.m4) could be the same file or different files depending on +the search path.]) + +\noone <!-- \originator([Terry Jones]) --> +]) + + +]) + + + +\p([See also the \link(todo.htm, TODO) file.]) + +\print_items + \divert(0)\dnl \DO_LAYOUT([\undivert(1)]) \divert(-1) + + + + + +\item([], [], + +[\p([]) + +\noone +]) diff --git a/examples/WWW/modules.htm b/examples/WWW/modules.htm index ee668972..49a31777 100644 --- a/examples/WWW/modules.htm +++ b/examples/WWW/modules.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Modules</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> @@ -269,7 +211,8 @@ Nothing in this directory is built by default. Dynamic modules is a experimental feature of GNU m4. Currently it has -only been certified to work under Linux 2.0. +only been certified to work under GNU/Linux 2.0, OSF1, HPUX 9 & 10, +SunOS 5 and Solaris 5. Dynamic modules are only available if GNU m4 was configured with --with-modules and if the dlopen(3) interface is available in the @@ -282,7 +225,7 @@ 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. -Modules are searched for in M4MODPATH, if set, and in a module directory +Modules are searched for in M4MODPATH, if set, else in a module directory defined at configure time, default /usr/local/libexec/m4. A module extends GNU m4 by defining new builtins, It can define builtins @@ -291,7 +234,8 @@ 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. +wanting. It is necessary having the GNU m4 sources available to compile +modules. Each module should include the two header files ../src/m4.h and ../src/builtin.h. These will include <ctype.h>, <stdio.h>, @@ -323,11 +267,11 @@ 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. +interesting example is in time.c or in stdlib.c To try the demos, compile with `make' and run them with the commands as: - M4MODPATH=`pwd` ../src/m4 time.m4 + M4MODPATH=`pwd`/.libs ../src/m4 time.m4 </PRE> diff --git a/examples/WWW/news.htm b/examples/WWW/news.htm index ed4f374f..6ea55867 100644 --- a/examples/WWW/news.htm +++ b/examples/WWW/news.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - NEWS - History of user-visible changes</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> - -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,7 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -212,23 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> @@ -267,6 +209,32 @@ <PRE>GNU m4 NEWS - History of user-visible changes. -*-indented-text-*- Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc. +Version beta 1.4n - November 1998, by Rene' Seindal + +* The module code has been reorganised yet again, and now compiles + correctly on GNU/Linux, HPUX 9 and 10, SunOS 5 and Solaris 5. + +* When configured --with-gmp a new builtin `mpeval' is now defined. The + builtin `eval' retains its normal behaviour. + +* m4 --version also shows which options were used for compilation, such as: + "GNU m4 1.4n (options: modules gmp changeword)" + +* New option --import-environment defines all environment variables as + macros. This is done before -D and -U are handled, so the macros can be + changed through these options. + +* Error messages now always print program name before input file name as + specified by GNU coding standards. Reported by Akim Demaille + <demaille@inf.enst.fr>. + +* Bug fixed: "undivert(0)" could cause m4 to read standard output. A call + of "undivert(0)" is now silently ignored. + +* Bug fixed: when compiling --with-included-gettext, <libintl.h> wasn't + found in intl/ directory. Reported by Andrew Bettison + <andrewb@zip.com.au>. + Version beta 1.4m - November 1998, by Rene' Seindal * Using libtool for compiling modules and for linking main app. diff --git a/examples/WWW/readme.htm b/examples/WWW/readme.htm index 09d483e7..57c30261 100644 --- a/examples/WWW/readme.htm +++ b/examples/WWW/readme.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - README</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/WWW/thanks.htm b/examples/WWW/thanks.htm index 78470a16..26e43c30 100644 --- a/examples/WWW/thanks.htm +++ b/examples/WWW/thanks.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - People who have contributed to m4</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> @@ -274,6 +216,7 @@ these people. Help me keep it complete and exempt of errors. Akiko Matsushita matusita@sra.co.jp +Akim Demaille demaille@inf.enst.fr Alan Magnuson awm@osc.edu Alexander Lehmann alex@hal.rhein-main.de Amos Shapira amoss@cs.huji.ac.il diff --git a/examples/WWW/thissite.htm b/examples/WWW/thissite.htm index 03e2a01a..640891e5 100644 --- a/examples/WWW/thissite.htm +++ b/examples/WWW/thissite.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - This site</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,7 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -212,23 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,35 +198,40 @@ + + + </TD> <TD align=left valign=top width="90%"> <P> -This GNU m4 site is maintained by René Seindal (<A HREF="mailto:rene@seindal">rene@seindal</A>). +This GNU m4 site is maintained by René Seindal, +(<A HREF="mailto:rene@seindal">rene@seindal</A>). </P> <P> -All files are generated using GNU m4 1.4l. You can view +All files are generated using GNU m4 1.4n. You can view the <A HREF="m4lib/">source files</A>. They are very simple. They use some features from Gnu m4 1.4l </P> <P> -The basic M4 definitions of quotes comments escapes are in +The basic M4 definitions of quotes, comments, escapes are in <A HREF="m4lib/setup.m4">m4lib/setup.m4</A>. This is first included by all files to configure the enviroment correctly for the other files. To avoid have -macros called by accident an escape character is defined with +macros called by accident, an escape character is defined with changesyntax. <I>This is a new feature in m4 1.4l</I>. </P> <P> Some fairly general macros to generate various HTML construct are -found in <A HREF="m4lib/html.m4">m4lib/html.m4</A>. There are macros for simple tags containers with and with attributes links and a few utility macros. +found in <A HREF="m4lib/html.m4">m4lib/html.m4</A>. There are macros for simple tags, +containers with and with attributes, links and a few utility macros. </P> @@ -299,8 +243,14 @@ There are macros for making the header and the body of the document. <P> +The definition of the left hand menu is in <A HREF="m4lib/menu.m4">m4lib/menu.m4</A>. +I convinced GNU Emacs to do the indentation by switching to c-mode. +</P> + + +<P> The page body is passed to the layout definitions as an argument. As -the text can be large it is first diverted and the text passed to the +the text can be large, it is first diverted and the text passed to the layout macros is simply a call to undivert. That way a very large text can be passed around with very little cost. This page is made with <A HREF="m4lib/thissite.m4">these definitions</A>. diff --git a/examples/WWW/todo.htm b/examples/WWW/todo.htm index 9c5100f1..f11e47bf 100644 --- a/examples/WWW/todo.htm +++ b/examples/WWW/todo.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - TODO - Things still to be done</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> - -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,7 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -212,23 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> @@ -270,7 +212,36 @@ 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 +* KNOWN BUGS + + + Changes in the syntax_table are not saved to frozen files. + + + Information about loaded modules is not saved to frozen files. + + + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B). + + + The test case `other-tests/stackovf.test' does not work. + + + sigstack/sigaltstack and ENOSYS + + When sigstack or sigaltstack fail with errno == ENOSYS, m4 should + fall back silently to not using an alternate signal stack. + Otherwise, problems arise in at least the following case: glibc + 2.1 test releases, built with Linux 2.1 headers (as recommended + for glibc 2.1), so the library has sigstack and sigaltstack, but + run with a Linux 2.0 kernel, so the kernel support is not present + and ENOSYS is returned. + + (GNU m4 1.4k, built with glibc 2.0.100 (itself built with Linux + 2.1.126 headers), and running on Linux 2.0.36pre15.) + + -- + Joseph S. Myers + jsm28@cam.ac.uk + + + +* FEATURES OR PROBLEMS + GMP eval() should be enables if the library is present, maybe by providing two different versions of eval(). That way users can @@ -283,20 +254,12 @@ for any of these ideas or if you have others to add. + The module system is still rudimentary (see below) - + Changes in the syntax_table are not saved to frozen files. - - + Information about loaded modules is not saved to frozen files. - - + 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. + Make show include dependencies like gcc so targets are updated when their (included) input files are updated (Erick B). - + The test case `other-tests/stackovf.test' does not work. - + Sort out all the weird forms of interaction between changesyntax, changecom and changequote. What happens if you install a quote with changequote and removes it with changesyntax and vice versa. @@ -304,7 +267,8 @@ for any of these ideas or if you have others to add. + Add support for wide character sets. -* Optimization and clean up + +* OPTIMIZATION AND CLEAN UP + Have NULs go really undisturbed through GNU m4 GNU m4 is lousy regarding NULs in streams (this would require @@ -312,10 +276,10 @@ for any of these ideas or if you have others to add. etc.). -* Module specific issues + +* MODULE SPECIFIC ISSUES - + Support for other DL interfaces besides dlopen, such as dld and - hpux is still missing. + + Support for other DL interfaces besides dlopen and shl_load. + Modules should be loadable from the command line with something like `-M module.so' o `--load-module=module.so'. M4 should abort if it diff --git a/examples/WWW/uses.htm b/examples/WWW/uses.htm index 9988dacf..403de4d0 100644 --- a/examples/WWW/uses.htm +++ b/examples/WWW/uses.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - Current uses of m4</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> @@ -302,7 +244,7 @@ The macros are used to maintain a large commercial site at <P> -<A HREF="thissite.htm">These files are created with GNU m4 1.4l</A>. +<A HREF="thissite.htm">These files are created with GNU m4 1.4n</A>. </P> diff --git a/examples/WWW/visions.htm b/examples/WWW/visions.htm index eceec6f7..fadad4a8 100644 --- a/examples/WWW/visions.htm +++ b/examples/WWW/visions.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - The Road Ahead</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,6 +22,14 @@ + + + + + + + + <TABLE align=left valign=top columns=1> <TR> <TD bgcolor="#CC6600"> @@ -36,18 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -55,12 +54,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -86,21 +80,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -109,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -117,23 +111,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>The Future</B> </P> -</FONT> </TD> @@ -142,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -150,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -163,7 +146,7 @@ <TR> <TD bgcolor="#CC6600"> <P> -<B>The Future</B> +<B>Development</B> </P> </TD> @@ -173,7 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -181,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -194,7 +175,7 @@ <TR> <TD bgcolor="#CC6600"> <P> -<B>Development</B> +<B>Examples</B> </P> </TD> @@ -204,95 +185,404 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> +<B><A HREF="thissite.htm">This site</A></B> </P> </FONT> </TD> </TR> - <TR> -<TD> + +</TABLE> + + + -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> -</P> -</FONT> + + + </TD> + <TD align=left valign=top width="90%"> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> +<H2>Ideas for future versions of GNU m4</H2> + + +<P> +Here are some ideas and suggestion for the future of GNU m4, large +and small. The order here is fairly random. </P> -</FONT> -</TD> -</TR> - <TR> -<TD bgcolor="#CC6600"> +<UL> + + +<LI> <A HREF="#guile">Guile as an extension language.</A> + + + + + +<LI> <A HREF="#utf8">UTF-8 or wide characters.</A> + + + + + +<LI> <A HREF="#pquote">Syntax: persistent quotes.</A> + + + + + + + +<LI> <A HREF="#comment2">Syntax: removable comments.</A> + + + + + + + +<LI> <A HREF="#comment1">Option: remove comments.</A> + + + + + + +<LI> <A HREF="#deps">Option: show dependencies.</A> + + + + + +<LI> <A HREF="#safer">Option: render GNU m4 safer.</A> + + + + + + +<LI> <A HREF="#import">Option: import environment.</A> + + + + + + +<LI> <A HREF="#m4expand">Builtin: quote expanded text.</A> + + + + + + +<LI> <A HREF="#perl">Module: embedded perl.</A> + + + + + + +<LI> <A HREF="#output">Module: better output control.</A> + + + + + + +<LI> <A HREF="#require">Module: require/provide functionality.</A> + + + + + + +</UL> + + + + <P> -<B>Examples</B> +See also the <A HREF="todo.htm">TODO</A> file. </P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="thissite.htm">This site</A></B> +<HR align=center width=50%><A NAME="guile"> +<H2>Guile as an extension language</H2> +</A><P> +<A HREF="http://www.red-bean.com/guile/">Guile</A> can be used as an +extension language so complicated macros can be written in Scheme while +still maintaining the m4 interface. It will require some changes to the +base code, as guile cannot be used from a module. </P> -</FONT> -</TD> -</TR> - -</TABLE> +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Guile as an extension language" >volunteer</A>? +</P> + <!-- \originator([René Seindal], [rene@seindal]) --> +<HR align=center width=50%><A NAME="utf8"> +<H2>UTF-8 or wide characters</H2> +</A><P> +GNU m4 should be able to handle UTF-8 input or wide characters so +it can be more usable for different environments. +</P> +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: UTF-8 or wide characters" >volunteer</A>? +</P> + <!-- \originator([François Pinard]) --> + +<HR align=center width=50%><A NAME="pquote"> +<H2>Syntax: persistent quotes</H2> +</A><P> +Persistent quotes is a way of getting text unharmed through m4's +processing. While normal quotes are stripped when a quoted string is +read, the persistent quotes are removed just before being output. This +will ensure that the quoted text is always output verbatim. +</P> - -</TD> - <TD align=left valign=top width="90%"> +<P> +The bulk of the changes will be in the parser (in input.c function +next_token). Persistent quotes cannot be nested, they must balance +within a normally quoted string, but normal quotes need not balance +within persistent quotes (neither within persistent quotes within normal +quotes). The quotes should be removed before being shipped out (in +macro.c). +</P> -<H2>Possible features for future versions</H2> +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Syntax: persistent quotes" >volunteer</A>? +</P> + <!-- \originator([Keith Bostic]) --> +<HR align=center width=50%><A NAME="comment2"> +<H2>Syntax: removable comments</H2> +</A><P> +With the syntax table a category for discardable comments can be +defined, causing that type of comments to be discarded. +</P> -<UL> -<LI> <P> -Guile can be used as an extension language so complicated macros can be -written in Scheme while still maintaining the m4 interface. + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Syntax: removable comments" >volunteer</A>? </P> -<LI><P> -A kind of super-quotes can be added quotes that aren't stripped -when read as are normal quotes. These quotes should be stripped when -output. In that way text can be super-quote and consequently passed -untouched to the output. It is a bit like comments but there the -quotes are removed before output. +<HR align=center width=50%><A NAME="comment1"> +<H2>Option: remove comments</H2> +</A><P> +There should be an option (--discard-comments) to get m4 to discard +comments instead of passing them to the output. </P> + +<P> +Done in version 1.4n +</P> -</UL> +<HR align=center width=50%><A NAME="deps"> +<H2>Option: show dependencies</H2> +</A><P> +There should be an options to generate makefile dependencies for an +M4 input file. +</P> <P> -See also the <A HREF="todo.htm">TODO</A> file. +It is not enough to scan the files for includes, as file names can +be generated and builtins renamed. To make it work, m4 will have to do +a complete run of the input file, discard the output and print the +dependencies instead. +</P> + + +<P> +It cannot be made to work in all cases when input file names are +generated on the fly. </P> +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Option: show dependencies" >volunteer</A>? +</P> + <!-- \originator([Erick Branderhorst]) --> + +<HR align=center width=50%><A NAME="safer"> +<H2>Option: render GNU m4 safer</H2> +</A><P> +There should be a --safer option that disables all functions, that +could compromise system security if used by root. It will have to +include various functions, such as file inclusion, sub shells, module +loading, ... +</P> + + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Option: render GNU m4 safer" >volunteer</A>? +</P> + <!-- \originator([Santiago Vila]) --> + +<HR align=center width=50%><A NAME="import"> +<H2>Option: import environment</H2> +</A><P> +An option to defined each environment variable as a macro on +startup would be useful in many cases. +</P> + + +<P> +Done in version 1.4n +</P> + <!-- \originator([René Seindal]) --> + +<HR align=center width=50%><A NAME="m4expand"> +<H2>Builtin: quote expanded text</H2> +</A><P> +A builtin to quote expanded text would be useful. Now it is not +possible to quote the expansion of a macro; the macro itself has to +provide the quotes. Some builtins return quoted strings, others +don't. +</P> + + +<P> +A possible solution is a build in macro that takes one argument. It +expands this argument fully and returns the quoted expansion. +</P> + + +<P> +It will require changes to input handling and macro expansion code. +</P> + + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Builtin: quote expanded text" >volunteer</A>? +</P> + <!-- \originator([Axel Boldt]) --> + +<HR align=center width=50%><A NAME="perl"> +<H2>Module: embedded perl</H2> +</A><P> +Perl could be embedded in m4, giving users a powerful programming +language for writing macros. A single builtin "perleval" could do the +job. First argument could be a perl function and the rest arguments. +The return value of the function as a string would be the expansion. +</P> + + +<P> +The perl interpreter should be set up when the module is loaded and +closed down before m4 exits, using the appropriate hooks in the module +interface. +</P> + + +<P> +A perl module could potentially give users access to any facility +perl has access to, such as databases. +</P> + + +<P> +On systems with perl compiled as a shared library the size penalty +would be minimal. +</P> + + +<P> +(It might not be workable as a module, as it will need to link with non-shared libraries. Don't know how it can be fixed. (RS)) +</P> + + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: embedded perl" >volunteer</A>? +</P> + <!-- \originator([René Seindal]) --> + +<HR align=center width=50%><A NAME="output"> +<H2>Module: better output control</H2> +</A><P> +It has been suggested a couple of times that it should be possible +to divert to named files, in order to create several output files. +</P> + + +<P> +I think this a bit a misunderstanding. Diversion are inteded to be +brought back later, ie, they are temporary and recoverable. Output +text, on the other hand, once output it is lost (for m4). Therefore +better output control should be made in a different way. +</P> + + +<P> +My suggestion is a set of builtins defined by a module: +</P> + + +<PRE>setoutput(file) +appendoutput(file) +pipeoutput(command)</PRE> + +<P> +With these output can be directed better, diversion can be sent to +different files, and groups of files can be built by a single m4 run. +Calling <TT>setoutput</TT> without arguments should resume output to +standard output. +</P> + + +<P> +(Admittedly, diversion 0 (standard output) has always been +different, as it cannot be undiverted.) +</P> + + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: better output control" >volunteer</A>? +</P> + <!-- \originator([René Seindal]) --> + +<HR align=center width=50%><A NAME="require"> +<H2>Module: require/provide functionality</H2> +</A><P> +Two new builtins <TT>require</TT> and <TT>provide</TT> could provide a +handy interface to include. It has proven difficult to write these +robustly as normal macros. As an example, the files <TT>test.m4</TT> and +<TT>../test.m4</TT> could be the same file or different files depending on +the search path. +</P> + + +<P> +There is no-one working on this now. Do you want +to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: require/provide functionality" >volunteer</A>? +</P> + <!-- \originator([Terry Jones]) --> + + + </TD> diff --git a/examples/WWW/whatis.htm b/examples/WWW/whatis.htm index 3f793cd0..0c8386a7 100644 --- a/examples/WWW/whatis.htm +++ b/examples/WWW/whatis.htm @@ -3,7 +3,7 @@ <HEAD> <TITLE>GNU m4 - What is GNU m4</TITLE> <META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> +<META NAME="GENERATOR" CONTENT="GNU m4 1.4n"> </HEAD> <BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E"> <TABLE cellpadding=5 width="100%"> @@ -22,53 +22,19 @@ -<TABLE align=left valign=top columns=1> -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>Generel info</B> -</P> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="whatis.htm">What is m4</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> -<FONT size=-1><P> -<B><A HREF="features.htm">Features</A></B> -</P> -</FONT> -</TD> -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="uses.htm">Uses of m4</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> +<TABLE align=left valign=top columns=1> +<TR> <TD bgcolor="#CC6600"> <P> -<B>Documentation</B> +<B>Generel info</B> </P> </TD> @@ -78,7 +44,9 @@ <TD> <FONT size=-1><P> -<B><A HREF="man/m4_toc.html">Manual</A></B> +<B><A HREF="whatis.htm">What is m4</A><BR> +<A HREF="features.htm">Features</A><BR> +<A HREF="uses.htm">Uses of m4</A></B> </P> </FONT> @@ -86,21 +54,16 @@ </TR> <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Documentation</B> </P> -</FONT> </TD> @@ -109,7 +72,7 @@ <TD> <FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> +<B><A HREF="man/m4_toc.html">Manual</A></B> </P> </FONT> @@ -117,23 +80,16 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> +<TD height=5> </TD> </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> +<TD bgcolor="#CC6600"> +<P> +<B>Source files</B> </P> -</FONT> </TD> @@ -142,7 +98,12 @@ <TD> <FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> +<B><A HREF="readme.htm">README</A><BR> +<A HREF="todo.htm">TODO</A><BR> +<A HREF="news.htm">NEWS</A><BR> +<A HREF="changelog.htm">ChangeLog</A><BR> +<A HREF="thanks.htm">Contributors</A><BR> +<A HREF="m4/">Browse it</A></B> </P> </FONT> @@ -150,12 +111,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -173,7 +129,8 @@ <TD> <FONT size=-1><P> -<B><A HREF="modules.htm">Modules</A></B> +<B><A HREF="modules.htm">Modules</A><BR> +<A HREF="visions.htm">Visions</A></B> </P> </FONT> @@ -181,12 +138,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -204,18 +156,10 @@ <TD> <FONT size=-1><P> -<B><A HREF="lists.htm">Mailing-lists</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="feedback.htm">Feedback</A></B> +<B><A HREF="lists.htm">Mailing-lists</A><BR> +<A HREF="feedback.htm">Feedback</A><BR> +<A HREF="download.htm">Download</A><BR> +<A HREF="bugs.htm">Known bugs</A></B> </P> </FONT> @@ -223,12 +167,7 @@ </TR> <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="download.htm">Download</A></B> -</P> -</FONT> +<TD height=5> </TD> @@ -259,6 +198,9 @@ + + + </TD> <TD align=left valign=top width="90%"> diff --git a/examples/include.test b/examples/include.test index 5d0b1100..013311ef 100755 --- a/examples/include.test +++ b/examples/include.test @@ -19,10 +19,10 @@ very late EOF cat <<\EOF >okerr -in:2: m4: Cannot open NOFILE: No such file or directory -in:6: m4: Cannot open NOFILE: No such file or directory +m4: in: 2: Cannot open NOFILE: No such file or directory +m4: in: 6: Cannot open NOFILE: No such file or directory EOF M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/examples/misc.m4 b/examples/misc.m4 index e09f4a53..979b51aa 100644 --- a/examples/misc.m4 +++ b/examples/misc.m4 @@ -1,8 +1,8 @@ divert(-1) -define(`HOST', `localhost') +define(`USER', `root') define(`TMP', maketemp(`/tmp/hejXXXXXX')) -syscmd(`grep ' HOST ` /etc/hosts | awk "{print \$1}"' > TMP) -define(`IP', include(TMP)) +syscmd(`grep "^'USER`:" /etc/passwd | awk -F: "{print \$3}"' > TMP) +define(`UID', include(TMP)) syscmd(`rm -f' TMP) divert -IP +UID diff --git a/examples/misc.test b/examples/misc.test index 59ea58ad..62a1ebbf 100755 --- a/examples/misc.test +++ b/examples/misc.test @@ -8,10 +8,10 @@ cat ${srcdir}/misc.m4 >in cat <<\EOF >ok -127.0.0.1 +0 EOF M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok diff --git a/examples/mktests.sh b/examples/mktests.sh index 1546b568..656b4270 100644 --- a/examples/mktests.sh +++ b/examples/mktests.sh @@ -38,13 +38,13 @@ echo EOF if [ -s testSubDir/err ]; then echo echo 'cat <<\EOF >okerr' - sed -e "s, $M4:, m4:," testSubDir/err + sed -e "s,$M4: ,m4: ," testSubDir/err echo EOF fi echo echo 'M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err' -echo 'sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err' +echo 'sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err' if [ -s testSubDir/err ]; then echo '$CMP -s out ok && $CMP -s err okerr' diff --git a/examples/patsubst.test b/examples/patsubst.test index c31c4c5d..6c918230 100755 --- a/examples/patsubst.test +++ b/examples/patsubst.test @@ -18,9 +18,9 @@ GNUs not Unix EOF cat <<\EOF >okerr -in:4: m4: WARNING: \0 will disappear, use \& instead in replacements +m4: in: 4: WARNING: \0 will disappear, use \& instead in replacements EOF M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/examples/pushpop.test b/examples/pushpop.test index 038aca15..55a2b2d0 100755 --- a/examples/pushpop.test +++ b/examples/pushpop.test @@ -17,12 +17,12 @@ hej: `def 4.' hej: `def 3.' hej: `def 2.' hej: `def 1.' -in:18: m4: Undefined name hej -in:20: m4: Undefined name hej -in:23: m4: Undefined name mac2 -in:25: m4: Undefined name mac2 +m4: in: 18: Undefined name hej +m4: in: 20: Undefined name hej +m4: in: 23: Undefined name mac2 +m4: in: 25: Undefined name mac2 EOF M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/examples/regexp.test b/examples/regexp.test index 4cf21990..deea2eb2 100755 --- a/examples/regexp.test +++ b/examples/regexp.test @@ -21,7 +21,7 @@ cat <<\EOF >ok EOF cat <<\EOF >okerr -in:2: m4: WARNING: \0 will disappear, use \& instead in replacements +m4: in: 2: WARNING: \0 will disappear, use \& instead in replacements m4trace: -1- regexp(`hej med dig', `.*', `>>\0<<') -> `>>hej med dig<<' m4trace: -1- regexp(`hej med dig', `\w*', `>>\0<<') -> `>>hej<<' m4trace: -1- regexp(`hej med dig', `.+', `>>\0<<') -> `>>hej med dig<<' @@ -35,5 +35,5 @@ m4trace: -1- regexp(`hej med dig', `m\(.*\)') -> `4' EOF M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/lib/Makefile.am b/lib/Makefile.am index 634253f1..3998d0d0 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,6 +1,8 @@ ## Process this file with automake to produce Makefile.in noinst_LIBRARIES = libm4.a +INCLUDES = @INTLINCL@ + libm4_a_SOURCES = error.c noinst_HEADERS = getopt.h error.h getdate.h obstack.h regex.h diff --git a/lib/Makefile.in b/lib/Makefile.in index 9cabec60..1e8b0f1b 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ @@ -100,6 +101,8 @@ pkglibexecdir = @pkglibexecdir@ noinst_LIBRARIES = libm4.a +INCLUDES = @INTLINCL@ + libm4_a_SOURCES = error.c noinst_HEADERS = getopt.h error.h getdate.h obstack.h regex.h @@ -25,30 +25,57 @@ # A lot of this script is taken from autoconf-2.10. +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} +echo=echo +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec "$SHELL" "$0" --no-reexec ${1+"$@"} +fi + # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi -echo=echo -if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using +if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo="printf %s\\n" - if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH /usr/ucb; do - if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then - echo="$dir/echo" - break + # + # So, first we look for a working echo in the user's PATH. + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH /usr/ucb; do + if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running ltconfig again with it. + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then + # Oops. We lost completely, so just stick with echo. + echo=echo fi - done - IFS="$save_ifs" + fi fi fi @@ -66,7 +93,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.2 +VERSION=1.2b ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -74,6 +101,7 @@ rm="rm -f" help="Try \`$progname --help' for more information." # Global variables: +default_ofile=libtool can_build_shared=yes enable_shared=yes # All known linkers require a `.a' archive for static linking. @@ -85,6 +113,7 @@ ac_config_guess= ac_config_sub= host= nonopt= +ofile="$default_ofile" verify_host=yes with_gcc=no with_gnu_ld=no @@ -121,10 +150,12 @@ Usage: $progname [OPTION]... LTMAIN [HOST] Generate a system-specific libtool script. + --debug enable verbose shell tracing --disable-shared do not build shared libraries --disable-static do not build static libraries --help display this help and exit --no-verify do not verify that HOST is a valid host type +-o, --output=FILE specify the output file [default=$default_ofile] --quiet same as \`--silent' --silent do not print informational messages --srcdir=DIR find \`config.guess' in DIR @@ -140,6 +171,11 @@ EOM exit 0 ;; + --debug) + echo "$progname: enabling shell trace mode" + set -x + ;; + --disable-shared) enable_shared=no ;; --disable-static) enable_static=no ;; @@ -151,6 +187,9 @@ EOM --no-verify) verify_host=no ;; + --output | -o) prev=ofile ;; + --output=*) ofile="$optarg" ;; + --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;; --with-gcc) with_gcc=yes ;; @@ -185,8 +224,7 @@ if test -z "$ltmain"; then exit 1 fi -if test -f "$ltmain"; then : -else +if test ! -f "$ltmain"; then echo "$progname: \`$ltmain' does not exist" 1>&2 echo "$help" 1>&2 exit 1 @@ -264,7 +302,7 @@ if test "$verify_host" = yes; then ac_config_sub=$ac_aux_dir/config.sub # Make sure we can run config.sub. - if $ac_config_sub sun4 >/dev/null 2>&1; then : + if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : else echo "$progname: cannot run $ac_config_sub" 1>&2 echo "$help" 1>&2 @@ -276,14 +314,14 @@ if test "$verify_host" = yes; then host_alias=$host case "$host_alias" in "") - if host_alias=`$ac_config_guess`; then : + if host_alias=`$SHELL $ac_config_guess`; then : else echo "$progname: cannot guess host type; you must specify one" 1>&2 echo "$help" 1>&2 exit 1 fi ;; esac - host=`$ac_config_sub $host_alias` + host=`$SHELL $ac_config_sub $host_alias` echo "$ac_t$host" 1>&6 # Make sure the host verified. @@ -421,7 +459,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:424: checking whether we are using GNU C" >&5 + echo "$progname:462: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <<EOF @@ -429,7 +467,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then yes; #endif EOF - if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$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 $progname:470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c @@ -477,7 +515,7 @@ else link_static_flag='-bnso -bI:/lib/syscalls.exp' ;; - hpux9* | hpux10*) + hpux9* | hpux10* | hpux11*) # Is there a better link_static_flag that works with the bundled CC? wl='-Wl,' link_static_flag="${wl}-a ${wl}archive" @@ -541,11 +579,11 @@ if test -n "$pic_flag"; then # Check to make sure the pic_flag actually works. echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 $rm conftest* - echo > conftest.c + echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:585: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any warnings to the config.log. cat conftest.err 1>&5 @@ -588,8 +626,8 @@ $rm conftest* echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:591: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +echo "$progname:629: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 @@ -621,11 +659,11 @@ if test -z "$LD"; then if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:624: checking for ld used by GCC" >&5 + echo "$progname:662: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /* | [A-Za-z]:\\*) + /* | [A-Za-z]:[/\\]*) test -z "$LD" && LD="$ac_prog" ;; "") @@ -639,10 +677,10 @@ if test -z "$LD"; then esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:642: checking for GNU ld" >&5 + echo "$progname:680: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:645: checking for non-GNU ld" >&5 + echo "$progname:683: checking for non-GNU ld" >&5 fi if test -z "$LD"; then @@ -694,6 +732,7 @@ no_undefined_flag= archive_cmds= old_archive_from_new_cmds= export_dynamic_flag_spec= +whole_archive_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no @@ -701,31 +740,38 @@ hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= -case "$host_os" in -amigaos* | sunos4*) - # On these operating systems, we should treat GNU ld like the system ld. - gnu_ld_acts_native=yes - ;; -*) - gnu_ld_acts_native=no - ;; -esac - ld_shlibs=yes -if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then +if test "$with_gnu_ld" = yes; then # See if GNU ld supports shared libraries. - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' - runpath_var=LD_RUN_PATH - ld_shlibs=yes - else - ld_shlibs=no - fi + case "$host_os" in + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' + else + ld_shlibs=no + fi + ;; + esac if test "$ld_shlibs" = yes; then + runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' fi else # PORTME fill in a description of your system's linker (not GNU ld) @@ -781,7 +827,7 @@ else archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes - hardcode_minus_L=yes + hardcode_minus_L=no hardcode_shlibpath_var=no ;; @@ -793,7 +839,7 @@ else export_dynamic_flag_spec='${wl}-E' ;; - hpux10*) + hpux10* | hpux11*) archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes @@ -802,7 +848,11 @@ else ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs' + else + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' + fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; @@ -856,15 +906,7 @@ else ;; sunos4*) - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared -o $lib$libobjs' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' - fi - - if test "$with_gnu_ld" = yes; then - export_dynamic_flag_spec='${wl}-export-dynamic' - fi + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -890,7 +932,7 @@ echo "$ac_t$ld_shlibs" 1>&6 if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 case "$NM" in - /* | [A-Za-z]:\\*) ;; # Let the user override the test with a path. + /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do @@ -968,11 +1010,11 @@ void nm_test_func(){} main(){nm_test_var='a';nm_test_func();return(0);} EOF -echo "$progname:971: checking if global_symbol_pipe works" >&5 -if { (eval echo $progname:972: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:1013: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:1014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:975: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:1017: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -1030,7 +1072,7 @@ EOF save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 @@ -1073,25 +1115,20 @@ if test -n "$hardcode_libdir_flag_spec" || \ # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi -elif test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" != yes; then - # We cannot hardcode anything. - hardcode_action=unsupported else - # We can only hardcode existing directories. - hardcode_action=relink + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported fi echo "$ac_t$hardcode_action" 1>&6 -test "$hardcode_action" = unsupported && can_build_shared=no reload_flag= reload_cmds='$LD$reload_flag -o $output$reload_objs' echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 -# PORTME Some linker may need a different reload flag. +# PORTME Some linkers may need a different reload flag. reload_flag='-r' -echo "$ac_t$reload_flag" +echo "$ac_t$reload_flag" 1>&6 test -n "$reload_flag" && reload_flag=" $reload_flag" # PORTME Fill in your ld.so characteristics @@ -1110,11 +1147,11 @@ echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 case "$host_os" in aix3* | aix4*) version_type=linux - library_names_spec='${libname}${release}.so.$versuffix $libname.a' + library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so.$major' + soname_spec='${libname}${release}.so$major' ;; amigaos*) @@ -1125,25 +1162,25 @@ amigaos*) freebsd2* | freebsd3*) version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix $libname.so' - finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' + library_names_spec='${libname}${release}.so$versuffix $libname.so' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; gnu*) - version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix' + version_type=linux + library_names_spec='${libname}${release}.so$versuffix ${libname}.so' shlibpath_var=LD_LIBRARY_PATH ;; -hpux9* | hpux10*) +hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. dynamic_linker="$host_os dld.sl" version_type=sunos shlibpath_var=SHLIB_PATH - library_names_spec='${libname}${release}.sl.$versuffix ${libname}${release}.sl.$major $libname.sl' - soname_spec='${libname}${release}.sl.$major' + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; @@ -1151,7 +1188,7 @@ hpux9* | hpux10*) irix5* | irix6*) version_type=osf soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so.$versuffix $libname.so' + library_names_spec='${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1163,9 +1200,9 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) # This must be Linux ELF. linux-gnu*) version_type=linux - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' - soname_spec='${libname}${release}.so.$major' - finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH if test -f /lib/ld.so.1; then @@ -1181,8 +1218,8 @@ linux-gnu*) netbsd* | openbsd*) version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix' - finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' + library_names_spec='${libname}${release}.so$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1196,42 +1233,44 @@ os2*) osf3* | osf4*) version_type=osf soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so.$versuffix $libname.so' + library_names_spec='${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; sco3.2v5*) version_type=osf - soname_spec='${libname}${release}.so.$major' - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris2*) version_type=linux - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' - soname_spec='${libname}${release}.so.$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix' - finish_cmds='PATH="$PATH:/usr/etc" ldconfig $libdir' + library_names_spec='${libname}${release}.so$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH ;; sysv4.2uw2*) version_type=linux - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' - soname_spec='${libname}${release}.so.$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; uts4*) version_type=linux - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' - soname_spec='${libname}${release}.so.$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1287,7 +1326,7 @@ ltecho="$echo" for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ - libname_spec library_names_spec soname_spec RANLIB \ + whole_archive_flag_spec libname_spec library_names_spec soname_spec RANLIB \ old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ allow_undefined_flag no_undefined_flag \ @@ -1307,14 +1346,13 @@ for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ esac done -ofile=libtool -trap "$rm $ofile; exit 1" 1 2 15 -echo creating $ofile -$rm $ofile -cat <<EOF > $ofile -#! /bin/sh +trap "$rm \"$ofile\"; exit 1" 1 2 15 +echo "creating $ofile" +$rm "$ofile" +cat <<EOF > "$ofile" +#! $SHELL -# libtool - Provide generalized library-building support services. +# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM - GNU $PACKAGE $VERSION # NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. # @@ -1340,16 +1378,6 @@ cat <<EOF > $ofile # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# This program was configured as follows, -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# CC="$old_CC" CFLAGS="$old_CFLAGS" CPPFLAGS="$old_CPPFLAGS" \\ -# LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\ -# $0$ltconfig_args -# -# Compiler and other test output produced by $progname, useful for -# debugging $progname, is in ./config.log if it exists. - # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="sed -e s/^X//" @@ -1357,25 +1385,35 @@ Xsed="sed -e s/^X//" # if CDPATH is set. if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi -# An echo program that does not interpret backslashes. -echo="$ltecho" +### BEGIN LIBTOOL CONFIG +# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# CC="$old_CC" CFLAGS="$old_CFLAGS" CPPFLAGS="$old_CPPFLAGS" \\ +# LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\ +# $0$ltconfig_args +# +# Compiler and other test output produced by $progname, useful for +# debugging $progname, is in ./config.log if it exists. # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" # Shell to use when invoking shell scripts. -SHELL=${CONFIG_SHELL-/bin/sh} +SHELL="$SHELL" -# Whether or not to build libtool libraries. +# Whether or not to build shared libraries. build_libtool_libs=$enable_shared -# Whether or not to build old-style libraries. +# Whether or not to build static libraries. build_old_libs=$enable_static # The host system. host_alias="$host_alias" host="$host" +# An echo program that does not interpret backslashes. +echo="$ltecho" + # The archiver. AR="$AR" @@ -1413,6 +1451,9 @@ no_builtin_flag="$no_builtin_flag" # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="$export_dynamic_flag_spec" +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="$whole_archive_flag_spec" + # Library versioning type. version_type=$version_type @@ -1482,12 +1523,12 @@ hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var - EOF case "$host_os" in aix3*) - cat <<\EOF >> $ofile + cat <<\EOF >> "$ofile" + # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. @@ -1495,15 +1536,17 @@ if test "${COLLECT_NAMES+set}" != set; then COLLECT_NAMES= export COLLECT_NAMES fi - EOF ;; esac +echo '### END LIBTOOL CONFIG' >> "$ofile" +echo >> "$ofile" + # Append the ltmain.sh script. -cat "$ltmain" >> $ofile || (rm -f $ofile; exit 1) +cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) -chmod +x $ofile +chmod +x "$ofile" exit 0 # Local Variables: @@ -23,6 +23,18 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` modename="$progname" @@ -30,7 +42,7 @@ modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.2 +VERSION=1.2b default_mode= help="Try \`$progname --help' for more information." @@ -48,8 +60,13 @@ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi +# We save the old values to restore during execute mode. +if test "${LC_ALL+set}" = set; then + save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL +fi +if test "${LANG+set}" = set; then + save_LANG="$LANG"; LANG=C; export LANG +fi if test "$LTCONFIG_VERSION" != "$VERSION"; then echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 @@ -111,6 +128,16 @@ do exit 0 ;; + --config) + sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 + exit 0 + ;; + + --debug) + echo "$progname: enabling shell trace mode" + set -x + ;; + --dry-run | -n) run=: ;; @@ -180,7 +207,7 @@ if test -z "$show_help"; then esac done ;; - *db | *dbx) + *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) @@ -238,7 +265,6 @@ if test -z "$show_help"; then ;; -static) - build_libtool_libs=no build_old_libs=yes continue ;; @@ -337,7 +363,7 @@ if test -z "$show_help"; then # Just move the object, then go on to compile the next one $show "$mv $obj $libobj" - $run $mv $obj $libobj || exit 1 + $run $mv $obj $libobj || exit $? # Allow error messages only from the first compilation. suppress_output=' >/dev/null 2>&1' @@ -374,10 +400,13 @@ if test -z "$show_help"; then compile_shlibpath= finalize_shlibpath= + convenience= + old_convenience= deplibs= dlfiles= dlprefiles= export_dynamic=no + generated= hardcode_libdirs= libobjs= link_against_libtool_libs= @@ -410,8 +439,10 @@ if test -z "$show_help"; then test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. - for arg - do + while test $# -gt 0; do + arg="$1" + shift + # If the previous option needs an argument, assign it. if test -n "$prev"; then case "$prev" in @@ -495,7 +526,7 @@ if test -z "$show_help"; then -L*) dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` case "$dir" in - /* | [A-Za-z]:\\*) + /* | [A-Za-z]:[/\\]*) # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) @@ -571,7 +602,7 @@ if test -z "$show_help"; then if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/.o/'` prev= fi libobjs="$libobjs $arg" @@ -586,7 +617,7 @@ if test -z "$show_help"; then old_library= # Check to see that this really is a libtool archive. - if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : + if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 @@ -598,11 +629,6 @@ if test -z "$show_help"; then *) . ./$arg ;; esac - if test -z "$libdir"; then - $echo "$modename: \`$arg' contains no -rpath information" 1>&2 - exit 1 - fi - # Get the name of the library we link against. linklib= for l in $old_library $library_names; do @@ -623,6 +649,15 @@ if test -z "$show_help"; then dir="$dir/$objdir" fi + if test -z "$libdir"; then + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $dir/$old_library"l + old_convenience="$old_convenience $dir/$old_library" + compile_command="$compile_command $dir/$old_library" + finalize_command="$finalize_command $dir/$old_library" + continue + fi + # This library was specified with -dlopen. if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" @@ -696,8 +731,9 @@ if test -z "$show_help"; then fi + lib_linked=yes case "$hardcode_action" in - immediate) + immediate | unsupported) if test "$hardcode_direct" = no; then compile_command="$compile_command $dir/$linklib" elif test "$hardcode_minus_L" = no; then @@ -705,13 +741,15 @@ if test -z "$show_help"; then elif test "$hardcode_shlibpath_var" = no; then compile_shlibpath="$compile_shlibpath$dir:" compile_command="$compile_command -l$name" + else + lib_linked=no fi ;; relink) # We need an absolute path. case "$dir" in - /* | [A-Za-z]:\\*) ;; + /* | [A-Za-z]:[/\\]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then @@ -729,15 +767,21 @@ if test -z "$show_help"; then elif test "$hardcode_shlibpath_var" = yes; then compile_shlibpath="$compile_shlibpath$dir:" compile_command="$compile_command -l$name" + else + lib_linked=no fi ;; - *) - $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 - exit 1 - ;; + *) + lib_linked=no + ;; esac + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit 1 + fi + # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then finalize_command="$finalize_command $libdir/$linklib" @@ -802,14 +846,7 @@ if test -z "$show_help"; then exit 1 fi - if test -n "$vinfo" && test -n "$release"; then - $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - oldlib= - oldobjs= + oldlibs= case "$output" in "") $echo "$modename: you must specify an output file" 1>&2 @@ -819,16 +856,39 @@ if test -z "$show_help"; then */* | *\\*) $echo "$modename: output file \`$output' must have no directory components" 1>&2 + $echo "$help" 1>&2 exit 1 ;; *.a) + if test -n "$link_against_libtool_libs"; then + $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 + exit 1 + fi + + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles"; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + # Now set the variables for building old libraries. build_libtool_libs=no - build_old_libs=yes - oldlib="$output" - $show "$rm $oldlib" - $run $rm $oldlib + oldlibs="$output" ;; *.la) @@ -836,7 +896,7 @@ if test -z "$show_help"; then case "$output" in lib*) ;; *) - $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -849,9 +909,6 @@ if test -z "$show_help"; then library_names= old_library= dlname= - current=0 - revision=0 - age=0 if test -n "$objs"; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 @@ -860,21 +917,12 @@ if test -z "$show_help"; then # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 exit 1 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - if test -z "$rpath"; then - $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 - $echo "$help" 1>&2 - exit 1 + $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 fi set dummy $rpath @@ -883,203 +931,250 @@ if test -z "$show_help"; then fi install_libdir="$2" - # Parse the version information argument. - IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' - set dummy $vinfo - IFS="$save_ifs" + # Now set the variables for building old libraries. + oldlibs="$objdir/$libname.a" + if test -z "$rpath"; then + # Building a libtool convenience library. + oldlibs="$objdir/$libname.al $oldlibs" + build_libtool_libs=convenience - if test -n "$5"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 + fi - test -n "$2" && current="$2" - test -n "$3" && revision="$3" - test -n "$4" && age="$4" + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else - # Check that each of the things are valid numbers. - case "$current" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac + # Parse the version information argument. + IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" - case "$revision" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi - case "$age" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac + current="$2" + revision="$3" + age="$4" - if test $age -gt $current; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - fi + # Check that each of the things are valid numbers. + case "$current" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac - # Calculate the version variables. - version_vars="version_type current age revision" - case "$version_type" in - none) ;; + case "$revision" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac - linux) - version_vars="$version_vars major versuffix" - major=`expr $current - $age` - versuffix="$major.$age.$revision" - ;; + case "$age" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac - osf) - version_vars="$version_vars versuffix verstring" - major=`expr $current - $age` - versuffix="$current.$age.$revision" - verstring="$versuffix" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test $loop != 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done + if test $age -gt $current; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + fi - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; + # Calculate the version variables. + major= + versuffix= + verstring= + case "$version_type" in + none) ;; - sunos) - version_vars="$version_vars major versuffix" - major="$current" - versuffix="$current.$revision" - ;; + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 - ;; - esac + osf) + major=`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test $loop != 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + versuffix= + verstring="0.0" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + # Add libc to deplibs on all systems. + dependency_libs="$deplibs" + deplibs="$deplibs -lc" + fi # Create the output directory, or remove our outputs if we need to. if test -d $objdir; then - $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" - $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* + $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" + $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* else $show "$mkdir $objdir" $run $mkdir $objdir - status=$? - if test $status -eq 0 || test -d $objdir; then : - else - exit $status - fi - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes + status=$? + if test $status -ne 0 && test ! -d $objdir; then + exit $status fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" fi - # Add libc to deplibs on all systems. - dependency_libs="$deplibs" - deplibs="$deplibs -lc" - if test "$build_libtool_libs" = yes; then - # Get the real and link names of the library. - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi + # Get the real and link names of the library. + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi - lib="$objdir/$realname" + lib="$objdir/$realname" for link do linknames="$linknames $link" done - # Use standard objects if they are PIC. - test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` + # Use standard objects if they are PIC. + test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` - # Do each of the archive commands. - eval cmds=\"$archive_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" + # Transform .lo files to .o files. + test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` - # Create links to the real library. - for linkname in $linknames; do - $show "(cd $objdir && $LN_S $realname $linkname)" - $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? - done + if test -n "$whole_archive_flag_spec"; then + if test -n "$convenience"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + else + for xlib in $convenience; do + # Extract the objects. + xdir="$xlib"x + generated="$generated $xdir" + xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'` + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x ../$xlib)" + $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $? - # If -export-dynamic was specified, set the dlname. - if test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi + libobjs="$libobjs `echo $xdir/*`" + done + fi - # Now set the variables for building old libraries. - oldlib="$objdir/$libname.a" + # Do each of the archive commands. + eval cmds=\"$archive_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -export-dynamic was specified, set the dlname. + if test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi ;; *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case "$output" in @@ -1139,7 +1234,7 @@ if test -z "$show_help"; then else # Just create a symlink. $show "$LN_S $obj $libobj" - $run $LN_S $obj $libobj || exit 1 + $run $LN_S $obj $libobj || exit $? fi exit 0 @@ -1147,11 +1242,11 @@ if test -z "$show_help"; then *) if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test -n "$rpath"; then @@ -1223,8 +1318,7 @@ if test -z "$show_help"; then $show "$mkdir $objdir" $run $mkdir $objdir status=$? - if test $status -eq 0 || test -d $objdir; then : - else + if test $status -ne 0 && test ! -d $objdir; then exit $status fi fi @@ -1355,13 +1449,11 @@ dld_preloaded_symbols[] = finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` # Create the binary in the object directory, then wrap it. - if test -d $objdir; then : - else + if test ! -d $objdir; then $show "$mkdir $objdir" $run $mkdir $objdir status=$? - if test $status -eq 0 || test -d $objdir; then : - else + if test $status -ne 0 && test ! -d $objdir; then exit $status fi fi @@ -1371,7 +1463,7 @@ dld_preloaded_symbols[] = rpath= for dir in $temp_rpath; do case "$dir" in - /* | [A-Za-z]:\\*) + /* | [A-Za-z]:[/\\]*) # Absolute path. rpath="$rpath$dir:" ;; @@ -1404,13 +1496,11 @@ dld_preloaded_symbols[] = finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" fi - case "$hardcode_action" in - relink) + if test "$hardcode_action" = relink; then # AGH! Flame the AIX and HP-UX people for me, will ya? $echo "$modename: warning: using a buggy system linker" 1>&2 $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 - ;; - esac + fi $show "$compile_command" $run eval "$compile_command" || exit $? @@ -1430,10 +1520,10 @@ dld_preloaded_symbols[] = trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ -#! /bin/sh +#! $SHELL # $output - temporary wrapper script for $objdir/$output -# Generated by ltmain.sh - GNU $PACKAGE $VERSION +# Generated by $PROGRAM - GNU $PACKAGE $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. @@ -1457,10 +1547,20 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then finalize_command=\"$finalize_command\" else # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" = \"$magic\"; then : - else + if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi fi\ " $echo >> $output "\ @@ -1477,7 +1577,7 @@ else # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in - /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; + /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi @@ -1537,9 +1637,36 @@ fi\ esac # See if we need to build an old-fashioned archive. - if test "$build_old_libs" = "yes"; then - # Transform .lo files to .o files. - oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs" + addlibs="$convenience" + build_libtool_libs=no + else + addlibs="$old_convenience" + fi + + # Add in members from convenience archives. + for xlib in $addlibs; do + # Extract the objects. + xdir="$xlib"x + generated="$generated $xdir" + xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'` + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x ../$xlib)" + $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $? + + oldobjs="$oldobjs `echo $xdir/*`" + done # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then @@ -1554,6 +1681,11 @@ fi\ $run eval "$cmd" || exit $? done IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated fi # Now create the libtool archive. @@ -1561,14 +1693,13 @@ fi\ *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.a" - $show "creating $output" # Only create the output if not a dry run. if test -z "$run"; then $echo > $output "\ # $output - a libtool library file -# Generated by ltmain.sh - GNU $PACKAGE $VERSION +# Generated by $PROGRAM - GNU $PACKAGE $VERSION # The name that we can dlopen(3). dlname='$dlname' @@ -1595,7 +1726,7 @@ libdir='$install_libdir'\ # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $objdir && $LN_S ../$output $output)" - $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1 + $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $? ;; esac exit 0 @@ -1605,7 +1736,7 @@ libdir='$install_libdir'\ install) modename="$modename: install" - # There may be an optional /bin/sh argument at the beginning of + # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL"; then # Aesthetically quote it. @@ -1639,7 +1770,7 @@ libdir='$install_libdir'\ opts= prev= install_type= - isdir= + isdir=no stripme= for arg do @@ -1709,7 +1840,7 @@ libdir='$install_libdir'\ # Check to see that the destination is a directory. test -d "$dest" && isdir=yes - if test -n "$isdir"; then + if test "$isdir" = yes; then destdir="$dest" destname= else @@ -1726,7 +1857,7 @@ libdir='$install_libdir'\ fi fi case "$destdir" in - /* | [A-Za-z]:\\*) ;; + /* | [A-Za-z]:[/\\]*) ;; *) for file in $files; do case "$file" in @@ -1759,7 +1890,7 @@ libdir='$install_libdir'\ *.la) # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 @@ -1864,7 +1995,7 @@ libdir='$install_libdir'\ # Deduce the name of the destination old-style object file. case "$destfile" in *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` + staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/.o/'` ;; *.o) staticdest="$destfile" @@ -1886,7 +2017,7 @@ libdir='$install_libdir'\ # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` + staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/.o/'` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? @@ -1895,8 +2026,16 @@ libdir='$install_libdir'\ ;; *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then link_against_libtool_libs= finalize_command= @@ -1924,10 +2063,7 @@ libdir='$install_libdir'\ esac fi libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" - if test -z "$libdir"; then - $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 - elif test -f "$libfile"; then : - else + if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi @@ -1952,8 +2088,8 @@ libdir='$install_libdir'\ fi fi - $show "$install_prog$stripme $file $dest" - $run eval "$install_prog\$stripme \$file \$dest" || exit $? + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? ;; esac done @@ -1996,6 +2132,7 @@ libdir='$install_libdir'\ finish) modename="$modename: finish" libdirs="$nonopt" + admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir @@ -2011,19 +2148,21 @@ libdir='$install_libdir'\ for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" - $run eval "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" - $run eval "$cmds" + $run eval "$cmds" || admincmds="$admincmds + $cmds" fi done fi - echo "------------------------------------------------------------------------------" + echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do echo " $libdir" @@ -2032,7 +2171,7 @@ libdir='$install_libdir'\ echo "To link against installed libraries in a given directory, LIBDIR," echo "you must use the \`-LLIBDIR' flag during linking." echo - echo " You will also need to do one of the following:" + echo " You will also need to do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" @@ -2047,13 +2186,16 @@ libdir='$install_libdir'\ echo " - use the \`$flag' linker flag" fi + if test -n "$admincmds"; then + echo " - have your system administrator run these commands:$admincmds" + fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" echo "more information, such as the ld(1) and ld.so(8) manual pages." - echo "------------------------------------------------------------------------------" + echo "----------------------------------------------------------------------" exit 0 ;; @@ -2071,8 +2213,7 @@ libdir='$install_libdir'\ # Handle -dlopen flags immediately. for file in $execute_dlfiles; do - if test -f "$file"; then : - else + if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 @@ -2082,7 +2223,7 @@ libdir='$install_libdir'\ case "$file" in *.la) # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 @@ -2153,7 +2294,7 @@ libdir='$install_libdir'\ -*) ;; *) # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case "$file" in */* | *\\*) . $file ;; @@ -2174,6 +2315,14 @@ libdir='$install_libdir'\ # Export the shlibpath_var. eval "export $shlibpath_var" + # Restore saved enviroment variables + if test "${save_LC_ALL+set}" = set; then + LC_ALL="$save_LC_ALL"; export LC_ALL + fi + if test "${save_LANG+set}" = set; then + LANG="$save_LANG"; export LANG + fi + # Now actually exec the command. eval "exec \$cmd$args" @@ -2218,7 +2367,7 @@ libdir='$install_libdir'\ case "$name" in *.la) # Possibly a libtool archive, so verify it. - if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -2262,7 +2411,7 @@ libdir='$install_libdir'\ *.lo) if test "$build_old_libs" = yes; then - oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` + oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/.o/'` rmfiles="$rmfiles $dir/$oldobj" fi $show "$rm $rmfiles" @@ -2297,8 +2446,10 @@ case "$mode" in Provide generalized library-building support services. + --config show all configuration variables + --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files - --features display configuration information and exit + --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] @@ -2326,6 +2477,10 @@ compile) Compile a source file into a libtool library object. +This mode accepts the following additional options: + + -static always build a \`.o' file suitable for static linking + COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. diff --git a/modules/Makefile.am b/modules/Makefile.am index b88cd8d2..8aedea96 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -6,7 +6,7 @@ pkglibexec_LTLIBRARIES = libtest.la libtime.la libstdlib.la EXTRA_DIST = test.m4 time.m4 stdlib.m4 -INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib +INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib @INTLINCL@ libtest_la_SOURCES = test.c libtime_la_SOURCES = time.c @@ -15,24 +15,21 @@ libstdlib_la_SOURCES = stdlib.c LIBS = LDFLAGS = @DLLDFLAGS@ -install-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir) - @list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ - module=`echo "$$p" | sed -e 's/^lib\(.*\)\.la/\1/'`; \ - lib=.libs/lib$$module.so.0.0.0; \ - if test -f $$lib; then \ - echo "${INSTALL} $$lib $(DESTDIR)$(pkglibexecdir)/$$module"; \ - ${INSTALL} $$lib $(DESTDIR)$(pkglibexecdir)/$$module; \ - else :; fi; \ - done - -uninstall-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ - module=`echo "$$p" | sed -e 's/^lib\(.*\)\.la/\1/'`; \ - if test -f $$lib; then \ - echo "rm -f $(DESTDIR)$(pkglibexecdir)/$$module"; \ - rm -f $(DESTDIR)$(pkglibexecdir)/$$module; \ - else :; fi; \ - done +# libperl_la_SOURCES = perl.c perlxsi.c +libperl_la_OBJECTS = perl.lo + +perlxsi.c: + perl -MExtUtils::Embed -e xsinit -- -o perlxsi.c + +libperl_la_CFLAGS = `perl -MExtUtils::Embed -e ccopts` +PERLLDFLAGS = `perl -MExtUtils::Embed -e ldopts` + +perl.lo: perl.c perlxsi.c + @echo '$(LTCOMPILE) $(libperl_la_CFLAGS) -c perl.c'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p $(libperl_la_CFLAGS) -c perl.c + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p + +libperl.la: $(libperl_la_OBJECTS) $(libperl_la_DEPENDENCIES) + $(LINK) -rpath $(pkglibexecdir) $(libperl_la_LDFLAGS) $(PERLLDFLAGS) $(libperl_la_OBJECTS) $(libperl_la_LIBADD) $(LIBS) diff --git a/modules/Makefile.in b/modules/Makefile.in index e1ec9609..bc6ec4c6 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -78,6 +78,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ @@ -106,7 +107,7 @@ pkglibexec_LTLIBRARIES = libtest.la libtime.la libstdlib.la EXTRA_DIST = test.m4 time.m4 stdlib.m4 -INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib +INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib @INTLINCL@ libtest_la_SOURCES = test.c libtime_la_SOURCES = time.c @@ -114,6 +115,12 @@ libstdlib_la_SOURCES = stdlib.c LIBS = LDFLAGS = @DLLDFLAGS@ + +# libperl_la_SOURCES = perl.c perlxsi.c +libperl_la_OBJECTS = perl.lo + +libperl_la_CFLAGS = `perl -MExtUtils::Embed -e ccopts` +PERLLDFLAGS = `perl -MExtUtils::Embed -e ldopts` mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -166,6 +173,22 @@ distclean-pkglibexecLTLIBRARIES: maintainer-clean-pkglibexecLTLIBRARIES: +install-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir) + @list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo "$(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibexecdir)/$$p"; \ + $(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibexecdir)/$$p; \ + else :; fi; \ + done + +uninstall-pkglibexecLTLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(pkglibexecdir)/$$p; \ + done + .c.o: $(COMPILE) -c $< @@ -249,9 +272,13 @@ distdir: $(DISTFILES) || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file; \ done +perl.lo perl.o: perl.c perlxsi.c ../src/m4.h ../config.h \ + ../lib/obstack.h ../src/builtin.h +perlxsi.lo perlxsi.o: perlxsi.c stdlib.lo stdlib.o: stdlib.c ../src/m4.h ../config.h ../lib/obstack.h \ ../src/builtin.h -test.o: test.c ../src/m4.h ../config.h ../lib/obstack.h ../src/builtin.h +test.lo test.o: test.c ../src/m4.h ../config.h ../lib/obstack.h \ + ../src/builtin.h time.lo time.o: time.c ../src/m4.h ../config.h ../lib/obstack.h \ ../src/builtin.h @@ -318,27 +345,18 @@ clean-generic maintainer-clean-generic clean mostlyclean distclean \ maintainer-clean -install-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir) - @list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ - module=`echo "$$p" | sed -e 's/^lib\(.*\)\.la/\1/'`; \ - lib=.libs/lib$$module.so.0.0.0; \ - if test -f $$lib; then \ - echo "${INSTALL} $$lib $(DESTDIR)$(pkglibexecdir)/$$module"; \ - ${INSTALL} $$lib $(DESTDIR)$(pkglibexecdir)/$$module; \ - else :; fi; \ - done +perlxsi.c: + perl -MExtUtils::Embed -e xsinit -- -o perlxsi.c -uninstall-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \ - module=`echo "$$p" | sed -e 's/^lib\(.*\)\.la/\1/'`; \ - if test -f $$lib; then \ - echo "rm -f $(DESTDIR)$(pkglibexecdir)/$$module"; \ - rm -f $(DESTDIR)$(pkglibexecdir)/$$module; \ - else :; fi; \ - done +perl.lo: perl.c perlxsi.c + @echo '$(LTCOMPILE) $(libperl_la_CFLAGS) -c perl.c'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p $(libperl_la_CFLAGS) -c perl.c + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p + +libperl.la: $(libperl_la_OBJECTS) $(libperl_la_DEPENDENCIES) + $(LINK) -rpath $(pkglibexecdir) $(libperl_la_LDFLAGS) $(PERLLDFLAGS) $(libperl_la_OBJECTS) $(libperl_la_LIBADD) $(LIBS) # 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. diff --git a/modules/README b/modules/README index 50155b7c..8ea440dd 100644 --- a/modules/README +++ b/modules/README @@ -3,7 +3,8 @@ 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. Currently it has -only been certified to work under Linux 2.0. +only been certified to work under GNU/Linux 2.0, OSF1, HPUX 9 & 10, +SunOS 5 and Solaris 5. Dynamic modules are only available if GNU m4 was configured with --with-modules and if the dlopen(3) interface is available in the @@ -16,7 +17,7 @@ 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. -Modules are searched for in M4MODPATH, if set, and in a module directory +Modules are searched for in M4MODPATH, if set, else in a module directory defined at configure time, default /usr/local/libexec/m4. A module extends GNU m4 by defining new builtins, It can define builtins @@ -25,7 +26,8 @@ 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. +wanting. It is necessary having the GNU m4 sources available to compile +modules. Each module should include the two header files ../src/m4.h and ../src/builtin.h. These will include <ctype.h>, <stdio.h>, @@ -57,9 +59,9 @@ 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. +interesting example is in time.c or in stdlib.c To try the demos, compile with `make' and run them with the commands as: - M4MODPATH=`pwd` ../src/m4 time.m4 + M4MODPATH=`pwd`/.libs ../src/m4 time.m4 diff --git a/modules/stdlib.c b/modules/stdlib.c index b64c72e1..1b6bee0d 100644 --- a/modules/stdlib.c +++ b/modules/stdlib.c @@ -22,7 +22,11 @@ #include <pwd.h> #include <stdlib.h> #include <unistd.h> +#ifdef TM_IN_SYS_TIME +#include <sys/time.h> +#else #include <time.h> +#endif #include <sys/utsname.h> #include <sys/types.h> @@ -108,7 +112,22 @@ m4_setenv (struct obstack *obs, int argc, token_data **argv) if (!numeric_arg(argv[0], ARG(3), &overwrite)) return; +#ifdef HAVE_SETENV setenv(ARG(1), ARG(2), overwrite); +#else +#ifdef HAVE_PUTENV + if (!overwrite && getenv (ARG(1)) != NULL) + return; + + obstack_grow (obs, ARG(1), strlen (ARG(1))); + obstack_1grow (obs, '='); + obstack_grow (obs, ARG(2), strlen (ARG(2))); + obstack_1grow (obs, '\0'); + + env = obstack_finish (obs); + putenv (env); +#endif /* HAVE_PUTENV */ +#endif /* HAVE_SETENV */ } static void @@ -119,7 +138,9 @@ m4_unsetenv (struct obstack *obs, int argc, token_data **argv) if (bad_argc (argv[0], argc, 2, 2)) return; - unsetenv(ARG(1)); +#ifdef HAVE_UNSETENV + unsetenv (ARG(1)); +#endif /* HAVE_UNSETENV */ } static void @@ -130,7 +151,7 @@ m4_getlogin (struct obstack *obs, int argc, token_data **argv) if (bad_argc (argv[0], argc, 1, 1)) return; - login = getlogin(); + login = getlogin (); if (login != NULL) shipout_string (obs, login, 0, FALSE); diff --git a/modules/time.c b/modules/time.c index 5f98e8a7..8a986b3c 100644 --- a/modules/time.c +++ b/modules/time.c @@ -19,14 +19,24 @@ #include <m4.h> #include <builtin.h> +#ifdef TM_IN_SYS_TIME +#include <sys/time.h> +#else #include <time.h> +#endif /* TM_IN_SYS_TIME */ DECLARE(m4_currenttime); DECLARE(m4_ctime); DECLARE(m4_gmtime); DECLARE(m4_localtime); + +#ifdef HAVE_MKTIME DECLARE(m4_mktime); +#endif /* HAVE_MKTIME */ + +#ifdef HAVE_STRFTIME DECLARE(m4_strftime); +#endif /* HAVE_STRFTIME */ #undef DECLARE @@ -37,8 +47,12 @@ builtin m4_macro_table[] = { "ctime", TRUE, FALSE, FALSE, m4_ctime }, { "gmtime", TRUE, FALSE, TRUE, m4_gmtime }, { "localtime", TRUE, FALSE, TRUE, m4_localtime }, +#ifdef HAVE_MKTIME { "mktime", TRUE, FALSE, TRUE, m4_mktime }, +#endif /* HAVE_MKTIME */ +#ifdef HAVE_STRFTIME { "strftime", TRUE, FALSE, TRUE, m4_strftime }, +#endif /* HAVE_STRFTIME */ { 0, FALSE, FALSE, FALSE, 0 }, }; @@ -138,6 +152,7 @@ m4_localtime (struct obstack *obs, int argc, token_data **argv) format_tm(obs, localtime(&t)); } +#ifdef HAVE_MKTIME /*-------------------------------------------. | mktime(sec,min,hour,mday,month,year,isdst) | `-------------------------------------------*/ @@ -170,7 +185,9 @@ m4_mktime (struct obstack *obs, int argc, token_data **argv) shipout_int(obs, t); } +#endif /* HAVE_MKTIME */ +#ifdef HAVE_STRFTIME static void m4_strftime (struct obstack *obs, int argc, token_data **argv) { @@ -191,3 +208,4 @@ m4_strftime (struct obstack *obs, int argc, token_data **argv) l = strftime(buf, 1024, ARG(1), tm); obstack_grow(obs, buf, l); } +#endif /* HAVE_STRFTIME */ diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c index 1d6717c4..09c1d0e6 100644 --- a/po/cat-id-tbl.c +++ b/po/cat-id-tbl.c @@ -117,27 +117,29 @@ If no FILE or if FILE is `-', standard input is read.\n", 60}, \n\ Report bugs to <bug-m4@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 find module `%s'", 69}, - {"ERROR: Cannot create temporary file for diversion", 70}, - {"ERROR: Cannot flush diversion to temporary file", 71}, - {"ERROR: Copying inserted file", 72}, - {"ERROR: Reading inserted file", 73}, - {"Cannot stat diversion", 74}, - {"Path search for `%s' found `%s'", 75}, - {"Module search for `%s' found `%s'", 76}, - {"VMEM limit exceeded?\n", 77}, + {" (options:", 63}, + {"INTERNAL ERROR: Bad code in deferred arguments", 64}, + {"INTERNAL ERROR: Bad token type in expand_token ()", 65}, + {"ERROR: EOF in argument list", 66}, + {"INTERNAL ERROR: Bad token type in expand_argument ()", 67}, + {"INTERNAL ERROR: Bad symbol type in call_macro ()", 68}, + {"ERROR: Recursion limit of %d exceeded, use -L<N> to change it", 69}, + {"Module search for `%s' found `%s'", 70}, + {"ERROR: cannot find module `%s': %s", 71}, + {"ERROR: cannot find module `%s'", 72}, + {"ERROR: Cannot create temporary file for diversion", 73}, + {"ERROR: Cannot flush diversion to temporary file", 74}, + {"ERROR: Copying inserted file", 75}, + {"ERROR: Reading inserted file", 76}, + {"Cannot stat diversion", 77}, + {"Path search for `%s' found `%s'", 78}, + {"VMEM limit exceeded?\n", 79}, {"\ Memory bounds violation detected (SIGSEGV). Either a stack overflow\n\ -occurred, or there is a bug in ", 78}, - {". Check for possible infinite recursion.\n", 79}, - {"INTERNAL ERROR: Illegal mode to symbol_lookup ()", 80}, - {"Name `%s' is unknown\n", 81}, +occurred, or there is a bug in ", 80}, + {". Check for possible infinite recursion.\n", 81}, + {"INTERNAL ERROR: Illegal mode to symbol_lookup ()", 82}, + {"Name `%s' is unknown\n", 83}, }; -int _msg_tbl_length = 81; +int _msg_tbl_length = 83; Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "Warnung: Zu wenig Argumente für eingebaute Funktion `%s'" -#: src/builtin.c:335 +#: src/builtin.c:343 #, 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:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Nicht-numerisches Argument in eingebauter Funktion `%s'" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "Name %s nicht definiert" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in m4_dumpdef ()" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "Makro `%s' nicht definiert" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "INTERNER FEHLER: Falscher Symboltyp in m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "Kann keine `pipe' für Kommando `%s' öffnen" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Basis in `eval' nicht in den Grenzen (Basis = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "Negative Breite in `eval'" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "Nicht-numerisches Argument in %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "Kann Umleitung %s nicht aufheben" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "Name %s nicht definiert" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "Kann %s nicht öffnen" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Debug Modus: falsche Debug Flags: `%s'" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "Kann Fehlerdatei nicht vorbereiten: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "WARNUNG: \\0 wird wegfallen, benutze \\& stattdessen" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "Falscher regulärer Ausdruck `%s': %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "Fehler beim Erkennen des regulären Ausdrucks `%s'" @@ -124,49 +124,49 @@ msgstr "" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens (trace_pre ())" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "Falscher Ausdruck in `eval' (fehlende rechte Klammer): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "Falscher Ausdruck in `eval': %s" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "Falscher Ausdruck in `eval' (falsche Eingabe): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "Falscher Ausdruck in `eval' (zu große Eingabe): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "Division durch Null in `eval': %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "Modulo Null in `eval': %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "INTERNER FEHLER: Falscher Fehlerkode in evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "INTERNER FEHLER: Falscher Vergleichsoperator in cmp_term ()" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "INTERNER FEHLER: Falscher Shift-Operator in shift_term ()" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "INTERNER FEHLER: Falscher Operator in mult_term ()" @@ -202,59 +202,59 @@ msgstr "" "`%s' aus eingefrorener Datei nicht in Tabelle der eingebauten Funktionen " "gefunden!" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "Eingabe zurückgenommen zu %s, Zeile %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "Eingabe gelesen von %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "INTERNER FEHLER: Rekursives push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "INTERNER FEHLER: Falscher Aufruf von init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "" "INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in next_char ()" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "" "INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in peek_input ()" # This is the name of the input file when there is no current input file. # Is this ever printed in a message? -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "NONE" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "FEHLER: Dateiende in Zeichenkette" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "FEHLER: Keller voll. (Unendliche `define' Rekursion?)" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "`%s --help' zeigt weitere Informationen.\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Aufruf: %s [OPTION]... [DATEI]...\n" -#: src/m4.c:138 +#: src/m4.c:149 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:151 +#: src/m4.c:162 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:155 +#: src/m4.c:166 #, fuzzy msgid "" "\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:163 +#: src/m4.c:174 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:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -349,7 +349,7 @@ msgstr "" " -o, --error-output=DATEI leite Debug- und Verfolgungsausgaben nach " "DATEI\n" -#: src/m4.c:184 +#: src/m4.c:195 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:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -387,18 +387,22 @@ msgstr "" "\n" "Ohne DATEI oder wenn DATEI `-' ist, wird die Standardeingabe gelesen\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "Falsche Debug Flags: `%s'" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "INTERNER FEHLER: Falscher Kode in zurückgestellten Argumenten" @@ -424,7 +428,17 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "" "FEHLER: Grenze der Rekursion von %d überschritten, benutze -L<N> zur Änderung" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "Pfad für Suche nach `%s' hat `%s' gefunden" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -449,16 +463,11 @@ msgstr "FEHLER: Während Lesen einer eingefügten Datei" msgid "Cannot stat diversion" msgstr "Kann `stat' nicht auf Umleitung anwenden" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "Pfad für Suche nach `%s' hat `%s' gefunden" -#: src/path.c:253 -#, 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 Binary files differ@@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4d\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, 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:335 +#: src/builtin.c:343 #, 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:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Argument non-numérique pour «%s» prédéfini" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "ERREUR INTERNE: Mauvais type de lexème dans define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "Nom «%s» non-défini" -#: src/builtin.c:697 +#: src/builtin.c:705 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:705 +#: src/builtin.c:713 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:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "Macro «%s» non-défini" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "ERREUR INTERNE: Mauvais type de symbole dans m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "Incapable d'ouvrir un «pipe» pour la commande «%s»" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Base hors intervalle dans «eval» (base = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "Largeur négative dans «eval»" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "Argument non-numérique pour %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "Incapble de ramener la diversion %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "Nom «%s» non-défini" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "Incapable d'ouvrir %s" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Debugmode: mauvais indicateurs de mise-au-point: «%s»" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "Incapable de préparer le fichier d'erreurs: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "" "ATTENTION: \\\\0 disparaîtra, utiliser \\\\& plutôt pour les remplacements" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "Mauvaise expression régulière «%s»: %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "Erreur d'appariement pour l'expressio régulière «%s»" @@ -125,49 +125,49 @@ msgstr "" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "ERREUR INTERNE: Mauvais type de donnée pour de lexème (trace_pre ())" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "Mauvaise expression dans «eval» (parenthèse droite manquante): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "Mauvaise expression dans «eval»: %s" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "Mauvaise expression dans «eval» (mauvaise entrée): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "Mauvaise expression dans «eval» (entrée superflue): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "Division par zéro dans «eval»: %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "Module par zéro dans «eval»: %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "ERREUR INTERNE: Mauvais code d'erreur dans evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "ERREUR INTERNE: Mauvais opérateur de comparaison dans cmp_term ()" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "ERREUR INTERNE: Mauvais opérateur de décalage dans shift_term ()" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "ERREUR INTERNE: Mauvais opérateur dans mult_term ()" @@ -203,55 +203,55 @@ msgid "`%s' from frozen file not found in builtin table!" msgstr "" "«%s» dans le fichier figé est introuvable dans la table des prédéfinis!" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "Entrée reprise de %s, ligne %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "Entrée lue de %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "ERREUR INTERNE: Utilisation récursive de push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "ERREUR INTERNE: Mauvais appel à init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans next_char ()" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans peek_input ()" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "AUCUN" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "ERREUR: Fin-de-fichier dans la chaîne" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "ERREUR INTERNE: Mauvais type de lexème dans expand_token ()" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pour plus d'information, essayez «%s --help».\\n\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Usage: %s [OPTION]... [FICHIER]...\\n\n" -#: src/m4.c:138 +#: src/m4.c:149 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:151 +#: src/m4.c:162 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:155 +#: src/m4.c:166 #, fuzzy msgid "" "\n" @@ -300,7 +300,7 @@ msgstr "" " -s, --synclines engendrer des lignes «#line NNN " "\\\"FICHIER\\\"»\n" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -315,7 +315,7 @@ msgstr "" " -L, --nesting-limit=NOMBRE modifier la limite artificielle " "d'imbrication\n" -#: src/m4.c:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 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:184 +#: src/m4.c:195 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:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -383,18 +383,22 @@ msgstr "" "\n" "Si aucun FICHIER ou si FICHIER vaut «-», lit l'entrée standard.\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "Mauvais indicateurs de mise-au-point: «%s»" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "ERREUR INTERNE: Mauvais code dans les arguments différés" @@ -420,7 +424,17 @@ msgstr "ERREUR INTERNE: Mauvais type de symbole dans call_macro ()" msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "ERREUR: Limite de récursion %d dépassée, la changer par -L<N>" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "La fouille du chemin pour «%s» trouve «%s»" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -445,16 +459,11 @@ 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:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "La fouille du chemin pour «%s» trouve «%s»" -#: src/path.c:253 -#, 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 Binary files differ@@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "Attenzione: Troppo pochi argomenti per la funzione predefinita `%s'" -#: src/builtin.c:335 +#: src/builtin.c:343 #, 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:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Argumento non numerico a funzione predefinita `%s'" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "ERRORE INTERNO: Tipo dato `token' errato in define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "Nome `%s' non definito" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "Macro `%s' non definita" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "ERRORE INTERNO: Tipo simbolo errato in m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "Impossibile aprire una `pipe' per il comando `%s'" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Base fuori intervallo in `eval' (base = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "Larghezza negativa in `eval'" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "Argumento non numerico a %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "Impossibile ripristinare la deviazione %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "Nome `%s' non definito" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "Impossibile aprire %s" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Modalità di debug: indicatori di debug errati: `%s'" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "Impossibile aprire l' archivio di errore: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "Espressione regolare errata `%s': %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "Errore nel confronto dell' espressione regolare `%s'" @@ -121,49 +121,49 @@ msgstr "" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "Espressione errata in `eval' (manca la parentesi destra): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "Espressione errata in `eval': %s" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "Espressione errata in `eval' (testo errato): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "Espressione errata in `eval' (testo in eccesso): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "Divisione per zero in `eval': %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "Modulo zero in `eval': %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "ERRORE INTERNO: Code di errore errato in evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "ERRORE INTERNO: Operatore errato in mult_term ()" @@ -197,55 +197,55 @@ msgstr "Fine prematura dell' archivio congelato" msgid "`%s' from frozen file not found in builtin table!" msgstr "" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "Ingresso ripristinato su %s, linea %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "Errore di lettura da %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "ERRORE INTERNO: Utilizzo ricorsivo di push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "ERRORE INTERNO: Chiamata errata a init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "ERRORE INTERNO: Stack di ingresso corrotto in next_char ()" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "ERRORE INTERNO: Stack di ingresso corrotto in peek_input ()" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "NESSUNO" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "ERRORE: Fine prematura di una stringa" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "ERRORE: Stack overflow. (Ricorsione infinita in `define'?)" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Per ulteriori informazioni provare `%s --help'.\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Usage: %s [OPZIONE]... [ARCHIVIO]...\n" -#: src/m4.c:138 +#: src/m4.c:149 msgid "" "Mandatory or optional arguments to long options are mandatory or optional\n" "for short options too.\n" @@ -259,11 +259,11 @@ msgid "" " -P, --prefix-builtins force a `m4_' prefix to all builtins\n" msgstr "" -#: src/m4.c:151 +#: src/m4.c:162 msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" msgstr "" -#: src/m4.c:155 +#: src/m4.c:166 msgid "" "\n" "Preprocessor features:\n" @@ -273,7 +273,7 @@ msgid "" " -s, --synclines generate `#line NO \"FILE\"' lines\n" msgstr "" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -282,7 +282,7 @@ msgid "" " -L, --nesting-limit=NUMBER change artificial nesting limit\n" msgstr "" -#: src/m4.c:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -300,7 +300,7 @@ msgid "" " -o, --error-output=FILE redirect debug and trace output\n" msgstr "" -#: src/m4.c:184 +#: src/m4.c:195 msgid "" "\n" "FLAGS is any of:\n" @@ -317,24 +317,28 @@ msgid "" " V shorthand for all of the above flags\n" msgstr "" -#: src/m4.c:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" msgstr "" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "Indicatori di debug errati: `%s'" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "ERRORE INTERNO: Codice errato in argomenti differiti" @@ -359,7 +363,17 @@ msgstr "ERRORE INTERNO: Tipo simbolo errato in call_macro ()" msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "La ricerca del percorso per `%s' ha trovato `%s'" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -384,16 +398,11 @@ msgstr "ERRORE: Leggendo archivio inserito" msgid "Cannot stat diversion" msgstr "Impossibile effettuare la `stat' per la deviazione" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "La ricerca del percorso per `%s' ha trovato `%s'" -#: src/path.c:253 -#, 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 Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU m4 1.4.3\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "·Ù¹ð¡§%s ¤Ø¤Î°ú¿ô¤¬ÉÔ¤·¤Æ¤¤¤Þ¤¹¡£" -#: src/builtin.c:335 +#: src/builtin.c:343 #, c-format msgid "Warning: Excess arguments to built-in `%s' ignored" msgstr "·Ù¹ð¡§%s ¤Ø¤Î°ú¿ô¤¬Â¿²á¤®¤Þ¤¹ (Ķ¤¨¤¿Ê¬¤Ï̵»ë¤µ¤ì¤Þ¤¹)¡£" -#: src/builtin.c:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô define_macro () Æâ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "ÆâÉô¥¨¥é¡¼¡§`Built-in' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥Þ¥¯¥í¤Ï¤¢¤ê¤Þ¤»¤ó¡£" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_dumpdef () ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "¥Þ¥¯¥í `%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_defn () Æâ¤Î¥·¥ó¥Ü¥ë¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "¥³¥Þ¥ó¥É `%s' ¤Ø¤Î¥Ñ¥¤¥×¤¬¥ª¡¼¥×¥ó¤Ç¤¤Þ¤»¤ó¡£" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "eval ¤Î´ð¿ô ( %d ¿ÊË¡) ¤Î·å¿ô¤¬µöÍÆÈϰϳ°¤Ë¤¢¤ê¤Þ¤¹¡£" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "eval ¤Î½ÐÎÏ·å¿ô¤¬Éé¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "`%s' ¤ò undivert ¤Ç¤¤Þ¤»¤ó¡£" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "`%s' ¤ò¥ª¡¼¥×¥ó¤Ç¤¤Þ¤»¤ó¡£" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "debugmode ¥Þ¥¯¥í¤Ë¤ª¤¤¤Æ %s ¤ÏÉÔÀµ¤Ê¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "`%s' ¤ò¥¨¥é¡¼¥í¥°¥Õ¥¡¥¤¥ë¤È¤·¤Æ¥»¥Ã¥È¤Ç¤¤Þ¤»¤ó¡£" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "·Ù¹ð¡§\\0 ¤Ïµì¼°¤ÎÍÑË¡¤Ç¤¹¡£\\& ¤òÂå¤ï¤ê¤Ë»È¤Ã¤Æ²¼¤µ¤¤¡£" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "Àµµ¬É½¸½ %s ¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£" @@ -124,51 +124,51 @@ msgstr "" "ÆâÉô¥¨¥é¡¼¡§¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£\n" " (´Ø¿ô trace_pre () ¤¬¤³¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ¤¤¤Þ¤¹¡£)" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Êɽ¸½¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤¹ (ÊĤ¸³ç¸Ì¤¬¤¢¤ê¤Þ¤»¤ó)¡£" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Ê¼°¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤¹¡£" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "" "eval ¤Ç `%s' ¤È¤¤¤¦ÉÔÀµ¤Êɽ¸½¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤¹ \n" " (ÆþÎϥǡ¼¥¿¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó)¡£" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Ê¼°¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤¹ (ÆþÎϥǡ¼¥¿¤¬Â¿²á¤®¤Þ¤¹)¡£" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "`%s' ¤È¤¤¤¦É½¸½¤Ç¡¢0 ¤Ë¤è¤ë³ä»»¤¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "`%s' ¤È¤¤¤¦ eval ¤Ç¡¢´ð¿ô¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô evaluate () Æâ¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÉÔÀµ¤Ç¤¹¡£" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô cmp_term () ¤ÎÈæ³Ó±é»»»Ò¤¬ÉÔÀµ¤Ç¤¹¡£" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "ÆâÉô¥¨¥é¡¼¡§shift_term () ¤Î¥·¥Õ¥È±é»»»Ò¤¬ÉÔÀµ¤Ç¤¹¡£" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô mult_term () Æâ¤Î±é»»»Ò¤¬ÉÔÀµ¤Ç¤¹¡£" @@ -203,57 +203,57 @@ msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î EOF ¤¬Á᤯Íè²á¤®¤Æ¤¤¤Þ¤¹¡£" msgid "`%s' from frozen file not found in builtin table!" msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î %s ¤Ï¥Ó¥ë¥È¥¤¥ó¥³¥Þ¥ó¥É¤Î¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "¥Õ¥¡¥¤¥ë %s, %d ¹ÔÌܤ«¤éÆþÎϤ·Ä¾¤·¤Þ¤¹¡£" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "%s ¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤ß¤Þ¤¹¡£" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "ÆâÉô¥¨¥é¡¼¡§ºÆµ¢Åª¤Ëʸ»úÎó¤ò push ¤·¤Æ¤¤¤Þ¤¹¡£" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô init_macro_token () ¤¬ÉÔÀµ¤Ë¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô next_char () Æâ¤Ç¥¹¥¿¥Ã¥¯¤ÎÆþÎϤ˼ºÇÔ¤·¤Æ¤¤¤Þ¤¹¡£" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô peek_input () Æâ¤Ç¥¹¥¿¥Ã¥¯¤ÎÆþÎϤ˼ºÇÔ¤·¤Æ¤¤¤Þ¤¹¡£" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "¤Ê¤·" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "¥¨¥é¡¼: ʸ»úÎóÆâ¤Ë¥Õ¥¡¥¤¥ë¤Î½ªÃ¼µ¹æ¤¬¤¢¤ê¤Þ¤¹¡£" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "" "¥¨¥é¡¼: ¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤Æ¤¤¤Þ¤¹¡£\n" " (̵¸Â¤ËºÆµ¢ÅªÄêµÁ¤ò¤·¤Æ¤¤¤Þ¤»¤ó¤«¡©)" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "¾Ü¤·¤¯¤Ï `%s --help' ¤Î½ÐÎϤò¸æÍ÷²¼¤µ¤¤¡£\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "»ÈÍÑÊýË¡: %s [¥ª¥×¥·¥ç¥ó]...[¥Õ¥¡¥¤¥ë̾]\n" -#: src/m4.c:138 +#: src/m4.c:149 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:151 +#: src/m4.c:162 msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" msgstr "" "-W, --word-regexp=REGEXP ¥Þ¥¯¥í̾¤Î¥·¥ó¥¿¥Ã¥¯¥¹¤Ë REGEXP ¤ò " " Àµµ¬É½¸½¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£\n" -#: src/m4.c:155 +#: src/m4.c:166 #, fuzzy msgid "" "\n" @@ -305,7 +305,7 @@ msgstr "" " -U, --undefine=NAME NAME ¤ÎÄêµÁ¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£\n" " -s, --synclines ¹ÔÈÖ¹æ¤È¥Õ¥¡¥¤¥ë̾¤Î¹Ô¤òÀ¸À®¤·¤Þ¤¹¡£\n" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -321,7 +321,7 @@ msgstr "" " -L, --nesting-limit=NUNBER " "¥Þ¥¯¥í¤Î¥Í¥¹¥È²ó¿ô¤Î¾å¸ÂÃͤò¿Í°ÙŪ¤ËÊѹ¹¤·¤Þ¤¹¡£\n" -#: src/m4.c:170 +#: src/m4.c:181 msgid "" "\n" "Frozen state files:\n" @@ -334,7 +334,7 @@ msgstr "" " -R, --reload-state=FILE ºÇ½é¤Ë»ØÄꤵ¤ì¤¿ FILE ¤«¤é\n" " Åà·ë¤µ¤ì¤¿ÄêµÁ¤ò¥í¡¼¥É¤·¤Þ¤¹\n" -#: src/m4.c:176 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -352,7 +352,7 @@ msgstr "" " -o, --error-output=FILE ¥Ç¥Ð¥Ã¥°¤È¥È¥ì¡¼¥¹¤Î½ÐÎϤò FILE ¤Ë\n" " ¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£\n" -#: src/m4.c:184 +#: src/m4.c:195 msgid "" "\n" "FLAGS is any of:\n" @@ -384,7 +384,7 @@ msgstr "" " i ÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÀ¸¤¸¤¿ÊѲ½¤òɽ¼¨¤·¤Þ¤¹¡£\n" " V ¾åµ¤ÎÁ´¤Æ¤Î FLAG ¤ò»ØÄꤹ¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£\n" -#: src/m4.c:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -393,18 +393,22 @@ msgstr "" "FILE ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ª¤è¤Ó»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬ `-' ¤Î¾ì¹ç¤Ï\n" " ɸ½àÆþÎϤ¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "`%s' ¤ÏÉÔÀµ¤Ê¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó°ú¿ô¤Ç¤¹¡£" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "ÆâÉô¥¨¥é¡¼¡§¥ª¥×¥·¥ç¥ó¤Î¸å½èÍý¤Ç¡¢ÉÔÀµ¥³¡¼¥É¤¬¸¡½Ð¤µ¤ì¤Þ¤·¤¿¡£" @@ -431,7 +435,17 @@ msgstr "" "¥¨¥é¡¼¡§ºÆµ¢ÅªÄêµÁ¤Î¥Í¥¹¥È¤¬»ØÄꤵ¤ì¤¿ÃÍ %d ¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£\n" " -L<¿ô»ú> ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥Í¥¹¥È¿ô¤Î¾å¸Â¤òÁý¤ä¤·¤Æ²¼¤µ¤¤¡£" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -458,16 +472,11 @@ msgstr "" "divert ¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤Î¥¹¥Æ¡¼¥¿¥¹¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£\n" " (stat ¤Ç¤¤Þ¤»¤ó¡£)" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£" -#: src/path.c:253 -#, 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 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "" -#: src/builtin.c:335 +#: src/builtin.c:343 #, c-format msgid "Warning: Excess arguments to built-in `%s' ignored" msgstr "" -#: src/builtin.c:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, c-format msgid "Undefined syntax code %c" msgstr "" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "" @@ -121,49 +121,49 @@ msgstr "" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "" @@ -197,55 +197,55 @@ msgstr "" msgid "`%s' from frozen file not found in builtin table!" msgstr "" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" -#: src/m4.c:138 +#: src/m4.c:149 msgid "" "Mandatory or optional arguments to long options are mandatory or optional\n" "for short options too.\n" @@ -259,11 +259,11 @@ msgid "" " -P, --prefix-builtins force a `m4_' prefix to all builtins\n" msgstr "" -#: src/m4.c:151 +#: src/m4.c:162 msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" msgstr "" -#: src/m4.c:155 +#: src/m4.c:166 msgid "" "\n" "Preprocessor features:\n" @@ -273,7 +273,7 @@ msgid "" " -s, --synclines generate `#line NO \"FILE\"' lines\n" msgstr "" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -282,7 +282,7 @@ msgid "" " -L, --nesting-limit=NUMBER change artificial nesting limit\n" msgstr "" -#: src/m4.c:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -300,7 +300,7 @@ msgid "" " -o, --error-output=FILE redirect debug and trace output\n" msgstr "" -#: src/m4.c:184 +#: src/m4.c:195 msgid "" "\n" "FLAGS is any of:\n" @@ -317,24 +317,28 @@ msgid "" " V shorthand for all of the above flags\n" msgstr "" -#: src/m4.c:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" msgstr "" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "" @@ -359,7 +363,17 @@ msgstr "" msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "" -#: src/module.c:206 +#: src/module.c:312 +#, c-format +msgid "Module search for `%s' found `%s'" +msgstr "" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -384,16 +398,11 @@ msgstr "" msgid "Cannot stat diversion" msgstr "" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "" -#: src/path.c:253 -#, 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 Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4d\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "Let op: Te weinig argument voor ingebouwde functie `%s'" -#: src/builtin.c:335 +#: src/builtin.c:343 #, 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:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Niet numeriek argument voor ingebouwde functie `%s'" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "INTERNE FOUT: Onjuist teken data type in define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "Ongedefinieerde naam %s" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "INTERNE FOUT: Onjuist teken data type in m4_dumpdef ()" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "Ongedefinieerde macro `%s'" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "INTERNE FOUT: Onjuist symbool type in m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "Kan geen pijp openen voor commando `%s'" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Radix in evaluatie buiten bereik (radix = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "Negatieve breedte te evalueren" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "Niet numeriek argument voor %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "Cannot undivert %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, c-format msgid "Undefined syntax code %c" msgstr "Ongedefinieerde syntax code %c" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "Kan %s niet openen" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Debugmode: onjuiste debug vlaggen: `%s'" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "Kan fout bestand niet instellen: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "LET OP: \\0 zal verdwijnen, gebruik hiervoor \\& als vervanging" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "Onjuiste reguliere expressie `%s': %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "Fout overeenkomen reguliere expressies `%s'" @@ -123,49 +123,49 @@ msgstr "" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "INTERNE FOUT: Onjuiste teken data type (trace_pre ())" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "Onjuiste expressie in evaluatie (ontbrekend rechter haakje): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "Onjuist expressie in evaluatie: %s" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "Onjuist expressie in evaluatie (onjuiste invoer): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "Onjuist expressie in evaluatie (te veel invoer): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "Delen door nul in evaluatie: %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "Modulo door nul in evaluatie: %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "INTERNE FOUT: Onjuiste fout code in evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "INTERNE FOUT: Onjuiste vergelijkings operator in cmp_term ()" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "INTERNE FOUT: Onjuiste schuif operator in shift_term ()" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "INTERNE FOUT: Onjuiste operator in mult_term ()" @@ -199,55 +199,55 @@ msgstr "Voorbarig einde van gefixeerd bestand" msgid "`%s' from frozen file not found in builtin table!" msgstr "`%s' van gefixeerd bestand niet gevonden in functie tabel!" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "Invoer reverted naar %s, lijn %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "Invoer gelezen vanuit %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "INTERNE FOUT: Recursieve push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "INTERNE FOUT: Onjuiste aanroep naar init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "INTERNE FOUT: Invoer stapel botch in next_char ()" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "INTERNE FOUT: Invoer stapel botch in peek_input ()" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "GEEN" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "FOUT: Einde van bestand teken in string" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "FOUT: Stapel overflow. (Infinite define recursion?)" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Probeer `%s --help' voor meer informatie.\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Gebruik: %s [OPTIE]... [BESTAND]...\n" -#: src/m4.c:138 +#: src/m4.c:149 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:151 +#: src/m4.c:162 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:155 +#: src/m4.c:166 #, fuzzy msgid "" "\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:163 +#: src/m4.c:174 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:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 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:184 +#: src/m4.c:195 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:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -379,7 +379,7 @@ msgstr "" "\n" "Als geen BESTAND of als BESTAND `-' is, standaard invoer wordt gelezen.\n" -#: src/m4.c:204 +#: src/m4.c:215 #, fuzzy msgid "" "\n" @@ -388,12 +388,16 @@ msgstr "" "\n" "Meld fouten via <m4-bugs@gnu.org>.\n" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "Onjuiste debug vlaggen: `%s'" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "INTERNE FOUT: Onjuiste code in afgeleide argumenten" @@ -419,7 +423,17 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "" "FOUT: Recursie limiet of %d overschreden, gebruik -L<N> om dit te wijzigen" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "Zoeken naar `%s' via PATH levert `%s'" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -444,16 +458,11 @@ msgstr "FOUT: Lezen ingevoegd bestand" msgid "Cannot stat diversion" msgstr "Cannot stat diversion" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "Zoeken naar `%s' via PATH levert `%s'" -#: src/path.c:253 -#, 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 Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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" @@ -13,101 +13,101 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" -#: src/builtin.c:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "Uwaga: Za ma³o argumentów dla wbodowanego `%s'" -#: src/builtin.c:335 +#: src/builtin.c:343 #, 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:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Nienumeryczny argument do built-in `%s'" -#: src/builtin.c:474 +#: src/builtin.c:482 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:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "Niezdefiniowana nazwa %s" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!" -#: src/builtin.c:705 +#: src/builtin.c:713 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:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "Niezdefiniowane makro `%s'" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "B£¡D WEWNETRZNY: Z³y typ symbolu w m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "Nie mogê otworzyæ potoku do komendy `%s'" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Baza w eval poza zakresem (radix = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "Ujemna d³ugo¶æ w eval" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "Nienumeryczny argument dla %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "Nie mogê przetowrzyæ z powrotem %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "Niezdefiniowana nazwa %s" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "Nie mogê otworzyæ %s" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Tryb debugowania: z³e flagi debugowania: `%s'" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "Nie mogê ustawiæ pliku b³êdów: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "UWAGA: \\0 zniknie, w podstawieniach u¿yj zamiast tego \\&" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "B³êdne wyra¿enie regularne `%s': %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'" @@ -122,49 +122,49 @@ msgstr "" 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 +#: src/eval.c:309 #, 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 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "B³êdne wyra¿enie w eval: %s" -#: src/eval.c:308 +#: src/eval.c:320 #, 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 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "B³êdne wyra¿enie w eval (nadmiarowe dane): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "Dzielenie przez zero w eval: %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "Modulo zero w eval: %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "B£¡D WEWNÊTRZNY: B³êdny kod b³êdu w evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 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 +#: src/eval.c:639 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 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "B£¡D WEWNÊTRZNY: B³êdny opertaotr w mult_term ()" @@ -198,55 +198,55 @@ msgstr "Przedwczesny koniec pliku zamro¿onego" msgid "`%s' from frozen file not found in builtin table!" msgstr "`%s' z pliku zamro¿onego nie znalezione w tablicy wbudowanych!" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "Dane wej¶ciowe wycofane do %s, linia %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "Dane wej¶ciowe przeczytane z %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "B£¡D WEWNÊTRZNY: Rekursywny push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "B£¡D WEWNÊTRZNY: B³êdne wywo³anie init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 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:697 +#: src/input.c:700 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:800 +#: src/input.c:803 msgid "NONE" msgstr "¯ADEN" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "B£¡D: EOF w ³añcuchu" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "B£¡D: Przepe³nienie stosu. (Nieskoñczona rekursja definicji?)" -#: src/m4.c:133 +#: src/m4.c:144 #, 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 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "U¿ycie: %s [OPCJA]... [PLIK]...\n" -#: src/m4.c:138 +#: src/m4.c:149 msgid "" "Mandatory or optional arguments to long options are mandatory or optional\n" "for short options too.\n" @@ -272,11 +272,11 @@ msgstr "" " -P, --prefix-builtins dodaj zawsze `m4_' przez wszystkimi " "wbudowanymi\n" -#: src/m4.c:151 +#: src/m4.c:162 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 +#: src/m4.c:166 msgid "" "\n" "Preprocessor features:\n" @@ -292,7 +292,7 @@ msgstr "" " -U, --undefine=NAZWA skasuj wbudowan± NAZWÊ\n" " -s, --synclines generuj linie `#line NR \"PLIK\"\n" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -307,7 +307,7 @@ msgstr "" "symboli\n" " -L, --nesting-limit=LICZBA zmieñ sztuczny limit zag³ebieñ\n" -#: src/m4.c:170 +#: src/m4.c:181 msgid "" "\n" "Frozen state files:\n" @@ -319,7 +319,7 @@ msgstr "" " -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 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -335,7 +335,7 @@ msgstr "" " -l, --arglength=ILE ogranicz rozmiar ¶ledzenia makr\n" " -o, --error-output=PLIK przekieruj wyniki debugowania i ¶ledzenia\n" -#: src/m4.c:184 +#: src/m4.c:195 msgid "" "\n" "FLAGS is any of:\n" @@ -365,7 +365,7 @@ msgstr "" " i poka¿ zmiany plików wej¶ciowych\n" " V skrót do wszystkich powy¿szych flag\n" -#: src/m4.c:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -373,18 +373,22 @@ msgstr "" "\n" "Je¿eli brak PLIKu lub PLIK to `-', czytane jest std. wej¶cie.\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "B³êdne flagi debugowania: `%s'" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "B£¡D WEWNÊTRZNY: B³êdny kod w od³o¿onych argumentach" @@ -409,7 +413,17 @@ msgstr "B£¡D WEWNÊTRZNY: B³êdny symbol w call_macro ()" 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/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -434,16 +448,11 @@ msgstr "B£¡D: Czytanie w³o¿onego pliku" msgid "Cannot stat diversion" msgstr "Nie mogê zrobiæ stat na danych przetwarzanych" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'" -#: src/path.c:253 -#, 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 Binary files differ@@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\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:329 +#: src/builtin.c:337 #, c-format msgid "Warning: Too few arguments to built-in `%s'" msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: óÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s'" -#: src/builtin.c:335 +#: src/builtin.c:343 #, c-format msgid "Warning: Excess arguments to built-in `%s' ignored" msgstr "" "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: éÚÂÙÔÏÞÎÙÅ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s' " "ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ" -#: src/builtin.c:363 +#: src/builtin.c:371 #, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "îÅ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s'" -#: src/builtin.c:474 +#: src/builtin.c:482 msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ × define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, c-format msgid "Undefined name %s" msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ" -#: src/builtin.c:697 +#: src/builtin.c:705 msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "÷îõôòåîîññ ïûéâëá: ÷ÓÔÒÏÅÎÎÁÑ ÌÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ!" -#: src/builtin.c:705 +#: src/builtin.c:713 msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ × m4_dumpdef ()" -#: src/builtin.c:756 +#: src/builtin.c:764 #, c-format msgid "Undefined macro `%s'" msgstr "îÅÏÐÒÅÄÅÌÅÎÎÙÊ ÍÁËÒÏÓ '%s'" -#: src/builtin.c:794 +#: src/builtin.c:802 msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÓÉÍ×ÏÌÁ × m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, c-format msgid "Cannot open pipe to command `%s'" msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÎÁÌ ÄÌÑ ËÏÍÍÁÎÄÙ '%s'" -#: src/builtin.c:897 +#: src/builtin.c:908 #, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "òÁÄÉËÓ × ×ÙÒÁÖÅÎÉÉ ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ (radix = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 msgid "Negative width to eval" msgstr "ïÔÒÉÃÁÔÅÌØÎÁÑ ÛÉÒÉÎÁ" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, c-format msgid "Non-numeric argument to %s" msgstr "îÅ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, c-format msgid "Cannot undivert %s" msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÅÒÎÕÔØ ×Ù×ÏÄ ÉÚ %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, c-format msgid "Cannot open %s" msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "òÅÖÉÍ ÏÔÌÁÄËÉ: ÎÅ×ÅÒÎÙÊ ÆÌÁÇ ÏÔÌÁÄËÉ: '%s'" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, c-format msgid "Cannot set error file: %s" msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÚÎÁÞÉÔØ ÆÁÊÌ ÏÛÉÂÏË %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 msgid "WARNING: \\0 will disappear, use \\& instead in replacements" msgstr "ðòåäõðòåöäåîéå: \\0 ÉÓÞÅÚÎÅÔ, ÉÓÐÏÌØÚÕÊÔÅ \\& × ÚÁÍÅÎÁÈ" -#: src/builtin.c:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, c-format msgid "Bad regular expression `%s': %s" msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: '%s': %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, c-format msgid "Error matching regular expression `%s'" msgstr "ïÛÉÂËÁ ÓÏÐÏÓÔÁ×ÌÅÎÉÑ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ '%s'" @@ -121,49 +121,49 @@ msgstr "÷îõôòåîîññ ïûéâëá: ÷ÓÔÒÏÅÎÎÁÑ ÌÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ! (trace_pre ())" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ (trace_pre ())" -#: src/eval.c:297 +#: src/eval.c:309 #, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "îÅ×ÅÒÎÏÅ ×ÙÒÁÖÅÎÉÅ (ÏÔÓÕÔÓÔ×ÕÅÔ ÐÒÁ×ÙÅ ÓËÏÂËÉ): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, c-format msgid "Bad expression in eval: %s" msgstr "îÅ×ÅÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: %s" -#: src/eval.c:308 +#: src/eval.c:320 #, c-format msgid "Bad expression in eval (bad input): %s" msgstr "îÅ×ÅÒÎÏÅ ×ÙÒÁÖÅÎÉÅ (bad input): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, c-format msgid "Bad expression in eval (excess input): %s" msgstr "îÅ×ÅÒÎÏÅ ×ÙÒÁÖÅÎÉÅ (excess input): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, c-format msgid "Divide by zero in eval: %s" msgstr "äÅÌÅÎÉÅ ÎÁ ÎÏÌØ × ×ÙÒÁÖÅÎÉÉ: %s" -#: src/eval.c:323 +#: src/eval.c:335 #, c-format msgid "Modulo by zero in eval: %s" msgstr "íÏÄÕÌØÎÏÅ ÄÅÌÅÎÉÅ ÎÁ ÎÏÌØ × ×ÙÒÁÖÅÎÉÉ: %s" -#: src/eval.c:328 +#: src/eval.c:340 msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ËÏÄ ÏÛÉÂËÉ × evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÏÅ ÓÒÁ×ÎÅÎÉÅ × cmp_term ()" -#: src/eval.c:627 +#: src/eval.c:639 msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÏÐÅÒÁÔÏÒ ÓÄ×ÉÇÁ × shift_term ()" -#: src/eval.c:726 +#: src/eval.c:738 msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÏÐÅÒÁÔÏÒ × mult_term ()" @@ -197,55 +197,55 @@ msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ" msgid "`%s' from frozen file not found in builtin table!" msgstr "'%s' ÉÚ ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ ÎÅ ÎÁÊÄÅÎÁ ×Ï ×ÓÔÒÏÅÎÎÏÊ ÔÁÂÌÉÃÅ!" -#: src/input.c:315 +#: src/input.c:318 #, c-format msgid "Input reverted to %s, line %d" msgstr "÷×ÏÄ ÐÅÒÅÎÁÐÒÁ×ÌÅÎ × %s , ÓÔÒÏËÁ %d" -#: src/input.c:343 +#: src/input.c:346 #, c-format msgid "Input read from %s" msgstr "÷×ÏÄ ÉÚ %s" -#: src/input.c:503 +#: src/input.c:506 msgid "INTERNAL ERROR: Recursive push_string!" msgstr "÷îõôòåîîññ ïûéâëá: òÅËÕÒÓÉ×ÎÁÑ push_string!" -#: src/input.c:620 +#: src/input.c:623 msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ×ÙÚÏ× init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × next_char ()" -#: src/input.c:697 +#: src/input.c:700 msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × peek_input ()" -#: src/input.c:800 +#: src/input.c:803 msgid "NONE" msgstr "îéþåçï" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 msgid "ERROR: EOF in string" msgstr "ïûéâëá: ëÏÎÅà ÆÁÊÌÁ × ÓÔÒÏËÅ" -#: src/m4.c:106 +#: src/m4.c:117 msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "ïûéâëá: ðÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ. (âÅÓËÏÎÅÞÎÏÅ ÒÅËÕÒÓÉ×ÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ?)" -#: src/m4.c:133 +#: src/m4.c:144 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "ðÏÐÒÏÂÕÊÔÅ '%s --help' ÄÌÑ ÉÎÆÏÒÍÁÃÉÉ.\n" -#: src/m4.c:137 +#: src/m4.c:148 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [OPTION]... [FILE]...\n" -#: src/m4.c:138 +#: src/m4.c:149 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:151 +#: src/m4.c:162 msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" msgstr "" " -W, --word-regexp=REGEXP ÉÓÐÏÌØÚÏ×ÁÔØ REGEXP ÄÌÑ ÓÉÎÔÁËÓÉÓÁ ÉÍÅÎ " "ÍÁËÒÏÓÏ×\n" -#: src/m4.c:155 +#: src/m4.c:166 #, fuzzy msgid "" "\n" @@ -295,7 +295,7 @@ msgstr "" " -U, --undefine=NAME ÕÄÁÌÉÔØ ×ÓÔÒÏÅÎÎÕÀ ÆÕÎËÃÉÀ NAME\n" " -s, --synclines ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÔÒÏËÉ `#line NO \"FILE\"'\n" -#: src/m4.c:163 +#: src/m4.c:174 msgid "" "\n" "Limits control:\n" @@ -311,7 +311,7 @@ msgstr "" " -L, --nesting-limit=NUMBER ÉÚÍÅÎÉÔØ ÐÒÅÄÅÌ ÇÌÕÂÉÎÙ ÉÎÔÅÌÅËÔÕÁÌØÎÏÇÏ " "ÐÏÉÓËÁ\n" -#: src/m4.c:170 +#: src/m4.c:181 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:176 +#: src/m4.c:187 msgid "" "\n" "Debugging:\n" @@ -341,7 +341,7 @@ msgstr "" " -o, --error-output=FILE ÐÅÒÅÎÁÐÒÁ×ÉÔØ ÏÔÌÁÄÏÞÎÙÊ É ÔÒÁÓÓÉÒÏ×ÏÞÎÙÊ " "×Ù×ÏÄ × ÆÁÊÌ FILE\n" -#: src/m4.c:184 +#: src/m4.c:195 msgid "" "\n" "FLAGS is any of:\n" @@ -372,7 +372,7 @@ msgstr "" " i ÐÏËÁÚÙ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ×Ï ×ÈÏÄÎÙÈ ÆÁÊÌÁÈ\n" " V ÓÏËÒÁÝÅÎÉÅ ÄÌÑ ×ÓÅÈ ÆÌÁÇÏ× ×ÍÅÓÔÅ\n" -#: src/m4.c:199 +#: src/m4.c:210 msgid "" "\n" "If no FILE or if FILE is `-', standard input is read.\n" @@ -380,18 +380,22 @@ msgstr "" "\n" "åÓÌÉ FILE ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÉÌÉ FILE ÜÔÏ `-', ÉÓÐÏÌØÚÕÅÔÓÑ ÓÔÁÎÄÁÒÔÎÙÊ ×ÈÏÄ.\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, c-format msgid "Bad debug flags: `%s'" msgstr "îÅ×ÅÒÎÙÊ ÆÌÁÇ ÏÔÌÁÄËÉ: '%s'" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ËÏÄ × ËÏÓ×ÅÎÎÙÈ ÁÒÇÕÍÅÎÔÁÈ" @@ -417,7 +421,17 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "" "ïûéâëá: ìÉÍÉÔ ÒÅËÕÒÓÉÉ %d ÉÓÞÅÒÐÁÎ, ÉÓÐÏÌØÚÕÊÔÅ -L<N> ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÅÇÏ" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "ðÕÔØ ÐÏÉÓËÁ ÄÌÑ `%s' ÎÁÊÄÅÎ `%s'" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -442,16 +456,11 @@ msgstr "ïûéâëá: þÉÔÁÀ ×ÓÔÁ×ÌÅÎÎÙÊ ÆÁÊÌ" msgid "Cannot stat diversion" msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÄÓÞÉÔÁÔØ ÒÁÚ×ÅÔ×ÌÅÎÉÅ" -#: src/path.c:170 +#: src/path.c:157 #, c-format msgid "Path search for `%s' found `%s'" msgstr "ðÕÔØ ÐÏÉÓËÁ ÄÌÑ `%s' ÎÁÊÄÅÎ `%s'" -#: src/path.c:253 -#, 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 Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-11-18 12:55+0100\n" +"POT-Creation-Date: 1998-11-29 04:20+0100\n" "PO-Revision-Date: $Date$\n" "Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n" "Language-Team: Swedish <sv@li.org>\n" @@ -14,107 +14,107 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" -#: src/builtin.c:329 +#: src/builtin.c:337 #, 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:335 +#: src/builtin.c:343 #, fuzzy, c-format msgid "Warning: Excess arguments to built-in `%s' ignored" msgstr "Varning: Överskottsargument till inbyggt makro \"%s\" ignorerade" -#: src/builtin.c:363 +#: src/builtin.c:371 #, fuzzy, c-format msgid "Non-numeric argument to built-in `%s'" msgstr "Ickenumeriskt argument till inbyggt makro \"%s\"" -#: src/builtin.c:474 +#: src/builtin.c:482 #, fuzzy msgid "INTERNAL ERROR: Bad token data type in define_macro ()" msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i define_macro ()" -#: src/builtin.c:669 src/builtin.c:732 src/builtin.c:1358 src/builtin.c:1382 +#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407 #, fuzzy, c-format msgid "Undefined name %s" msgstr "Odefinierat namn \"%s\"" -#: src/builtin.c:697 +#: src/builtin.c:705 #, fuzzy msgid "INTERNAL ERROR: Builtin not found in builtin table!" msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!" -#: src/builtin.c:705 +#: src/builtin.c:713 #, fuzzy msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i m4_dumpdef ()" -#: src/builtin.c:756 +#: src/builtin.c:764 #, fuzzy, c-format msgid "Undefined macro `%s'" msgstr "Odefinierat makro \"%s\"" -#: src/builtin.c:794 +#: src/builtin.c:802 #, fuzzy msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" msgstr "INTERNT FEL: Otillåten symboltyp i m4_defn ()" -#: src/builtin.c:860 +#: src/builtin.c:868 #, fuzzy, c-format msgid "Cannot open pipe to command `%s'" msgstr "Kan inte skapa rör till kommandot \"%s\"" -#: src/builtin.c:897 +#: src/builtin.c:908 #, fuzzy, c-format msgid "Radix in eval out of range (radix = %d)" msgstr "Otillåten bas i \"eval\" (bas = %d)" -#: src/builtin.c:906 +#: src/builtin.c:917 #, fuzzy msgid "Negative width to eval" msgstr "Negativ bredd till \"eval\"" -#: src/builtin.c:998 +#: src/builtin.c:1023 #, fuzzy, c-format msgid "Non-numeric argument to %s" msgstr "Ickenumeriskt argument till %s" -#: src/builtin.c:1010 +#: src/builtin.c:1035 #, fuzzy, c-format msgid "Cannot undivert %s" msgstr "Kan inte återleda %s" -#: src/builtin.c:1158 +#: src/builtin.c:1183 #, fuzzy, c-format msgid "Undefined syntax code %c" msgstr "Odefinierat namn \"%s\"" -#: src/builtin.c:1209 src/freeze.c:207 +#: src/builtin.c:1234 src/freeze.c:207 #, fuzzy, c-format msgid "Cannot open %s" msgstr "Kan inte öppna %s" -#: src/builtin.c:1418 +#: src/builtin.c:1443 #, fuzzy, c-format msgid "Debugmode: bad debug flags: `%s'" msgstr "Felsökningsläge: okänd flagga: \"%s\"" -#: src/builtin.c:1454 +#: src/builtin.c:1479 #, fuzzy, c-format msgid "Cannot set error file: %s" msgstr "Kan inte sätta felutskriftsfil: %s" -#: src/builtin.c:1671 +#: src/builtin.c:1696 #, 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:1732 src/builtin.c:1792 src/input.c:1009 +#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012 #, fuzzy, c-format msgid "Bad regular expression `%s': %s" msgstr "Otillåtet reguljäruttryck \"%s\": %s" -#: src/builtin.c:1743 src/builtin.c:1816 +#: src/builtin.c:1768 src/builtin.c:1841 #, fuzzy, c-format msgid "Error matching regular expression `%s'" msgstr "Reguljäruttrycket \"%s\" matchar inte" @@ -129,52 +129,52 @@ msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen (trace_pre ())" msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" msgstr "INTERNT FEL: Otillåten lexikalisk datatyp (trace_pre ())" -#: src/eval.c:297 +#: src/eval.c:309 #, fuzzy, c-format msgid "Bad expression in eval (missing right parenthesis): %s" msgstr "Otillåtet uttryck i \"eval\" (högerparentes saknas): %s" -#: src/eval.c:303 +#: src/eval.c:315 #, fuzzy, c-format msgid "Bad expression in eval: %s" msgstr "Otillåtet uttryck i \"eval\": %s" -#: src/eval.c:308 +#: src/eval.c:320 #, fuzzy, c-format msgid "Bad expression in eval (bad input): %s" msgstr "Otillåtet uttryck i \"eval\" (otillåtet indata): %s" -#: src/eval.c:313 +#: src/eval.c:325 #, fuzzy, c-format msgid "Bad expression in eval (excess input): %s" msgstr "Otillåtet uttryck i \"eval\" (för mycket indata): %s" -#: src/eval.c:318 +#: src/eval.c:330 #, fuzzy, c-format msgid "Divide by zero in eval: %s" msgstr "Division med noll i \"eval\": %s" -#: src/eval.c:323 +#: src/eval.c:335 #, fuzzy, c-format msgid "Modulo by zero in eval: %s" msgstr "Modulo med noll i \"eval\": %s" -#: src/eval.c:328 +#: src/eval.c:340 #, fuzzy msgid "INTERNAL ERROR: Bad error code in evaluate ()" msgstr "INTERNT FEL: Otillåten felkod i evaluate ()" -#: src/eval.c:582 +#: src/eval.c:594 #, fuzzy msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" msgstr "INTERNT FEL: Otillåten jämförelseoperator i cmp_term ()" -#: src/eval.c:627 +#: src/eval.c:639 #, fuzzy msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" msgstr "INTERNT FEL: Otillåten skiftoperator i shift_term ()" -#: src/eval.c:726 +#: src/eval.c:738 #, fuzzy msgid "INTERNAL ERROR: Bad operator in mult_term ()" msgstr "INTERNT FEL: Otillåten operator i mult_term ()" @@ -214,62 +214,62 @@ msgstr "För tidigt filslut i fryst fil" msgid "`%s' from frozen file not found in builtin table!" msgstr "\"%s\" från fryst fil hittades inte i tabellen för inbyggda makron!" -#: src/input.c:315 +#: src/input.c:318 #, fuzzy, c-format msgid "Input reverted to %s, line %d" msgstr "Indata återgår till %s, rad %d" -#: src/input.c:343 +#: src/input.c:346 #, fuzzy, c-format msgid "Input read from %s" msgstr "Indata läses från %s" -#: src/input.c:503 +#: src/input.c:506 #, fuzzy msgid "INTERNAL ERROR: Recursive push_string!" msgstr "INTERNT FEL: Rekursiv push_string!" -#: src/input.c:620 +#: src/input.c:623 #, fuzzy msgid "INTERNAL ERROR: Bad call to init_macro_token ()" msgstr "INTERNT FEL: Otillåtet anrop till init_macro_token ()" -#: src/input.c:660 +#: src/input.c:663 #, fuzzy msgid "INTERNAL ERROR: Input stack botch in next_char ()" msgstr "INTERNT FEL: Instacken havererade i next_char ()" -#: src/input.c:697 +#: src/input.c:700 #, fuzzy msgid "INTERNAL ERROR: Input stack botch in peek_input ()" msgstr "INTERNT FEL: Instacken havererade i peek_input ()" -#: src/input.c:800 +#: src/input.c:803 #, fuzzy msgid "NONE" msgstr "INGET" -#: src/input.c:1193 src/input.c:1220 +#: src/input.c:1197 src/input.c:1224 #, fuzzy msgid "ERROR: EOF in string" msgstr "FEL: Filslut i sträng" -#: src/m4.c:106 +#: src/m4.c:117 #, fuzzy msgid "ERROR: Stack overflow. (Infinite define recursion?)" msgstr "FEL: Stacken flödar över. (Oändlig rekursion?)" -#: src/m4.c:133 +#: src/m4.c:144 #, 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:137 +#: src/m4.c:148 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Användning: %s [FLAGGA]... [FIL]...\n" -#: src/m4.c:138 +#: src/m4.c:149 #, 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:151 +#: src/m4.c:162 #, 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:155 +#: src/m4.c:166 #, fuzzy msgid "" "\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:163 +#: src/m4.c:174 #, 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:170 +#: src/m4.c:181 #, 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:176 +#: src/m4.c:187 #, fuzzy msgid "" "\n" @@ -364,7 +364,7 @@ msgstr "" " -o, --error-output=FIL avled felsöknings och spårutskrifter till " "FIL\n" -#: src/m4.c:184 +#: src/m4.c:195 #, 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:199 +#: src/m4.c:210 #, fuzzy msgid "" "\n" @@ -404,18 +404,22 @@ msgstr "" "\n" "Om ingen FIL anges eller om FIL är `-', så läses standard in.\n" -#: src/m4.c:204 +#: src/m4.c:215 msgid "" "\n" "Report bugs to <bug-m4@gnu.org>.\n" msgstr "" -#: src/m4.c:368 +#: src/m4.c:388 #, fuzzy, c-format msgid "Bad debug flags: `%s'" msgstr "Okänd felsökningsflagga \"%s\"" -#: src/m4.c:447 +#: src/m4.c:417 +msgid " (options:" +msgstr "" + +#: src/m4.c:500 #, fuzzy msgid "INTERNAL ERROR: Bad code in deferred arguments" msgstr "INTERNT FEL: Otillåten kod i argument" @@ -445,7 +449,17 @@ msgstr "INTERNT FEL: Otillåten symboltyp i call_macro ()" msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" msgstr "FEL: Rekursionsgräns %d överskriden, använd -L<N> för att ändra" -#: src/module.c:206 +#: src/module.c:312 +#, fuzzy, c-format +msgid "Module search for `%s' found `%s'" +msgstr "\"%s\" hittades som \"%s\" i sökvägen" + +#: src/module.c:349 +#, c-format +msgid "ERROR: cannot find module `%s': %s" +msgstr "" + +#: src/module.c:353 #, c-format msgid "ERROR: cannot find module `%s'" msgstr "" @@ -475,16 +489,11 @@ msgstr "FEL: Läsning av insatt fil" msgid "Cannot stat diversion" msgstr "Kan inte ta status på avledningen" -#: src/path.c:170 +#: src/path.c:157 #, fuzzy, c-format msgid "Path search for `%s' found `%s'" msgstr "\"%s\" hittades som \"%s\" i sökvägen" -#: src/path.c:253 -#, 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 e659e068..91966697 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,12 +8,14 @@ MODULE_PATH=@MODULE_PATH@ bin_PROGRAMS = m4 -INCLUDES = -I$(top_srcdir)/lib +INCLUDES = -I$(top_srcdir)/lib @INTLINCL@ -m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c numb.c numb.h \ +m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c \ format.c freeze.c input.c macro.c output.c path.c symtab.c \ stackovf.c module.c +EXTRA_m4_SOURCES = numb.c numb.h + m4_LDADD = ../lib/libm4.a @INTLLIBS@ m4_LDFLAGS = @DLLDFLAGS@ diff --git a/src/Makefile.in b/src/Makefile.in index 657bb757..a2bcb465 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -74,6 +74,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ @@ -107,12 +108,14 @@ MODULE_PATH=@MODULE_PATH@ bin_PROGRAMS = m4 -INCLUDES = -I$(top_srcdir)/lib +INCLUDES = -I$(top_srcdir)/lib @INTLINCL@ -m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c numb.c numb.h \ +m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c \ format.c freeze.c input.c macro.c output.c path.c symtab.c \ stackovf.c module.c +EXTRA_m4_SOURCES = numb.c numb.h + m4_LDADD = ../lib/libm4.a @INTLLIBS@ m4_LDFLAGS = @DLLDFLAGS@ @@ -127,9 +130,9 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ 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 module$U.o +m4_OBJECTS = m4$U.o builtin$U.o debug$U.o eval$U.o evalmp$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 module$U.o m4_DEPENDENCIES = ../lib/libm4.a COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -141,7 +144,7 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP = --best -SOURCES = $(m4_SOURCES) +SOURCES = $(m4_SOURCES) $(EXTRA_m4_SOURCES) OBJECTS = $(m4_OBJECTS) all: Makefile $(ANSI2KNR) $(PROGRAMS) @@ -250,6 +253,8 @@ debug_.c: debug.c $(ANSI2KNR) $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/debug.c; then echo $(srcdir)/debug.c; else echo debug.c; fi` | $(ANSI2KNR) > debug_.c eval_.c: eval.c $(ANSI2KNR) $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/eval.c; then echo $(srcdir)/eval.c; else echo eval.c; fi` | $(ANSI2KNR) > eval_.c +evalmp_.c: evalmp.c $(ANSI2KNR) + $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/evalmp.c; then echo $(srcdir)/evalmp.c; else echo evalmp.c; fi` | $(ANSI2KNR) > evalmp_.c format_.c: format.c $(ANSI2KNR) $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/format.c; then echo $(srcdir)/format.c; else echo format.c; fi` | $(ANSI2KNR) > format_.c freeze_.c: freeze.c $(ANSI2KNR) @@ -272,11 +277,11 @@ stackovf_.c: stackovf.c $(ANSI2KNR) $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stackovf.c; then echo $(srcdir)/stackovf.c; else echo stackovf.c; fi` | $(ANSI2KNR) > stackovf_.c 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 builtin_.lo debug_.o debug_.lo eval_.o eval_.lo format_.o \ -format_.lo freeze_.o freeze_.lo input_.o input_.lo m4_.o m4_.lo \ -macro_.o macro_.lo module_.o module_.lo numb_.o numb_.lo output_.o \ -output_.lo path_.o path_.lo stackovf_.o stackovf_.lo symtab_.o \ -symtab_.lo : $(ANSI2KNR) +builtin_.o builtin_.lo debug_.o debug_.lo eval_.o eval_.lo evalmp_.o \ +evalmp_.lo format_.o format_.lo freeze_.o freeze_.lo input_.o input_.lo \ +m4_.o m4_.lo macro_.o macro_.lo module_.o module_.lo numb_.o numb_.lo \ +output_.o output_.lo path_.o path_.lo stackovf_.o stackovf_.lo \ +symtab_.o symtab_.lo : $(ANSI2KNR) tags: TAGS @@ -317,13 +322,18 @@ distdir: $(DISTFILES) 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 +eval.o: eval.c m4.h ../config.h ../lib/obstack.h numb.c numb.h +evalmp.o: evalmp.c m4.h ../config.h ../lib/obstack.h eval.c numb.c \ + numb.h format.o: format.c m4.h ../config.h ../lib/obstack.h freeze.o: freeze.c m4.h ../config.h ../lib/obstack.h -input.o: input.c m4.h ../config.h ../lib/obstack.h ../lib/regex.h -m4.o: m4.c m4.h ../config.h ../lib/obstack.h ../lib/getopt.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 \ + ../lib/error.h macro.o: macro.c m4.h ../config.h ../lib/obstack.h -module.o: module.c m4.h ../config.h ../lib/obstack.h +module.o: module.c m4.h ../config.h ../lib/obstack.h pathconf.h +mpeval.o: mpeval.c m4.h ../config.h ../lib/obstack.h eval.c numb.c \ + numb.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 27665811..1e09ff8d 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -65,6 +65,9 @@ DECLARE (m4_loadmodule); DECLARE (m4_m4exit); DECLARE (m4_m4wrap); DECLARE (m4_maketemp); +#ifdef WITH_GMP +DECLARE (m4_mpeval); +#endif /* WITH_GMP */ DECLARE (m4_patsubst); DECLARE (m4_popdef); DECLARE (m4_pushdef); @@ -124,6 +127,9 @@ builtin_tab[] = { "m4exit", FALSE, FALSE, FALSE, m4_m4exit }, { "m4wrap", FALSE, FALSE, FALSE, m4_m4wrap }, { "maketemp", FALSE, FALSE, TRUE, m4_maketemp }, +#ifdef WITH_GMP + { "mpeval", TRUE, FALSE, TRUE, m4_mpeval }, +#endif /* WITH_GMP */ { "patsubst", TRUE, FALSE, TRUE, m4_patsubst }, { "popdef", FALSE, FALSE, TRUE, m4_popdef }, { "pushdef", FALSE, TRUE, TRUE, m4_pushdef }, @@ -253,16 +259,18 @@ install_builtin_table (builtin *table) 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); + { + 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); + } } @@ -879,8 +887,11 @@ m4_sysval (struct obstack *obs, int argc, token_data **argv) | actual work is done in the function evaluate (), which lives in eval.c. | `-------------------------------------------------------------------------*/ +typedef boolean (*eval_func)(struct obstack *obs, const char *expr, + const int radix, int min); + static void -m4_eval (struct obstack *obs, int argc, token_data **argv) +do_eval (struct obstack *obs, int argc, token_data **argv, eval_func func) { int radix = 10; int min = 1; @@ -907,11 +918,25 @@ m4_eval (struct obstack *obs, int argc, token_data **argv) return; } - if (evaluate (obs, ARG (1), radix, min)) + if ((*func) (obs, ARG (1), radix, min)) return; } static void +m4_eval (struct obstack *obs, int argc, token_data **argv) +{ + do_eval(obs, argc, argv, evaluate); +} + +#ifdef WITH_GMP +static void +m4_mpeval (struct obstack *obs, int argc, token_data **argv) +{ + do_eval(obs, argc, argv, mp_evaluate); +} +#endif /* WITH_GMP */ + +static void m4_incr (struct obstack *obs, int argc, token_data **argv) { int value; @@ -1854,7 +1879,7 @@ void expand_user_macro (struct obstack *obs, symbol *sym, int argc, token_data **argv) { - const char *text; + const unsigned char *text; int i; for (text = SYMBOL_TEXT (sym); *text != '\0';) @@ -21,8 +21,20 @@ its own scanner, and a recursive descent parser. The only entry point is evaluate (). */ +/* If configured --with-gmp this file is compiled twice. For the normal + eval() it is compiled without -DUSE_GMP, for the gmp enhanced eval() + it is compiled with -DUSE_GMP (and implicitly -DWITH_GMP). */ + +/* Everything in this file and in numb.c should be declared static, + except evaluate, handled here. */ + +#ifdef USE_GMP +#define evaluate mp_evaluate +#endif + #include "m4.h" -#include "numb.h" + +#include "numb.c" /* Evaluates token types. */ @@ -75,14 +87,14 @@ static eval_error simple_term __P ((eval_token, eval_t *)); `--------------------*/ /* Pointer to next character of input text. */ -static const char *eval_text; +static const unsigned char *eval_text; /* Value of eval_text, from before last call of eval_lex (). This is so we can back up, if we have read too much. */ -static const char *last_text; +static const unsigned char *last_text; static void -eval_init_lex (const char *text) +eval_init_lex (const unsigned char *text) { eval_text = text; last_text = NULL; @@ -824,3 +836,4 @@ simple_term (eval_token et, eval_t *v1) } return NO_ERROR; } + diff --git a/src/evalmp.c b/src/evalmp.c new file mode 100644 index 00000000..5c48b8db --- /dev/null +++ b/src/evalmp.c @@ -0,0 +1,27 @@ +/* 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. +*/ + +/* This file is used to compile the gmp aware version of eval() */ + +#include "m4.h" + +#ifdef WITH_GMP +#define USE_GMP + +#include "eval.c" +#endif diff --git a/src/format.c b/src/format.c index f8107c05..b7af604a 100644 --- a/src/format.c +++ b/src/format.c @@ -117,7 +117,7 @@ format (struct obstack *obs, int argc, token_data **argv) { #ifdef HAVE_EFGCVT - const char *fmt; /* format control string */ + const unsigned char *fmt; /* format control string */ int c; /* a simple character */ char fc; /* format code */ diff --git a/src/input.c b/src/input.c index fdf385f2..bed8d9e6 100644 --- a/src/input.c +++ b/src/input.c @@ -20,8 +20,11 @@ #include "m4.h" -#define DEBUG_INPUT_ -#define DEBUG_SYNTAX_ +#define DEBUG_INPUT +#undef DEBUG_INPUT + +#define DEBUG_SYNTAX +#undef DEBUG_SYNTAX /* Unread input can be either files, that should be read (eg. included @@ -1055,231 +1058,232 @@ next_token (token_data *td) char *orig_text = 0; #endif - obstack_free (&token_stack, token_bottom); - obstack_1grow (&token_stack, '\0'); - token_bottom = obstack_finish (&token_stack); + do { + obstack_free (&token_stack, token_bottom); + obstack_1grow (&token_stack, '\0'); + token_bottom = obstack_finish (&token_stack); - ch = peek_input (); - if (ch == CHAR_EOF) /* EOF */ - { + ch = peek_input (); + if (ch == CHAR_EOF) /* EOF */ + { #ifdef DEBUG_INPUT - fprintf (stderr, "next_token -> EOF\n"); + fprintf (stderr, "next_token -> EOF\n"); #endif - return TOKEN_EOF; - } + return TOKEN_EOF; + } - if (ch == CHAR_MACRO) /* MACRO TOKEN */ - { - init_macro_token (td); - (void) next_char (); + if (ch == CHAR_MACRO) /* MACRO TOKEN */ + { + init_macro_token (td); + (void) next_char (); #ifdef DEBUG_INPUT - print_token("next_token", TOKEN_MACDEF, td); + print_token("next_token", TOKEN_MACDEF, td); #endif - return TOKEN_MACDEF; - } + return TOKEN_MACDEF; + } - (void) next_char (); - if (IS_BCOMM(ch)) /* COMMENT, SHORT DELIM */ - { - obstack_1grow (&token_stack, ch); - while ((ch = next_char ()) != CHAR_EOF && !IS_ECOMM(ch)) + (void) next_char (); + if (IS_BCOMM(ch)) /* COMMENT, SHORT DELIM */ + { obstack_1grow (&token_stack, ch); - if (ch != CHAR_EOF) - obstack_1grow (&token_stack, ch); - type = TOKEN_STRING; - } - /* COMMENT, LONGER DELIM */ - else if (!single_comments && MATCH (ch, bcomm.string)) - { - obstack_grow (&token_stack, bcomm.string, bcomm.length); - while ((ch = next_char ()) != CHAR_EOF && !MATCH (ch, ecomm.string)) + while ((ch = next_char ()) != CHAR_EOF && !IS_ECOMM(ch)) + obstack_1grow (&token_stack, ch); + if (ch != CHAR_EOF) + obstack_1grow (&token_stack, ch); + type = discard_comments ? TOKEN_NONE : TOKEN_STRING; + } + /* COMMENT, LONGER DELIM */ + else if (!single_comments && MATCH (ch, bcomm.string)) + { + obstack_grow (&token_stack, bcomm.string, bcomm.length); + while ((ch = next_char ()) != CHAR_EOF && !MATCH (ch, ecomm.string)) + obstack_1grow (&token_stack, ch); + if (ch != CHAR_EOF) + obstack_grow (&token_stack, ecomm.string, ecomm.length); + type = discard_comments ? TOKEN_NONE : TOKEN_STRING; + } + else if (IS_ESCAPE(ch)) /* ESCAPED WORD */ + { obstack_1grow (&token_stack, ch); - if (ch != CHAR_EOF) - obstack_grow (&token_stack, ecomm.string, ecomm.length); - type = TOKEN_STRING; - } - else if (IS_ESCAPE(ch)) /* ESCAPED WORD */ - { - obstack_1grow (&token_stack, ch); - if ((ch = next_char ()) != CHAR_EOF) - { - if (IS_ALPHA(ch)) - { - obstack_1grow (&token_stack, ch); - while ((ch = next_char ()) != CHAR_EOF && (IS_ALNUM(ch))) - { - obstack_1grow (&token_stack, ch); - } - - if (ch != CHAR_EOF) - unget_input(ch); - } - else - { - obstack_1grow (&token_stack, ch); - } - - type = TOKEN_WORD; - } - else - { - type = TOKEN_SIMPLE; /* escape before eof */ - } - } - else if ( + if ((ch = next_char ()) != CHAR_EOF) + { + if (IS_ALPHA(ch)) + { + obstack_1grow (&token_stack, ch); + while ((ch = next_char ()) != CHAR_EOF && (IS_ALNUM(ch))) + { + obstack_1grow (&token_stack, ch); + } + + if (ch != CHAR_EOF) + unget_input(ch); + } + else + { + obstack_1grow (&token_stack, ch); + } + + type = TOKEN_WORD; + } + else + { + type = TOKEN_SIMPLE; /* escape before eof */ + } + } + else if ( #ifdef ENABLE_CHANGEWORD - default_word_regexp && + default_word_regexp && #endif - (IS_ALPHA (ch))) - { - obstack_1grow (&token_stack, ch); - while ((ch = next_char ()) != CHAR_EOF && (IS_ALNUM(ch))) - { - obstack_1grow (&token_stack, ch); - } - if (ch != CHAR_EOF) - unget_input(ch); + (IS_ALPHA (ch))) + { + obstack_1grow (&token_stack, ch); + while ((ch = next_char ()) != CHAR_EOF && (IS_ALNUM(ch))) + { + obstack_1grow (&token_stack, ch); + } + if (ch != CHAR_EOF) + unget_input(ch); - type = use_macro_escape ? TOKEN_STRING : TOKEN_WORD; - } + type = use_macro_escape ? TOKEN_STRING : TOKEN_WORD; + } #ifdef ENABLE_CHANGEWORD - else if (!default_word_regexp && strchr (word_start, ch)) - { - obstack_1grow (&token_stack, ch); - while (1) - { - ch = peek_input (); - if (ch == CHAR_EOF) - break; - obstack_1grow (&token_stack, ch); - startpos = re_search (&word_regexp, obstack_base (&token_stack), - obstack_object_size (&token_stack), 0, 0, - ®s); - if (startpos != 0 || - regs.end [0] != obstack_object_size (&token_stack)) - { - *(((char *) obstack_base (&token_stack) - + obstack_object_size (&token_stack)) - 1) = '\0'; + else if (!default_word_regexp && strchr (word_start, ch)) + { + obstack_1grow (&token_stack, ch); + while (1) + { + ch = peek_input (); + if (ch == CHAR_EOF) break; - } - next_char (); - } + obstack_1grow (&token_stack, ch); + startpos = re_search (&word_regexp, obstack_base (&token_stack), + obstack_object_size (&token_stack), 0, 0, + ®s); + if (startpos != 0 || + regs.end [0] != obstack_object_size (&token_stack)) + { + *(((char *) obstack_base (&token_stack) + + obstack_object_size (&token_stack)) - 1) = '\0'; + break; + } + next_char (); + } - obstack_1grow (&token_stack, '\0'); - orig_text = obstack_finish (&token_stack); + obstack_1grow (&token_stack, '\0'); + orig_text = obstack_finish (&token_stack); - if (regs.start[1] != -1) - obstack_grow (&token_stack,orig_text + regs.start[1], - regs.end[1] - regs.start[1]); - else - obstack_grow (&token_stack, orig_text,regs.end[0]); + if (regs.start[1] != -1) + obstack_grow (&token_stack,orig_text + regs.start[1], + regs.end[1] - regs.start[1]); + else + obstack_grow (&token_stack, orig_text,regs.end[0]); - type = TOKEN_WORD; - } + type = TOKEN_WORD; + } #endif /* ENABLE_CHANGEWORD */ - else if (IS_LQUOTE(ch)) /* QUOTED STRING, SINGLE QUOTES */ - { - quote_level = 1; - while (1) - { - ch = next_char (); - if (ch == CHAR_EOF) - M4ERROR ((EXIT_FAILURE, 0, - _("ERROR: EOF in string"))); - - if (IS_RQUOTE(ch)) - { - if (--quote_level == 0) - break; + else if (IS_LQUOTE(ch)) /* QUOTED STRING, SINGLE QUOTES */ + { + quote_level = 1; + while (1) + { + ch = next_char (); + if (ch == CHAR_EOF) + M4ERROR ((EXIT_FAILURE, 0, + _("ERROR: EOF in string"))); + + if (IS_RQUOTE(ch)) + { + if (--quote_level == 0) + break; + obstack_1grow (&token_stack, ch); + } + else if (IS_LQUOTE(ch)) + { + quote_level++; + obstack_1grow (&token_stack, ch); + } + else obstack_1grow (&token_stack, ch); - } - else if (IS_LQUOTE(ch)) - { - quote_level++; + } + type = TOKEN_STRING; + } + /* QUOTED STRING, LONGER QUOTES */ + else if (!single_quotes && MATCH (ch, lquote.string)) + { + quote_level = 1; + while (1) + { + ch = next_char (); + if (ch == CHAR_EOF) + M4ERROR ((EXIT_FAILURE, 0, + _("ERROR: EOF in string"))); + + if (MATCH (ch, rquote.string)) + { + if (--quote_level == 0) + break; + obstack_grow (&token_stack, rquote.string, rquote.length); + } + else if (MATCH (ch, lquote.string)) + { + quote_level++; + obstack_grow (&token_stack, lquote.string, lquote.length); + } + else obstack_1grow (&token_stack, ch); - } - else - obstack_1grow (&token_stack, ch); - } - type = TOKEN_STRING; - } - /* QUOTED STRING, LONGER QUOTES */ - else if (!single_quotes && MATCH (ch, lquote.string)) - { - quote_level = 1; - while (1) - { - ch = next_char (); - if (ch == CHAR_EOF) - M4ERROR ((EXIT_FAILURE, 0, - _("ERROR: EOF in string"))); + } + type = TOKEN_STRING; + } + else if (single_quotes && single_comments) /* EVERYTHING ELSE */ + { + obstack_1grow (&token_stack, ch); - if (MATCH (ch, rquote.string)) - { - if (--quote_level == 0) - break; - obstack_grow (&token_stack, rquote.string, rquote.length); - } - else if (MATCH (ch, lquote.string)) - { - quote_level++; - obstack_grow (&token_stack, lquote.string, lquote.length); - } - else - obstack_1grow (&token_stack, ch); - } - type = TOKEN_STRING; - } - else if (single_quotes && single_comments) /* EVERYTHING ELSE */ - { - obstack_1grow (&token_stack, ch); + if (IS_OTHER(ch) || IS_NUM(ch)) + { + while ((ch = next_char()) != CHAR_EOF + && (IS_OTHER(ch) || IS_NUM(ch))) + obstack_1grow (&token_stack, ch); - if (IS_OTHER(ch) || IS_NUM(ch)) - { - while ((ch = next_char()) != CHAR_EOF - && (IS_OTHER(ch) || IS_NUM(ch))) - obstack_1grow (&token_stack, ch); + if (ch != CHAR_EOF) + unget_input(ch); + type = TOKEN_STRING; + } + else if (IS_SPACE(ch)) + { + if (!interactive) + { + while ((ch = next_char()) != CHAR_EOF && IS_SPACE(ch)) + obstack_1grow (&token_stack, ch); - if (ch != CHAR_EOF) - unget_input(ch); - type = TOKEN_STRING; - } - else if (IS_SPACE(ch)) - { - if (!interactive) - { - while ((ch = next_char()) != CHAR_EOF && IS_SPACE(ch)) - obstack_1grow (&token_stack, ch); + if (ch != CHAR_EOF) + unget_input(ch); + } + type = TOKEN_SPACE; + } + else if (IS_ACTIVE(ch)) + type = TOKEN_WORD; + else + type = TOKEN_SIMPLE; + } + else /* EVERYTHING ELSE */ + { + obstack_1grow (&token_stack, ch); - if (ch != CHAR_EOF) - unget_input(ch); - } + if (IS_OTHER(ch) || IS_NUM(ch)) + type = TOKEN_STRING; + else if (IS_SPACE(ch)) type = TOKEN_SPACE; - } - else if (IS_ACTIVE(ch)) - type = TOKEN_WORD; - else - type = TOKEN_SIMPLE; - } - else /* EVERYTHING ELSE */ - { - obstack_1grow (&token_stack, ch); - - if (IS_OTHER(ch) || IS_NUM(ch)) - type = TOKEN_STRING; - else if (IS_SPACE(ch)) - type = TOKEN_SPACE; - else if (IS_ACTIVE(ch)) - type = TOKEN_WORD; - else - type = TOKEN_SIMPLE; - } - + else if (IS_ACTIVE(ch)) + type = TOKEN_WORD; + else + type = TOKEN_SIMPLE; + } + } while (type == TOKEN_NONE); obstack_1grow (&token_stack, '\0'); @@ -1331,6 +1335,10 @@ print_token (const char *s, token_type t, token_data *td) case TOKEN_EOF: fprintf (stderr, "eof\n"); break; + + case TOKEN_NONE: + fprintf (stderr, "none\n"); + break; } return 0; } @@ -71,6 +71,12 @@ static int show_help = 0; /* If nonzero, print the version on standard output and exit. */ static int show_version = 0; +/* If nonzero, import the environment as macros. */ +static int import_environment = 0; + +/* If nonzero, comments are discarded in the token parser. */ +int discard_comments = 0; + struct macro_definition { struct macro_definition *next; @@ -81,18 +87,23 @@ typedef struct macro_definition macro_definition; /* Error handling functions. */ -/*-------------------------------------------------------------------------. -| Print source and line reference on standard error, as a prefix for error | -| messages. Flush standard output first. | -`-------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------. +| Print program name, source file and line reference on standard | +| error, as a prefix for error messages. Flush standard output first. | +`----------------------------------------------------------------------*/ + +#include <error.h> void -reference_error (void) +print_program_name (void) { fflush (stdout); - fprintf (stderr, "%s:%d: ", current_file, current_line); + fprintf (stderr, "%s: ", program_name); + if (current_line != 0) + fprintf (stderr, "%s: %d: ", current_file, current_line); } + #ifdef USE_STACKOVF /*---------------------------------------. @@ -214,6 +225,7 @@ static const struct option long_options[] = { {"arglength", required_argument, NULL, 'l'}, {"debug", optional_argument, NULL, 'd'}, + {"discard-comments", no_argument, NULL, 'c'}, {"diversions", required_argument, NULL, 'N'}, {"error-output", required_argument, NULL, 'o'}, {"fatal-warnings", no_argument, NULL, 'E'}, @@ -222,7 +234,7 @@ static const struct option long_options[] = {"include", required_argument, NULL, 'I'}, {"interactive", no_argument, NULL, 'e'}, #ifdef WITH_MODULES - {"module", required_argument, NULL, 'M'}, + {"load-module", required_argument, NULL, 'M'}, #endif /* WITH_MODULES */ {"nesting-limit", required_argument, NULL, 'L'}, {"prefix-builtins", no_argument, NULL, 'P'}, @@ -233,6 +245,8 @@ static const struct option long_options[] = {"traditional", no_argument, NULL, 'G'}, {"word-regexp", required_argument, NULL, 'W'}, + {"import-environment", no_argument, &import_environment, 1}, + {"help", no_argument, &show_help, 1}, {"version", no_argument, &show_version, 1}, @@ -245,9 +259,9 @@ static const struct option long_options[] = }; #ifdef ENABLE_CHANGEWORD -#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:W:d::el:o:st:" +#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:W:cd::el:o:st:" #else -#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:d::el:o:st:" +#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:cd::el:o:st:" #endif int @@ -263,6 +277,8 @@ main (int argc, char *const *argv, char *const *envp) char *filename; program_name = argv[0]; + error_print_progname = print_program_name; + setlocale (LC_ALL, ""); #ifdef ENABLE_NLS textdomain(PACKAGE); @@ -361,6 +377,10 @@ main (int argc, char *const *argv, char *const *envp) break; #endif + case 'c': + discard_comments = 1; + break; + case 'd': debug_level = debug_decode (optarg); if (debug_level < 0) @@ -392,15 +412,27 @@ main (int argc, char *const *argv, char *const *envp) if (show_version) { - printf ("GNU %s %s\n", PACKAGE, VERSION); + printf ("GNU %s %s", PACKAGE, VERSION); +#if defined(WITH_MODULES) || defined(WITH_GMP) || defined(ENABLE_CHANGEWORD) + fputs(_(" (options:"), stdout); +#ifdef WITH_MODULES + fputs(" modules", stdout); +#endif /* WITH_MODULES */ +#ifdef WITH_GMP + fputs(" gmp", stdout); +#endif /* WITH_GMP */ +#ifdef ENABLE_CHANGEWORD + fputs(" changeword", stdout); +#endif /* ENABLE_CHANGEWORD */ + fputs(")", stdout); +#endif /* defined WITH_MODULES || WITH_GMP || ENABLE_CHANGEWORD */ + fputs("\n", stdout); exit (EXIT_SUCCESS); } if (show_help) usage (EXIT_SUCCESS); - defines = head; - /* Do the basic initialisations. */ input_init (); @@ -413,9 +445,30 @@ main (int argc, char *const *argv, char *const *envp) else builtin_init (); + + /* Import environment variables as macros. The definition are + preprended to the macro definition list, so -U can override + environment variables. */ + + if (import_environment) + { + char *const *env; + + for (env = envp; *env != NULL; env++) + { + new = (macro_definition *) xmalloc (sizeof (macro_definition)); + new->code = 'D'; + new->macro = *env; + new->next = head; + head = new; + } + } + /* Handle deferred command line macro definitions. Must come after initialisation of the symbol table. */ + defines = head; + while (defines != NULL) { macro_definition *next; @@ -163,15 +163,13 @@ extern int max_debug_argument_length; /* -l */ extern int suppress_warnings; /* -Q */ extern int warning_status; /* -E */ extern int nesting_limit; /* -L */ +extern int discard_comments; /* -c */ #ifdef ENABLE_CHANGEWORD extern const char *user_word_regexp; /* -W */ #endif /* Error handling. */ -#define M4ERROR(Arglist) \ - (reference_error (), error Arglist) - -void reference_error __P ((void)); +#define M4ERROR(Arglist) (error Arglist) #ifdef USE_STACKOVF void setup_stackovf_trap __P ((char *const *, char *const *, @@ -280,6 +278,7 @@ void trace_post __P ((const char *, int, int, token_data **, const char *)); enum token_type { TOKEN_EOF, /* end of file */ + TOKEN_NONE, /* discardable token */ TOKEN_STRING, /* a quoted string */ TOKEN_SPACE, /* whitespace */ TOKEN_WORD, /* an identifier */ @@ -522,12 +521,40 @@ void include_env_init __P ((void)); void add_include_directory __P ((const char *)); FILE *path_search __P ((const char *, char **)); +/* These are for other search paths */ + +struct search_path +{ + struct search_path *next; /* next directory to search */ + const char *dir; /* directory */ + int len; +}; + +typedef struct search_path search_path; + +struct search_path_info +{ + search_path *list; /* the list of path directories */ + search_path *list_end; /* the end of same */ + int max_length; /* length of longest directory name */ +}; + +struct search_path_info *search_path_info_new __P((void)); +void search_path_env_init __P ((struct search_path_info *, char *, boolean)); +void search_path_add __P ((struct search_path_info *, const char *)); + + /* File: eval.c --- expression evaluation. */ boolean evaluate __P ((struct obstack *obs, const char *, const int radix, int min)); +#ifdef WITH_GMP +boolean mp_evaluate __P ((struct obstack *obs, + const char *, const int radix, int min)); +#endif /* WITH_GMP */ + /* File: format.c --- printf like formatting. */ @@ -543,15 +570,11 @@ void reload_frozen_state __P ((const char *)); /* File: module.c --- dynamic modules */ +#ifdef WITH_MODULES + typedef void module_init_t (struct obstack *obs); typedef void module_finish_t (void); -#if defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD) -#define WITH_MODULES -#endif - -#ifdef WITH_MODULES - typedef voidstar module_func (const char *); void module_init (void); @@ -559,10 +582,6 @@ 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 */ diff --git a/src/module.c b/src/module.c index b9985994..970866db 100644 --- a/src/module.c +++ b/src/module.c @@ -20,6 +20,8 @@ #ifdef WITH_MODULES +#include "pathconf.h" + #define DEBUG_MODULES #undef DEBUG_MODULES @@ -28,9 +30,11 @@ * 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. + * The current implementation uses either dlopen(3) (exists on + * GNU/Linux, OSF, Solaris, SunOS) or shl_load(3) (exists on HPUX). To + * enable this experimental feature give configure the `--with-modules' + * switch. This implementation is only tested on GNU/Linux, OSF, + * Solaris, SunOS and HPUX. * * A m4 module need only define one external symbol, called * `m4_macro_table'. This symbol should point to a table of `struct @@ -39,22 +43,21 @@ * 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). + * between the files 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 + * To load a module, use `loadmodule(modulename)'. 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 + * module_search() to find the module in the module search path. This + * path is initialised from the environment variable M4MODPATH, or if + * not set, initalised to a configuration time default. Module_search() + * constructs absolute file names and calls module_try_load(). This + * function reads the libtool .la file to get the real library name + * (which can be system dependent) and 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(). * @@ -68,78 +71,130 @@ * safe to load the same module several times, it has no effect. **/ +static const char *dynamic_error_message = NULL; + +static const char * +dynamic_error () +{ + return dynamic_error_message; +} + + #if defined (HAVE_SHL_LOAD) #include <dl.h> -voidstar +static voidstar dynamic_load (const char *modname) { - return shl_load (modname, BIND_IMMEDIATE, 0L); + voidstar handle; + + dynamic_error_message = NULL; + + handle = shl_load (modname, BIND_IMMEDIATE, 0L); + if (handle == NULL) + dynamic_error_message = strerror (errno); + + return handle; } -void +static void dynamic_unload (voidstar handle) { shl_unload ((shl_t)handle); } -voidstar +static voidstar dynamic_find_data (voidstar handle, const char *symbol) { voidstar addr; + shl_t *hp = (shl_t *)&handle; + + dynamic_error_message = NULL; - /* XXX TYPE_PROCEDURE is probably wrong here, as it is a data pointer */ - shl_findsym ((shl_t)handle, symbol, TYPE_PROCEDURE, (voidstar)&addr); - return addr; + if (!shl_findsym (hp, symbol, TYPE_DATA, (voidstar)&addr)) + { + dynamic_error_message = strerror (errno); + return addr; + } + else + return NULL; } -voidstar +static voidstar dynamic_find_func (voidstar handle, const char *symbol) { voidstar addr; + shl_t *hp = (shl_t *)&handle; - shl_findsym ((shl_t)handle, symbol, TYPE_PROCEDURE, (voidstar)&addr); - return addr; + dynamic_error_message = NULL; + + if (!shl_findsym (hp, symbol, TYPE_PROCEDURE, (voidstar)&addr)) + { + dynamic_error_message = strerror (errno); + return addr; + } + else + return NULL; } #else /* HAVE_DLOPEN */ #include <dlfcn.h> -voidstar +static voidstar dynamic_load (const char *modname) { - return dlopen (modname, RTLD_NOW); + voidstar handle; + + dynamic_error_message = NULL; + + handle = dlopen (modname, RTLD_NOW); + if (handle == NULL) + dynamic_error_message = dlerror (); + + return handle; } -void +static void dynamic_unload(voidstar handle) { dlclose (handle); } -voidstar +static voidstar dynamic_find_data (voidstar handle, const char *symbol) { - return dlsym (handle, symbol); + voidstar sym; + + dynamic_error_message = NULL; + + sym = dlsym (handle, symbol); + if (sym == NULL) + dynamic_error_message = dlerror (); + + return sym; } -voidstar +static voidstar dynamic_find_func (voidstar handle, const char *symbol) { - return dlsym (handle, symbol); + return dynamic_find_data (handle, symbol); } #endif /* HAVE_DLOPEN */ - + /* * The rest of the code should be common for all interfaces. */ +/* module search path */ + +static struct search_path_info *modpath; /* the list of module directories */ + /* This list is used to check for repeated loading of the same modules. */ @@ -162,21 +217,108 @@ static module_list *modules; void module_init (void) { - module_env_init (); + char *path; + + modpath = search_path_info_new (); + + if (no_gnu_extensions) + return; + + path = getenv ("M4MODPATH"); + if (path == NULL) + search_path_add (modpath, MODULE_PATH); + else + search_path_env_init (modpath, path, TRUE); + } /* - * Attempt to load a module with a absolute file name. It is used as a - * callback from module_search() in path.c. + * This function will try to find the .la file which libtool have made + * for the library, lookup the dlname='xxx' line and load that file from + * the same directory. The argument FILE is a pointer to the file name + * part of the PATH buffer. The PATH buffer should be large enough for + * file name changes needed to find the library file. These are: + * MODNAME -> libMODNAME.la -> dlname from file. */ -voidstar -module_try_load (const char *modname) + +static voidstar +module_try_load (char *path, char *file) { - return dynamic_load (modname); + FILE *fp; + char buf[1024]; + char *tmp; + + /* Find libFILE.la file by libtool */ + sprintf (buf, "lib%s.la", file); + strcpy (file, buf); + + fp = fopen (path, "r"); + if (fp == NULL) + return NULL; + + /* Search file for true library name */ + while (fgets (buf, sizeof buf, fp) != NULL) + { + if (strncmp (buf, "dlname='", 8) == 0) + { + tmp = strrchr (buf, '\''); + if (tmp != NULL) { + *tmp = '\0'; + strcpy (file, buf+8); + + fclose (fp); + return dynamic_load (path); + } + } + } + + fclose (fp); + return NULL; } +static voidstar +module_search (const char *modname) +{ + voidstar value = NULL; + struct search_path *incl; + char *name; /* buffer for constructed name */ -void + /* If absolute, modname is a filename. */ + if (*modname == '/') + { + name = xstrdup (modname); + value = module_try_load (name, strrchr (name, '/')+1); + xfree (name); + return value; + } + + /* Allocate buffer for mangling path, extra for shlib naming conventions */ + name = (char *) xmalloc (modpath->max_length + 1 + strlen (modname) +1+64); + + 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 = module_try_load (name, name + incl->len + 1); + if (value != NULL) + { + if (debug_level & DEBUG_TRACE_PATH) + DEBUG_MESSAGE2 (_("Module search for `%s' found `%s'"), + modname, name); + break; + } + } + xfree (name); + return value; +} + +static void module_unload(voidstar handle) { dynamic_unload (handle); @@ -199,11 +341,16 @@ module_load (const char *modname, struct obstack *obs) builtin *btab; module_init_t *init_func; - handle = module_search(modname, module_try_load); + handle = module_search (modname); if (handle == NULL) { - M4ERROR ((EXIT_FAILURE, 0, - _("ERROR: cannot find module `%s'"), modname)); + if (dynamic_error ()) + M4ERROR ((EXIT_FAILURE, 0, + _("ERROR: cannot find module `%s': %s"), + modname, dynamic_error ())); + else + M4ERROR ((EXIT_FAILURE, 0, + _("ERROR: cannot find module `%s'"), modname)); } for (list = modules; list != NULL; list = list->next) @@ -17,21 +17,21 @@ */ /* This file contains the functions to evaluate integer or multiple - precision expressions for the "eval" macro. - */ + * precision expressions for the "eval" macro. + */ -#include "m4.h" -#include "numb.h" +/* THIS FILE IS INTENDED FOR INCLUSION IN eval.c NOT FOR COMPILATION */ +#include "numb.h" -#ifdef WITH_GMP +#ifdef USE_GMP -eval_t numb_ZERO; -eval_t numb_ONE; +static eval_t numb_ZERO; +static eval_t numb_ONE; static int numb_initialised = 0; -void +static void numb_initialise(void) { if (numb_initialised) return; @@ -45,7 +45,7 @@ numb_initialise(void) { numb_initialised = 1; } -void +static void numb_obstack(struct obstack *obs, const eval_t value, const int radix, int min) { @@ -99,7 +99,7 @@ mpz2mpq(eval_t q, const mpz_t z) mpq_set_num(q,z); } -void +static void numb_divide(eval_t *x, const eval_t *y) { mpq_t qres; @@ -116,7 +116,7 @@ numb_divide(eval_t *x, const eval_t *y) mpz_clear(zres); } -void +static void numb_modulo(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -140,7 +140,7 @@ numb_modulo(eval_t *x, const eval_t *y) mpz_clear(res); } -void +static void numb_and(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -164,7 +164,7 @@ numb_and(eval_t *x, const eval_t *y) mpz_clear(res); } -void +static void numb_ior(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -188,7 +188,7 @@ numb_ior(eval_t *x, const eval_t *y) mpz_clear(res); } -void +static void numb_eor(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -235,7 +235,7 @@ numb_eor(eval_t *x, const eval_t *y) mpz_clear(res); } -void +static void numb_not(eval_t *x) { mpz_t xx, res; @@ -254,7 +254,7 @@ numb_not(eval_t *x) mpz_clear(res); } -void +static void numb_lshift(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -285,7 +285,7 @@ numb_lshift(eval_t *x, const eval_t *y) mpz_clear(res); } -void +static void numb_rshift(eval_t *x, const eval_t *y) { mpz_t xx, yy, res; @@ -317,9 +317,9 @@ numb_rshift(eval_t *x, const eval_t *y) } -#else /* WITH_GMP */ +#else /* USE_GMP */ -void +static void numb_initialise(void) { ; @@ -367,7 +367,7 @@ ntoa (eval_t value, int radix) return s; } -void +static void numb_obstack(struct obstack *obs, const eval_t value, const int radix, int min) { @@ -386,10 +386,10 @@ numb_obstack(struct obstack *obs, const eval_t value, } -#endif /* WITH_GMP */ +#endif /* USE_GMP */ -void +static void numb_pow (eval_t *x, const eval_t *y) { /* y should be integral */ @@ -18,19 +18,16 @@ #include "m4.h" -#ifdef WITH_GMP +#ifdef USE_GMP #define NUMB_MP 1 #endif -#ifdef WITH_GMP +#ifdef USE_GMP #include "gmp.h" /* eval_t should be at least 32 bits. */ typedef mpq_t eval_t; -extern eval_t numb_ZERO; -extern eval_t numb_ONE; - #define numb_set(ans,i) mpq_set(ans,i) #define numb_set_si(ans,i) mpq_set_si(*(ans),(long)i,(unsigned long)1) @@ -67,22 +64,8 @@ extern eval_t numb_ONE; #define numb_decr(n) numb_minus(n,numb_ONE) - - -void numb_divide(eval_t *x, const eval_t *y); -void numb_modulo(eval_t *x, const eval_t *y); -void numb_and(eval_t *x, const eval_t *y); -void numb_ior(eval_t *x, const eval_t *y); -void numb_eor(eval_t *x, const eval_t *y); -void numb_not(eval_t *x);; -void numb_lshift(eval_t *x, const eval_t *y); -void numb_rshift(eval_t *x, const eval_t *y); -void numb_pow (eval_t *x, const eval_t *y); - - - -#else /* not WITH_GMP */ +#else /* not USE_GMP */ /* eval_t should be at least 32 bits. */ /* use GNU long long int if available */ @@ -93,9 +76,6 @@ typedef unsigned long long int ueval_t; typedef long int eval_t; typedef unsigned long int ueval_t; #endif - -extern eval_t numb_ZERO; -extern eval_t numb_ONE; #define int2numb(i) ((eval_t)(i)) #define numb2int(n) ((n)) @@ -145,12 +125,4 @@ extern eval_t numb_ONE; #define numb_lshift(x,y) (*(x) = (*(x) << *(y))) #define numb_rshift(x,y) (*(x) = (*(x) >> *(y))) -void numb_pow (eval_t *x, const eval_t *y); - -#endif /* WITH_GMP */ - - -void numb_initialise __P((void)); -void numb_obstack __P((struct obstack *obs, - const eval_t value, - const int radix, int min)); +#endif /* USE_GMP */ diff --git a/src/output.c b/src/output.c index ed8f9a74..b0c5d14a 100644 --- a/src/output.c +++ b/src/output.c @@ -488,7 +488,7 @@ insert_diversion (int divnum) /* Do not care about unexisting diversions. */ - if (divnum < 0 || divnum >= diversions) + if (divnum <= 0 || divnum >= diversions) return; /* Also avoid undiverting into self. */ @@ -16,82 +16,60 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Handling of path search of included files via the builtins "include" - and "sinclude" (and "loadmodule" if configured). */ + and "sinclude". */ #include "m4.h" -#ifdef WITH_MODULES -#include "pathconf.h" -#endif /* WITH_MODULES */ +static struct search_path_info dirpath; /* the list of path directories */ -struct includes -{ - struct includes *next; /* next directory to search */ - const char *dir; /* directory */ - int len; -}; - -typedef struct includes includes; + +/* + * Generel functions for search paths + */ -struct include_list +struct search_path_info * +search_path_info_new (void) { - 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 */ + struct search_path_info *info; -#ifdef WITH_MODULES -static include_list modpath; /* the list of module directories */ -#endif /* WITH_MODULES */ + info = (struct search_path_info *) + xmalloc (sizeof (struct search_path_info)); + info->list = NULL; + info->list_end = NULL; + info->max_length = 0; - -void -include_init (void) -{ - 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 */ + return info; } -static void -include_directory (struct include_list *list, const char *dir) +void +search_path_add (struct search_path_info *info, const char *dir) { - includes *incl; + search_path *path; if (*dir == '\0') dir = "."; - incl = (includes *) xmalloc (sizeof (struct includes)); - incl->next = NULL; - incl->len = strlen (dir); - incl->dir = xstrdup (dir); + path = (struct search_path *) xmalloc (sizeof (struct search_path)); + path->next = NULL; + path->len = strlen (dir); + path->dir = xstrdup (dir); - if (incl->len > list->max_length) /* remember len of longest directory */ - list->max_length = incl->len; + if (path->len > info->max_length) /* remember len of longest directory */ + info->max_length = path->len; - if (list->list_end == NULL) - list->list = incl; + if (info->list_end == NULL) + info->list = path; else - list->list_end->next = incl; - list->list_end = incl; + info->list_end->next = path; + info->list_end = path; } -static void -env_init (struct include_list *list, char *path, boolean abs) +void +search_path_env_init (struct search_path_info *info, char *path, boolean abs) { char *path_end; - if (path == NULL) + if (info == NULL || path == NULL) return; do @@ -100,13 +78,22 @@ env_init (struct include_list *list, char *path, boolean abs) if (path_end) *path_end = '\0'; if (!abs || *path == '/') - include_directory (list, path); + search_path_add (info, path); path = path_end + 1; } while (path_end); } +void +include_init (void) +{ + dirpath.list = NULL; + dirpath.list_end = NULL; + dirpath.max_length = 0; +} + + /* Functions for normal input path search */ void @@ -115,7 +102,7 @@ include_env_init (void) if (no_gnu_extensions) return; - env_init (&dirpath, getenv ("M4PATH"), FALSE); + search_path_env_init (&dirpath, getenv ("M4PATH"), FALSE); } void @@ -124,7 +111,7 @@ add_include_directory (const char *dir) if (no_gnu_extensions) return; - include_directory (&dirpath, dir); + search_path_add (&dirpath, dir); #ifdef DEBUG_INCL fprintf (stderr, "add_include_directory (%s);\n", dir); @@ -135,7 +122,7 @@ FILE * path_search (const char *dir, char **expanded_name) { FILE *fp; - includes *incl; + struct search_path *incl; char *name; /* buffer for constructed name */ /* Look in current working directory first. */ @@ -193,70 +180,3 @@ include_dump (void) } #endif /* DEBUG_INCL */ - - -/* Functions for module search path */ - -#ifdef WITH_MODULES - -void -module_env_init (void) -{ - if (no_gnu_extensions) - return; - - include_directory (&modpath, MODULE_PATH); - 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 61992cd9..926aee94 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -80,11 +80,15 @@ OTHER_TESTS = \ other-tests/gmp.test \ other-tests/iso8859.test \ other-tests/sync-lines.test \ + other-tests/import-environment.test \ + other-tests/discard-comments.test \ other-tests/stackovf.test OTHER_FILES = \ other-tests/gmp.m4 \ other-tests/iso8859.m4 \ + other-tests/import-environment.m4 \ + other-tests/discard-comments.m4 \ other-tests/sync-lines.m4 all: stamp-TESTS diff --git a/tests/Makefile.in b/tests/Makefile.in index 0e868c6f..60747f25 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -78,6 +78,7 @@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ +INTLINCL = @INTLINCL@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LD = @LD@ @@ -180,11 +181,15 @@ OTHER_TESTS = \ other-tests/gmp.test \ other-tests/iso8859.test \ other-tests/sync-lines.test \ + other-tests/import-environment.test \ + other-tests/discard-comments.test \ other-tests/stackovf.test OTHER_FILES = \ other-tests/gmp.m4 \ other-tests/iso8859.m4 \ + other-tests/import-environment.m4 \ + other-tests/discard-comments.m4 \ other-tests/sync-lines.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h diff --git a/tests/generated-tests/argument.1.test b/tests/generated-tests/argument.1.test index 0e4cd98d..8ae02f63 100755 --- a/tests/generated-tests/argument.1.test +++ b/tests/generated-tests/argument.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/argument.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1042 +# generated from example in ../doc/m4.texinfo line 1052 . ${srcdir}/defs diff --git a/tests/generated-tests/argument.2.test b/tests/generated-tests/argument.2.test index e54dc0dd..66c5a0bc 100755 --- a/tests/generated-tests/argument.2.test +++ b/tests/generated-tests/argument.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/argument.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1052 +# generated from example in ../doc/m4.texinfo line 1062 . ${srcdir}/defs diff --git a/tests/generated-tests/argument.3.test b/tests/generated-tests/argument.3.test index 9ab64cf3..1a4f5997 100755 --- a/tests/generated-tests/argument.3.test +++ b/tests/generated-tests/argument.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/argument.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1072 +# generated from example in ../doc/m4.texinfo line 1082 . ${srcdir}/defs diff --git a/tests/generated-tests/argument.4.test b/tests/generated-tests/argument.4.test index 5597ef6a..dc0d79d4 100755 --- a/tests/generated-tests/argument.4.test +++ b/tests/generated-tests/argument.4.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/argument.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1082 +# generated from example in ../doc/m4.texinfo line 1092 . ${srcdir}/defs diff --git a/tests/generated-tests/changeco.1.test b/tests/generated-tests/changeco.1.test index 063a9ea2..08267455 100755 --- a/tests/generated-tests/changeco.1.test +++ b/tests/generated-tests/changeco.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changeco.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1965 +# generated from example in ../doc/m4.texinfo line 1975 . ${srcdir}/defs diff --git a/tests/generated-tests/changeco.2.test b/tests/generated-tests/changeco.2.test index 55c2f6bf..07a4ca11 100755 --- a/tests/generated-tests/changeco.2.test +++ b/tests/generated-tests/changeco.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changeco.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1986 +# generated from example in ../doc/m4.texinfo line 1996 . ${srcdir}/defs diff --git a/tests/generated-tests/changequ.1.test b/tests/generated-tests/changequ.1.test index edf29d0c..8704aa2e 100755 --- a/tests/generated-tests/changequ.1.test +++ b/tests/generated-tests/changequ.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changequ.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1901 +# generated from example in ../doc/m4.texinfo line 1911 . ${srcdir}/defs diff --git a/tests/generated-tests/changequ.2.test b/tests/generated-tests/changequ.2.test index be91487d..5897c1de 100755 --- a/tests/generated-tests/changequ.2.test +++ b/tests/generated-tests/changequ.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changequ.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1913 +# generated from example in ../doc/m4.texinfo line 1923 . ${srcdir}/defs diff --git a/tests/generated-tests/changequ.3.test b/tests/generated-tests/changequ.3.test index 4f604779..9dcbccba 100755 --- a/tests/generated-tests/changequ.3.test +++ b/tests/generated-tests/changequ.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changequ.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1925 +# generated from example in ../doc/m4.texinfo line 1935 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.1.test b/tests/generated-tests/changesy.1.test index 6d4b4f93..84a0b0b2 100755 --- a/tests/generated-tests/changesy.1.test +++ b/tests/generated-tests/changesy.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2137 +# generated from example in ../doc/m4.texinfo line 2147 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.2.test b/tests/generated-tests/changesy.2.test index e75f05e6..7aa20c67 100755 --- a/tests/generated-tests/changesy.2.test +++ b/tests/generated-tests/changesy.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2153 +# generated from example in ../doc/m4.texinfo line 2163 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.3.test b/tests/generated-tests/changesy.3.test index 6381878e..4cdc7c32 100755 --- a/tests/generated-tests/changesy.3.test +++ b/tests/generated-tests/changesy.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2170 +# generated from example in ../doc/m4.texinfo line 2180 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.4.test b/tests/generated-tests/changesy.4.test index df422cf2..765eb1a3 100755 --- a/tests/generated-tests/changesy.4.test +++ b/tests/generated-tests/changesy.4.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2196 +# generated from example in ../doc/m4.texinfo line 2206 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.5.test b/tests/generated-tests/changesy.5.test index 67729fe2..2e0cd315 100755 --- a/tests/generated-tests/changesy.5.test +++ b/tests/generated-tests/changesy.5.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2225 +# generated from example in ../doc/m4.texinfo line 2235 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.6.test b/tests/generated-tests/changesy.6.test index 3672095a..7a3b90ed 100755 --- a/tests/generated-tests/changesy.6.test +++ b/tests/generated-tests/changesy.6.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.6.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2249 +# generated from example in ../doc/m4.texinfo line 2259 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.7.test b/tests/generated-tests/changesy.7.test index 63fc848b..50dac458 100755 --- a/tests/generated-tests/changesy.7.test +++ b/tests/generated-tests/changesy.7.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.7.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2271 +# generated from example in ../doc/m4.texinfo line 2281 . ${srcdir}/defs diff --git a/tests/generated-tests/changesy.8.test b/tests/generated-tests/changesy.8.test index a087f85a..201285b4 100755 --- a/tests/generated-tests/changesy.8.test +++ b/tests/generated-tests/changesy.8.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/changesy.8.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2282 +# generated from example in ../doc/m4.texinfo line 2292 . ${srcdir}/defs diff --git a/tests/generated-tests/cleardiv.1.test b/tests/generated-tests/cleardiv.1.test index f4df3723..d3af45e3 100755 --- a/tests/generated-tests/cleardiv.1.test +++ b/tests/generated-tests/cleardiv.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/cleardiv.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2792 +# generated from example in ../doc/m4.texinfo line 2802 . ${srcdir}/defs diff --git a/tests/generated-tests/cleardiv.2.test b/tests/generated-tests/cleardiv.2.test index f7f90826..cfc78e0d 100755 --- a/tests/generated-tests/cleardiv.2.test +++ b/tests/generated-tests/cleardiv.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/cleardiv.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2807 +# generated from example in ../doc/m4.texinfo line 2817 . ${srcdir}/defs diff --git a/tests/generated-tests/define.1.test b/tests/generated-tests/define.1.test index e90c466a..a8a8463b 100755 --- a/tests/generated-tests/define.1.test +++ b/tests/generated-tests/define.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/define.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 993 +# generated from example in ../doc/m4.texinfo line 1003 . ${srcdir}/defs diff --git a/tests/generated-tests/define.2.test b/tests/generated-tests/define.2.test index fbd55149..3c04ee6c 100755 --- a/tests/generated-tests/define.2.test +++ b/tests/generated-tests/define.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/define.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1013 +# generated from example in ../doc/m4.texinfo line 1023 . ${srcdir}/defs diff --git a/tests/generated-tests/defn.1.test b/tests/generated-tests/defn.1.test index d9e02cfb..2042b105 100755 --- a/tests/generated-tests/defn.1.test +++ b/tests/generated-tests/defn.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/defn.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1236 +# generated from example in ../doc/m4.texinfo line 1246 . ${srcdir}/defs diff --git a/tests/generated-tests/defn.2.test b/tests/generated-tests/defn.2.test index 6c9f827f..45821db0 100755 --- a/tests/generated-tests/defn.2.test +++ b/tests/generated-tests/defn.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/defn.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1256 +# generated from example in ../doc/m4.texinfo line 1266 . ${srcdir}/defs diff --git a/tests/generated-tests/divert.1.test b/tests/generated-tests/divert.1.test index 340cf611..07fe3288 100755 --- a/tests/generated-tests/divert.1.test +++ b/tests/generated-tests/divert.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/divert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2634 +# generated from example in ../doc/m4.texinfo line 2644 . ${srcdir}/defs diff --git a/tests/generated-tests/divert.2.test b/tests/generated-tests/divert.2.test index e38c0f32..aa96473b 100755 --- a/tests/generated-tests/divert.2.test +++ b/tests/generated-tests/divert.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/divert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2654 +# generated from example in ../doc/m4.texinfo line 2664 . ${srcdir}/defs diff --git a/tests/generated-tests/divnum.1.test b/tests/generated-tests/divnum.1.test index 80e99a39..4765a0ab 100755 --- a/tests/generated-tests/divnum.1.test +++ b/tests/generated-tests/divnum.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/divnum.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2761 +# generated from example in ../doc/m4.texinfo line 2771 . ${srcdir}/defs diff --git a/tests/generated-tests/dnl.1.test b/tests/generated-tests/dnl.1.test index 1017a958..c1ee4a39 100755 --- a/tests/generated-tests/dnl.1.test +++ b/tests/generated-tests/dnl.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/dnl.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1863 +# generated from example in ../doc/m4.texinfo line 1873 . ${srcdir}/defs diff --git a/tests/generated-tests/dumpdef.1.test b/tests/generated-tests/dumpdef.1.test index 16e17a24..f00fdcb4 100755 --- a/tests/generated-tests/dumpdef.1.test +++ b/tests/generated-tests/dumpdef.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/dumpdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1666 +# generated from example in ../doc/m4.texinfo line 1676 . ${srcdir}/defs @@ -23,7 +23,7 @@ define: <define> EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/errprint.1.test b/tests/generated-tests/errprint.1.test index e063371e..42655a8f 100755 --- a/tests/generated-tests/errprint.1.test +++ b/tests/generated-tests/errprint.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/errprint.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3480 +# generated from example in ../doc/m4.texinfo line 3501 . ${srcdir}/defs @@ -19,7 +19,7 @@ Illegal arguments to forloop EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/errprint.2.test b/tests/generated-tests/errprint.2.test index d5fd9fda..3b8f0afd 100755 --- a/tests/generated-tests/errprint.2.test +++ b/tests/generated-tests/errprint.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/errprint.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3505 +# generated from example in ../doc/m4.texinfo line 3526 . ${srcdir}/defs @@ -19,7 +19,7 @@ m4:in:1: Input error EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/esyscmd.1.test b/tests/generated-tests/esyscmd.1.test index 59258346..b448131a 100755 --- a/tests/generated-tests/esyscmd.1.test +++ b/tests/generated-tests/esyscmd.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/esyscmd.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3369 +# generated from example in ../doc/m4.texinfo line 3390 . ${srcdir}/defs diff --git a/tests/generated-tests/eval.1.test b/tests/generated-tests/eval.1.test index c6f35973..e2d82923 100755 --- a/tests/generated-tests/eval.1.test +++ b/tests/generated-tests/eval.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/eval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3253 +# generated from example in ../doc/m4.texinfo line 3255 . ${srcdir}/defs @@ -28,11 +28,11 @@ cat <<\EOF >ok EOF cat <<\EOF >okerr -in:7: m4: Bad expression in eval: foo/6 +m4: in: 7: Bad expression in eval: foo/6 EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/eval.2.test b/tests/generated-tests/eval.2.test index d49338b5..376cef73 100755 --- a/tests/generated-tests/eval.2.test +++ b/tests/generated-tests/eval.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/eval.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3284 +# generated from example in ../doc/m4.texinfo line 3286 . ${srcdir}/defs diff --git a/tests/generated-tests/format.1.test b/tests/generated-tests/format.1.test index c00c654e..78d07aa7 100755 --- a/tests/generated-tests/format.1.test +++ b/tests/generated-tests/format.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/format.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3089 +# generated from example in ../doc/m4.texinfo line 3099 . ${srcdir}/defs diff --git a/tests/generated-tests/ifdef.1.test b/tests/generated-tests/ifdef.1.test index f6b98443..5841b3d3 100755 --- a/tests/generated-tests/ifdef.1.test +++ b/tests/generated-tests/ifdef.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/ifdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1446 +# generated from example in ../doc/m4.texinfo line 1456 . ${srcdir}/defs diff --git a/tests/generated-tests/ifelse.1.test b/tests/generated-tests/ifelse.1.test index d8eb6109..e4d5b9bd 100755 --- a/tests/generated-tests/ifelse.1.test +++ b/tests/generated-tests/ifelse.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/ifelse.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1484 +# generated from example in ../doc/m4.texinfo line 1494 . ${srcdir}/defs diff --git a/tests/generated-tests/ifelse.2.test b/tests/generated-tests/ifelse.2.test index b21a6c1c..ff0dd68c 100755 --- a/tests/generated-tests/ifelse.2.test +++ b/tests/generated-tests/ifelse.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/ifelse.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1503 +# generated from example in ../doc/m4.texinfo line 1513 . ${srcdir}/defs diff --git a/tests/generated-tests/include.1.test b/tests/generated-tests/include.1.test index e9ac9043..2cad5c51 100755 --- a/tests/generated-tests/include.1.test +++ b/tests/generated-tests/include.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/include.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2508 +# generated from example in ../doc/m4.texinfo line 2518 . ${srcdir}/defs @@ -16,11 +16,11 @@ cat <<\EOF >ok EOF cat <<\EOF >okerr -in:1: m4: Cannot open no-such-file: No such file or directory +m4: in: 1: Cannot open no-such-file: No such file or directory EOF M4PATH=$srcdir $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/include.2.test b/tests/generated-tests/include.2.test index e257d6b4..44816a1f 100755 --- a/tests/generated-tests/include.2.test +++ b/tests/generated-tests/include.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/include.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2528 +# generated from example in ../doc/m4.texinfo line 2538 . ${srcdir}/defs diff --git a/tests/generated-tests/include.3.test b/tests/generated-tests/include.3.test index 0cec1363..f3e1ddf7 100755 --- a/tests/generated-tests/include.3.test +++ b/tests/generated-tests/include.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/include.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2543 +# generated from example in ../doc/m4.texinfo line 2553 . ${srcdir}/defs diff --git a/tests/generated-tests/incr.1.test b/tests/generated-tests/incr.1.test index 31480915..6236037d 100755 --- a/tests/generated-tests/incr.1.test +++ b/tests/generated-tests/incr.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/incr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3159 +# generated from example in ../doc/m4.texinfo line 3170 . ${srcdir}/defs diff --git a/tests/generated-tests/index.1.test b/tests/generated-tests/index.1.test index 7a643dfc..b0e219b6 100755 --- a/tests/generated-tests/index.1.test +++ b/tests/generated-tests/index.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/index.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2875 +# generated from example in ../doc/m4.texinfo line 2885 . ${srcdir}/defs diff --git a/tests/generated-tests/indir.1.test b/tests/generated-tests/indir.1.test index 2d2114a0..5e34d09c 100755 --- a/tests/generated-tests/indir.1.test +++ b/tests/generated-tests/indir.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/indir.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1375 +# generated from example in ../doc/m4.texinfo line 1385 . ${srcdir}/defs diff --git a/tests/generated-tests/len.1.test b/tests/generated-tests/len.1.test index f4999c0e..6a98c578 100755 --- a/tests/generated-tests/len.1.test +++ b/tests/generated-tests/len.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/len.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2849 +# generated from example in ../doc/m4.texinfo line 2859 . ${srcdir}/defs diff --git a/tests/generated-tests/loops.1.test b/tests/generated-tests/loops.1.test index 324f23f2..b02e5cd7 100755 --- a/tests/generated-tests/loops.1.test +++ b/tests/generated-tests/loops.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/loops.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1540 +# generated from example in ../doc/m4.texinfo line 1550 . ${srcdir}/defs diff --git a/tests/generated-tests/loops.2.test b/tests/generated-tests/loops.2.test index d6018cf6..324dab33 100755 --- a/tests/generated-tests/loops.2.test +++ b/tests/generated-tests/loops.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/loops.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1552 +# generated from example in ../doc/m4.texinfo line 1562 . ${srcdir}/defs diff --git a/tests/generated-tests/m4exit.1.test b/tests/generated-tests/m4exit.1.test index 2923f924..215547f5 100755 --- a/tests/generated-tests/m4exit.1.test +++ b/tests/generated-tests/m4exit.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/m4exit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3528 +# generated from example in ../doc/m4.texinfo line 3549 . ${srcdir}/defs @@ -20,7 +20,7 @@ m4: in: 3: fatal error: This is a BAD one, buster EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/m4wrap.1.test b/tests/generated-tests/m4wrap.1.test index 874bad76..789ef3ef 100755 --- a/tests/generated-tests/m4wrap.1.test +++ b/tests/generated-tests/m4wrap.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/m4wrap.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2449 +# generated from example in ../doc/m4.texinfo line 2459 . ${srcdir}/defs diff --git a/tests/generated-tests/patsubst.1.test b/tests/generated-tests/patsubst.1.test index 0591fc56..6ef7f289 100755 --- a/tests/generated-tests/patsubst.1.test +++ b/tests/generated-tests/patsubst.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/patsubst.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3037 +# generated from example in ../doc/m4.texinfo line 3047 . ${srcdir}/defs diff --git a/tests/generated-tests/patsubst.2.test b/tests/generated-tests/patsubst.2.test index 78e6f054..364747ab 100755 --- a/tests/generated-tests/patsubst.2.test +++ b/tests/generated-tests/patsubst.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/patsubst.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3054 +# generated from example in ../doc/m4.texinfo line 3064 . ${srcdir}/defs diff --git a/tests/generated-tests/pseudoar.1.test b/tests/generated-tests/pseudoar.1.test index 0a61695a..c51261c7 100755 --- a/tests/generated-tests/pseudoar.1.test +++ b/tests/generated-tests/pseudoar.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pseudoar.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1106 +# generated from example in ../doc/m4.texinfo line 1116 . ${srcdir}/defs diff --git a/tests/generated-tests/pseudoar.2.test b/tests/generated-tests/pseudoar.2.test index 78b0ba10..3c13006e 100755 --- a/tests/generated-tests/pseudoar.2.test +++ b/tests/generated-tests/pseudoar.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pseudoar.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1120 +# generated from example in ../doc/m4.texinfo line 1130 . ${srcdir}/defs diff --git a/tests/generated-tests/pseudoar.3.test b/tests/generated-tests/pseudoar.3.test index 7143e5d1..aea8bba2 100755 --- a/tests/generated-tests/pseudoar.3.test +++ b/tests/generated-tests/pseudoar.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pseudoar.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1131 +# generated from example in ../doc/m4.texinfo line 1141 . ${srcdir}/defs diff --git a/tests/generated-tests/pseudoar.4.test b/tests/generated-tests/pseudoar.4.test index 55b8ed50..ed9f5961 100755 --- a/tests/generated-tests/pseudoar.4.test +++ b/tests/generated-tests/pseudoar.4.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pseudoar.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1141 +# generated from example in ../doc/m4.texinfo line 1151 . ${srcdir}/defs diff --git a/tests/generated-tests/pseudoar.5.test b/tests/generated-tests/pseudoar.5.test index 8e517665..3bee239f 100755 --- a/tests/generated-tests/pseudoar.5.test +++ b/tests/generated-tests/pseudoar.5.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pseudoar.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1161 +# generated from example in ../doc/m4.texinfo line 1171 . ${srcdir}/defs diff --git a/tests/generated-tests/pushdef.1.test b/tests/generated-tests/pushdef.1.test index f31313f5..eef2f717 100755 --- a/tests/generated-tests/pushdef.1.test +++ b/tests/generated-tests/pushdef.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pushdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1300 +# generated from example in ../doc/m4.texinfo line 1310 . ${srcdir}/defs diff --git a/tests/generated-tests/pushdef.2.test b/tests/generated-tests/pushdef.2.test index 1f0df47c..e352b05c 100755 --- a/tests/generated-tests/pushdef.2.test +++ b/tests/generated-tests/pushdef.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/pushdef.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1324 +# generated from example in ../doc/m4.texinfo line 1334 . ${srcdir}/defs diff --git a/tests/generated-tests/regexp.1.test b/tests/generated-tests/regexp.1.test index 2ebb06c8..40def4e8 100755 --- a/tests/generated-tests/regexp.1.test +++ b/tests/generated-tests/regexp.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/regexp.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2907 +# generated from example in ../doc/m4.texinfo line 2917 . ${srcdir}/defs diff --git a/tests/generated-tests/regexp.2.test b/tests/generated-tests/regexp.2.test index 81764d9d..5509bbe5 100755 --- a/tests/generated-tests/regexp.2.test +++ b/tests/generated-tests/regexp.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/regexp.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2919 +# generated from example in ../doc/m4.texinfo line 2929 . ${srcdir}/defs diff --git a/tests/generated-tests/substr.1.test b/tests/generated-tests/substr.1.test index 5291656f..fabd9a90 100755 --- a/tests/generated-tests/substr.1.test +++ b/tests/generated-tests/substr.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/substr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2945 +# generated from example in ../doc/m4.texinfo line 2955 . ${srcdir}/defs diff --git a/tests/generated-tests/sysval.1.test b/tests/generated-tests/sysval.1.test index 07dac311..1728e2e4 100755 --- a/tests/generated-tests/sysval.1.test +++ b/tests/generated-tests/sysval.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/sysval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3400 +# generated from example in ../doc/m4.texinfo line 3421 . ${srcdir}/defs diff --git a/tests/generated-tests/trace.1.test b/tests/generated-tests/trace.1.test index 9d7a93f2..155f0569 100755 --- a/tests/generated-tests/trace.1.test +++ b/tests/generated-tests/trace.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/trace.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1711 +# generated from example in ../doc/m4.texinfo line 1721 . ${srcdir}/defs @@ -27,7 +27,7 @@ m4trace: -1- echo(`gnus', `and gnats') -> ``gnus',`and gnats'' EOF $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +sed -e "s,../../src/m4: ,m4: ," err >sederr && mv sederr err $CMP -s out ok && $CMP -s err okerr diff --git a/tests/generated-tests/translit.1.test b/tests/generated-tests/translit.1.test index 226858a7..af9db4ba 100755 --- a/tests/generated-tests/translit.1.test +++ b/tests/generated-tests/translit.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/translit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2986 +# generated from example in ../doc/m4.texinfo line 2996 . ${srcdir}/defs diff --git a/tests/generated-tests/undefine.1.test b/tests/generated-tests/undefine.1.test index e63acc6a..955a96fc 100755 --- a/tests/generated-tests/undefine.1.test +++ b/tests/generated-tests/undefine.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/undefine.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1192 +# generated from example in ../doc/m4.texinfo line 1202 . ${srcdir}/defs diff --git a/tests/generated-tests/undivert.1.test b/tests/generated-tests/undivert.1.test index 0fe894ae..47dd99bf 100755 --- a/tests/generated-tests/undivert.1.test +++ b/tests/generated-tests/undivert.1.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/undivert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2685 +# generated from example in ../doc/m4.texinfo line 2695 . ${srcdir}/defs diff --git a/tests/generated-tests/undivert.2.test b/tests/generated-tests/undivert.2.test index 496632ed..753dd707 100755 --- a/tests/generated-tests/undivert.2.test +++ b/tests/generated-tests/undivert.2.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/undivert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2709 +# generated from example in ../doc/m4.texinfo line 2719 . ${srcdir}/defs diff --git a/tests/generated-tests/undivert.3.test b/tests/generated-tests/undivert.3.test index 2002ed67..cca0a7c1 100755 --- a/tests/generated-tests/undivert.3.test +++ b/tests/generated-tests/undivert.3.test @@ -1,7 +1,7 @@ #!/bin/sh # generated-tests/undivert.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2735 +# generated from example in ../doc/m4.texinfo line 2745 . ${srcdir}/defs diff --git a/tests/get-them b/tests/get-them index 7e03a7de..d17f94d9 100755 --- a/tests/get-them +++ b/tests/get-them @@ -68,7 +68,7 @@ BEGIN { if (include_flag == 1) printf ("M4PATH=$srcdir ") >> file; printf ("$M4 -d in >out") >> file; if (error_flag == 1) printf (" 2>err") >> file; - if (error_flag == 1) printf ("\nsed -e \"s, ../../src/m4:, m4:,\" err >sederr && mv sederr err") >> file; + if (error_flag == 1) printf ("\nsed -e \"s,../../src/m4: ,m4: ,\" err >sederr && mv sederr err") >> file; printf ("\n\n$CMP -s out ok") >> file; if (error_flag == 1) printf (" && $CMP -s err okerr") >> file; printf ("\n\n") >> file; diff --git a/tests/other-tests/discard-comments.m4 b/tests/other-tests/discard-comments.m4 new file mode 100644 index 00000000..95aebd27 --- /dev/null +++ b/tests/other-tests/discard-comments.m4 @@ -0,0 +1,7 @@ +This is not a comment # but this is. +# This line should dissappear completely. +This should not disappear. +changecom(`<!--', `-->') +html <!-- +comment + --> ends. diff --git a/tests/other-tests/discard-comments.test b/tests/other-tests/discard-comments.test new file mode 100755 index 00000000..2f6a4599 --- /dev/null +++ b/tests/other-tests/discard-comments.test @@ -0,0 +1,17 @@ +#!/bin/sh + +# discard-comments.test is part of the GNU m4 testsuite + +. ${srcdir}/defs + +cat ${srcdir}/other-tests/discard-comments.m4 >in + +cat <<\EOF >ok +This is not a comment This should not disappear. + +html ends. +EOF + +M4PATH=$srcdir:$srcdir/other-tests $M4 -c -d in >out 2>err +sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +$CMP -s out ok diff --git a/tests/other-tests/gmp.m4 b/tests/other-tests/gmp.m4 index b916ff69..c0aceaa9 100644 --- a/tests/other-tests/gmp.m4 +++ b/tests/other-tests/gmp.m4 @@ -6,5 +6,5 @@ define(`_forloop', `$4`'ifelse($1, `$3', , `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')') divert -forloop(`x', 1, 100, `2**x = eval(2**x) +forloop(`x', 1, 100, `2**x = mpeval(2**x) ') diff --git a/tests/other-tests/import-environment.m4 b/tests/other-tests/import-environment.m4 new file mode 100644 index 00000000..f537df66 --- /dev/null +++ b/tests/other-tests/import-environment.m4 @@ -0,0 +1,4 @@ +`TEST'=TEST +`LANGUAGE'=LANGUAGE +`ZAPPED'=ZAPPED +`OVERRIDE'=OVERRIDE diff --git a/tests/other-tests/import-environment.test b/tests/other-tests/import-environment.test new file mode 100755 index 00000000..195434b5 --- /dev/null +++ b/tests/other-tests/import-environment.test @@ -0,0 +1,28 @@ +#!/bin/sh + +# import-environment.test is part of the GNU m4 testsuite + +. ${srcdir}/defs + +TEST='This is an environment variable' +export TEST + +ZAPPED='This is an environment variable which we will delete' +export ZAPPED + +OVERRIDE='This is an environment variable which we will change' +export OVERRIDE + +cat ${srcdir}/other-tests/import-environment.m4 >in + +cat <<\EOF >ok +TEST=This is an environment variable +LANGUAGE=C +ZAPPED=ZAPPED +OVERRIDE=It is changed. +EOF + +M4PATH=$srcdir:$srcdir/other-tests \ +$M4 --import-environment -UZAPPED -DOVERRIDE='It is changed.' -d in >out 2>err +sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err +$CMP -s out ok diff --git a/tests/other-tests/iso8859.m4 b/tests/other-tests/iso8859.m4 Binary files differindex 4ac1d196..e0a37604 100644 --- a/tests/other-tests/iso8859.m4 +++ b/tests/other-tests/iso8859.m4 diff --git a/tests/other-tests/iso8859.test b/tests/other-tests/iso8859.test index f77dbb27..11e02ccc 100755 --- a/tests/other-tests/iso8859.test +++ b/tests/other-tests/iso8859.test @@ -7,7 +7,7 @@ cat ${srcdir}/other-tests/iso8859.m4 > in cat <<\EOF >ok -# Texting quotes +# Testing quotes DEFINE CHANGEQUOTE(«,») 0 TEST # TEST |