diff options
author | Jeff Bailey <jbailey@raspberryginger.com> | 2000-02-17 03:03:19 +0000 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2007-09-21 07:04:48 -0600 |
commit | f82834e3653b3eefd645a409f18cd38dbcbad1c2 (patch) | |
tree | ac5cdf3fb62894b98e05e0e9e0888f3503f6f635 | |
parent | bd11691d6520f7539e7ed2efdf75f266719e27e9 (diff) | |
download | m4-1.4.tar.gz |
Import of m4-1.4m4-1.4
521 files changed, 1 insertions, 52848 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS deleted file mode 100644 index 75f8a27f..00000000 --- a/ABOUT-NLS +++ /dev/null @@ -1,226 +0,0 @@ -Notes on the GNU Translation Project -************************************ - - GNU is going international! The GNU Translation Project is a way to -get maintainers, translators, and users all together, so that GNU will -gradually become able to speak many languages. A few packages already -provide translations for their messages. - - If you found this `ABOUT-NLS' file inside a GNU distribution, you -may assume that the distributed package does use GNU `gettext' -internally, itself available at your nearest GNU archive site. But you -do *not* need to install GNU `gettext' prior to configuring, installing -or using this package with messages translated. - - Installers will find here some useful hints. These notes also -explain how users should proceed for getting the programs to use the -available translations. They tell how people wanting to contribute and -work at translations should contact the appropriate team. - - When reporting bugs in the `intl/' directory or bugs which may be -related to internationalization, you should tell about the version of -`gettext' which is used. The information can be found in the -`intl/VERSION' file, in internationalized packages. - -One advise in advance -===================== - - If you want to exploit the full power of internationalization, you -should configure it using - - ./configure --with-included-gettext - -to force usage of internationalizing routines provided within this -package, despite the existence of internationalizing capabilities in -the operating system where this package is being installed. So far, no -prior implementation provides as many useful features (such as locale -alias or message inheritance). It is also not possible to offer this -additional functionality on top of a `catgets' implementation. Future -versions of GNU `gettext' will very likely convey even more -functionality. So it might be a good idea to change to GNU `gettext' -as soon as possible. - -INSTALL Matters -=============== - - Some GNU packages are "localizable" when properly installed; the -programs they contain can be made to speak your own native language. -Most such packages use GNU `gettext'. Other packages have their own -ways to internationalization, predating GNU `gettext'. - - By default, this package will be installed to allow translation of -messages. It will automatically detect whether the system provides -usable `catgets' (if using this is selected by the installer) or -`gettext' functions. If neither is available, the GNU `gettext' own -library will be used. This library is wholly contained within this -package, usually in the `intl/' subdirectory, so prior installation of -the GNU `gettext' package is *not* required. Installers may use -special options at configuration time for changing the default -behaviour. The commands: - - ./configure --with-included-gettext - ./configure --with-catgets - ./configure --disable-nls - -will respectively bypass any pre-existing `catgets' or `gettext' to use -the internationalizing routines provided within this package, enable -the use of the `catgets' functions (if found on the locale system), or -else, *totally* disable translation of messages. - - When you already have GNU `gettext' installed on your system and run -configure without an option for your new package, `configure' will -probably detect the previously built and installed `libintl.a' file and -will decide to use this. This might be not what is desirable. You -should use the more recent version of the GNU `gettext' library. I.e. -if the file `intl/VERSION' shows that the library which comes with this -package is more recent, you should use - - ./configure --with-included-gettext - -to prevent auto-detection. - - By default the configuration process will not test for the `catgets' -function and therefore they will not be used. The reasons are already -given above: the emulation on top of `catgets' cannot provide all the -extensions provided by the GNU `gettext' library. If you nevertheless -want to use the `catgets' functions use - - ./configure --with-catgets - -to enable the test for `catgets' (this causes no harm if `catgets' is -not available on your system). If you really select this option we -would like to hear about the reasons because we cannot think of any -good one ourself. - - Internationalized packages have usually many `po/LL.po' files, where -LL gives an ISO 639 two-letter code identifying the language. Unless -translations have been forbidden at `configure' time by using the -`--disable-nls' switch, all available translations are installed -together with the package. However, the environment variable `LINGUAS' -may be set, prior to configuration, to limit the installed set. -`LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -Using This Package -================== - - As a user, if your language has been installed for this package, you -only have to set the `LANG' environment variable to the appropriate -ISO 639 `LL' two-letter code prior to using the programs in the -package. For example, let's suppose that you speak German. At the -shell prompt, merely execute `setenv LANG de' (in `csh'), -`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This -can be done from your `.login' or `.profile' file, once and for all. - - An operating system might already offer message localization for -many of its programs, while other programs (whether GNU or not) have -been installed locally with the full capabilities of GNU `gettext'. -Just using `gettext' extended syntax for `LANG' would break proper -localization of already available operating system programs. In this -case, users should set both `LANGUAGE' and `LANG' variables in their -environment, as programs using GNU `gettext' give preference to -`LANGUAGE'. For example, some Swedish users would rather read -translations in German than English for when Swedish is not available. -This is easily accomplished by setting `LANGUAGE' to `sv:de' while -leaving `LANG' to `sv'. - -Translating Teams -================= - - For the GNU Translation Project to be a success, we need interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -Each translation team has its own mailing list, courtesy of Linux -International. You may reach your translation team at the address -`LL@li.org', replacing LL by the two-letter ISO 639 code for your -language. Language codes are *not* the same as the country codes given -in ISO 3166. The following translation teams exist, as of February -1997: - - Arabic `ar', Chinese `zh', Czech `cs', Danish `da', Dutch `nl', - English `en', Esperanto `eo', Finnish `fi', French `fr', German - `de', Greek `el', Hebrew `he', Hungarian `hu', Irish `ga', Italian - `it', Indonesian `id', Japanese `ja', Korean `ko', Latin `la', - Norwegian `no', Persian `fa', Polish `pl', Portuguese `pt', - Russian `ru', Slovenian `sl', Spanish `es', Swedish `sv', Telugu - `te', Turkish `tr' and Ukrainian `uk'. - -For example, you may reach the Chinese translation team by writing to -`zh@li.org'. - - If you'd like to volunteer to *work* at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is *not* the same as the list itself, it has -`-request' appended. For example, speakers of Swedish can send a -message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate -*actively* in translations, or at solving translational difficulties, -rather than merely lurking around. If your team does not exist yet and -you want to start one, or if you are unsure about what to do or how to -get started, please write to `gnu-translation@gnu.ai.mit.edu' to reach -the GNU coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology used in GNU. Proven linguistic skill are praised more -than programming skill, here. For the time being, please avoid -subscribing to the English team unless explicitly invited to do so. - -Available Packages -================== - - Languages are not equally supported in all GNU packages. The -following matrix shows the current state of GNU internationalization, -as of February 1997. The matrix shows, in regard of each package, for -which languages PO files have been submitted to translation -coordination. - - Ready PO files cs de en es fi fr ja ko nl no pl pt sl sv - .-------------------------------------------. - bash | [] [] [] | 3 - bison | [] [] [] | 3 - clisp | [] [] [] | 3 - cpio | [] [] [] [] [] | 5 - diffutils | [] [] [] [] | 4 - enscript | [] [] [] [] [] | 5 - fileutils | [] [] [] [] [] [] [] [] | 8 - findutils | [] [] [] [] [] [] [] | 7 - flex | [] [] [] | 3 - gcal | [] [] [] | 3 - gettext | [] [] [] [] [] [] [] [] [] [] | 11 - grep | [] [] [] [] [] [] [] [] | 8 - hello | [] [] [] [] [] [] [] [] [] [] | 10 - id-utils | [] [] | 2 - indent | [] [] | 2 - libc | [] [] [] [] [] [] [] | 7 - m4 | [] [] [] [] [] | 5 - make | [] [] [] [] [] [] | 6 - music | [] | 1 - ptx | [] [] [] [] [] [] [] [] | 8 - recode | [] [] [] [] [] [] [] [] | 8 - sh-utils | [] [] [] [] [] | 5 - sharutils | [] [] [] [] [] | 5 - tar | [] [] [] [] [] [] [] [] [] | 9 - texinfo | | 0 - textutils | [] [] [] [] [] [] | 6 - wdiff | [] [] [] [] [] [] [] [] | 8 - `-------------------------------------------' - 14 languages cs de en es fi fr ja ko nl no pl pt sl sv - 27 packages 1 22 1 14 1 25 1 10 20 7 14 7 7 15 145 - - Some counters in the preceding matrix are higher than the number of -visible blocks let us expect. This is because a few extra PO files are -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and -distributed as such by its maintainer. There might be an observable -lag between the mere existence a PO file and its wide availability in a -GNU distribution. - - If February 1997 seems to be old, you may fetch a more recent copy -of this `ABOUT-NLS' file on most GNU archive sites. - diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 93f8e657..00000000 --- a/AUTHORS +++ /dev/null @@ -1,20 +0,0 @@ -Authors of GNU m4. - -The following contributions warranted legal paper exchanges with the -Free Software Foundation. Also see files ChangeLog and THANKS. - -M4 Rene Seindal (DENMARK, 1964) -Assigns the program. - -M4 University of Copenhagen -Disclaims the program. - -M4 James L. Avera (USA) 10/4/93 -Assigns changes to M4. -Changed (in m4-1.0.3): M4.c M4.h debug.c Makefile.in configure.in -Changelog -Added: stackovf.c tests/stackovf_test.sh - -M4 Pete Chown (UK, 1972) 6/28/94 -Assigns changes to M4 (builtin.c, input.c, m4.h, m4.texinfo, macro.c). - diff --git a/LOCALE b/LOCALE deleted file mode 100644 index b3ce2ee9..00000000 --- a/LOCALE +++ /dev/null @@ -1,41 +0,0 @@ -This GNU package is `localizable'. - -It can be made to speak your native language (or mother tongue). -If you are lucky, someone already did it for you. Check in the -distribution for `??.tt' files. `??' is usually one of: - - de for German - fr for French - nl for Dutch - sv for Swedish - -If your language is already supported, usage is quite simple. -Let's suppose, here, that you speak German. At the shell prompt, -merely execute `setenv LANG de' (in csh) or `export LANG; LANG=de' -(in sh). You may want to put this in your .login or .profile file. - -If your language is not supported, you have to work a bit for it. -Let's suppose again that you speak German. Eventually, when the GNU -locale package will have been published, you will follow these steps: - -1) Check with the maintainer if the work has been, or is being done. -2) Ensure that GNU locale has been installed on your site. -3) In the distribution, initialize `de.tt' by copying `fr.tt'. -4) Carefully edit `de.tt', replacing French parts by German parts. -5) Edit `Makefile.in', adding `de.msg' to the `CATALOGS =' line. -6) You do not need to reconfigure again. Execute `make install'. -7) Use `setenv LANG de', and just use the programs as usual. -8) Send `de.tt' to the maintainer, to be later distributed in GNU. - -But for the time being, GNU local package is still in alpha pretest, -so you are not completely free of me yet! Follow these steps: - -1) Check with the maintainer if the work has been, or is being done. -2) In the distribution, initialize `de.tt' by copying `fr.tt'. -3) Carefully edit `de.tt', replacing French parts by German parts. -4) Send `de.tt' to the maintainer, then wait for `de.msg' in return. -5) Install `de.msg' as `/usr/local/share/locale/de/PACKAGE.msg'. -6) Use `setenv LANG de', and just use the programs as usual. - -In step 5), of course, replace PACKAGE by the GNU package name, which -is usually the first word in the name of the distributed tar file. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 81175178..00000000 --- a/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -SUBDIRS=intl po doc lib src checks examples - -EXTRA_DIST = LOCALE diff --git a/README-alpha b/README-alpha deleted file mode 100644 index 4ed792df..00000000 --- a/README-alpha +++ /dev/null @@ -1,12 +0,0 @@ -This is a alpha version of GNU m4. - -Please see the file TODO for a list of open problems and known bugs. - -Send bug reports, comments or ideas to `bug-m4@gnu.org'. A bug report -is an adequate description of the problem: your input, what you -expected, what you got, and why this is wrong. Diffs are welcome, but -they only describe a solution, from which the problem might be uneasy to -infer. Don't forget all relevant information about your operating -system, compiler, libraries, ... - -GNU m4 has a web-site at http://www.seindal.dk/rene/gnu/ diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index a670f1cb..00000000 --- a/acinclude.m4 +++ /dev/null @@ -1,418 +0,0 @@ -#serial 1 - -dnl FIXME: put these prerequisite-only *.m4 files in a separate -dnl directory -- otherwise, they'll conflict with existing files. - -dnl These are the prerequisite macros for GNU's error.c file. -AC_DEFUN(jm_PREREQ_ERROR, -[ - AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt) - AC_HEADER_STDC -]) -# Macro to add for using GNU gettext. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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. - -# Modified for GNU m4 by René Seindal (rene@seindal.dk) - -# serial 5 - -AC_DEFUN(AM_WITH_NLS, - [AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - USE_INCLUDED_LIBINTL=no - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If gettext or catgets are available (in this order) we - dnl use this. Else we have to fall back to GNU NLS library. - dnl catgets is only used if permitted by option --with-catgets. - nls_cv_header_intl= - nls_cv_header_libgt= - CATOBJEXT=NONE - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, - [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], - gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) - - if test "$gt_cv_func_gettext_libc" != "yes"; then - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CHECK_LIB(intl, gettext, - [LIBS="$LIBS -lintl" - gt_cv_func_gettext_libintl=yes], - [gt_cv_func_gettext_libintl=no])]) - fi - - if test "$gt_cv_func_gettext_libc" = "yes" \ - || test "$gt_cv_func_gettext_libintl" = "yes"; then - AC_DEFINE(HAVE_GETTEXT) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - AC_MSG_CHECKING([whether catgets can be used]) - AC_ARG_WITH(catgets, - [ --with-catgets use catgets functions if available], - nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) - AC_MSG_RESULT($nls_cv_use_catgets) - - if test "$nls_cv_use_catgets" = "yes"; then - dnl No gettext in C library. Try catgets next. - AC_CHECK_LIB(i, main) - AC_CHECK_FUNC(catgets, - [AC_DEFINE(HAVE_CATGETS) - INTLOBJS="\$(CATOBJS)" - AC_PATH_PROG(GENCAT, gencat, no)dnl - if test "$GENCAT" != "no"; then - AC_PATH_PROG(GMSGFMT, gmsgfmt, no) - if test "$GMSGFMT" = "no"; then - AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) - fi - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.cat - INSTOBJEXT=.cat - DATADIRNAME=lib - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi]) - fi - fi - - if test "$CATOBJEXT" = "NONE"; then - dnl Neither gettext nor catgets in included in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INSTOBJEXT=.mo - DATADIRNAME=share - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - else - DATADIRNAME=share - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) - AC_OUTPUT_COMMANDS( - [case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac]) - - - # If this is used in GNU gettext we have to set USE_NLS to `yes' - # because some of the sources are only built for this goal. - if test "$PACKAGE" = gettext; then - USE_NLS=yes - USE_INCLUDED_LIBINTL=yes - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(DATADIRNAME) - AC_SUBST(GMOFILES) - AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLDEPS) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - ]) - -AC_DEFUN(AM_GNU_GETTEXT, - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ -strdup __argz_count __argz_stringify __argz_next]) - - if test "${ac_cv_func_stpcpy+set}" != "set"; then - AC_CHECK_FUNCS(stpcpy) - fi - if test "${ac_cv_func_stpcpy}" = "yes"; then - AC_DEFINE(HAVE_STPCPY) - fi - - AM_LC_MESSAGES - AM_WITH_NLS - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for lang in ${LINGUAS=$ALL_LINGUAS}; do - case "$ALL_LINGUAS" in - *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; - esac - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl The reference to <locale.h> in the installed <libintl.h> file - dnl must be resolved because we cannot expect the users of this - dnl to define HAVE_LOCALE_H. - if test $ac_cv_header_locale_h = yes; then - INCLUDE_LOCALE_H="#include <locale.h>" - else - INCLUDE_LOCALE_H="\ -/* The system does not provide the header <locale.h>. Take care yourself. */" - fi - AC_SUBST(INCLUDE_LOCALE_H) - - dnl Determine which catalog format we have (if any is needed) - dnl For now we know about two different formats: - dnl Linux libc-5 and the normal X/Open format - test -d intl || mkdir intl - if test "$CATOBJEXT" = ".cat"; then - AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) - - dnl Transform the SED scripts while copying because some dumb SEDs - dnl cannot handle comments. - sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed - fi - dnl po2tbl.sed is always needed. - sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ - $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed - - dnl In the intl/Makefile.in we have a special dependency which makes - dnl only sense for gettext. We comment this out for non-gettext - dnl packages. - if test "$PACKAGE" = "gettext"; then - GT_NO="#NO#" - GT_YES= - else - GT_NO= - GT_YES="#YES#" - fi - AC_SUBST(GT_NO) - AC_SUBST(GT_YES) - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl *** For now the libtool support in intl/Makefile is not for real. - l= - AC_SUBST(l) - - dnl Generate list of files to be processed by xgettext which will - dnl be included in po/Makefile. - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - ]) - -# Search path for a program which passes the given test. -# Ulrich Drepper <drepper@cygnus.com>, 1996. -# -# 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 - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN(AM_PATH_PROG_WITH_TEST, -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) - -# Check whether LC_MESSAGES is available in <locale.h>. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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_LC_MESSAGES, - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES) - fi - fi]) - -#serial 2 - -dnl Derived from code in GNU grep. - -AC_DEFUN(jm_WITH_REGEX, - [ - dnl Even packages that don't use regex.c can use this macro. - dnl Of course, for them it doesn't do anything. - - syscmd([test -f lib/regex.c]) - ifelse(sysval, 0, - [ - AC_ARG_WITH(included-regex, - [ --without-included-regex don't compile regex (use with caution)], - jm_with_regex=$withval, - jm_with_regex=yes) - if test "$jm_with_regex" = yes; then - LIBOBJS="$LIBOBJS regex.o" - fi - ], - ) - ] -) diff --git a/acm4/Makefile.am b/acm4/Makefile.am deleted file mode 100644 index 1d2df7af..00000000 --- a/acm4/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -EXTRA_DIST = $(ACINCLUDES_M4) - -ACINCLUDES_M4 = error.m4 gettext.m4 regex.m4 - -ACINCLUDE_M4 = $(top_srcdir)/acinclude.m4 - -all: $(ACINCLUDE_M4) - -$(ACINCLUDE_M4): $(ACINCLUDES_M4) - cat $(ACINCLUDES_M4) > $@ - cd $(top_srcdir) && $(ACLOCAL) -# cd $(top_srcdir) && $(MAKE) diff --git a/acm4/Makefile.in b/acm4/Makefile.in deleted file mode 100644 index 77d1cdd7..00000000 --- a/acm4/Makefile.in +++ /dev/null @@ -1,186 +0,0 @@ -# Makefile.in generated automatically by automake 1.3b from Makefile.am - -# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -GENCAT = @GENCAT@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GT_NO = @GT_NO@ -GT_YES = @GT_YES@ -INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ -INSTOBJEXT = @INSTOBJEXT@ -INTLDEPS = @INTLDEPS@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -PACKAGE = @PACKAGE@ -PERL = @PERL@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -STACKOVF = @STACKOVF@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -l = @l@ - -EXTRA_DIST = $(ACINCLUDES_M4) - -ACINCLUDES_M4 = error.m4 gettext.m4 regex.m4 - -ACINCLUDE_M4 = $(top_srcdir)/acinclude.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP = --best -all: Makefile - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps acm4/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = acm4 - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file; \ - done -info: -dvi: -check: all -installcheck: -install-exec: - @$(NORMAL_INSTALL) - -install-data: - @$(NORMAL_INSTALL) - -install: install-exec install-data all - @: - -uninstall: - -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean: mostlyclean-generic - -clean: clean-generic mostlyclean - -distclean: distclean-generic clean - -rm -f config.status - -maintainer-clean: maintainer-clean-generic distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -.PHONY: tags distdir info dvi installcheck install-exec install-data \ -install uninstall all installdirs mostlyclean-generic distclean-generic \ -clean-generic maintainer-clean-generic clean mostlyclean distclean \ -maintainer-clean - - -all: $(ACINCLUDE_M4) - -$(ACINCLUDE_M4): $(ACINCLUDES_M4) - cat $(ACINCLUDES_M4) > $@ - cd $(top_srcdir) && $(ACLOCAL) -# cd $(top_srcdir) && $(MAKE) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/acm4/error.m4 b/acm4/error.m4 deleted file mode 100644 index eb0f776b..00000000 --- a/acm4/error.m4 +++ /dev/null @@ -1,11 +0,0 @@ -#serial 1 - -dnl FIXME: put these prerequisite-only *.m4 files in a separate -dnl directory -- otherwise, they'll conflict with existing files. - -dnl These are the prerequisite macros for GNU's error.c file. -AC_DEFUN(jm_PREREQ_ERROR, -[ - AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt) - AC_HEADER_STDC -]) diff --git a/acm4/gettext.m4 b/acm4/gettext.m4 deleted file mode 100644 index 969d0922..00000000 --- a/acm4/gettext.m4 +++ /dev/null @@ -1,384 +0,0 @@ -# Macro to add for using GNU gettext. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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. - -# Modified for GNU m4 by René Seindal (rene@seindal.dk) - -# serial 5 - -AC_DEFUN(AM_WITH_NLS, - [AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - USE_INCLUDED_LIBINTL=no - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If gettext or catgets are available (in this order) we - dnl use this. Else we have to fall back to GNU NLS library. - dnl catgets is only used if permitted by option --with-catgets. - nls_cv_header_intl= - nls_cv_header_libgt= - CATOBJEXT=NONE - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, - [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], - gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) - - if test "$gt_cv_func_gettext_libc" != "yes"; then - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CHECK_LIB(intl, gettext, - [LIBS="$LIBS -lintl" - gt_cv_func_gettext_libintl=yes], - [gt_cv_func_gettext_libintl=no])]) - fi - - if test "$gt_cv_func_gettext_libc" = "yes" \ - || test "$gt_cv_func_gettext_libintl" = "yes"; then - AC_DEFINE(HAVE_GETTEXT) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - AC_MSG_CHECKING([whether catgets can be used]) - AC_ARG_WITH(catgets, - [ --with-catgets use catgets functions if available], - nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) - AC_MSG_RESULT($nls_cv_use_catgets) - - if test "$nls_cv_use_catgets" = "yes"; then - dnl No gettext in C library. Try catgets next. - AC_CHECK_LIB(i, main) - AC_CHECK_FUNC(catgets, - [AC_DEFINE(HAVE_CATGETS) - INTLOBJS="\$(CATOBJS)" - AC_PATH_PROG(GENCAT, gencat, no)dnl - if test "$GENCAT" != "no"; then - AC_PATH_PROG(GMSGFMT, gmsgfmt, no) - if test "$GMSGFMT" = "no"; then - AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) - fi - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.cat - INSTOBJEXT=.cat - DATADIRNAME=lib - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi]) - fi - fi - - if test "$CATOBJEXT" = "NONE"; then - dnl Neither gettext nor catgets in included in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INSTOBJEXT=.mo - DATADIRNAME=share - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - else - DATADIRNAME=share - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) - AC_OUTPUT_COMMANDS( - [case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac]) - - - # If this is used in GNU gettext we have to set USE_NLS to `yes' - # because some of the sources are only built for this goal. - if test "$PACKAGE" = gettext; then - USE_NLS=yes - USE_INCLUDED_LIBINTL=yes - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(DATADIRNAME) - AC_SUBST(GMOFILES) - AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLDEPS) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - ]) - -AC_DEFUN(AM_GNU_GETTEXT, - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ -strdup __argz_count __argz_stringify __argz_next]) - - if test "${ac_cv_func_stpcpy+set}" != "set"; then - AC_CHECK_FUNCS(stpcpy) - fi - if test "${ac_cv_func_stpcpy}" = "yes"; then - AC_DEFINE(HAVE_STPCPY) - fi - - AM_LC_MESSAGES - AM_WITH_NLS - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for lang in ${LINGUAS=$ALL_LINGUAS}; do - case "$ALL_LINGUAS" in - *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; - esac - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl The reference to <locale.h> in the installed <libintl.h> file - dnl must be resolved because we cannot expect the users of this - dnl to define HAVE_LOCALE_H. - if test $ac_cv_header_locale_h = yes; then - INCLUDE_LOCALE_H="#include <locale.h>" - else - INCLUDE_LOCALE_H="\ -/* The system does not provide the header <locale.h>. Take care yourself. */" - fi - AC_SUBST(INCLUDE_LOCALE_H) - - dnl Determine which catalog format we have (if any is needed) - dnl For now we know about two different formats: - dnl Linux libc-5 and the normal X/Open format - test -d intl || mkdir intl - if test "$CATOBJEXT" = ".cat"; then - AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) - - dnl Transform the SED scripts while copying because some dumb SEDs - dnl cannot handle comments. - sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed - fi - dnl po2tbl.sed is always needed. - sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ - $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed - - dnl In the intl/Makefile.in we have a special dependency which makes - dnl only sense for gettext. We comment this out for non-gettext - dnl packages. - if test "$PACKAGE" = "gettext"; then - GT_NO="#NO#" - GT_YES= - else - GT_NO= - GT_YES="#YES#" - fi - AC_SUBST(GT_NO) - AC_SUBST(GT_YES) - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl *** For now the libtool support in intl/Makefile is not for real. - l= - AC_SUBST(l) - - dnl Generate list of files to be processed by xgettext which will - dnl be included in po/Makefile. - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - ]) - -# Search path for a program which passes the given test. -# Ulrich Drepper <drepper@cygnus.com>, 1996. -# -# 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 - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN(AM_PATH_PROG_WITH_TEST, -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) - -# Check whether LC_MESSAGES is available in <locale.h>. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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_LC_MESSAGES, - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES) - fi - fi]) - diff --git a/acm4/gmp.m4 b/acm4/gmp.m4 deleted file mode 100644 index beea42b5..00000000 --- a/acm4/gmp.m4 +++ /dev/null @@ -1,30 +0,0 @@ -AC_DEFUN(AM_WITH_GMP, - [AC_MSG_CHECKING(if extended and fractional arithmetic is wanted) - AC_ARG_WITH(gmp, - [ --with-gmp use gmp for extended and fractional arithmetic], - [use_gmp=$withval], [use_gmp=no]) - AC_MSG_RESULT($use_gmp) - - if test "$use_gmp" = yes; then - LIBS="$LIBS -lgmp" - AC_CHECK_HEADER([gmp.h], - [AC_CACHE_CHECK([for mpq_init in libgmp], ac_cv_func_mpq_init_libgmp, - [AC_TRY_LINK([#include <gmp.h>], - [mpq_t x; (void)mpq_init(x)], - ac_cv_func_mpq_init_libgmp=yes, - ac_cv_func_mpq_init_libgmp=no)])], - ac_cv_func_mpq_init_libgmp=no) - - if test "$ac_cv_func_mpq_init_libgmp$ac_cv_header_gmp_h" = yesyes; then - AC_DEFINE(WITH_GMP) - else - LIBS=`echo $LIBS | sed -e 's/-lgmp//'` - AC_MSG_WARN([gmp library not found or does not appear to work]) - use_gmp=no - fi - fi - - if test "$use_gmp" != yes; then - AC_CHECK_SIZEOF(long long int, 0) - fi - ]) diff --git a/acm4/ltdl.m4 b/acm4/ltdl.m4 deleted file mode 100644 index 1601efc2..00000000 --- a/acm4/ltdl.m4 +++ /dev/null @@ -1,429 +0,0 @@ -## libltdl.m4 - Configure ltdl for the target system. -*-Shell-script-*- -## Copyright (C) 1999 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -## -## As a special exception to the GNU General Public License, if you -## distribute this file as part of a program that contains a -## configuration script generated by Autoconf, you may include it under -## the same distribution terms that you use for the rest of that program. - -# serial 1 AC_LIB_LTDL - -AC_DEFUN(AC_LIB_LTDL, -[AC_PREREQ(2.13)dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_C_CONST])dnl -AC_REQUIRE([AC_C_INLINE])dnl - -dnl AC_LIB_LTDL must perform all the checks necessary for compilation -dnl of the ltdl objects -- including compiler checks (above) and header -dnl checks (below). -AC_REQUIRE([AC_HEADER_STDC])dnl - -AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h) -AC_CHECK_HEADERS(string.h strings.h, break) -AC_CHECK_FUNCS(strchr index, break) -AC_CHECK_FUNCS(strrchr rindex, break) - -AC_REQUIRE([AC_LTDL_ENABLE_INSTALL])dnl -AC_REQUIRE([AC_LTDL_SHLIBEXT])dnl -AC_REQUIRE([AC_LTDL_SHLIBPATH])dnl -AC_REQUIRE([AC_LTDL_OBJDIR])dnl -AC_REQUIRE([AC_LTDL_DLPREOPEN])dnl -AC_REQUIRE([AC_LTDL_DLLIB])dnl -AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl -]) - -AC_DEFUN(AC_LTDL_ENABLE_INSTALL, -[AC_ARG_ENABLE(ltdl-install, -[ --enable-ltdl-install install libltdl]) - -AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno) -AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno) -])]) - - -AC_DEFUN(AC_LTDL_SNARF_CONFIG, -[# Read the libtool configuration -rm -f conftest -./libtool --config > conftest -. ./conftest -rm -f conftest -]) - -AC_DEFUN(AC_LTDL_SHLIBEXT, -[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl -AC_CACHE_CHECK([which extension is used for shared libraries], - libltdl_cv_shlibext, [dnl -( - last= - for spec in $library_names_spec; do - last="$spec" - done -changequote(, ) - echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest -changequote([, ]) -) -libltdl_cv_shlibext=`cat conftest` -rm -f conftest -]) -if test -n "$libltdl_cv_shlibext"; then - AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext", - [Define to the extension used for shared libraries, say, ".so". ]) -fi -]) - -AC_DEFUN(AC_LTDL_SHLIBPATH, -[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl -AC_CACHE_CHECK([which variable specifies run-time library path], - libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"]) -if test -n "$libltdl_cv_shlibpath_var"; then - AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var", - [Define to the name of the environment variable that determines the dynamic library search path. ]) -fi -]) - -AC_DEFUN(AC_LTDL_OBJDIR, -[AC_CACHE_CHECK([for objdir], - libltdl_cv_objdir, [libltdl_cv_objdir="$objdir" -if test -n "$objdir"; then - : -else - rm -f .libs 2>/dev/null - mkdir .libs 2>/dev/null - if test -d .libs; then - libltdl_cv_objdir=.libs - else - # MS-DOS does not allow filenames that begin with a dot. - libltdl_cv_objdir=_libs - fi -rmdir .libs 2>/dev/null -fi]) -AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries. ]) -]) - -AC_DEFUN(AC_LTDL_DLPREOPEN, -[AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl -AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen], - libltdl_cv_preloaded_symbols, [dnl - if test -n "$global_symbol_pipe"; then - libltdl_cv_preloaded_symbols=yes - else - libltdl_cv_preloaded_symbols=no - fi -]) -if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then - AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1, - [Define if libtool can extract symbol lists from object files. ]) -fi -]) - -AC_DEFUN(AC_LTDL_DLLIB, -[LIBADD_DL= -AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1, - [Define if you have the libdl library or equivalent. ]) LIBADD_DL="-ldl"], -[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1, - [Define if you have the libdl library or equivalent.])])]) -AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1, - [Define if you have the shl_load function.])], -[AC_CHECK_LIB(dld, shl_load, - [AC_DEFINE(HAVE_SHL_LOAD, 1, - [Define if you have the shl_load function.]) - LIBADD_DL="$LIBADD_DL -ldld"]) -]) -AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1, - [Define if you have the GNU dld library.])dnl -test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"]) -AC_SUBST(LIBADD_DL) - -if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then - LIBS_SAVE="$LIBS" - LIBS="$LIBS $LIBADD_DL" - AC_CHECK_FUNCS(dlerror) - LIBS="$LIBS_SAVE" -fi -]) - -AC_DEFUN(AC_LTDL_GLOBAL_SYMBOL_PIPE, -[dnl Check for command to grab the raw symbol name followed -dnl by C symbol name from nm. -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_NM])dnl -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output]) -AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe, -[# These are sane defaults that work on at least a few old systems. -# {They come from Ultrix. What could be older than Ultrix?!! ;)} - -changequote(,)dnl -# Character class describing NM global symbol codes. -ac_symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -ac_symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - ac_symcode='[BCDT]' - ;; -cygwin* | mingw*) - ac_symcode='[ABCDGISTW]' - ;; -hpux*) - ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - ac_symcode='[BCDEGRST]' - ;; -solaris*) - ac_symcode='[BDT]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - ac_symcode='[ABCDGISTW]' -fi -changequote([,])dnl - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'" - - # Check to see that the pipe works correctly. - ac_pipe_works=no - rm -f conftest.$ac_ext - cat > conftest.$ac_ext <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func;return 0;} -EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - ac_nlist=conftest.nm - - if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then - - # Try sorting and uniquifying the output. - if sort "$ac_nlist" | uniq > "$ac_nlist"T; then - mv -f "$ac_nlist"T "$ac_nlist" - else - rm -f "$ac_nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then - if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then - cat <<EOF > conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c' - - cat <<EOF >> conftest.c -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -changequote(,)dnl -lt_preloaded_symbols[] = -changequote([,])dnl -{ -EOF - sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - ac_save_LIBS="$LIBS" - ac_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if AC_TRY_EVAL(ac_link) && test -s conftest; then - ac_pipe_works=yes - else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC - fi - LIBS="$ac_save_LIBS" - CFLAGS="$ac_save_CFLAGS" - else - echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi - else - echo "$progname: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$ac_pipe_works" = yes; then - if test x"$ac_symprfx" = x"_"; then - ac_cv_sys_symbol_underscore=yes - else - ac_cv_sys_symbol_underscore=no - fi - break - else - ac_cv_sys_global_symbol_pipe= - fi -done -]) - -ac_result=yes -if test -z "$ac_cv_sys_global_symbol_pipe"; then - ac_result=no -fi -AC_MSG_RESULT($ac_result) -]) - -AC_DEFUN(AC_LTDL_SYMBOL_USCORE, -[dnl does the compiler prefix global symbols with an underscore? -AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl -AC_MSG_CHECKING([for _ prefix in compiled symbols]) -AC_CACHE_VAL(ac_cv_sys_symbol_underscore, -[ac_cv_sys_symbol_underscore=no -cat > conftest.$ac_ext <<EOF -void nm_test_func(){} -int main(){nm_test_func;return 0;} -EOF -if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - ac_nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then - # See whether the symbols have a leading underscore. - if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then - ac_cv_sys_symbol_underscore=yes - else - if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then - : - else - echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - fi - else - echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi -else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC -fi -rm -rf conftest* -]) -AC_MSG_RESULT($ac_cv_sys_symbol_underscore) -AC_LTDL_DLSYM_USCORE -]) - -AC_DEFUN(AC_LTDL_DLSYM_USCORE, -[AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl -if test x"$ac_cv_sys_symbol_underscore" = xyes; then - if test x"$ac_cv_func_dlopen" = xyes || - test x"$ac_cv_lib_dl_dlopen" = xyes ; then - AC_CACHE_CHECK([whether we have to add an underscore for dlsym], - libltdl_cv_need_uscore, [dnl - AC_TRY_RUN([ -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); } -], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes, - libltdl_cv_need_uscore=cross -)]) - fi -fi - -if test x"$libltdl_cv_need_uscore" = xyes; then - AC_DEFINE(NEED_USCORE, 1, - [Define if dlsym() requires a leading underscode in symbol names. ]) -fi -]) diff --git a/acm4/modules.m4 b/acm4/modules.m4 deleted file mode 100644 index c4a47b76..00000000 --- a/acm4/modules.m4 +++ /dev/null @@ -1,27 +0,0 @@ -AC_DEFUN(AM_WITH_MODULES, - [AC_MSG_CHECKING(if support for dynamic modules is wanted) - AC_ARG_WITH(modules, - [ --with-modules add support for dynamic modules], - [use_modules=$withval], [use_modules=no]) - AC_MSG_RESULT($use_modules) - - if test "$use_modules" = yes; then - LIBS="$LIBS -ldl" - AC_CHECK_HEADER([dlfcn.h], - [AC_CACHE_CHECK([for dlopen in libdl], ac_cv_func_dlopen_libdl, - [AC_TRY_LINK([#include <dlfcn.h>], - [(void)dlopen(0, RTLD_NOW)], - ac_cv_func_dlopen_libdl=yes, - ac_cv_func_dlopen_libdl=no)])], - ac_cv_func_dlopen_libdl=no) - - if test "$ac_cv_func_dlopen_libdl$ac_cv_header_dlfcn_h" = yesyes; then - AC_DEFINE(WITH_MODULES) - LDFLAGS="$LDFLAGS -rdynamic" - else - LIBS=`echo $LIBS | sed -e 's/-ldl//'` - AC_MSG_WARN([-ldl library not found or does not appear to work]) - use_modules=no - fi - fi - ]) diff --git a/acm4/regex.m4 b/acm4/regex.m4 deleted file mode 100644 index e5468c65..00000000 --- a/acm4/regex.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#serial 2 - -dnl Derived from code in GNU grep. - -AC_DEFUN(jm_WITH_REGEX, - [ - dnl Even packages that don't use regex.c can use this macro. - dnl Of course, for them it doesn't do anything. - - syscmd([test -f lib/regex.c]) - ifelse(sysval, 0, - [ - AC_ARG_WITH(included-regex, - [ --without-included-regex don't compile regex (use with caution)], - jm_with_regex=$withval, - jm_with_regex=yes) - if test "$jm_with_regex" = yes; then - LIBOBJS="$LIBOBJS regex.o" - fi - ], - ) - ] -) diff --git a/checks/02.define b/checks/02.define deleted file mode 100644 index de8bc66d..00000000 --- a/checks/02.define +++ /dev/null @@ -1,13 +0,0 @@ -dnl ../doc/m4.texinfo:905: Origin of test -define(`array', `defn(format(``array[%d]'', `$1'))') -dnl @result{} -define(`array_set', `define(format(``array[%d]'', `$1'), `$2')') -dnl @result{} -array_set(4, `array element no. 4') -dnl @result{} -array_set(17, `array element no. 17') -dnl @result{} -array(4) -dnl @result{}array element no. 4 -array(eval(10+7)) -dnl @result{}array element no. 17 diff --git a/checks/06.arguments b/checks/06.arguments deleted file mode 100644 index b866e6c9..00000000 --- a/checks/06.arguments +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:974: Origin of test -define(`foo', `This is macro `foo'.') -dnl @result{} -foo -dnl @result{}This is macro foo. diff --git a/checks/11.pseudo_argu b/checks/11.pseudo_argu deleted file mode 100644 index dd46c979..00000000 --- a/checks/11.pseudo_argu +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:1053: Origin of test -define(`foo', `$$$ hello $$$') -dnl @result{} -foo -dnl @result{}$$$ hello $$$ diff --git a/checks/12.undefine b/checks/12.undefine deleted file mode 100644 index 1f61131d..00000000 --- a/checks/12.undefine +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:1084: Origin of test -foo -dnl @result{}foo -define(`foo', `expansion text') -dnl @result{} -foo -dnl @result{}expansion text -undefine(`foo') -dnl @result{} -foo -dnl @result{}foo diff --git a/checks/13.defn b/checks/13.defn deleted file mode 100644 index 1deb3f44..00000000 --- a/checks/13.defn +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1128: Origin of test -define(`zap', defn(`undefine')) -dnl @result{} -zap(`undefine') -dnl @result{} -undefine(`zap') -dnl @result{}undefine(zap) diff --git a/checks/14.defn b/checks/14.defn deleted file mode 100644 index 11ece953..00000000 --- a/checks/14.defn +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:1148: Origin of test -define(`string', `The macro dnl is very useful -') -dnl @result{} -string -dnl @result{}The macro -defn(`string') -dnl @result{}The macro dnl is very useful -dnl @result{} diff --git a/checks/15.pushdef b/checks/15.pushdef deleted file mode 100644 index df2859af..00000000 --- a/checks/15.pushdef +++ /dev/null @@ -1,17 +0,0 @@ -dnl ../doc/m4.texinfo:1192: Origin of test -define(`foo', `Expansion one.') -dnl @result{} -foo -dnl @result{}Expansion one. -pushdef(`foo', `Expansion two.') -dnl @result{} -foo -dnl @result{}Expansion two. -popdef(`foo') -dnl @result{} -foo -dnl @result{}Expansion one. -popdef(`foo') -dnl @result{} -foo -dnl @result{}foo diff --git a/checks/16.pushdef b/checks/16.pushdef deleted file mode 100644 index 48c0cec6..00000000 --- a/checks/16.pushdef +++ /dev/null @@ -1,17 +0,0 @@ -dnl ../doc/m4.texinfo:1216: Origin of test -define(`foo', `Expansion one.') -dnl @result{} -foo -dnl @result{}Expansion one. -pushdef(`foo', `Expansion two.') -dnl @result{} -foo -dnl @result{}Expansion two. -define(`foo', `Second expansion two.') -dnl @result{} -foo -dnl @result{}Second expansion two. -undefine(`foo') -dnl @result{} -foo -dnl @result{}foo diff --git a/checks/17.indir b/checks/17.indir deleted file mode 100644 index d573a386..00000000 --- a/checks/17.indir +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1267: Origin of test -define(`$$internal$macro', `Internal macro (name `$0')') -dnl @result{} -$$internal$macro -dnl @result{}$$internal$macro -indir(`$$internal$macro') -dnl @result{}Internal macro (name $$internal$macro) diff --git a/checks/18.ifdef b/checks/18.ifdef deleted file mode 100644 index 40c355ca..00000000 --- a/checks/18.ifdef +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1338: Origin of test -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -dnl @result{}foo is not defined -define(`foo', `') -dnl @result{} -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -dnl @result{}foo is defined diff --git a/checks/19.ifelse b/checks/19.ifelse deleted file mode 100644 index 0886f6db..00000000 --- a/checks/19.ifelse +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:1376: Origin of test -ifelse(`foo', `bar', `true') -dnl @result{} -ifelse(`foo', `foo', `true') -dnl @result{}true -ifelse(`foo', `bar', `true', `false') -dnl @result{}false -ifelse(`foo', `foo', `true', `false') -dnl @result{}true diff --git a/checks/20.ifelse b/checks/20.ifelse deleted file mode 100644 index aff53225..00000000 --- a/checks/20.ifelse +++ /dev/null @@ -1,3 +0,0 @@ -dnl ../doc/m4.texinfo:1395: Origin of test -ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh') -dnl @result{}seventh diff --git a/checks/21.loops b/checks/21.loops deleted file mode 100644 index 2b0290b1..00000000 --- a/checks/21.loops +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1432: Origin of test -shift -dnl @result{} -shift(bar) -dnl @result{} -shift(foo, bar, baz) -dnl @result{}bar,baz diff --git a/checks/22.loops b/checks/22.loops deleted file mode 100644 index 1ecdc076..00000000 --- a/checks/22.loops +++ /dev/null @@ -1,10 +0,0 @@ -dnl ../doc/m4.texinfo:1444: Origin of test -define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'', - `reverse(shift($@)), `$1'')') -dnl @result{} -reverse -dnl @result{} -reverse(foo) -dnl @result{}foo -reverse(foo, bar, gnats, and gnus) -dnl @result{}and gnus, gnats, bar, foo diff --git a/checks/23.dumpdef b/checks/23.dumpdef deleted file mode 100644 index c65f6934..00000000 --- a/checks/23.dumpdef +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:1558: Origin of test -define(`foo', `Hello world.') -dnl @result{} -dumpdef(`foo') -dnl @error{}foo: `Hello world.' -dnl @result{} -dumpdef(`define') -dnl @error{}define: <define> -dnl @result{} diff --git a/checks/24.trace b/checks/24.trace deleted file mode 100644 index 491eef27..00000000 --- a/checks/24.trace +++ /dev/null @@ -1,13 +0,0 @@ -dnl ../doc/m4.texinfo:1603: Origin of test -define(`foo', `Hello World.') -dnl @result{} -define(`echo', `$@') -dnl @result{} -traceon(`foo', `echo') -dnl @result{} -foo -dnl @error{}m4trace: -1- foo -> `Hello World.' -dnl @result{}Hello World. -echo(gnus, and gnats) -dnl @error{}m4trace: -1- echo(`gnus', `and gnats') -> ``gnus',`and gnats'' -dnl @result{}gnus,and gnats diff --git a/checks/25.dnl b/checks/25.dnl deleted file mode 100644 index ecdb9b24..00000000 --- a/checks/25.dnl +++ /dev/null @@ -1,4 +0,0 @@ -dnl ../doc/m4.texinfo:1755: Origin of test -define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. -foo -dnl @result{}Macro foo. diff --git a/checks/27.changequote b/checks/27.changequote deleted file mode 100644 index bd71cb96..00000000 --- a/checks/27.changequote +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1805: Origin of test -changequote([[, ]]) -dnl @result{} -define([[foo]], [[Macro [[[foo]]].]]) -dnl @result{} -foo -dnl @result{}Macro [foo]. diff --git a/checks/28.changequote b/checks/28.changequote deleted file mode 100644 index ed067f50..00000000 --- a/checks/28.changequote +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:1817: Origin of test -define(`foo', `Macro `FOO'.') -dnl @result{} -changequote(, ) -dnl @result{} -foo -dnl @result{}Macro `FOO'. -`foo' -dnl @result{}`Macro `FOO'.' diff --git a/checks/29.changecom b/checks/29.changecom deleted file mode 100644 index 7a1dfa60..00000000 --- a/checks/29.changecom +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:1857: Origin of test -define(`comment', `COMMENT') -dnl @result{} -# A normal comment -dnl @result{}# A normal comment -changecom(`/*', `*/') -dnl @result{} -# Not a comment anymore -dnl @result{}# Not a COMMENT anymore -But: /* this is a comment now */ while this is not a comment -dnl @result{}But: /* this is a comment now */ while this is not a COMMENT diff --git a/checks/30.changecom b/checks/30.changecom deleted file mode 100644 index fce2579c..00000000 --- a/checks/30.changecom +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:1878: Origin of test -define(`comment', `COMMENT') -dnl @result{} -changecom -dnl @result{} -# Not a comment anymore -dnl @result{}# Not a COMMENT anymore diff --git a/checks/31.changesynta b/checks/31.changesynta deleted file mode 100644 index 02f0ac23..00000000 --- a/checks/31.changesynta +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:2023: Origin of test -define(`test.1', `TEST ONE') -dnl @result{} -__file__ -dnl @result{}31.changesynta -changesyntax(`O_', `W.') -dnl @result{} -__file__ -dnl @result{}__file__ -test.1 -dnl @result{}TEST ONE diff --git a/checks/32.changesynta b/checks/32.changesynta deleted file mode 100644 index 8bd2f388..00000000 --- a/checks/32.changesynta +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:2039: Origin of test -define(`test', `$#') -dnl @result{} -test(a, b, c) -dnl @result{}3 -changesyntax(`(<', `,|', `)>', `O(,)') -dnl @result{} -test(a, b, c) -dnl @result{}0(a, b, c) -test<a|b|c> -dnl @result{}3 diff --git a/checks/33.changesynta b/checks/33.changesynta deleted file mode 100644 index e4f76f71..00000000 --- a/checks/33.changesynta +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2056: Origin of test -define(`test', `$1$2$3') -dnl @result{} -test(a, b, c) -dnl @result{}abc -changesyntax(`O ') -dnl @result{} -test(a, b, c) -dnl @result{}a b c diff --git a/checks/34.changesynta b/checks/34.changesynta deleted file mode 100644 index 7b430d69..00000000 --- a/checks/34.changesynta +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2075: Origin of test -define(`@', `TEST') -dnl @result{} -@ -dnl @result{}@ -changesyntax(`A@') -dnl @result{} -@ -dnl @result{}TEST diff --git a/checks/35.changesynta b/checks/35.changesynta deleted file mode 100644 index d2ab2d3f..00000000 --- a/checks/35.changesynta +++ /dev/null @@ -1,15 +0,0 @@ -dnl ../doc/m4.texinfo:2099: Origin of test -define(`test', `TEST') -dnl @result{} -changesyntax(`L<', `R>') -dnl @result{} -<test> -dnl @result{}test -`test> -dnl @result{}test -changequote(<[>, `]') -dnl @result{} -<test> -dnl @result{}<TEST> -[test] -dnl @result{}test diff --git a/checks/36.changesynta b/checks/36.changesynta deleted file mode 100644 index db3f46f2..00000000 --- a/checks/36.changesynta +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2121: Origin of test -changesyntax(`({<', `)}>', `,;:', `O(,)') -dnl @result{} -eval{2**4-1; 2 : 8> -dnl @result{}00001111 diff --git a/checks/37.changesynta b/checks/37.changesynta deleted file mode 100644 index 378d6d51..00000000 --- a/checks/37.changesynta +++ /dev/null @@ -1,13 +0,0 @@ -dnl ../doc/m4.texinfo:2132: Origin of test -define(`test', `==$1==') -dnl @result{} -changequote(`<<', `>>') -dnl @result{} -changesyntax(<<L[>>, <<R]>>) -dnl @result{} -test(<<testing]>>) -dnl @result{}==testing]== -test([testing>>]) -dnl @result{}==testing>>== -test([<<testing>>]) -dnl @result{}==<<testing>>== diff --git a/checks/38.m4wrap b/checks/38.m4wrap deleted file mode 100644 index 95fb12dd..00000000 --- a/checks/38.m4wrap +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2293: Origin of test -define(`cleanup', `This is the `cleanup' actions. -') -dnl @result{} -m4wrap(`cleanup') -dnl @result{} -This is the first and last normal input line. -dnl @result{}This is the first and last normal input line. -dnl @result{}This is the cleanup actions. diff --git a/checks/39.include b/checks/39.include deleted file mode 100644 index 68cba854..00000000 --- a/checks/39.include +++ /dev/null @@ -1,6 +0,0 @@ -dnl ../doc/m4.texinfo:2352: Origin of test -include(`no-such-file') -dnl @result{} -dnl @error{}39.include:2: m4: Cannot open no-such-file: No such file or directory -sinclude(`no-such-file') -dnl @result{} diff --git a/checks/40.include b/checks/40.include deleted file mode 100644 index 1afae8e2..00000000 --- a/checks/40.include +++ /dev/null @@ -1,8 +0,0 @@ -dnl ../doc/m4.texinfo:2372: Origin of test -define(`foo', `FOO') -dnl @result{} -include(`incl.m4') -dnl @result{}Include file start -dnl @result{}FOO -dnl @result{}Include file end -dnl @result{} diff --git a/checks/41.include b/checks/41.include deleted file mode 100644 index e5965be9..00000000 --- a/checks/41.include +++ /dev/null @@ -1,8 +0,0 @@ -dnl ../doc/m4.texinfo:2387: Origin of test -define(`bar', include(`incl.m4')) -dnl @result{} -This is `bar': >>>bar<<< -dnl @result{}This is bar: >>>Include file start -dnl @result{}foo -dnl @result{}Include file end -dnl @result{}<<< diff --git a/checks/42.divert b/checks/42.divert deleted file mode 100644 index 9c86c5de..00000000 --- a/checks/42.divert +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2478: Origin of test -divert(1) -This text is diverted. -divert -dnl @result{} -This text is not diverted. -dnl @result{}This text is not diverted. -dnl @result{} -dnl @result{}This text is diverted. diff --git a/checks/43.divert b/checks/43.divert deleted file mode 100644 index 252fc982..00000000 --- a/checks/43.divert +++ /dev/null @@ -1,6 +0,0 @@ -dnl ../doc/m4.texinfo:2498: Origin of test -divert(-1) -define(`foo', `Macro `foo'.') -define(`bar', `Macro `bar'.') -divert -dnl @result{} diff --git a/checks/44.undivert b/checks/44.undivert deleted file mode 100644 index f99162c6..00000000 --- a/checks/44.undivert +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:2529: Origin of test -divert(1) -This text is diverted. -divert -dnl @result{} -This text is not diverted. -dnl @result{}This text is not diverted. -undivert(1) -dnl @result{} -dnl @result{}This text is diverted. -dnl @result{} diff --git a/checks/45.undivert b/checks/45.undivert deleted file mode 100644 index 8835f78e..00000000 --- a/checks/45.undivert +++ /dev/null @@ -1,13 +0,0 @@ -dnl ../doc/m4.texinfo:2553: Origin of test -divert(1) -This text is diverted first. -divert(0)undivert(1)dnl -dnl @result{} -dnl @result{}This text is diverted first. -undivert(1) -dnl @result{} -divert(1) -This text is also diverted but not appended. -divert(0)undivert(1)dnl -dnl @result{} -dnl @result{}This text is also diverted but not appended. diff --git a/checks/46.undivert b/checks/46.undivert deleted file mode 100644 index f951d011..00000000 --- a/checks/46.undivert +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2579: Origin of test -define(`bar', `BAR') -dnl @result{} -undivert(`foo') -dnl @result{}bar -dnl @result{} -include(`foo') -dnl @result{}BAR -dnl @result{} diff --git a/checks/47.divnum b/checks/47.divnum deleted file mode 100644 index c64945f8..00000000 --- a/checks/47.divnum +++ /dev/null @@ -1,13 +0,0 @@ -dnl ../doc/m4.texinfo:2605: Origin of test -Initial divnum -dnl @result{}Initial 0 -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert -dnl @result{} -dnl @result{} -dnl @result{}Diversion one: 1 -dnl @result{} -dnl @result{}Diversion two: 2 diff --git a/checks/48.cleardiv b/checks/48.cleardiv deleted file mode 100644 index cd779109..00000000 --- a/checks/48.cleardiv +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:2636: Origin of test -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert(-1) -undivert diff --git a/checks/49.cleardiv b/checks/49.cleardiv deleted file mode 100644 index 8d4b7501..00000000 --- a/checks/49.cleardiv +++ /dev/null @@ -1,4 +0,0 @@ -dnl ../doc/m4.texinfo:2651: Origin of test -define(`cleardivert', -`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') -dnl @result{} diff --git a/checks/50.len b/checks/50.len deleted file mode 100644 index 37c7cf72..00000000 --- a/checks/50.len +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2693: Origin of test -len() -dnl @result{}0 -len(`abcdef') -dnl @result{}6 diff --git a/checks/51.index b/checks/51.index deleted file mode 100644 index e540cdd8..00000000 --- a/checks/51.index +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2719: Origin of test -index(`gnus, gnats, and armadillos', `nat') -dnl @result{}7 -index(`gnus, gnats, and armadillos', `dag') -dnl @result{}-1 diff --git a/checks/52.regexp b/checks/52.regexp deleted file mode 100644 index 27ad63d5..00000000 --- a/checks/52.regexp +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2751: Origin of test -regexp(`GNUs not Unix', `\<[a-z]\w+') -dnl @result{}5 -regexp(`GNUs not Unix', `\<Q\w*') -dnl @result{}-1 diff --git a/checks/53.regexp b/checks/53.regexp deleted file mode 100644 index b9263838..00000000 --- a/checks/53.regexp +++ /dev/null @@ -1,3 +0,0 @@ -dnl ../doc/m4.texinfo:2763: Origin of test -regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***') -dnl @result{}*** Unix *** nix *** diff --git a/checks/54.substr b/checks/54.substr deleted file mode 100644 index b2ad41ff..00000000 --- a/checks/54.substr +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2789: Origin of test -substr(`gnus, gnats, and armadillos', 6) -dnl @result{}gnats, and armadillos -substr(`gnus, gnats, and armadillos', 6, 5) -dnl @result{}gnats diff --git a/checks/55.translit b/checks/55.translit deleted file mode 100644 index d0c1a522..00000000 --- a/checks/55.translit +++ /dev/null @@ -1,7 +0,0 @@ -dnl ../doc/m4.texinfo:2830: Origin of test -translit(`GNUs not Unix', `A-Z') -dnl @result{}s not nix -translit(`GNUs not Unix', `a-z', `A-Z') -dnl @result{}GNUS NOT UNIX -translit(`GNUs not Unix', `A-Z', `z-a') -dnl @result{}tmfs not fnix diff --git a/checks/56.patsubst b/checks/56.patsubst deleted file mode 100644 index 5da8e3c7..00000000 --- a/checks/56.patsubst +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:2881: Origin of test -patsubst(`GNUs not Unix', `^', `OBS: ') -dnl @result{}OBS: GNUs not Unix -patsubst(`GNUs not Unix', `\<', `OBS: ') -dnl @result{}OBS: GNUs OBS: not OBS: Unix -patsubst(`GNUs not Unix', `\w*', `(\&)') -dnl @result{}(GNUs)() (not)() (Unix) -patsubst(`GNUs not Unix', `\w+', `(\&)') -dnl @result{}(GNUs) (not) (Unix) -patsubst(`GNUs not Unix', `[A-Z][a-z]+') -dnl @result{}GN not diff --git a/checks/57.patsubst b/checks/57.patsubst deleted file mode 100644 index 36f0f315..00000000 --- a/checks/57.patsubst +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:2898: Origin of test -define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl -define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl -define(`capitalize1', - `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl -capitalize(`GNUs not Unix') -dnl @result{}Gnus Not Unix diff --git a/checks/58.format b/checks/58.format deleted file mode 100644 index edeefd7e..00000000 --- a/checks/58.format +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:2933: Origin of test -define(`foo', `The brown fox jumped over the lazy dog') -dnl @result{} -format(`The string "%s" is %d characters long', foo, len(foo)) -dnl @result{}The string "The brown fox jumped over the lazy dog" is 38 characters long diff --git a/checks/59.incr b/checks/59.incr deleted file mode 100644 index a6c4f6f2..00000000 --- a/checks/59.incr +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:3003: Origin of test -incr(4) -dnl @result{}5 -decr(7) -dnl @result{}6 diff --git a/checks/60.eval b/checks/60.eval deleted file mode 100644 index 89490b2e..00000000 --- a/checks/60.eval +++ /dev/null @@ -1,18 +0,0 @@ -dnl ../doc/m4.texinfo:3097: Origin of test -eval(-3 * 5) -dnl @result{}-15 -eval(index(`Hello world', `llo') >= 0) -dnl @result{}1 -define(`square', `eval(($1)**2)') -dnl @result{} -square(9) -dnl @result{}81 -square(square(5)+1) -dnl @result{}676 -define(`foo', `666') -dnl @result{} -eval(`foo'/6) -dnl @error{}60.eval:14: m4: Bad expression in eval: foo/6 -dnl @result{} -eval(foo/6) -dnl @result{}111 diff --git a/checks/61.eval b/checks/61.eval deleted file mode 100644 index 64594c57..00000000 --- a/checks/61.eval +++ /dev/null @@ -1,11 +0,0 @@ -dnl ../doc/m4.texinfo:3128: Origin of test -eval(666, 10) -dnl @result{}666 -eval(666, 11) -dnl @result{}556 -eval(666, 6) -dnl @result{}3030 -eval(666, 6, 10) -dnl @result{}0000003030 -eval(-666, 6, 10) -dnl @result{}-000003030 diff --git a/checks/62.esyscmd b/checks/62.esyscmd deleted file mode 100644 index 27c3bda4..00000000 --- a/checks/62.esyscmd +++ /dev/null @@ -1,6 +0,0 @@ -dnl ../doc/m4.texinfo:3213: Origin of test -define(`vice', `esyscmd(grep Vice ../COPYING)') -dnl @result{} -vice -dnl @result{} Ty Coon, President of Vice -dnl @result{} diff --git a/checks/63.sysval b/checks/63.sysval deleted file mode 100644 index 1b7b110a..00000000 --- a/checks/63.sysval +++ /dev/null @@ -1,9 +0,0 @@ -dnl ../doc/m4.texinfo:3244: Origin of test -syscmd(`false') -dnl @result{} -ifelse(sysval, 0, zero, non-zero) -dnl @result{}non-zero -syscmd(`true') -dnl @result{} -sysval -dnl @result{}0 diff --git a/checks/64.errprint b/checks/64.errprint deleted file mode 100644 index b0cfbffd..00000000 --- a/checks/64.errprint +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:3324: Origin of test -errprint(`Illegal arguments to forloop -') -dnl @error{}Illegal arguments to forloop -dnl @result{} diff --git a/checks/65.errprint b/checks/65.errprint deleted file mode 100644 index 230093e8..00000000 --- a/checks/65.errprint +++ /dev/null @@ -1,5 +0,0 @@ -dnl ../doc/m4.texinfo:3349: Origin of test -errprint(`m4:'__file__:__line__: `Input error -') -dnl @error{}m4:65.errprint:2: Input error -dnl @result{} diff --git a/checks/66.m4exit b/checks/66.m4exit deleted file mode 100644 index eccef14b..00000000 --- a/checks/66.m4exit +++ /dev/null @@ -1,6 +0,0 @@ -dnl ../doc/m4.texinfo:3372: Origin of test -define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* -')m4exit(1)') -dnl @result{} -fatal_error(`This is a BAD one, buster') -dnl @error{}m4: 66.m4exit: 5: fatal error: This is a BAD one, buster diff --git a/checks/Makefile.am b/checks/Makefile.am deleted file mode 100644 index 65d0de77..00000000 --- a/checks/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -EXTRA_DIST = check-them foo get-them incl.m4 stamp-checks $(CHECKS) - -CHECKS = ??.* - -all: stamp-checks - -stamp-checks: get-them ../doc/m4.texinfo - rm -f $(srcdir)/$(CHECKS) - cd $(srcdir) && AWK=$(AWK) ./get-them ../doc/m4.texinfo - touch $(srcdir)/stamp-checks - -check: stamp-checks - PATH=`pwd`/../src:$$PATH; export PATH; \ - cd $(srcdir) && ./check-them $(CHECKS) - - diff --git a/config.guess b/config.guess deleted file mode 100755 index 413ed41c..00000000 --- a/config.guess +++ /dev/null @@ -1,883 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. -# -# This file 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Written by Per Bothner <bothner@cygnus.com>. -# The master version of this file is at the FSF in /home/gd/gnu/lib. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <<EOF >dummy.s - .globl main - .ent main -main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-cbm-sysv4 - exit 0;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - arm32:NetBSD:*:*) - echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - SR2?01:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:NetBSD:*:*) - echo m68k-atari-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:NetBSD:*:*) - echo m68k-sun-netbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:NetBSD:*:*) - echo m68k-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >dummy.c - int main (argc, argv) int argc; char **argv; { - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - ${CC-cc} dummy.c -o dummy \ - && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ - -o ${TARGET_BINARY_INTERFACE}x = x ] ; then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >dummy.c - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:4) - if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=4.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[3478]??:HP-UX:*:*) - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; - 9000/8?? ) HP_ARCH=hppa1.0 ;; - esac - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >dummy.c - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i?86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) - FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - i*:CYGWIN*:*) - echo i386-pc-cygwin32 - exit 0 ;; - i*:MINGW*:*) - echo i386-pc-mingw32 - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin32 - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. - ld_help_string=`ld --help 2>&1` - ld_supported_emulations=`echo $ld_help_string \ - | sed -ne '/supported emulations:/!d - s/[ ][ ]*/ /g - s/.*supported emulations: *// - s/ .*// - p'` - case "$ld_supported_emulations" in - i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; - i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; - sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; - esac - - if test "${UNAME_MACHINE}" = "alpha" ; then - sed 's/^ //' <<EOF >dummy.s - .globl main - .ent main - main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - LIBC="" - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - - objdump --private-headers dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 - elif test "${UNAME_MACHINE}" = "mips" ; then - cat >dummy.c <<EOF -main(argc, argv) - int argc; - char *argv[]; -{ -#ifdef __MIPSEB__ - printf ("%s-unknown-linux-gnu\n", argv[1]); -#endif -#ifdef __MIPSEL__ - printf ("%sel-unknown-linux-gnu\n", argv[1]); -#endif - return 0; -} -EOF - ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - else - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" - test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - - case "${UNAME_MACHINE}" in - i?86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >dummy.c <<EOF -#include <features.h> -main(argc, argv) - int argc; - char *argv[]; -{ -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; - i?86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} - fi - exit 0 ;; - i?86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL - elif /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - pc:*:*:*) - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i?86:LynxOS:2.*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes <hewes@openmarket.com>. - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:*:6*) - echo mips-sony-newsos6 - exit 0 ;; - R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 -rm -f dummy.c dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -#echo '(Unable to guess system type)' 1>&2 - -exit 1 diff --git a/config.sub b/config.sub deleted file mode 100755 index 213a6d47..00000000 --- a/config.sub +++ /dev/null @@ -1,954 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 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. -# -# This file 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 of the License, 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., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -if [ x$1 = x ] -then - echo Configuration name missing. 1>&2 - echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 - echo "or $0 ALIAS" 1>&2 - echo where ALIAS is a recognized configuration type. 1>&2 - exit 1 -fi - -# First pass through any local machine types. -case $1 in - *local*) - echo $1 - exit 0 - ;; - *) - ;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - linux-gnu*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple) - os= - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -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 | arc | arm \ - | arme[lb] | pyramid | mn10200 | mn10300 \ - | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | 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) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[3456]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. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-cbm - ;; - amigaos | amigados) - basic_machine=m68k-cbm - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-cbm - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [ctj]90-cray) - basic_machine=c90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - os=-mvs - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[3456]86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i[3456]86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i[3456]86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i[3456]86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - miniframe) - basic_machine=m68000-convergent - ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - np1) - basic_machine=np1-gould - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5) - basic_machine=i586-intel - ;; - pentiumpro | p6) - basic_machine=i686-intel - ;; - pentium-* | p5-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-*) - 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 - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=rs6000-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - none) - basic_machine=none-none - os=-none - ;; - -# 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-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sparc) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -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* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -ctix* | -uts*) - os=-sysv - ;; - -ns2 ) - os=-nextstep2 - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -xenix) - os=-xenix - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-semi) - os=-aout - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-ibm) - os=-aix - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f301-fujitsu) - os=-uxpv - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -hpux*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index ff3bdaf9..00000000 --- a/doc/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -info_TEXINFOS = m4.texinfo diff --git a/doc/helptoman.pl b/doc/helptoman.pl deleted file mode 100644 index f0039978..00000000 --- a/doc/helptoman.pl +++ /dev/null @@ -1,249 +0,0 @@ -#!/usr/bin/perl -w - -# Generate a short man page from --help and --version output. -# Copyright 1997, 98 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -require 5.003; - -use strict; -use Getopt::Long; -use POSIX 'strftime'; - -my $RCS_Id = '$Id$'; -my $this_program = 'help2man'; -my $this_version = '0.0'; - -if ($RCS_Id =~ /\$Id:\s+(\S+)\s+(\S+)/) -{ - $this_version = $2; - ($this_program = $1) =~ s/(\.pl)?,v$//; -} - -my $version_info = <<EOT; -$this_program $this_version - -Copyright (C) 1997, 98 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -EOT - -my $help_info = <<EOT; -`$this_program' generates a man page out of `--help' and `--version' output. - -Usage: $this_program [OPTION]... EXECUTABLE - - --name=STRING use `STRING' as the description for the NAME paragraph - --help print this help, then exit - --version print $this_program program version number, then exit - -EXECUTABLE should accept `--help' and `version' options. -EOT - -my ($name, $opt_help, $opt_version); - -# Parse options. -GetOptions ( - 'name=s' => \$name, - help => \$opt_help, - version => \$opt_version, -) or die $help_info; - -print $help_info and exit if $opt_help; -print $version_info and exit if $opt_version; - -die $help_info unless @ARGV == 1; - -# Turn off localisation of executable's ouput. -@ENV{qw(LANGUAGE LANG LC_ALL)} = qw(C C C); - -# Grab help and version paragraphs from executable -my @help = split /\n\n+/, `$ARGV[0] --help 2>/dev/null` - or die "$this_program: can't get `--help' info from $ARGV[0]\n"; - -my @version = split /\n\n+/, `$ARGV[0] --version 2>/dev/null` - or die "$this_program: can't get `--version' info from $ARGV[0]\n"; - -my $date = strftime "%B %Y", localtime; -my $program = $ARGV[0]; $program =~ s!.*/!!; -my $package = $program; -my $version; - -# The first line of the --version information is assumed to be in one -# of the following formats: -# -# <version> -# <program> <version> -# GNU <program> <version> -# <program> (GNU <package>) <version> -# <program> - GNU <package> <version> -# - -$_ = shift @version; - -if (/^(\S+)\s+\((GNU\s+[^)]+)\)\s+(.*)/ || - /^(\S+)\s+-\s*(GNU\s+\S+)\s+(.*)/) -{ - $program = $1; - $package = $2; - $version = $3; -} -elsif (/^(GNU\s+)?(\S+)\s+(.*)/) -{ - $program = $2; - $package = $1 ? "$1$2" : $2; - $version = $3; -} -else -{ - $version = $_; -} - -# Default description for NAME paragraph -$name ||= "short documentation for $program $version"; - -# Man pages traditionally have the page title in caps. -my $PROGRAM = uc $program; - -# Header. -print <<EOT; -.\" DO NOT MODIFY THIS FILE! It was generated by $this_program $this_version. -.TH $PROGRAM 1 "$date" "$package $version" "GNU User's Manual" -.SH NAME -$program \\- $name -EOT - -my $accumulate = 1; -my @description = (); - -sub convert_option; - -# Output converted --help information. -for (@help) -{ - chomp; - - if (s/^Usage:\s+\S+\s+(.*)\n?//) - { - # Turn the usage clause into a synopsis. - print ".SH SYNOPSIS\n.B $program\n"; - - my $syn = $1; - $syn =~ s/(([][]|\.\.+)+)/\\fR$1\\fI/g; - s/^/\\fI/ unless $syn =~ s/^\\fR//; - - print "$syn\\fR\n"; - - # Dump any accumulated description text. - $accumulate = 0; - print ".SH DESCRITION\n"; - print @description; - - next unless $_; - } - - # Accumulate text if the synopsis has not been produced yet. - if ($accumulate) - { - push @description, ".PP\n" if @description; - push @description, "$_\n"; - next; - } - - # Catch bug report text. - if (/^Report bugs /) - { - print ".SH BUGS\n$_\n"; - next; - } - - # Special case for tar 1.12: --label=NAME\nPATTERN. - s{(\n[ \t]*)(-V,[ \t]+--label=NAME.*)\n[ \t]+PATTERN[ \t]+} - {$1$2$1\\&...=PATTERN }; - - # Convert options. - s/(\s)(-[][\w=-]+|\\&\S+)/$1.convert_option $2/ge; - - # Option subsections have second line indented. - print qq(.SS "$1"\n) if s/^(\S.*)\n(\s)/$2/; - - # Lines indented more than about 10 spaces may be assumed to be - # continuations of the previous line. - s/\n {10,}/ /g; - - # Indented paragraph. - if (/^\s/) - { - for (split /\n/) - { - s/^\s+//; - s/([^,])\s+/$1\n/; - print ".TP\n$_\n"; - } - } - # Anything else. - else - { - print ".PP\n$_\n"; - } -} - -# Refer to the real documentation. - -print <<EOT; -.SH SEE ALSO -The full documentation for -.B $program -is maintained as a Texinfo manual. If the -.B info -and -.B $program -programs are properly installed at your site, the command -.IP -.B info $program -.PP -should allow you to access the manual as an hypertext. -EOT - -# Output converted --version information. -for (@version) -{ - chomp; - - if (/^Copyright\s+\(C/) { print ".SH COPYRIGHT\n" } - elsif (/^Written\s+by/) { print ".SH AUTHOR\n" } - else { print ".PP\n"; } - - print "$_\n"; -} - -exit; - -# Convert option dashes to \- to stop nroff from hyphenating 'em, and -# embolden. Option arguments get italicised. -sub convert_option -{ - my $option = '\fB' . shift; - - $option =~ s/-/\\-/g; - unless ($option =~ s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/) - { - $option =~ s/=(.)/\\fR=\\fI$1/; - $option .= '\fR'; - } - - $option; -} diff --git a/doc/m4.1 b/doc/m4.1 deleted file mode 100644 index beb6a584..00000000 --- a/doc/m4.1 +++ /dev/null @@ -1,121 +0,0 @@ -." DO NOT MODIFY THIS FILE! It was generated by helptoman 1.1.1.1. -.TH M4 1 "October 1998" "GNU m4 1.4h" "GNU User's Manual" -.SH NAME -m4 \- short documentation for m4 1.4h -.SH SYNOPSIS -.B m4 -[\fIOPTION\fR]...\fI \fR[\fIFILE\fR]...\fI\fR -.SH DESCRITION -.PP -Mandatory or optional arguments to long options are mandatory or optional -for short options too. -.SS "Operation modes:" -.TP -\fB\-\-help\fR -display this help and exit -.TP -\fB\-\-version\fR -output version information and exit -.TP -\fB\-e\fR, \fB\-\-interactive\fR -unbuffer output, ignore interrupts -.TP -\fB\-E\fR, \fB\-\-fatal\-warnings\fR -stop execution after first warning -.TP -\fB\-Q\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR -suppress some warnings for builtins -.TP -\fB\-P\fR, \fB\-\-prefix\-builtins\fR -force a `m4_' prefix to all builtins -.SS "Preprocessor features:" -.TP -\fB\-I\fR, \fB\-\-include\fR=\fIDIRECTORY\fR -search this directory second for includes -.TP -\fB\-D\fR, \fB\-\-define=NAME\fR[=\fIVALUE\fR] -enter NAME has having VALUE, or empty -.TP -\fB\-U\fR, \fB\-\-undefine\fR=\fINAME\fR -delete builtin NAME -.TP -\fB\-s\fR, \fB\-\-synclines\fR -generate `#line NO "FILE"' lines -.SS "Limits control:" -.TP -\fB\-G\fR, \fB\-\-traditional\fR -suppress all GNU extensions -.TP -\fB\-H\fR, \fB\-\-hashsize\fR=\fIPRIME\fR -set symbol lookup hash table size -.TP -\fB\-L\fR, \fB\-\-nesting\-limit\fR=\fINUMBER\fR -change artificial nesting limit -.SS "Frozen state files:" -.TP -\fB\-F\fR, \fB\-\-freeze\-state\fR=\fIFILE\fR -produce a frozen state on FILE at end -.TP -\fB\-R\fR, \fB\-\-reload\-state\fR=\fIFILE\fR -reload a frozen state from FILE at start -.SS "Debugging:" -.TP -\fB\-d\fR, \fB\-\-debug\fR=\fI[FLAGS]\fR -set debug level (no FLAGS implies `aeq') -.TP -\fB\-t\fR, \fB\-\-trace\fR=\fINAME\fR -trace NAME when it will be defined -.TP -\fB\-l\fR, \fB\-\-arglength\fR=\fINUM\fR -restrict macro tracing size -.TP -\fB\-o\fR, \fB\-\-error\-output\fR=\fIFILE\fR -redirect debug and trace output -.SS "FLAGS is any of:" -.TP -t -trace for all macro calls, not only traceon'ed -.TP -a -show actual arguments -.TP -e -show expansion -.TP -q -quote values as necessary, with a or e flag -.TP -c -show before collect, after collect and after call -.TP -x -add a unique macro call id, useful with c flag -.TP -f -say current input file name -.TP -l -say current input line number -.TP -p -show results of path searches -.TP -i -show changes in input files -.TP -V -shorthand for all of the above flags -.PP -If no FILE or if FILE is `-', standard input is read. -.SH SEE ALSO -The full documentation for -.B m4 -is maintained as a Texinfo manual. If the -.B info -and -.B m4 -programs are properly installed at your site, the command -.IP -.B info m4 -.PP -should allow you to access the manual as an hypertext. diff --git a/doc/mdate-sh b/doc/mdate-sh deleted file mode 100644 index 37171f21..00000000 --- a/doc/mdate-sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh -# Get modification time of a file or directory and pretty-print it. -# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Prevent date giving response in another language. -LANG=C -export LANG -LC_ALL=C -export LC_ALL -LC_TIME=C -export LC_TIME - -# Get the extended ls output of the file or directory. -# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. -if ls -L /dev/null 1>/dev/null 2>&1; then - set - x`ls -L -l -d $1` -else - set - x`ls -l -d $1` -fi -# The month is at least the fourth argument -# (3 shifts here, the next inside the loop). -shift -shift -shift - -# Find the month. Next argument is day, followed by the year or time. -month= -until test $month -do - shift - case $1 in - Jan) month=January; nummonth=1;; - Feb) month=February; nummonth=2;; - Mar) month=March; nummonth=3;; - Apr) month=April; nummonth=4;; - May) month=May; nummonth=5;; - Jun) month=June; nummonth=6;; - Jul) month=July; nummonth=7;; - Aug) month=August; nummonth=8;; - Sep) month=September; nummonth=9;; - Oct) month=October; nummonth=10;; - Nov) month=November; nummonth=11;; - Dec) month=December; nummonth=12;; - esac -done - -day=$2 - -# Here we have to deal with the problem that the ls output gives either -# the time of day or the year. -case $3 in - *:*) set `date`; eval year=\$$# - case $2 in - Jan) nummonthtod=1;; - Feb) nummonthtod=2;; - Mar) nummonthtod=3;; - Apr) nummonthtod=4;; - May) nummonthtod=5;; - Jun) nummonthtod=6;; - Jul) nummonthtod=7;; - Aug) nummonthtod=8;; - Sep) nummonthtod=9;; - Oct) nummonthtod=10;; - Nov) nummonthtod=11;; - Dec) nummonthtod=12;; - esac - # For the first six month of the year the time notation can also - # be used for files modified in the last year. - if (expr $nummonth \> $nummonthtod) > /dev/null; - then - year=`expr $year - 1` - fi;; - *) year=$3;; -esac - -# The result. -echo $day $month $year diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 93bc18f6..245aa14f 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -24,7 +24,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision$ +\deftexinfoversion$Revision: 1.1.1.1 $ \message{Loading texinfo package [Version \texinfoversion]:} % Print the version number if in a .fmt file. diff --git a/examples/Makefile.am b/examples/Makefile.am deleted file mode 100644 index 8b96545b..00000000 --- a/examples/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -EXTRA_DIST = capitalize.m4 comments.m4 ddivert.m4 \ -debug.m4 esyscmd.m4 exp.m4 file.m4 foreach.m4 forloop.m4 fstab.m4 \ -hanoi.m4 incl-test.m4 include.m4 indir.m4 misc.m4 multiquotes.m4 \ -patsubst.m4 pushpop.m4 regexp.m4 reverse.m4 stackovf.sh sync-lines.m4 \ -sysv-args.m4 trace.m4 translit.m4 undivert.incl undivert.m4 wrap.m4 diff --git a/examples/WWW/Makefile b/examples/WWW/Makefile deleted file mode 100644 index f143493e..00000000 --- a/examples/WWW/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -M4 = m4 -M4OPTS = -Im4lib - -VPATH = .:m4lib - -all: *.htm - -%.htm: %.m4 - @$(M4) $(M4OPTS) $< >new.htm && \ - if cmp -s new.htm $@; then \ - rm new.htm; \ - echo "$@ has not changed"; \ - else \ - echo "$@ updated"; \ - mv new.htm $@; \ - fi - -*.htm: m4lib/*.m4 diff --git a/examples/WWW/_footer.htm b/examples/WWW/_footer.htm deleted file mode 100644 index 8fbbce61..00000000 --- a/examples/WWW/_footer.htm +++ /dev/null @@ -1,15 +0,0 @@ - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/_header.htm b/examples/WWW/_header.htm deleted file mode 100644 index 643223d6..00000000 --- a/examples/WWW/_header.htm +++ /dev/null @@ -1,234 +0,0 @@ -<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Development site</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4o"> -</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=middle colspan="3" width="100%" bgcolor="#FF9900"> - -<H1>GNU m4</H1> - -<H2>Discussion Forum</H2> - -</TD> - -</TR> - <TR > -<TD align=left valign=top width="15%" bgcolor="#FF9900"> - - - - - - - - - - - -<TABLE > -<TR> -<TD bgcolor="#CC6600"> -<P> -<B>General info</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/whatis.htm">What is m4</A><BR> -<A HREF="/rene/gnu/features.htm">Features</A><BR> -<A HREF="/rene/gnu/uses.htm">Uses of m4</A></B></FONT> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Documentation</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/man/m4_toc.html">Manual</A></B></FONT> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/readme.htm">README</A><BR> -<A HREF="/rene/gnu/todo.htm">TODO</A><BR> -<A HREF="/rene/gnu/news.htm">NEWS</A><BR> -<A HREF="/rene/gnu/changelog.htm">ChangeLog</A><BR> -<A HREF="/rene/gnu/thanks.htm">Contributors</A><BR> -<A HREF="/rene/gnu/m4/">Browse it</A></B></FONT> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>The Future</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/modules.htm">Modules</A><BR> -<A HREF="/rene/gnu/visions.htm">Visions</A></B></FONT> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Feedback</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/lists.htm">Mailing-lists</A><BR> -<A HREF="/rene/gnu/feedback.htm">Feedback</A><BR> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Development</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/download.htm">Download</A><BR> -<A HREF="/rene/gnu/bugs.htm">Known bugs</A></B></FONT> - -</P> - -</TD> - -</TR> - <TR> -<TD height=5> - -</TD> - -</TR> - <TR> -<TD bgcolor="#CC6600"> -<P> -<B>Examples</B> -</P> - -</TD> - -</TR> - <TR> -<TD> -<P> - -<FONT size=-1><B><A HREF="/rene/gnu/thissite.htm">This site</A></B></FONT> - -</P> - -</TD> - -</TR> - -</TABLE> - - - - - - - - -</TD> - <TD align=left valign=top width="90%"> - - - diff --git a/examples/WWW/bugs.htm b/examples/WWW/bugs.htm deleted file mode 100644 index 207fcc31..00000000 --- a/examples/WWW/bugs.htm +++ /dev/null @@ -1,284 +0,0 @@ -<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 deleted file mode 100644 index 56713edc..00000000 --- a/examples/WWW/changelog.htm +++ /dev/null @@ -1,2248 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - ChangeLog</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>ChangeLog</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>1998-11-18 Rene' Seindal <rene@seindal.dk> - - * 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. - - * src/module.c (module_load): Changed error message to conform to - standards. - - * src/m4.c (usage): Added message about reporting bugs. - - * doc/m4.texinfo (Changeword): Corrected a wrong example. - (Changeword): Added note about the type of regexps used. - - * ltconfig, ltmain.sh: New files from Libtool 1.2. - - * configure.in: Added calls to AM_ENABLE_SHARED, AM_DISABLE_STATIC - and AM_PROG_LIBTOOL. - - * acm4/modules.m4 (AM_WITH_MODULES): Redone completely to work - with libtool. - - * modules/Makefile.am: Changed completely to compile modules using - libtool. The modules are compiled as shared libraries, and are - renamed when installed. - - * src/m4.h, src/module.c, acm4/modules.m4, acconfig.h: Renamed - USE_SHL_LOAD to HAVE_SHL_LOAD - - * src/builtin.c (shipout_string): Now tests for a NULL string. - - * src/module.c: New level of indirection around non-portable - functions to load shared objects. Intended to encapsulate the non - portable parts better and to reduce the number of #ifdefs in the - code. - - * Makefile.am (DIST_SUBDIRS): Instead of EXTRA_DIST for added - directory modules/ to the distribution. - -1998-11-15 Rene' Seindal <rene@seindal.dk> - - * Prerelease 1.4l. - - * modules/stdlib.c: New module `stdlib' defining some standard - functions: getcwd, getlogin, getpid, getppid, getuid, getpwnam, - getpwuid, hostname, rand, srand, getenv, setenv, unsetenv, uname. - - * src/builtin.c (shipout_string): New convenience function for - builtins and modules. - - * src/module.c (module_load): Tentative support for - shl_load/shl_findsym, but I cannot test it. Copied from MetaHTML. - - * Makefile.am (SUBDIRS): Directory modules added if configured. - - * modules/Makefile.am: Now correctly compiles and installs - modules in pkglibexecdir. - - * src/m4.h: WITH_MODULES defined iff HAVE_DLOPEN or USE_SHL_LOAD. - These two are now initialised by autoconf macros. - - * src/path.c (module_env_init): MODULE_PATH is always on the - search path. - - * src/Makefile.am: Now generated pathconf.h which defined the - default MODULE_PATH. - - * configure.in (pkglibexecdir): Added defintion of pkglibexecdir, - where modules are installed. - - * acm4/modules.m4: Enhanced with code from MetaHTML, contributed - by Brian J. Fox <bfox@datawave.net>. This change allow modules to - build and install automatically, and it is prepared for other - interfacec than dlopen(). - - * src/builtin.c (predefined_tab): Added __m4_version__ for the - current version of GNU m4. It is a GNU extension. - -1998-11-14 Rene' Seindal <rene@seindal.dk> - - * tests/Makefile.am (GENERATED_TESTS): Added new - generated-tests/changesy.8.test - - * doc/m4.texinfo (Changesyntax): Documentation for escape - syntax class. - - * src/macro.c (expand_token): Check for escaped macro call before - symbol table lookup. - - * src/builtin.c (m4_changesyntax): Added `@' flag to define escape - characters - - * src/input.c: New static variable use_macro_escape, which is TRUE - iff some character has code SYNTAX_ESCAPE - (input_init): Added initialisation of use_macro_escape. - (check_use_macro_escape): New function to synchronise - use_macro_escape with the syntax table. - (set_quotes): Added call to check_use_macro_escape() - (set_comment): Do. - (set_syntax): Do. - (next_token): Added new case for IS_ESCAPE. - - * src/m4.h (SYNTAX_ESCAPE): Defined as simple syntax category. - -1998-10-13 René Seindal <rene@seindal.dk> - - * Prerelease 1.4k. - - * tests/Makefile.am (GENERATED_TESTS): Renamed gentest to - generated-tests. - - * tests/Makefile.am (OTHER_TESTS, OTHER_FILES): Added manually - maintained tests in tests/other-tests. These currently tests for - 8-bit transparency, multiple precision arithmetic and sync-line - output. Test for stackoverflow detection does not work. - - * examples/Makefile.am (TESTS): Added tests for all example files. - - * examples/mktests.sh: New file. Help program for creating test - files. - - * tests/mkconfig.sh: New file to generate tests/config.m4 and - tests/config.sh. This is for tests of configure selectable - features. Picks up all set WITH_ and ENABLE_ veriables from - config.h - - * src/path.c (path_search): Added argument 'char **expanded_name' - to return the expanded name. - - * src/m4.h: Added 2nd argument to declaration of path_search(). - - * src/m4.c (main): Added 2nd argument to path_search(). - - * src/freeze.c (reload_frozen_state): Do. - - * src/builtin.c (m4_undivert): Do. - (include): Do. - -1998-10-11 René Seindal <rene@seindal.dk> - - * acm4/Makefile.am (ACINCLUDES_M4): Added gmp.m4 and modules.m4 - - * acm4/modules.m4: New file. Defines AM_WITH_MODULES. - - * acm4/gmp.m4: New file. Defines AM_WITH_GMP. - - * configure.in: Introduced AM_WITH_MODULES and AM_WITH_GMP. - - * AUTHORS, ChangeLog: Changed all dates to ISO 8601. - - * intl/: Updated to GNU gettext 0.10.35. - - * doc/m4.texinfo (Format): Documented that format is blind. - - * src/builtin.c (builtin_tab): Builtin format marked as blind. - -1998-10-07 René Seindal <rene@seindal.dk> - - * Prerelease 1.4j. - - * tests/Makefile.am (GENERATED_TESTS): Changed .m4 extension to - .test, as the files are no longer just m4 input. - - * tests/get-them (FILE): Changed .m4 extension to .test. - - * src/m4.h (token_type): New token type TOKEN_SPACE introduced. - Otherwise quoted strings with leading whitespace first in a macro - argument would be eliminated. - - * src/macro.c (expand_token): Handles new token type TOKEN_SPACE. - (expand_argument): Do. - - * src/input.c (next_token): SPACE and NUM/OTHER characters are only - grouped together iff both quote and comment strings are single - character. Otherwise they might include a comment/quote leader. - (next_token): Returns new token type TOKEN_SPACE. - - * src/builtin.c (push_builtin_table): New function to push a - builtin_table on the stack without installing its contents. - (find_builtin_by_name): Added call to push_builtin_table() if - reading frozen files. Otherwise the builtins named in the frozen - files could not be found. - (install_builtin_table): Changed to use push_builtin_table() - -1998-10-04 René Seindal <rene@seindal.dk> - - * Prerelease 1.4i. - - * configure.in (ALL_LINGUAS): Added Polish pl.po - -1998-10-03 René Seindal <rene@seindal.dk> - - * Many files: Incorporated changes to implement dynamic modules. - Detailed comments in src/modules.c and modules/README - - * src/module.c: New file, implements the OS dependant parts of - dynamic module loading. - - * src/Makefile.am (m4_SOURCES): Added module.c - - * src/builtin.h: New file, declares some functions from builtin.c - that are of use for other modules (shipout_int, numeric_arg, - skip_space, bad_argc), and the macros ARG() and DECLARE(). - - * src/builtin.c (install_builtin_table): New function. Each - module brings in a builtin_table, which is pushed on a stack. - (struct builtin_table): New struct for list of builtin_tables. - (m4_loadmodule): New function to implement builtin "loadmodule". - (shipout_int): No longer static, to be used by modules. - (numeric_arg): do. - (skip_space): do. - (bad_argc): do. - (builtin_init): changed to call install_builtin_table() - (find_builtin_by_name): Now searches all builtin_tables - (find_builtin_by_addr): do. - - * src/path.c: Reorganised to allow for two search paths, one for - include files and one for modules. - - * src/m4.h: Added declarations for new functions in module.c and - in path.c. - - * src/m4.c (main): Added call to module_init(). - - * modules: New directory with a few demo modules. - - * Makefile.am (EXTRA_DIST): Added modules/* since modules/ is not - in SUBDIRS. - - * configure.in: Added modules/Makefile to AC_OUTPUT. - - * configure.in: Added code to implement --with-modules. Tests for - <dlfcn.h> and -ldl. - - * acconfig.h: Added WITH_MODULES - -1998-10-02 René Seindal <rene@seindal.dk> - - * examples/Makefile.am (pkgdata_DATA): Removed special target for - check and variables TESTS. These tests are now run from the - tests/ directory. - - * tests/Makefile.am (OTHER_TESTS): Added tests from the example/ - directory. The files stay there but the tests are run from the - tests/ directory. - - * tests/Makefile.am (EXTRA_DIST): Added run-test. - - * tests/run-test: New file. Run a test manually - - * tests/Makefile.am, tests/get_them: Moved automatically generated - tests (from the manual) to sub directory tests/gentest/. The - tests/ directory had gotten a bit messy. - -1998-09-06 Erick Branderhorst <Erick.Branderhorst@asml.nl> - - * examples/{comments,ddivert,debug,iso8859,reverse,sysv-args,\ - wrap}.test: Added a few testcases. - -1998-08-21 Erick Branderhorst <Erick.Branderhorst@asml.nl> - - * Prerelease 1.4h. - - * lib/Makefile.am (noinst_HEADERS): regex.h added - - * configure.in (jm_WITH_REGEX, jm_PREREQ_ERROR): - acm4/{error,regex}.m4 (from fileutils-3.16u.tar.gz). - - * acm4/Makefile.am: created providing rules to create - $(top_srcdir)/acinclude.m4 to be used by aclocal. - - * tests/defs (LANGUAGE, LC_ALL, LANG): force them to be - `C'. Reported by Ulrich Drepper. - - * Makefile.am (SUBDIRS): Removed checks directory - * configure.in (AC_OUTPUT): Removed checks/Makefile - - * doc/m4.texinfo (Patsubst,example): @comment added to preserve - the space when m4.texinfo is edited and whitespace.el is active. - (Defn,example): idem. - -1998-08-20 Erick Branderhorst <Erick.Branderhorst@asml.nl> - - * doc/m4.texinfo (Esyscmd): grep ../Makefile instead of - ../COPYING. ../Makefile is a file which is certainly present when - test is executed in testSubDir. One can't be sure that the COPYING - file is in .. or ../.. in all situations, the ../Makefile is - always there. - - * doc/m4.texinfo (Include): adjusted expected test output - according to new tests, i.e. the input will always come from the - file `in' created by the test. - - * tests/Makefile.am: Added three lines at the top to get - esyscmd.1.test working. - - * tests/get-them: modified to generate clearer tests who will need - less maintenance when new test examples are created in - `doc/m4.texinfo'. All tests are small (nearly stand-alone, they - need the generic file `defs') shell scripts creating `in', `ok', - `out' and when apropriate `okerr' and `err' in the directory - `testSubDir' when executed. The compare of `ok' and `out' - (and of `okerr' and `err') will be the exit status of the test. - `out' must match `ok' (and `okerr' must match `err') for the test - to be succesful. - - * tests/[a-b]\{1,8\}.[0-9]+.test: This namespace is reserved for - the tests generated by tests/get-them getting it input normally - from doc/m4.texinfo. The namespace tests/[a-b]+[0-9]+.test (no `.' - (dot) before the numeric part) is reserved for all other (hand - written) tests. The `+' means one or more times. - -1998-08-12 Erick Branderhorst <Erick.Branderhorst@asml.nl> - - * doc/Makefile.am (EXTRA_DIST): helptoman.pl and $(MANS) to - supported short man page to refer to info documentation - * helptoman.pl: added - * configure.in: AC_PATH_PROG(PERL,perl) - * Makefile.am (SUBDIRS): doc after src - - * libitized with libit 0.5 from - ftp://ftp.iro.umontreal.ca/pub/contrib/pinard/maintenance/libit. - - * configure.in (AC_REPLACE_FUNCS): added xmalloc xstrdup - * lib/Makefile.am (libm4_a_SOURCES): removed automakely supported - replacement functions, (libm4_a_LIBADD): @LIBOBJS@ - * configure.in (AM_WITH_REGEX), acconfig.h (WITH_REGEX): added - lib/rx.{c,h}: added - * configure.in (AC_CHECK_FUNC): getopt_long - - * src/m4.c (usage): Report bugs to m4-bugs@gnu.org. - - * TODO: added entry about dependencies - -1998-08-10 René Seindal <rene@seindal.dk> - - * Prerelease 1.4f - - * doc/m4.texinfo (Changesyntax): Added documentation for the macro - "changesyntax". - - * src/builtin.c (m4_changesyntax): Added builtin macro - "changesyntax" to modify the syntax table. - - * src/input.c, src/m4.h, src/macro.c: Implemented an input syntax - table. All categories are assigned a syntax code and tokens are - read according to this table. - -1998-08-09 René Seindal <rene@seindal.dk> - - * src/numb.{c,h}: New files, implements multiple precision eval - using GNU gmp. Originally submitted by John Gerard Makecki - (johnm@vlibs.com), later modified. Tested with GNU gmp 2.0.2. - - * doc/m4.texinfo (Eval): Added documentation for multiple - precision arithmetic library support. - - * src/m4.{c,h}, src/eval.c, src/builtin.c, configure.in: Changes - to accommodate multiple precision eval. - -1998-08-07 René Seindal <rene@seindal.dk> - - * src/input.c (MATCH, match_input), src/m4.h: changed definition - of comment and quote strings to `unsigned int' to allow eight bit - chars (reported by andrewb@zip.com.au (Andrew Bettison)). - - * src/builtin.c, doc/m4.texinfo: Builtin `syncoutput' added by - patch from Mike Howard <mike@clove.com> - -1998-08-06 René Seindal <rene@seindal.dk> - - * gettext.m4: corrected AM_WITH_NLS to handle use of installed - -lintl. - -1998-08-03 René Seindal <rene@seindal.dk> - - * Prerelease 1.4e - - * src/m4.h: Added ifdef ENABLE_NLS around include of <libintl.h> - and _ macro. M4 now builds with --disable-nls. - - * src/m4.c (main): reintroduced textdomain(PACKAGE) to get gettext - to look for right message catalogs. Call indef'ed by ENABLE_NLS. - - * configure.in (ALL_LINGUAS): Added complete list of translations: - de fr it ja nl ru sv. - -1998-05-22 Erick Branderhorst <Erick.Branderhorst@asml.nl> - - * Prerelease 1.4d. - - * src/m4.c: #include <signal.h> not <sys/signal.h>. - - * src/Makefile.am: CFLAGS = -Wall @CFLAGS@. - - * checks/Makefile.am: explicit list tests in CHECKS. - - * configure.in, {,src,doc,lib,examples,checks}/Makefile.am, - src/{ansi2knr.{1,c}} doc/{m4.texinfo,mdate-sh}, missing, - mkinstalldirs, install-sh: Added automake (1.3) support. - - * lib/{alloca.c,error.{c,h},get{date.h,opt.{c,h},opt1.c}, - obstack.{c,h},regex.{c,h},strtol.c,xmalloc.c,xstrdup.c}: - Used libitize (0.4) to update. - - * configure.in, ABOUT-NLS, intl/*, po/*: Added gettextize - (0.10.25) support. Removed LOCALE, fr.msg, m4.cod and adjusted - README accordingly. - - * src/stackovf.c: #ifdef USE_STACKOVF ... #endif to (de-)activate - stack overflow functionality. - -1994-12-03 François Pinard <pinard@iro.umontreal.ca> - - * Prerelease 1.4.1. - - * Makefile.in (realclean-local): Delete stamp-h.in. - - * configure.in, {,src,lib}/Makefile.in, src/m4.h, src/m4.c: - Localize, adapting from how it is done in sharutils. - - * fr.tt: New file, for French. - - * configure.in, {,*/}Makefile.in, acconfig.h, src/m4.c, - src/freeze.c: Rename PRODUCT to PACKAGE. - -1994-11-26 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Check for <libintl.h> and <locale.h>. - * src/m4.h, src/builtin.c, src/debug.c, src/eval.c, src/macro.c, - src/stackovf.c: Rename _ to __P. - * src/m4.h: Declare _ as a macro returning its argument, or else, - include <libintl.h> and declare _ as gettext. - * src/m4.c: Possibly include <locale.h> and call setlocale. - * src/m4.c, src/builtin.c, src/debug.c, src/eval.c, src/freeze.c, - src/input.c, src/macro.c, src/output.c, src/path.c, - src/stackovf.c, src/symtab.c: Use _ macro over all localizable - strings. - -1994-11-07 François Pinard <pinard@iro.umontreal.ca> - - * doc/Makefile.in (stamp-vti): Use new -r option to date. - - * configure.in: Put --with-gmp in place, in prevision for John - Gerard's work. - * acconfig.h: Document WITH_GMP. - -1994-11-05 François Pinard <pinard@iro.umontreal.ca> - - * Release 1.4. - - * doc/Makefile.in (realclean): Also remove stamp-vti. - Reported by Eric Backus. - -1994-11-02 François Pinard <pinard@iro.umontreal.ca> - - * src/freeze.c (produce_frozen_state): If the frozen file cannot - be opened, return immediately after producing the error message. - Reported by Andreas Schwab. - - * configure.in: Check for const only after having found possible - ANSIfying compiler flags, this is of no use to check it before. - Reported by Alexander Lehmann. - -1994-11-01 François Pinard <pinard@iro.umontreal.ca> - - * src/macro.c (collect_arguments): Cast obstack arguments to - (voidstar), so avoiding compiler warnings. - Reported by Joseph E. Sacco. - - * src/freeze.c (produce_frozen_state): Cast printed lengths to - (int) so they correspond to %d format items. - Reported by Joseph E. Sacco. - - * src/m4.c (main): Cast the argument to xfree to (voidstar). - * src/symtab.c (free_symbol): Idem. - Reported by Karl Vogel. - -1994-10-31 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (DISTFILES): Distribute BACKLOG. - - * configure.in: Define PRODUCT and VERSION. - * acconfig.h: Document PRODUCT and VERSION. - * src/m4.c, src/freeze.c: Use PRODUCT and VERSION instead of the - constant string m4 and variable or parameter named version. - -1994-10-30 François Pinard <pinard@iro.umontreal.ca> - - * src/m4.h, src/debug.c: Replace all #ifdef __STDC__ by #if - __STDC__. Alliant FX/2800 Concentrix 2.2 (i860-BSD4.3) compiler - defines __STDC__ to 0, for indicating it is *not* ANSI! - Reported by Kaveh R. Ghazi. - - * configure.in: Added obsolescent tests for AIX and Minix. - - * doc/Makefile.in (mostlyclean): Remove texclean in dependencies, - which texclean does not exist anymore. - Reported by Eric Backus, Jim Meyering, John David Anglin and - Joseph E. Sacco. - -1994-10-29 François Pinard <pinard@iro.umontreal.ca> - - * aclocal.m4 (fp_C_PROTOTYPES): Force -D_HPUX_SOURCE with -Aa. - Reported by John David Anglin. - - * src/ansi2knr.c: New version, sent by Peter Deutsch. - * aclocal.m4 (fp_C_PROTOTYPES): Substitute empty or ansi2knr for - ANSI2KNR, depending on the fact the compiler is ANSI or not. - * src/Makefile.in: Use -Ovarargs=convert on ansi2knr calls. - Remove the sed filter after ansi2knr for debug.c. Use $O instead - of $U, put underline in extensions rather than in basenames. Use - implicit rules, now that regularity makes this possible. - Have $(OBJECTS) depend on $(ANSI2KNR), so to trigger compilation - of ansi2knr whenever it is needed. - * configure.in: Adjusted for correct STACKOVF substitution. - * src/debug.c (trace_format): When not __STDC__, use (...) as a - parameter list, so ansi2knr will convert it to (va_alist) va_dcl. - Reported by David MacKenzie. - - * Makefile.in: Remove binprefix. Use transform_name instead. - Reported by David MacKenzie. - - * doc/Makefile.in: Create version.texi, use it, clean it. - Reported by Jim Meyering. - -1994-10-28 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (all, install, uninstall): Depend on Makefile. - - * Makefile.in: For actions invoking $(MAKE) from within compound - sh statements, exit non-zero if the sub-make fails. Otherwise, - the top-level make may exit successfully when it should fail. - Reported by Jim Kingdon. - - * {,/*}Makefile.in: Use && after all cd, in case they fail. - - * {,*/}Makefile.in: Declare PRODUCT and VERSION macros. - (dist): Use PRODUCT and VERSION instead of tricks on .fname. - * configure.in: Substitute PRODUCT and VERSION. - - * {,*/}Makefile.in (dist): Always try a hard link before a copy. - -1994-10-27 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (mostlyclean-local): Do not remove *~. - * */Makefile.in (mostlyclean): Idem. - Reported by Robert E. Brown and Richard Stallman. - -1994-10-09 François Pinard <pinard@iro.umontreal.ca> - - * src/m4.h: Get rid of CONFIG_BROKETS. - -1994-10-02 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Use AC_ARG_PROGRAM. - * aclocal.m4 (fp_C_PROTOTYPES): Substitute @kr@ by kr or empty. - Reported by David MacKenzie. - -1994-10-01 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Do not add -O to CFLAGS for GNU C, now that - configure does it automatically. - Reported by Jim Meyering. - -1994-09-23 François Pinard <pinard@iro.umontreal.ca> - - * src/stackovf.c: Declare the handler_t typedef earlier in the - code, use it for stackovf_handler. - (setup_stackovf_trap): Use RETSIGTYPE instead of void while - casting sigsegv_handler. - Reported by Robert Bernstein. - - * src/m4.c (main): Initialize program_name to argv[0] without - basename'ing it. - Reported by Karl Berry. - -1994-09-18 François Pinard <pinard@iro.umontreal.ca> - - * src/Makefile.in (TAGS): Include a ../lib/TAGS reference. - Reported by Karl Berry. - -1994-09-14 François Pinard <pinard@iro.umontreal.ca> - - * lib/Makefile.in (mostlyclean): Added. - (TAGS): Make in $(srcdir). - - * configure.in: Use `choke me' in test, like everywhere! - - * {doc,examples,lib,src}/Makefile.in (check): Deleted, as - unreacheable and useless. - - * doc/Makefile.in (texclean): Deleted, merged in mostlyclean. - - * lib/Makefile.in (DISTFILES): Distribute TAGS. - (distclean): Do not remove TAGS. - (realclean): Remove it. - * Makefile.in: Make TAGS in lib also, not just in src. - Reported by Karl Berry. - - * Makefile.in (distclean, realclean): Instead of recursively - calling $(MAKE) for the -local part, allow parallel execution of - -recursive and -local, only delay the removal of config.status, - which is repeated in both goals. - -1994-09-13 François Pinard <pinard@iro.umontreal.ca> - - * Release 1.3. - - * Makefile.in: Group all *clean-recursive goals in one, using sed - to remove `-recursive' while calling make recursively. Also, use - a subshell for each recursive $(MAKE). - Reported by Jim Meyering. - - * src/m4.h (memcpy): Define with bcopy for BSD systems. - Reported by Kaveh R. Ghazi. - - * src/Makefile.in (ansi2knr): Use $(LIBS) while linking, for SunOS - 4.1.3 requires -ldl to link even ansik2nr, and we need a way to - specify it. - - * configure.in: Use date instead of touch for stamp-h. - * Makefile.in (stamp-h.in): Idem. - - * Makefile.in (distclean, realclean): Force serial execution of - both goals, in case parallel makes are being used. - Reported by Jim Meyering. - - * src/Makefile.in (DISTFILES): Distribute TAGS. - (distclean): Do not remove TAGS. - (realclean): Remove it. - Reported by Karl Berry. - -1994-09-10 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Use fp_ to match aclocal.m4. Revert _OS_ macros - to old names, for following Autoconf. - -1994-09-08 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (MDEFINES): Remove INSTALL substitutions, for - ./install.sh will not be correctly referred to in sub-Makefiles. - Reported by John David Anglin. - - * doc/Makefile.in (texclean): Remove *.cps and *.fns too. - Reported by Eric Backus. - - * Makefile.in, checks/Makefile.in, doc/Makefile.in, - examples/Makefile.in, lib/Makefile.in, src/Makefile.in: Limit - config.status into remaking this directory's Makefile only. - * Makefile.in (stamp-h): Do not check nor touch stamp-h. - * configure.in (AC_OUTPUT): Touch stamp-h if CONFIG_HEADERS. - Reported by Jim Meyering. - -1994-09-06 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Correct stack overflow detection logic, taking - care of systems having only incomplete implementations (like for - Pyramid 9820 OSx 5.0d). - Reported by Kaveh R. Ghazi. - - * src/Makefile.in (TAGS): Remote -t from etags call. - -1994-09-02 François Pinard <pinard@iro.umontreal.ca> - - * lib/Makefile.in (install): Depend on all. - -1994-08-31 François Pinard <pinard@iro.umontreal.ca> - - * examples/Makefile.in (mostlyclean): Do not depend on texclean. - Reported by Jim Meyering and John David Anglin. - - * Makefile.in (distclean-local): Delete config.log. - Reported by Jim Meyering. - - Solidify frozen files with respect to -P: - * src/m4.c: Have -P set prefix_all_buitins variable instead of - calling a function by that name. Declare the variable. - * src/m4.h: Adjust declaration for prefix_all_buitins. - * src/builtin.c (builtin_init): Merge in functionality from - previous prefix_all_buitins function, while making entries in the - symbol table, but not modifying the builtin description itself. - - * src/freeze.c (reload_frozen_state): Add a useless `break;', - because *many* compilers do not accept an empty `default:'. - Reported by Akiko Matsushita, Eric Backus, John David Anglin, - Joseph E. Sacco, Kaveh R. Ghazi, Tom McConnell and Ulrich Drepper. - - * configure.in: Use AC_TYPE_SIGNAL. - * src/stackovf.c (setup_stackovf_trap): Use RETSIGTYPE. - Reported by Robert Bernstein. - - * checks/Makefile.in (check): Modify PATH so check-them will find - m4 in the src directory. - * Makefile.in (check): Don't. - Reported by Akiko Matsushita and Jim Meyering. - - * src/output.c (make_room_for, output_character_helper): New - functions, for implementing a global MAXIMUM_TOTAL_SIZE instead of - a per buffer MAXIMUM_BUFFER_SIZE. - - * src/output.c (output_text): New function, for optimizing the - output of strings of characters. Use it. - -1994-08-30 François Pinard <pinard@iro.umontreal.ca> - - * doc, src: New directories reorganizing the distribution. - * doc/Makefile.in, src/Makefile.in, examples/Makefile.in: New - files. - * Makefile.in: Adjusted. - * configure.in: Configure new Makefiles. - - * m4.h: Declare STRING typedef. Use it for comment and quote - strings, adjusting all references. (This is the rudiments of a - beginning for the eventual withdrawal of NUL terminated strings.) - * output.c (shipout_text): Accept a length parameter, and use it. - All callers adjusted. - -1994-08-29 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Include <unistd.h> if it exists. - * stackovf.c: Don't. - - Clean up for current_diversion variable: - * output.c: Move current_diversion from builtin.c. - * m4.h: Declare current_diversion so builtin.c can access it. - * output.c (output_init, make_diversion): Initialize or update - current_diversion. - * builtin.c (builtin_init, m4_divert): Leave current_diversion - alone. - - Remove limit on number of diversions: - * output.c: Replace ndiversion by diversions, declare it. - (output_init): Allocate only diversion 0. - (make_diversion): Allocate new diversions as needed. - * m4.h, m4.c: Remove NDIVERSIONS and ndiversion related stuff. - * m4.c: Still accept -N, but do nothing with it. - Reported by David MacKenzie. - - Freeze diversions: - * output.c (freeze_diversions): New function. - * m4.h: Declare freeze_diversions. - * freeze.c: Document frozen file format, revise it, call - freeze_diversions to add diversions to frozen format, and code to - reload them properly. - * m4.c: Do not undivert automatically at end when status being - frozen. Do not call builtin_init when reloading frozen state. - - Speed up diversion processing: - * output.c: Add INITIAL_BUFFER_SIZE, MAXIMUM_BUFFER_SIZE, - COPY_BUFFER_SIZE, in-memory diversion buffers, struct diversion - structure and variables, cached variables out of output_diversion, - reallocate_diversion_for and OUTPUT_CHARACTER. - (shipout_text, make_diversion, insert_diversion): Adapted to new - structures. - (insert_file): Use better buffering. - Reported by David MacKenzie. - -1994-08-28 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in, lib/Makefile.in, checks/Makefile.in: Arrange so - dist works from another build directory. - -1994-08-27 François Pinard <pinard@iro.umontreal.ca> - - * symtab.c (hack_all_symbols): Use hash_table_size instead of - constant HASHMAX, for -H option to work better. - - * builtin.c (DECLARE): Simplify by using _ (). - - * freeze.c: New file. - * Makefile.in: Compile it, distribute it. - * m4.c: Recognize, document and process --freeze-state (-F) and - --reload-state (-R) options. Pass a true flag to builtin_init - only if no reloading some state. - * builtin.c (define_builtin): Remove static specifier. - (find_builtin_by_name): Remove static specifier. - (builtin_init): Accept and obey a flag argument. - * m4.h: Add declarations for freeze.c, changes for builtin.c. - -1994-08-24 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c (dumpdef_cmp): Rewrite so the cast protect the const - specifier. - - * configure.in: Implement --with-dmalloc. - * acconfig.h: Document WITH_DMALLOC. - * m4.h: Add code for when WITH_DMALLOC. - -1994-08-15 François Pinard <pinard@iro.umontreal.ca> - - * m4.c (long_options): Use "error-output", the dash was missing. - Reported by Akiko Matsushita. - -1994-08-12 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Include <sys/types.h>. - * builtin.c, debug.c, m4.c, output.c, stackovf.c: Don't. - * m4.h: Declare len_lquote and len_rquote as size_t, not int. - int. - * input.c: Declare len_lquote, len_rquote, len_bcomm and len_ecomm - as size_t, not int. - * builtin.c (dump_args): Declare len as size_t, not int. - - * debug.c: Prototype the forward declaration of debug_set_file. - - * builtin.c (m4_undivert): Replace div by file, for avoiding the - shadowing of this variable. - * output.c (insert_diversion): Idem. - - * input.c: Delete def_rquote, def_lquote, def_bcomm and def_ecomm. - (input_init): Duplicate default quote and comment strings. - (set_quotes): Free previous quote strings in all cases. Duplicate - even default quote strings. - (set_comment): Free previous comment strings in all cases. - Duplicate even default comment strings. - - * configure.in: Updated for Autoconf 2.0. - * Makefile.in (distclean-local): Also delete config.cache. - - * m4.c (usage): Reorganize the --help output by topic. Include a - description for debugging flags. - -1994-07-29 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: If sigaction is available and SA_ONSTACK defined, - use sigaction. Otherwise, if sigvec is available and SV_ONSTACK - defined, use sigvec. Else don't compile stackovf.c. - * stackovf.c (setup_stackovf_trap): Idem. - Reported by Jim Avera, Karl Berry, Kaveh R. Ghazi, Matthias Rabe - and Simon Leinen. - -1994-07-21 François Pinard <pinard@iro.umontreal.ca> - - * m4.c (usage): Replace printf par fputs. - -1994-07-18 François Pinard <pinard@iro.umontreal.ca> - - * Release 1.2 - -1994-07-17 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Check for sigaction and sigvec. Add a new delayed - check for RLIMIT_STACK, combine in the checking for getrlimit. - All those things are not universally available. - * stackovf.c: Split setting up the trap handler and catching - signals, for better taking care of various configure outcomes. - * examples/stackovf.sh: Correct a typo. - Reported by Eric Backus, Jim Avera and Jim Meyering. - -1994-07-16 François Pinard <pinard@iro.umontreal.ca> - - * ansi2knr.c: New version sent by its author, Peter Deutsch. - -1994-07-15 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Modify so parallel make will not try making - lib/libm4.a twice simultaneously. - Reported by Jim Meyering. - -1994-07-14 François Pinard <pinard@iro.umontreal.ca> - - * stackovf.c (setup_stackovf_trap): Replace "Don't" by "Do not" in - error message, for when no code possibility exists. Even if this - line is completely #ifdef'ed out, it brings a syntax error. - Reported by Andreas Schwab, Jim Meyering and Joseph E. Sacco. - - * Makefile.in (install): Have install depend on all too, for lib - to be remade as needed. - - * examples/stackovf.sh: Try ksh, bsh and bash for shells - providing ulimit, instead of using only ksh. - Reported by Jim Avera and Joseph E. Sacco. - -1994-07-12 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (check): Have it depend on all instead of m4. In - this way, a change in lib will be detected and processed. - - * builtin.c (numeric_arg): Use strtol and verify the conversion, - instead of using sscanf which stops as soon as there is a - non-digit in the input. Previously, incr(1xyzzy), eval(1,2xyzzy) - and divert(1xyzzy) were all accepted without any warning or error - messages. - * m4.h: Declare strtol as long if not including stdlib.h. - * configure.in: Check for limits.h, and replace strtol if missing. - * lib/Makefile.in: Substitute LIBOBJS. Distribute strtol.c. - * lib/strtol.c: New file, from elsewhere. - Reported by Andreas Schwab. - -1994-07-07 François Pinard <pinard@iro.umontreal.ca> - - * macro.c (expand_macro): Cast value to (boolean) prior to - assigning it to traced. - Reported by Tom McConnell. - - * Makefile.in (m4): Always make all in lib first. - Reported by Jim Meyering. - -1994-07-06 Jim Avera <jima@netcom.com> - - * stackovf.c: Isolated OS-dependent sections; Improved portability, - adding support for SunOS/BSD (sigvec, sigstack, and 4-parameter signal - handlers), and a default error message if the fault address is not - available (when neither siginfo.h nor BSD sigcontext are supported). - * configure.in: Changes for stackovf.h: Check for sigcontext, - sigaction, sigstack, and define rlim_t as int if necessary. - * acconfig.h: Added HAVE_SIGCONTEXT and rlim_t. - * examples/stackovf.sh: Run m4 -L99999999 to allow stack overflow. - * ansi2knr.c: Fix for func-ptr args; convert "..." to varargs syntax. - -1994-07-05 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Use AC_SET_MAKE. - * Makefile.in: Use @SET_MAKE@. - Reported by Jim Meyering. - - * checks/check-them: Do not trap on SIGQUIT or SIGALRM. - Reported by Ian Taylor. - -1994-07-02 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Remove dependency of USE_STACKOVF on STDC_HEADERS, - because siginfo.h is unrelated to standard headers, and siginfo.h - is already checked for. - Reported by Joseph E. Sacco. - - * acconfig.h, aclocal.m4, m4.h: Replace HAVE_PROTOTYPES by - PROTOTYPES. - * aclocal.m4, configure.in: Replace AC_HAVE_PROTOTYPES by - AC_PROTOTYPES. - -1994-06-29 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c (substitute): Use \& to represent this part of the - string which was matched by the whole regexp, instead of - representing the whole string. Any usage of \0 issues a warning - and acts like \&, it will disappear in some subsequent release. - -1994-06-27 François Pinard <pinard@iro.umontreal.ca> - - * m4.c: Complete prototype for forwarded declaration of usage. - - * input.c (init_macro_token): Correct own reference in error - message. Previous name get_macro_func was referred to instead. - (next_char): Correct own reference in error message. Previous - name advance_input was referred to instead. - - * m4.h: Declare eval_t and unsigned_eval_t typedefs to 32 bits. - * eval.c (logical_or_term, logical_and_term, or_term, xor_term, - and_term, not_term, logical_not_term, cmp_term, shift_term, - add_term, mult_term, exp_term, unary_term, simple_term): Add - prototype to forwarded declarations. Declare parameter v1 as - eval_t * instead of int *. Same for local variable v2 in dyadic - functions. Same for result in exp_term. - * builtin.c (m4_eval): Declare value as eval_t instead of int. - (ntoa): Declare value as eval_t instead of int. Declare uvalue as - unsigned_eval_t instead of unsigned int. Change casts accordingly. - (shipout_int): Cast first argument of ntoa to eval_t. - Reported by Thorsten Ohl. - - * macro.c: Complete the prototypes of forwarded expand_macro and - expand_token. - Reported by Thorsten Ohl. - - * m4.h: Define voidstar as void * or char * depending on __STDC__. - The Ultrix 3.1 compiler cannot do much with void pointers. - - * builtin.c (dumpdef_cmp): Replace void * by voidstar. - * m4.c (xfree): Replace void * by voidstar. - Reported by Tom McConnell. - - * ansi2knr.1: New, from elsewhere. - * Makefile.in (DISTFILES): Distribute ansi2knr.1 - - * Makefile.in (stamp-h.in): Avoid running ./config.status if - stamp-h does not exist yet. This avoids running it a second time - just after the initial ./configure. - Reported by David MacKenzie and Tom McConnell. - - * m4.h: Replace the enum debug_info declaration with a series of - #define's. The Ultrix 3.1 compiler would otherwise need casting - (int) to most references, when used in expressions. - Reported by Tom McConnell. - -1994-06-25 François Pinard <pinard@iro.umontreal.ca> - - * aclocal.m4: Replace FP_PROTOTYPES by AC_HAVE_PROTOTYPES, - following an idea from Brook G. Milligan. AC_HAVE_PROTOTYPES - calls the compiler. Previously, FP_PROTOTYPES was only calling - the preprocessor; by not being subject to CFLAGS, this was - discouraging those flags asking for ANSI compilation. - * acconfig.h: Document HAVE_PROTOTYPES. - * configure.in: Use AC_HAVE_PROTOTYPES instead of FP_PROTOTYPES. - * m4.h: Define _() according to HAVE_PROTOTYPES, not __STDC__. - Reported by Eric Backus. - - * configure.in: Substitute CFLAGS and LDFLAGS, taking their value - from the environment. Default CFLAGS to -g if not set. - * Makefile.in: Have CFLAGS and LDFLAGS substituted from configure. - * lib/Makefile.in: Have CFLAGS substituted from configure. - Reported by Eric Backus and Tom McConnell. - - * configure.in: m4_undefine changeword before using AC_ENABLE. - - * m4.h: Declare prototypes for error (for ANSI compilers only), - prefix_all_builtins and reference_error. - Reported by Tom McConnell. - - * input.c (set_word_regexp): Do not try to initialize the array - test from a string, this does not work with non-ANSI compilers. - Reported by Eric Backus. - - * Makefile.in (dist): Clean examples/ before saving it. - (distclean-local): Also remove stamp-h. - Reported by Eric Backus. - - * Makefile.in (_stackovf.c): Goal for compiling stacokovf.c with - non ANSI compilers. - Reported by Tom McConnell. - - * checks/Makefile.in (clean): Depends on mostlyclean. - (mostlyclean): New goal. - -1994-06-24 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (DISTFILES): Distribute install.sh. - * install.sh: New file, copied from elsewhere. - Reported by Assar Westerlund and Kaveh R. Ghazi. - -1994-06-23 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Define ENABLE_CHANGEWORD if --enable-changeword. - * acconfig.h: Explain ENABLE_CHANGEWORD. - - [These modifs all depend upon ENABLE_CHANGEWORD and are adapted - from code provided by Pete Chown] - * m4.h: Add original_text field to u_t variant of union u. - Declare TOKEN_DATA_FUNC macro. - * builtin.c: Declare changeword. - (m4_changeword): New function. - * input.c: Include "regex.h", define variables with word regexps. - (input_init): Initialize the word regexp. - (set_word_regexp): New. - (next_token): Declare local variables, use the previous code if - default_word_regexp is true. Else, match using a new code. Save - the original text. - * macro.c (expand_token): Ship out original text if not a macro - name. - Reported by Krste Asanovic and Pete Chown. - - [These modifs all depend upon ENABLE_CHANGEWORD] - * m4.h: Declare external user_word_regexp. - * m4.c: Declare user_word_regexp, and initialize it from - --word-regexp or -W, or NULL if not specified. - * input.c: Use user_word_regexp if specified, instead of - DEFAULT_WORD_REGEXP. - - * Makefile.in (m4): Revert Jan 3 1994 change. I'm unable to - agree with it. - - * Makefile.in, lib/Makefile.in: Limit suffixes to .c and .o. - * checks/Makefile.in: Empty the suffix list. - Reported by Geoff Russell, Joel Sherrill and Roland McGrath. - - * m4.c: Declare nesting_limit and initialize it to 250. - Implement -LNUMBER or --nesting-limit=NUMBER to change its - value. - * m4.h: Declare nesting_limit as external. - * macro.c (expand_macro): Stop execution whenever nesting limit - is exceeded. - Reported by Bengt Mertensson. - - * eval.c (evaluate): Diagnose excess characters in eval input. - Things like `eval(08)' used to return 0 with no diagnostic. - - * m4.h: Capitalize first letter of all macro arguments in - definitions. - - * m4.c: Declare warning_status, initialize it to 0. Add new - option -E, or --fatal-warnings, which sets warning_status to - EXIT_FAILURE instead. - * m4.h: Declare external warning_status. Define EXIT_SUCCESS and - EXIT_FAILURE if not otherwise done by header files. - * m4.c: Delete declarations for EXIT_SUCCESS and EXIT_FAILURE. - * m4.c, input.c, output.c, symtab.c, builtin.c, macro.c, debug.c, - eval.c: Replace 0 by warning_status and 1 by EXIT_FAILURE in first - argument of all M4ERROR calls. - Reported by Noah Friedman. - - * examples/incl-test.m4: Renamed from incl_test.m4. - * examples/include.m4: Include incl-test.m4 instead of - incl_test.m4. - * examples/multiquotes.m4: Renamed from multi-quotes.m. - -1994-06-22 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Avoid USE_STACKOVF if <siginfo.h> not found. Note - that Jim developped stackovf.c on a 486 running SVR4.0 (ESIX), and - also tested it on a Sun Sparc workstation running SunOS 4.x. - - * format.c (format): When not HAVE_EFGCVT, m4 was failing the - 49.format check, abusing a `union values' argument with sprintf - without selecting the proper field. Now, save the formatting type - first, delaying the fetch of the corresponding argument. - Reported by Joseph E. Sacco and Tom Quinn. - - * format.c (format): Remove const from char *fmt declaration when - not HAVE_EFGCVT, because a NUL may be forced into it. - - * m4.h: Declare atof() when not STDC_HEADERS. - Reported by Joseph E. Sacco. - - * Regenerate configure using Autoconf 1.11, this corrects a - problem about an incorrect cpp seting on NeXT 3.1. - Reported by Alexander Lehmann. - -1994-06-05 François Pinard <pinard@iro.umontreal.ca> - - * m4.h (_): Change argument from `x' to `Args'. - -1994-04-22 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Rename Args() to _(). - * m4.h: Remove extern specifier from all function declarations. - -1994-04-22 Jim Avera <jima@netcom.com> - - * stackovf.c: New file implementing stack-overflow detection. - * configure.in: Check for getrlimit, sigaction. If all of - standard headers, getrlimit and sigaction, define USE_STACKOVF and - substitute ${U}stackovf.o for STACKOVF. - * acconfig.h: Declare USE_STACKOVF. - * Makefile.in: Distribute stackovf.c, link with $(STACKOVF). - * m4.h: Declare setup_stackovf_trap(). - * m4.c: Call setup_stackovf_trap(). - * tests/stackovf_test.sh: New file. - -1994-04-13 François Pinard <pinard@iro.umontreal.ca> - - * checks/Makefile.in: Rename .all-stamp to stamp-checks. - - * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8. - -1994-01-30 <pinard@iro.umontreal.ca> - - * m4.h: Remove definition of volatile, not used anymore. - Reported by Jim Meyering and Joseph E. Sacco. - - * m4.h: Consistently use `do { ... } while (0)' in macros, instead - of `if ... else /* nothing */' for if macros. - Reported by Jim Meyering. - - * builtin.c (m4_regexp): Reorganize the code for avoiding a - warning from gcc about `repl' possibly used before defined. - Reported by Jim Meyering. - - * m4.h: Avoid a pre-ANSI <memory.h> together with <string.h>. - Reported by Jim Meyering. - -1994-01-25 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Move the conditional definition of volatile after the - inclusion of system files, because they may define it first. - -1994-01-04 François Pinard <pinard@iro.umontreal.ca> - - * checks/Makefile.in (CHECKS): Add a useless `*' before `[', to - get around a problem with Alpha make seeing a syntax error, there. - Reported by Vern Paxson. - -1994-01-03 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Do not define LDFLAGS, use CFLAGS on link calls. - Reported by Richard Stallman. - -1993-12-25 François Pinard <pinard@iro.umontreal.ca> - - * configure.in: Correct test for strerror, AC_FUNC_CHECK was used - instead of AC_HAVE_FUNCS. - Reported by Noah Friedman. - -1993-12-01 François Pinard <pinard@iro.umontreal.ca> - - * m4.c: Initialize show_help and show_version to zero. - - * m4.c: Ensure EXIT_SUCCESS and EXIT_FAILURE are defined. - Use them in exit() and usage() calls. - -1993-11-27 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Delete extern sys_nerr, sys_errlist declarations, and - syserr() macro. Delete errref, add reference_error and M4ERROR. - * m4.c: Replace errref, which was returning an input reference - string, with reference_error, which prints it on standard error. - * builtin.c, output.c: Use errno as second parameter to error, - instead of using syserr() with %s. - * *.c: Use M4ERROR instead of error: no more errref() with %s. - Doing so, the program name appears after the input reference - instead of before, which eases M-x next-error processing. - -1993-11-24 François Pinard <pinard@iro.umontreal.ca> - - * checks/get-them: Escape braces with backslashes in patterns, - because HPUX-9.01 awk needs this. - Reported by Jim Meyering. - -1993-11-22 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c: Declare "FILE *popen ();". - - * m4.h: Remove MESSAGE{,1,2}, WARNING1, FATAL{,1}, INTERNAL_ERROR - macros, replace error_message_prefix() declaration by errref()'s. - Declare xrealloc, for use in errref(). - * m4.c: Delete error_message_prefix() function, add errref(). - * *.c: Use error() systematically in place of all error macros, - now that error() flushes stdout first. Make needed adjustments. - - * m4.h: Remove const in sys_errlist[] declaration, it creates - conflicts on SGI and Alpha. - Reported by Kaveh R. Ghazi. - -1993-11-20 François Pinard <pinard@iro.umontreal.ca> - - * m4.c: Include <getopt.h> instead of "getopt.h". - - * configure.in: Output to config.h. Use HAVE_FUNCS preferably. - * acconfig.h: New, for documenting HAVE_EFGCVT. - * Makefile.in: Distribute acconfig.h, .stamp-h.in and config.h.in, - use them wherever appropriate. Also use -I. for compilations. - * lib/Makefile.in: Use -I.. for compilations. - * *.c: Include <config.h> or "config.h". - - * m4.h: Test for HAVE_MEMORY_H instead of NEED_MEMORY_H. - * configure.in: Use AC_HAVE_HEADERS(memory.h), delete AC_MEMORY_H. - -1993-11-17 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c (m4_eval): Cast strlen to (int) before comparing. - - * input.c (input_init): Initialize quote and comment strings - explicitely instead of calling set_quotes and set_comment: by - doing so, we ensure we do not free uninitialized variables. - - * checks/check-them: Reverse arguments to both diff, so the - expected is on the left and the obtained on the right. - - * m4.h: Add MESSAGE{,1,2}, WARNING1, FATAL{,1} and INTERNAL_ERROR - macros. Delete declarations for m4error, warning, fatal and - internal_error, add declaration for error_message_prefix. - * m4.c: Delete m4error, warning, fatal and internal_error - routines, add error_message_prefix routine. - * *.c: Replace m4error routine calls with MESSAGE* macro calls, - warning with WARNING*, fatal with FATAL* and internal_error with - INTERNAL_ERROR*. - * Makefile.in (_m4.c): Do not adjust ansi2knr output for va_alist, - this is not needed anymore. - - * m4.h: Declare extern FILE *debug. Add DEBUG_PRINT{1,3} and - DEBUG_MESSAGE{,1,2} macros. Delete declarations for debug_print - and debug_message, add declaration for debug_message_prefix. - * debug.c: Remove static specifier for FILE *debug declaration. - Delete debug_print and debug_message routines, add - debug_message_prefix routine. - * builtin.c, debug.c: Replace debug_print routine calls with - DEBUG_PRINT* macro calls. - * input.c, path.c: Replace debug_message routine calls with - DEBUG_MESSAGE* macro calls. - - * m4.h: Remove inclusion of <varargs.h>. - * debug.c: Include <stdarg.h> or <varargs.h>. - (trace_format): Use stdarg instead of varargs if __STDC__. - - * configure.in: Remove checks for vfprintf and _doprnt. These - implementations use varargs tricks which are not portable enough. - * lib/vfprintf.c: Deleted. - * lib/_doprnt.c: Deleted. - * lib/Makefile.in: Adjusted accordingly. Remove LIBOBJS. - Reported by Joel Sherrill. - - * path.c (add_include_directory): Use xstrdup. - - * builtin.c (find_builtin_by_name): Declare static. - - * *.[ch]: Add const to a few "char *" declarations. - - * configure.in: Remove commented tests for fileno() and fstat(). - * debug.c: Remove comments about HAVE_FILENO and HAVE_FSTAT. - - * debug.c (debug_flush_files): New. - * m4.h: Declares it. - * builtin.c (m4_syscmd, m4_esyscmd): Use it. - Reported by Nicolas Pioch. - -1993-11-12 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (m4.dvi): Use m4.texinfo instead of m4.texi. - Reported by Joel Sherrill. - - * builtin.c (prefix_all_builtins): Instead of the table size, use - the null entry at end for stopping the loop. It was overwritten. - Reported by Andreas Schwab and Jim Meyering. - - * builtin.c (prefix_all_builtins): Cast xmalloc to (char *). - Reported by Kaveh R. Ghazi. - - * macro.c (call_macro): Add * in (*SYMBOL_FUNC (sym)) (...). - Reported by Karl Vogel. - -1993-11-09 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Do not define volatile if already defined. - Reported by René Seindal. - - * lib/Makefile.in: Add a forgotten ALLOCA=@ALLOCA@. Grrr! - - Reported by Bernhard Daeubler, Eric Backus, Hal Peterson, Hoang - Uong, Ian Taylor, Kaveh R. Ghazi, Tom McConnell and Walter Wong. - -1993-11-08 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Define strchr and strrchr in terms of index and rindex, - instead of the other way around. - * builtin.c, m4.c, path.c: Use strchr instead of index. - - * input.c (next_char): Remove a "break;" after a "return ...;". - Reported by Tom McConnell. - -1993-11-08 François Pinard <pinard@iro.umontreal.ca> - - * Release 1.1 - - * configure.in: Do not copy check files in the build hierarchy. - * checks/check-them: Identify the m4 version being checked. For - finding m4, look in $PATH instead of in the parent directory. - * Makefile.in (check): Prepend `pwd` to $PATH before checking. - * checks/Makefile.in (.all-stamp): Always create check files in - the source hierarchy, not anymore in the build hierarchy. - (check): cd to the source hierarchy before performing checks. - Do not copy nor clean COPYING anymore, take it from `..'. - Reported by Tom McConnell. - - * Makefile.in (Makefile): Use $(SHELL). - (config.status): Use $(SHELL). Use "config.status --recheck" - instead of "configure --no-create", which is obsolete. - Reported by Tom McConnell. - -1993-11-05 François Pinard <pinard@iro.umontreal.ca> - - * m4.c (usage): Use "%s" instead of "m4" in format string. - Reported by Jim Meyering. - - * Makefile.in: Distribute mkinstalldirs. - Reported by Pierre Gaumond. - Reported by Jim Meyering. - Reported by Tom McConnell. - Reported by Andreas Gustafsson. - - * checks/check-them: Renamed from checks/check_them. - * checks/get-them: Renamed from checks/get_them. - * checks/.all-stamp: Renamed from checks/.all_stamp. - * checks/Makefile.in: Changed accordingly. - Reported by Jim Meyering. - -1993-11-04 François Pinard <pinard@iro.umontreal.ca> - - * lib/Makefile.in (dist): Correct permissions on files. - - * output.c: Declare tmpfile, some systems don't. - -1993-11-03 François Pinard <pinard@iro.umontreal.ca> - - * checks/Makefile.in (dist): Correct permissions on files. - - * Makefile.in (dist): Ensure recursive linking for subdirectory - `examples', also set read/write permissions on all its files. - - * mkinstalldirs: New, from elsewhere. - * Makefile.in: Use it. - - * debug.c: Synchronize debug messages and regular output when - the debug file and stdout are redirected to the same file. - * configure.in: Add (commented) checks for fileno and fstat. - Reported by Jim Avera. - - * builtin.c (m4_ifelse): Diagnose excess arguments if 5, 8, 11, - etc., arguments, then ignore the superfluous one. m4 used to - diagnose missing arguments and return the empty string. - Reported by Nick S. Kanakakorn. - -1993-11-02 François Pinard <pinard@iro.umontreal.ca> - - * m4.c (main): At end of all input, ensure all undiverted text - goes to the main output stream. - Reported by Andreas Gustafsson. - - * m4.c (main): exit (0), instead of return 0. - - * m4.c: Implement -P and --prefix-builtins. - * builtin.c: Delete const specifier on builtin_tab. - (prefix_all_builtins): New. - Reported by Noah Friedman. - Reported by Scott Bartram. - - * c-boxes.el: New, from elsewhere. - * Makefile.in: Distribute it. - - * m4.h: Do not define bcopy if <string.h> defines it. - Reported by Stephen Perkins. - - * builtin.c (define_macro): Allow a missing second argument, in - which case it is implied empty. Affects define and pushdef. - Reported by Eric Allman. - -1993-11-01 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Add blind_if_no_args in struct builtin, blind_no_args in - struct symbol adn SYMBOL_BLIND_NO_ARGS macro. - * builtin.c: Initialize all the blindness fields in builtin_tab. - (define_builtin): Copy the blindness of a builtin into its symbol. - * macro.c (expand_token): Avoid processing a blind builtin if the - next character is not an opening parenthesis. - Reported by David MacKenzie. - Reported by Noah Friedman. - - * configure.in: Ensure an exit status of 0 on completion. - Reported by Vivek P. Singhal. - - * eval.c (eval_lex): Admit both lower and upper case letters for - bases greater than 10. Only lower case letters were accepted. - - * eval.c (eval_lex): Recognize 0bDIGITS and 0rRADIX:DIGITS syntax. - Reported by Krste Asanovic. - - * eval.c: Rename NOT to LNOT. Add XOR, NOT, LSHIFT and RSHIFT. - * eval.c (logical_not_term): New name for not_term. - * eval.c (xor_term): New, between or_term and and_term. - * eval.c (not_term): New, between and_term and logical_not_term. - * eval.c (shift_term): New, between cmp_term and add_term. - Reported by Krste Asanovic: ~, ^, <<, >>. - Reported by Ben A. Mesander: ** vs ^. - - * m4.c: Delete xmalloc.c, xrealloc.c, xstrdup.c. - * m4.h: Delete xrealloc.c. - * lib/xmalloc.c: New, from elsewhere. - * lib/xstrdup.c: New, from elsewhere. - * lib/Makefile.in: Distribute and compile them. - - * m4.c: Change progname to program_name. - * builtin.c, eval.c, m4.c, m4.h: Rename error to m4error. - * lib/error.c: New, from elsewhere. - * lib/Makefile.in: Distribute and compile error.c. - * configure.in: Check AC_VPRINTF and for strerror. - * m4.c: Delete cmd_error. Use error instead. - * m4.c: Change label capitalisation to "ERROR", "Warning", etc. - - * m4.h: Delete #define const, let Autoconf takes care of this. - - * m4.c: Remove all code conditionalized by IMPLEMENT_M4OPTS. - Merge parse_args into main. Declare argv to be `char *const *', - then remove superfluous casts. - - * m4.c: Rename --no-gnu-extensions to --traditional. - Reported by Ben A. Mesander. - - * m4.c (usage): Add a status parameter. Supply one in various - calls. Add --help processing. Remove -V for --version. - - * lib/Makefile.in: Put $(CFLAGS) last in .c.o rule. - - * lib/Makefile.in: Have an AR=ar declaration. - Reported by Eric Backus. - Reported by Bjorn R. Bjornsson. - Reported by Tom Tromey. - Reported by Kristine Lund. - Reported by Marion Hakanson. - -1993-10-30 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (m4.info): Use -I$(srcdir) on $(MAKEINFO). - Reported by Noah Friedman. - -1993-10-25 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Remove MDEFINES and cleanup. - -1993-06-09 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd". - Create a gzip file. - -1993-02-06 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in, lib/Makefile.in, check/Makefile.in: In dist goals, - ensure 777 mode for directories, so older tar's will restore file - modes properly. - -1993-01-17 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in, lib/Makefile.in: Put $(CFLAGS) after $(CPPFLAGS), - so the installer can override automatically configured choices. - Reported by Karl Berry. - -1993-01-15 François Pinard <pinard@iro.umontreal.ca> - - * lib/vfprintf.c: Stolen from Oleo distribution and adapted. The - previous version was not working properly on m68k-hp-bsd4.3. - Reported by Roland McGrath. - - * lib/_doprnt.c: Stolen from Oleo distribution. - * configure.in: Check for _doprnt.c if vfprintf.c selected. - * lib/Makefile.in: Distribute _doprnt.c. - Do not distribute regex.[ch].old anymore. - -1993-01-01 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in, lib/Makefile.in: Reinstate $(CPPFLAGS), use it. - Richard wants it there. - -1992-12-27 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Add DEFS to MDEFINES. - * lib/Makefile.in (.c.o): Remove $(CPPFLAGS). - (libm4.a): Remove the library before creating it. - (distclean): Remove tags and TAGS too. - -1992-12-23 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (dvi, m4.dvi): New goals. - - * builtin.c, eval.c, format.c, input.c, m4.[ch], m4.texinfo, - macro.c, output.c, path.c, symtab.c: Change Copyright from - 1989-1992 to the explicit enumeration 1989, 1990, 1991, 1992. - - * examples/divert.m4: Deleted, this bug has been corrected. - - * Makefile.in (texclean, mostlyclean): New goals. - - * Makefile.in (clean): Remove clutter from ansi2knr. - Reported by Pierre Gaumond. - -1992-12-20 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Remove $(CPPFLAGS) from the .c.o rule. The user - might well use CFLAGS is s/he needs it. - - * Makefile.in: Allow installation of info files from a separate - build directory. - Reported by Jason Merrill. - Reported by David MacKenzie. - Reported by Skip Montanaro. - Reported by Erez Zadok. - Reported by Assar Westerlund. - -1992-12-19 François Pinard <pinard@iro.umontreal.ca> - - * Release 1.0.3 - This is still a beta release for the future GNU m4 version 1.1. - - * lib/alloca.c: New, from elsewhere. - * lib/Makefile.in: Distribute it. Define and use $(ALLOCA). - - * m4.h: Do not define index/rindex if already defined. If - FALSE/TRUE are already defined, do not redefine them, but merely - define boolean typedef to int. - - * Makefile.in: Use $(DEFS) while compiling ansi2knr. - * ansi2knr.c: Rewrite #ifdef HAVE_STRING_H || STDC_HEADERS, - because some C compilers do not like connectives with #ifdef. - * m4.h: Define `volatile' only if __GNUC__, instead of once for - __GNUC__ and once for __STDC__. - * lib/regex.h: Leave const alone, AC_CONST will take care of it. - - * checks/Makefile.in: Use .all_stamp instead of $(CHECKS) for - Makefile dependencies. Without it, make keeps destroying and - remaking $(CHECKS) in a loop (why?). Distribute .all_stamp. - - * m4.h, m4.c, builtin.c, output.c: Change all divertion/DIVERTION - to diversion/DIVERSION, this was a spelling error. - - * m4.c: Declare version[], remove #include "version.h". - * version.h: Deleted. - * Makefile.in: Remove references to version.h. - - * output.c (shipout_text): Centralize all `#line NUM ["FILE"]' - production, by using a simpler and more robust algorithm. This - solves the problem of synclines sometimes written in the middle of - an output line. Delete sync_line() and output_lines variable. - * m4.h: Remove sync_line prototype and output_lines declaration. - * input.c (next_char), output.c (shipout_text): Remove references - to output_lines. - * input.c (push_file, pop_file): Merely put the value -1 in - output_current_line instead of calling sync_line, for delaying a - single `#line NUM FILE' before next output line. Do not test - for sync_output, because this is unnecessary clutter. - * output.c (make_divertion, insert_divertion): Idem. - * input.c: Rename must_advance_line to start_of_input_line, for - consistency. - - * debug.c (trace_header): Select a new debug line format, which - better complies with GNU standards for formatting error messages. - With option `-dfl', M-x next-error might be used on the output. - * m4.c (vmesg): Adjust format of error output to GNU standards. - * m4.texinfo: Adjust examples for `make check' to work. - - * m4.h, builtin.c, debug.c, input.c, macro.c, path.c: Use upper - case for enum debug_info constants, which were all lower case. - - * builtin.c (m4_regexp, m4_patsubst): Use re_search instead of - re_search_2. - * lib/regex.[ch]: Use new version from textutils 1.3.6, with some - collected patches. I tried a few times using newer regex.[ch], it - mysteriously stopped aborting with this one. Insecure feeling... - * lib/Makefile.in: Distribute regex.[ch].old, just in case! - -1992-12-18 François Pinard <pinard@iro.umontreal.ca> - - * m4.c: Change `--no-warnings' to `--silent'. - Reported by David MacKenzie. - - * m4.c: Put all M4OPTS code upon IMPLEMENT_M4OPTS control, and - leave it off for now. See comment in m4.c for justification. - Reported by David MacKenzie. - - * configure.in: Replace AC_USG by AC_HAVE_HEADERS(string.h). - * m4.h, ansi2knr.c, lib/regex.h: Replace USG by HAVE_STRING_H. - - * Makefile.in: Add a new `info' goal. Use macro MAKEINFO. - - * Makefile.in: Ensure recursive cleaning is done before local - cleaning for all clean goals. - - * builtin.c (ntoa): Ensure the value is always interpreted as a - signed quantity, whatever the radix is. - -1992-11-18 Jim Meyering <meyering@idefix> - - * builtin.c, format.c, input.c: Split long lines. - * m4.c: Use typedef macro_definition instead of struct - macro_definition. - * symtab.c: Use typedef symbol instead of struct symbol. - -1992-11-17 François Pinard <pinard@iro.umontreal.ca> - - * *.[ch]: Remove all trailing whitespace, in code and comments. - - * configure.in: Find some awk. - * Makefile.in: Add $(AWK) to MDEFINES. - * checks/Makefile.in: Transmit $(AWK) to get_them. - * checks/get_them: Use $AWK instead of gawk. Add a close in the - awk script when switching files, because without this, mawk runs - out of file descriptors. - -1992-11-16 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (realclean): Delete m4.info*. - Reported by Jim Meyering. - - * Makefile.in: Adjust and link with checks/Makefile. - * checks/Makefile.in: New. - * configure.in: Output checks/Makefile. - - * checks/get_them: Have the dnl header of each test more - recognizable by next-error, also use a better message. - -1992-11-16 Jim Meyering <meyering@idefix> - - * m4.h [__GNUC__]: Use __volatile__ instead of `volatile.' - And use that only if __GNUC__ since we're using it's GCC-specific - semantics that tell the compiler the associated function doesn't - return. - - * builtin.c (substitute): Don't use character as an array index. - (dumpdef_cmp): Make formal arguments `const void *' to avoid - warnings with gcc -W -Wall on systems with qsort prototype. - (m4_errprint): Cast obstack_finish to `char *' to avoid warnings - from gcc -W -Wall. - - * eval.c (most functions): Add parentheses to assignments used - as truth values go avoid warnings from gcc -Wall. - - * input.c, m4.c, output.c, path.c, symtab.c: Declare static - any functions that don't need external scope. - - * builtin.c, debug.c, format.c, m4.c, m4.h, macro.c, symtab.c - (many functions and arrays): Declare `const'. - -1992-11-15 François Pinard <pinard@iro.umontreal.ca> - - * *.[ch]: Rename nil to NULL, using the declaration from <stdio.h>, - removing the declaration from m4.h. Also rename false to FALSE - and true to TRUE. - - * lib/Makefile.in (Makefile): New goal. - - * Makefile.in, lib/Makefile.in: Add a .c.o rule, so CFLAGS is not - so heavily loaded. It gets more easily overridable, calling make. - Reported by Jim Meyering. - - * Makefile.in (dist): Get .fname from the current directory name, - instead of from version.h. I need updating many files manually, - when the version changes, version.h is just one of them. - -1992-11-14 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Remove the tag `boolean' on the enum introducing typedef - `boolean'. This tag conflicts with <sys/types.h> on SVR4. - Reported by Tom McConnell. - -1992-11-13 François Pinard <pinard@iro.umontreal.ca> - - * m4.texinfo: Correct the examples for 33.divert, 38.divnum, - 39.cleardiv, which were describing missing or spurious newlines. - Modify examples 52.eval, 53.esyscmd and 54.sysval so the results - do not depend on machine word size, `/bin/false' implementation, - or `wc' output format. `make check' is more dependable, now. - - * checks/check_them: Summarize the failed tests by listing their - name, at end. If none, issue `All checks successful'. Output - `Checking' instead of `Input file:'. - - * checks/get_them, checks/check_them: Reindented. - - * Makefile.in (dist): chmod a+r before making the tar file. - -1992-11-12 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c (m4_dnl): Diagnose any parameter to `dnl'. - - * input.c (next_token): Reinitialize token_buttom just after using - it as a watermark with obstack_free. Or else, a future token, big - enough for triggering reallocation of the obstack chunk, could - void the initialized value of token_buttom, later causing panic in - obstack_free. Rename token_buttom to token_bottom everywhere. - - * m4.h: Before declaring errno, first include <errno.h> and - ensure that it does not define errno. - Reported by Richard Stallman. - -1992-11-11 François Pinard <pinard@iro.umontreal.ca> - - * builtin.c: Define and use DECLARE macro for builtins. - - * builtin.c (m4_ifelse): Avoid any diagnostic when exactly one - argument, this is a common idiom for introducing long comments. - - * builtin.c (m4_ifelse): If 3n + 2 arguments, diagnose missing - arguments. The last argument was silently ignored. - - * m4.c (cmd_error): Add a missing semicolon before va_end(). - -1992-11-10 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in: Now handle protoized sources. Define and use U. - Compile and use ansi2knr with old compilers. Update DISTFILES. - Add `aclocal.m4' to `configure' dependencies. - * ansi2knr.c: New, from Ghostscript distribution. - * configure.in: Define U through FP_PROTOTYPES for old compilers. - Add AC_ISC_POSIX, AC_CONST, AC_SIZE_T. - * aclocal.m4: New, provide FP_PROTOTYPES. - * m4.h: Conditionnaly protoized through Args, save for varags. - * builtin.c: Protoized. Then: - Include <sys/types.h> if size_t is not defined, before "regex.h". - (m4_ifelse): Fetch built-in name properly for diagnostic. - (m4_dumpdef): Remove wrong (char *) cast calling dump_symbol. - (m4_regexp): Add const to `msg' declaration. - (m4_patsubst): Add const to `msg' declaration. - * debug.c: Protoized, save for varargs. - * eval.c: Protoized. - * format.c: Protoized. - * input.c: Protoized. - * m4.c: Protoized, save for varargs. Then: - (xfree): Accept void * instead of char *. - (xmalloc): Return void * instead of char *. - (xrealloc): Accept and return void * instead of char *. - * macro.c: Protoized. - * output.c: Protoized. - * path.c: Protoized. Then cast some (char *) over xmalloc's. - * symtab.c: Protoized. - -1992-11-06 François Pinard <pinard@iro.umontreal.ca> - - * m4.texinfo: Remove directory from diagnostics in 30.include, - 51.eval, 56.errprint and 57.m4exit tests. - - * m4.h: Remove declarations for int or void system functions, they - cause more conflicting trouble than they make good. - - * configure.in: Avoid configuration header file. Add some tests. - * m4.h: Remove #include "config.h". - * Makefile.in, lib/Makefile.in: Implement Autoconf interface. - Then, rewritten for better compliance with GNU standards. - -1992-11-05 François Pinard <pinard@iro.umontreal.ca> - - * format.c (format): Avoid syntax error if not HAVE_EFGCVT, - because of a misplaced #endif. - - * Many *.[hc] files: Correct intra-line spacing here and there, - according to GNU indent 1.6 advice. - - * configure.in: New, using Autoconf 1.2. - * m4.h: Reverse NO_MEMORY_H to NEED_MEMORY_H. - * Delete old configure.in, configure, etc/configure.in, - etc/configure, lib/configure.in, lib/configure and config/*. - Reported by Jason Merrill. - - * symtab.c (hash): Change (char) NULL to '\0'. - Reported by Jason Merrill. - - * Delete .vers, etc/newdist.sh, etc/newvers.sh and - etc/nextvers.sh. Release numbers will be edited `by hand'. - * version.h: De-automatize, force value in. - - * m4.c: Changes in order to use a newer getopt.h. - Reported by David MacKenzie. - - * checks/: New name for examples/. - * checks/get_them: New location for etc/get_examples. - * checks/check_them: New location for etc/check_examples. - * Makefile.in, checks/get_them, checks/check_them: Adjust. - * lib/vfprintf.c: New location for etc/vfprintf.c. - * Delete empty etc/. - * examples/: New name for test/. - -1992-03-10 François Pinard <pinard@iro.umontreal.ca> - - * Makefile.in (check): Add m4 as dependency. - - * m4.c: Accept --no-warnings instead of --no_warnings, and - --no-gnu-extensions instead of --no_gnu_extensions. Make the - usage message more informative. - Reported by David MacKenzie. - -1992-03-09 François Pinard <pinard@iro.umontreal.ca> - - * etc/check_examples: New name for check_examples.sh. - * etc/get_examples: New name for get_examples.sh. - * Makefile.in, etc/Makefile.in: Use new names. - - * Makefile.in: Transmit $(CC) while making in lib. - - * Many *.[hc] files: GNU indent'ed, with further fine tuning of - code disposition by hand. - -1992-03-08 François Pinard <pinard@iro.umontreal.ca> - - * m4.h: Delete definitions for abort() and exit(). - Reported by Richard Stallman. - - * config/hmake-unicos, config/s-unicos.h: New files. - Reported by Hal Peterson. - - * eval.c (exp_term): Have N^0 return 1. - Reported by Michael Fetterman. - - * eval.c, input.c, m4.h: Remove last comma in enums. - Reported by Mike Lijewski. - - * Transfer of maintenance duties from René to François. - -1991-10-24 René Seindal <seindal@diku.dk> - - * Release 1.0. Many thanks to those, who provided me with bug - reports and feedback. - - * Uses GNU configure, taken from the gdb distribution. - - * Uses GNU getopt(), with long option names. - - * The -Q/+quiet option is added, which suppresses warnings about - missing or superflous arguments to built-in macros. - - * Added default options via the M4OPTS environment variable. - - * The built-in format can now be configured to use sprintf as - the formatting engine, for systems without [efg]cvt(3). - - * GNU library code is moved to the ./lib subdirectory; other - utility files are now in ./etc. - - * Several minor bugs have been fixed. - -1991-07-26 René Seindal <seindal@diku.dk> - - * Fixed various bugs. Release 0.99, manual 0.09. Many thanks to - Francois Pinard and Roland H. Pesch for providing me with reports. - - * The builtins incr and decr are now implemented without use of - eval. - - * The builtin indir is added, to allow for indirect macro calls - (allows use of "illegal" macro names). - - * The debugging and tracing facilities has been enhanced - considerably. See the manual for details. - - * The -tMACRO option is added, marks MACRO for tracing as soon - as it is defined. - - * Builtins are traced after renaming iff they were before. - - * Named files can now be undiverted. - - * The -Nnum option can be used to increase the number of - divertions available. - - * Calling changecom without arguments now disables all comment - handling. - - * The function m4_patsubst() is now consistently declared - static. - - * A bug in dnl is fixed. - - * A bug in the multi-character quoting code is fixed. - - * Several typos in the manual has been corrected. More probably - persist. - - * The m4.info file is now installed along with the program. - -1990-11-15 René Seindal <seindal@diku.dk> - - * Updated and enhanced version. Release 0.75, manual 0.07. - - * Implemented search path for include files (-I option and - M4PATH envronment variable). - - * Implemented builtin "format" for printf-like formatting. - - * Implemented builtin "regexp" for searching for regular - expressions. - - * Implemented builtin "patsubst" for substitution with regular - expressions. - - * Implemented builtin "esyscmd", which expands to a shell - commands output. - - * Implemented "__file__" and "__line__" for use in error - messages. - - * Implemented character ranges in "translit". - - * Implemented control over debugging output. - - * Implemented multi-character quotes. - - * Implemented multi-character comment delimiters. - - * Changed predefined macro "gnu" to "__gnu__". - - * Changed predefined macro "unix" to "__unix__", when the -G - option is not used. With -G, "unix" is still defined. - - * Changed "shift", "$@" and "$*" to not insert spaces afters - commas. - - * Added program name to error messages. - - * Fixed two missing null bytes bugs. - -1990-01-22 René Seindal <seindal@diku.dk> - - * Initial beta release. Release 0.50, manual 0.05. - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/download.htm b/examples/WWW/download.htm deleted file mode 100644 index 9b714f32..00000000 --- a/examples/WWW/download.htm +++ /dev/null @@ -1,302 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Download</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Download</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -In the download area there are usually several version -present. Please take only the latest. -</P> - - -<P> -The files are name <TT>m4-1.4<I>X</I>.tar.gz</TT> where X is a letter. -</P> - - -<P> -<A HREF="ftp://ftp.seindal.dk/pub/rene/gnu/">Download latest -development version</A>. -</P> - - -<P> -<A HREF="ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4.tar.gz">Download -latest stable version</A>. -</P> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/features.htm b/examples/WWW/features.htm deleted file mode 100644 index ce8f1895..00000000 --- a/examples/WWW/features.htm +++ /dev/null @@ -1,380 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<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"> -</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>New feaures since version 1.4</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -Please look at the <A HREF="news.htm">NEWS</A> and the <A HREF="changelog.htm">ChangeLog</A> for all the gory details. -</P> - - -<DL> -<DT><B>GNU m4 uses GNU Automake and GNU Autoconf for configuration.</B></DT> - -<DD> -<P> -This has been long overdue and now hit is done thanks to Erick -Branderhorst. -</P> - -</DD> - - -<DT><B>GNU m4 uses GNU gettext for internationalisation.</B></DT> - -<DD> -<P> -GNU m4 now speaks several languages. Translations for -german french italian japanese dutch polish romenian and swedish -have been made. -</P> - -</DD> - - -<DT><B>Support for multiple precision arithmetic in eval.</B></DT> - -<DD> -<P> -If appropriately configured GNU m4 can now do multiple precision -arithmetic in the build in macro 'eval'. If not configured GNU m4 -will use the largest integer available for its calculations. -</P> - -</DD> - - -<DT><B>An input syntax table to change how input is parsed.</B></DT> - -<DD> -<P> -A new build in macro 'changesyntax' allows finer control over how input -characters are parsed into input tokens. It is no possible to have -several one character quote strings or comment delimiters to change the -format of macro calls to use active characters like in TeX and probably -most useful to change what input characters are treated as letters when -looking for macro calls. -</P> - - -<P> -See the <A HREF="man/m4_7.html#SEC41">manual section</A> for more details. -</P> - -</DD> - - -<DT><B>Support for loadable modules.</B></DT> - -<DD> -<P> -GNU m4 now has rudimentary support for dynamic loading of -compiled modules at runtime. A module can define any number of new build -in macros which will be indistinguishable from the standard set of -build in macros. Modules can also override existing build in macros. -</P> - - -<P> -Module support for GNU m4 still needs some work. -</P> - - -<P> -See the <A HREF="modules.htm">separate README file for modules</A> -</P> - - -</DD> - - -<DT><B>Better control of sync-lines generation.</B></DT> - -<DD> -<P> -The new build in macro 'syncoutput' allows better control of the -generation of sync-lines. They can no be turned on or off at -will. -</P> - -</DD> - - - -</DL> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/feedback.htm b/examples/WWW/feedback.htm deleted file mode 100644 index f6a991d1..00000000 --- a/examples/WWW/feedback.htm +++ /dev/null @@ -1,297 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Feedback</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Feedback</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -Bug reports should be sent to <A HREF="mailto:bug-m4@gnu.org">bug-m4@gnu.org</A>. -</P> - - -<P> -Generel discussion about GNU m4 should take place on -<A HREF="mailto:m4-forum@seindal.dk">m4-forum</A>. -</P> - - -<P> -Informal comments about this site and GNU m4 can be sent to -<A HREF="mailto:m4-feedback@seindal.dk">m4-feedback</A>. -</P> - - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/index.htm b/examples/WWW/index.htm deleted file mode 100644 index 8e739aef..00000000 --- a/examples/WWW/index.htm +++ /dev/null @@ -1,319 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Development site</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Development site</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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>Current development version is 1.4l.</H2> - - -<P> -Development versions contain new features and experiments that might -or might not make it into the next official release. The current -development version contains among other things (browse the -<A HREF="features.htm">new features</A> for more detail): -</P> - - -<UL> - - <LI> Uses GNU Automake and GNU Autoconf for configuration. - - <LI> Uses GNU gettext for internationalisation. - - <LI> Support for multiple precision arithmetic in eval. - - <LI> An input syntax table to change how input is parsed. - - <LI> Support for loadable modules. - - <LI> Better control of sync-lines generation. - - <LI> Various bug-fixes. - -</UL> - - -<P> -A new release is expected ready for December 1998. -</P> - - -<P> -GNU <TT>m4</TT> 1.4 is from october 1994 and can be considered stable. -</P> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/lists.htm b/examples/WWW/lists.htm deleted file mode 100644 index afa2b9be..00000000 --- a/examples/WWW/lists.htm +++ /dev/null @@ -1,320 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Mailing lists</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Mailing lists</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - - -<H3>There are two mailing lists for GNU m4</H3> - - -<DL> -<DT><B><A HREF="mailto:m4-forum@seindal.dk">m4-forum@seindal.dk</A></B></DT> - -<DD> -<P> -This list is intended for discussions between people interested -and/or participating in the further development of m4. -</P> - -</DD> - - -<DT><B>m4-announce@seindal.dk</B></DT> - -<DD> -<P> -Announcements regarding GNU m4 will posted here. -</P> - -<P> -The volume will certainly be very low. -</P> - -</DD> - - - -</DL> - - -<P> -Currently these lists are maintained manually. Send a message to <A HREF="mailto:rene@seindal.dk">rene@seindal.dk</A> -saying whether you want to subscribe or unsubscribe to any of these -lists. -</P> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/m4lib/bugs.m4 b/examples/WWW/m4lib/bugs.m4 deleted file mode 100644 index f3204317..00000000 --- a/examples/WWW/m4lib/bugs.m4 +++ /dev/null @@ -1,52 +0,0 @@ -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/changelog.m4 b/examples/WWW/m4lib/changelog.m4 deleted file mode 100644 index cdcab269..00000000 --- a/examples/WWW/m4lib/changelog.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([ChangeLog]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/ChangeLog) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/download.m4 b/examples/WWW/m4lib/download.m4 deleted file mode 100644 index a26eedfb..00000000 --- a/examples/WWW/m4lib/download.m4 +++ /dev/null @@ -1,21 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Download]) - -\divert(1) - -\p(In the download area there are usually several version -present. Please take only the latest.) - -\p(The files are name \tt(m4-1.4\i(X).tar.gz) where X is a letter.) - -\p(\link([ftp://ftp.seindal.dk/pub/rene/gnu/], [Download latest -development version]).) - -\p(\link([ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4.tar.gz],[Download -latest stable version]).) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/features.m4 b/examples/WWW/m4lib/features.m4 deleted file mode 100644 index 67bb8b2a..00000000 --- a/examples/WWW/m4lib/features.m4 +++ /dev/null @@ -1,62 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([New feaures since version 1.4]) - -\divert(1) - -\p(Please look at the \link(news.htm, NEWS) and the \link(changelog.htm, -ChangeLog) for all the gory details.) - -\dl( -\dt(\b(GNU m4 uses GNU Automake and GNU Autoconf for configuration.)) - -\dd(\p(This has been long overdue, and now hit is done thanks to Erick -Branderhorst.)) - -\dt(\b(GNU m4 uses GNU gettext for internationalisation.)) - -\dd(\p(GNU m4 now speaks several languages. Translations for -german, french, italian, japanese, dutch, polish, romenian and swedish -have been made.)) - -\dt(\b(Support for multiple precision arithmetic in eval.)) - -\dd(\p(If appropriately configured, GNU m4 can now do multiple precision -arithmetic in the build in macro 'eval'. If not configured, GNU m4 -will use the largest integer available for its calculations.)) - -\dt(\b(An input syntax table to change how input is parsed.)) - -\dd(\p(A new build in macro 'changesyntax' allows finer control over how input -characters are parsed into input tokens. It is no possible to have -several one character quote strings or comment delimiters, to change the -format of macro calls, to use active characters like in TeX, and probably -most useful, to change what input characters are treated as letters when -looking for macro calls.) - -\p(See the \link(man/m4_7.html#SEC41, manual section) for more details.)) - -\dt(\b(Support for loadable modules.)) - -\dd(\p(GNU m4 now has rudimentary support for dynamic loading of -compiled modules at runtime. A module can define any number of new build -in macros, which will be indistinguishable from the standard set of -build in macros. Modules can also override existing build in macros.) - -\p(Module support for GNU m4 still needs some work.) - -\p(See the \link(modules.htm, separate README file for modules)) -) - -\dt(\b(Better control of sync-lines generation.)) - -\dd(\p(The new build in macro 'syncoutput' allows better control of the -generation of sync-lines. They can no be turned on or off at -will.)) - -) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/feedback.m4 b/examples/WWW/m4lib/feedback.m4 deleted file mode 100644 index f61d63e5..00000000 --- a/examples/WWW/m4lib/feedback.m4 +++ /dev/null @@ -1,20 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Feedback]) - -\divert(1) - -\p(Bug reports should be sent to \link(mailto:bug-m4@gnu.org, -bug-m4@gnu.org).) - -\p(Generel discussion about GNU m4 should take place on -\link(mailto:m4-forum@seindal.dk, m4-forum).) - -\p(Informal comments about this site and GNU m4 can be sent to -\link(mailto:m4-feedback@seindal.dk, m4-feedback).) - - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/html.m4 b/examples/WWW/m4lib/html.m4 deleted file mode 100644 index 50330af2..00000000 --- a/examples/WWW/m4lib/html.m4 +++ /dev/null @@ -1,119 +0,0 @@ -\define([n], [ -]) - -\define([concat], [\ifelse($#, 0, , - $#, 1, [$1], - [$1 \concat(\shift($@))])]) - -\define([toupper], [\translit([$*], [a-z], [A-Z])]) - -\define([container], -[\pushdef([_tag], \toupper([$1]))\dnl -\ifelse($#, 1, [<\_tag></[\_tag]>], - $#, 2, [<\_tag>$2</\_tag>], - $#, 3, [<\_tag $2>$3</\_tag>], - [<\_tag $2>\concat(\shift(\shift($@)))</\_tag>])\dnl -\popdef([_tag])\dnl -]) - -\define([large_container], -[\pushdef([_tag], \toupper([$1]))\dnl -\ifelse($#, 1, [<\_tag></\_tag>\n], - $#, 2, [<\_tag>\n[]$2\n</\_tag>\n], - $#, 3, [<\_tag $2>\n[]$3\n</\_tag>\n], - [<\_tag $2>\n\concat(\shift(\shift($@)))\n</\_tag>\n])\dnl -\popdef([_tag])\dnl -]) - -\define([large_simple_container], -[\pushdef([_tag], \toupper([$1]))\dnl -<\_tag>\n\concat(\shift($@))\n</\_tag>\n\dnl -\popdef([_tag])\dnl -]) - -\define([simple_container], -[\pushdef([_tag], \toupper([$1]))\dnl -<\_tag>\concat(\shift($@))</\_tag>\dnl -\popdef([_tag])\dnl -]) - -\define([simple_tag], -[\pushdef([_tag], \toupper([$1]))\dnl -\ifelse([$2], [], [<\_tag>], [<\_tag $2>])\dnl -\popdef([_tag])\dnl -]) - -\define([doctype], [\simple_tag([$0], $@)]) - -\define([html], [\large_simple_container([$0], $@)]) -\define([head], [\large_simple_container([$0], $@)]) -\define([title], [\simple_container([$0], $@)]) - -\define([meta], [\n<META NAME="[$1]" CONTENT="[$2]">]) -\define([http_equiv], [\n<META HTTP-EQUIV="[$1]" CONTENT="[$2]">]) - -\define([body], [\large_container([$0], $@)]) - -\define([center], [\large_simple_container([$0], $@)]) -\define([right], [\large_simple_container([$0], $@)]) -\define([left], [\large_simple_container([$0], $@)]) -\define([div], [\large_container([$0], $@)]) - -\define([b], [\simple_container([$0], $@)]) -\define([i], [\simple_container([$0], $@)]) -\define([tt], [\simple_container([$0], $@)]) - -\define([table], [\large_container([$0], $@)]) -\define([tr], [\large_container([$0], $@)]) -\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([font], [\n\container([$0], $@)\n]) - -\define([h1], [\n\container([$0], $@)\n]) -\define([h2], [\n\container([$0], $@)\n]) -\define([h3], [\n\container([$0], $@)\n]) -\define([h4], [\n\container([$0], $@)\n]) -\define([h5], [\n\container([$0], $@)\n]) -\define([h6], [\n\container([$0], $@)\n]) - -\define([p], [\large_simple_container([$0], $@)]) - - -\define([ul], [\large_container([$0], $@)]) -\define([ol], [\large_container([$0], $@)]) - -\define([li], [\simple_tag([$0], $@)]) - -\define([dl], [\large_simple_container([$0], $@)]) -\define([dt], [\simple_container([$0], $@)]) -\define([dd], [\large_simple_container([$0], $@)]) - -\define([br], [\simple_tag([$0], $@)]) -\define([hline], [\simple_tag([$0], $@)]) - -\define([pre], [\simple_container([$0], $@)]) - - - -\define([set_title], [\define([_TITLE], [$*])]) -\set_title(_TITLE) - -\define([set_author], [\define([_AUTHOR], [$*])]) -\set_author() - -\define([set_generator], [\define([_GENERATOR], [$*])]) -\set_generator([GNU m4 \__m4_version__]) - -\define([set_keywords], [\define([_KEYWORDS], [$*])]) -\set_keywords() - -\define([set_body], [\define([_BODY], [$*])]) -\set_body() - -\define([meta_if_set], - [\ifelse(\defn([_$1]), [], [], \meta([$1], \defn([_$1])))]\dnl -) diff --git a/examples/WWW/m4lib/index.m4 b/examples/WWW/m4lib/index.m4 deleted file mode 100644 index 043faa35..00000000 --- a/examples/WWW/m4lib/index.m4 +++ /dev/null @@ -1,36 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Development site]) - -\divert(1) -\h2([Current development version is \__m4_version__.]) - -\p([Development versions contain new features and experiments that might -or might not make it into the next official release. The current -development version contains among other things (browse the -\link([features.htm], [new features]) for more detail):]) - -\ul([ - \li Uses GNU Automake and GNU Autoconf for configuration. - - \li Uses GNU gettext for internationalisation. - - \li Support for multiple precision arithmetic in eval. - - \li An input syntax table to change how input is parsed. - - \li Support for loadable modules. - - \li Better control of sync-lines generation. - - \li Various bug-fixes. -]) - -\p([A new release is expected ready for December 1998.]) - -\p([GNU \tt(m4) 1.4 is from october 1994 and can be considered stable.]) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/layout.m4 b/examples/WWW/m4lib/layout.m4 deleted file mode 100644 index 6feb08ec..00000000 --- a/examples/WWW/m4lib/layout.m4 +++ /dev/null @@ -1,50 +0,0 @@ -\divert(-1); -The semicolons are just to get GNU Emacs C mode to indent properly. - -\define([C_TEXT], [text="#000000"]); -\define([C_LINK], [link="#0000EF"]); -\define([C_ALINK], [vlink="#51188E"]); -\define([C_VLINK], [alink="#FF0000"]); -\define([C_BG1], [bgcolor="#FFCC99"]); -\define([C_BG2], [bgcolor="#FF9900"]); -\define([C_BG3], [bgcolor="#CC6600"]); - -\define([DO_HEADER], - [\head([\title([GNU m4 - \defn([_TITLE])])], - [\meta_if_set([AUTHOR])], - [\meta_if_set([GENERATOR])], - [\meta_if_set([KEYWORDS])], - )]); - -\define([DO_BODY], - [\body([\C_TEXT \C_BG1 \C_LINK \C_VLINK \C_ALINK], - [\table([cellpadding=5 width="100%"], - [\tr([align=left valign=bottom], - [\td([align=center valign=center colspan="3" width="100%" \C_BG2], - [\h1([GNU m4])], - [\h2(\defn([_TITLE]))], - )], - )], - [\tr([], - [\td([align=left valign=top width="15%" \C_BG2], - [\include([menu.m4])], - )], - [\td([align=left valign=top width="90%"], - [$*], - )], - )], - )], - )] - ); - -\define([DO_LAYOUT], - [\doctype([HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"]) -\html([\DO_HEADER], [\DO_BODY([$*])])] - ); - -\define([<], [<]); -\define([>], [>]); - -\define([showlink], [\link($1, $1)]); -\define([mailto], [\link(mailto:$1, $1)]); - diff --git a/examples/WWW/m4lib/lists.m4 b/examples/WWW/m4lib/lists.m4 deleted file mode 100644 index cc710eba..00000000 --- a/examples/WWW/m4lib/lists.m4 +++ /dev/null @@ -1,32 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Mailing lists]) - -\define([me], \link([mailto:rene@seindal.dk], [rene@seindal.dk])) - -\divert(1) - -\h3(There are two mailing lists for GNU m4) - -\dl( - -\dt(\b(\link(mailto:m4-forum@seindal.dk, m4-forum@seindal.dk))) - -\dd(\p(This list is intended for discussions between people interested -and/or participating in the further development of m4.)) - -\dt(\b(m4-announce@seindal.dk)) - -\dd(\p(Announcements regarding GNU m4 will posted here.) -\p(The volume will certainly be very low.)) - -) - -\p(Currently these lists are maintained manually. Send a message to \me -saying whether you want to subscribe or unsubscribe to any of these -lists.) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/menu.m4 b/examples/WWW/m4lib/menu.m4 deleted file mode 100644 index 1a770b63..00000000 --- a/examples/WWW/m4lib/menu.m4 +++ /dev/null @@ -1,35 +0,0 @@ -\pushdef([header], [\tr([\td([\C_BG3], [\p([\b([$1])])])])]) -\pushdef([row], [\tr([\td([\font([size=-1], [\p([\b([\link([$1], [$2])])])])])])]) - -\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])], - - [\header([Documentation])], - [\row([man/m4_toc.html], [Manual])], - - [\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])], - - [\header([The Future])], - [\row([modules.htm], [Modules])], - [\row([visions.htm], [Visions])], - - [\header([Development])], - [\row([lists.htm], [Mailing-lists])], - [\row([feedback.htm], [Feedback])], - [\row([download.htm], [Download])], - - [\header([Examples])], - [\row([thissite.htm], [This site])], - ) - -\popdef([header]) -\popdef([row]) diff --git a/examples/WWW/m4lib/modules.m4 b/examples/WWW/m4lib/modules.m4 deleted file mode 100644 index b9c148f1..00000000 --- a/examples/WWW/m4lib/modules.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Modules]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/modules/README) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/news.m4 b/examples/WWW/m4lib/news.m4 deleted file mode 100644 index e5da0d89..00000000 --- a/examples/WWW/m4lib/news.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([NEWS - History of user-visible changes]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/NEWS) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/readme.m4 b/examples/WWW/m4lib/readme.m4 deleted file mode 100644 index 1612c7d1..00000000 --- a/examples/WWW/m4lib/readme.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([README]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/README) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/setup.m4 b/examples/WWW/m4lib/setup.m4 deleted file mode 100644 index 310b65f8..00000000 --- a/examples/WWW/m4lib/setup.m4 +++ /dev/null @@ -1,7 +0,0 @@ -divert(-1) -changequote([,]) -changecom([<!--], [-->]) -changesyntax([@\]) - -\include([html.m4]) -\include([layout.m4]) diff --git a/examples/WWW/m4lib/test.m4 b/examples/WWW/m4lib/test.m4 deleted file mode 100644 index 9fdef40b..00000000 --- a/examples/WWW/m4lib/test.m4 +++ /dev/null @@ -1,9 +0,0 @@ -include(`_setup.m4') -\include([_html.m4]) -\include([_layout.m4]) - -\set_title([Development site]) - -\divert - -\DO_BODY([BODY]) diff --git a/examples/WWW/m4lib/thanks.m4 b/examples/WWW/m4lib/thanks.m4 deleted file mode 100644 index 61928d07..00000000 --- a/examples/WWW/m4lib/thanks.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([People who have contributed to m4]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/THANKS) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/thissite.m4 b/examples/WWW/m4lib/thissite.m4 deleted file mode 100644 index 0d4d772b..00000000 --- a/examples/WWW/m4lib/thissite.m4 +++ /dev/null @@ -1,39 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([This site]) - -\divert(1) - -\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 -the \link(m4lib/, source files). They are very simple. They use some -features from Gnu m4 1.4l) - -\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).) - -\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.) - -\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.) - -\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).) - -\p(There is a single file for each HTML file.) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/tmpl.m4 b/examples/WWW/m4lib/tmpl.m4 deleted file mode 100644 index 8262d293..00000000 --- a/examples/WWW/m4lib/tmpl.m4 +++ /dev/null @@ -1,11 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([]) - -\divert(1) -\h2([]) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/todo.m4 b/examples/WWW/m4lib/todo.m4 deleted file mode 100644 index 7a22c151..00000000 --- a/examples/WWW/m4lib/todo.m4 +++ /dev/null @@ -1,18 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([TODO - Things still to be done]) - -\divert(1) - -<PRE>\dnl -\changesyntax([A<>])\dnl -\changequote(,)\dnl -\include(m4/TODO) -\changequote([,])\dnl -\changesyntax([O<>])\dnl -</PRE> - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/uses.m4 b/examples/WWW/m4lib/uses.m4 deleted file mode 100644 index 75f7b6ae..00000000 --- a/examples/WWW/m4lib/uses.m4 +++ /dev/null @@ -1,36 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([Current uses of m4]) - -\divert(1) - -\p(The MTA sendmail uses \tt(m4) for generating configuration files.) - -\p(\link(http://www.gnu.org/software/autoconf/autoconf.html, GNU -Autoconf) uses \tt(m4) to generate "configure" scripts, that are used -for configuring \link(http://www.gnu.org/, GNU) software for a -particular platform.) - -\p(Htm4l is a set of macros for generating HTML. Html4 is written by -Terry Jones (terry@cliffs.ucsd.edu). See -\showlink(http://cliffs.ucsd.edu/terry/htm4l/htm4l/main.html) for -details. ) - -\p(Various programs uses m4 to preprocess configuration files, for -example the X11 window manager fvwm.) - -\p( There is an \link(http://www.ssc.com/lg/issue22/using_m4.html, -article in the Linux Gazette) about writing HTML with GNU m4 written by -\link(mailto:bhepple@bit.net.au, Bob Hepple) . More recent versions -are kept at \link(http://www.bit.net.au/~bhepple, Bob's home site). -The macros are used to maintain a large commercial site at -\showlink(http://www.finder.com.au).) - - -\p(\link(thissite.htm, These files are created with GNU m4 \__m4_version__).) - - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/visions.m4 b/examples/WWW/m4lib/visions.m4 deleted file mode 100644 index c904976d..00000000 --- a/examples/WWW/m4lib/visions.m4 +++ /dev/null @@ -1,28 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([The Road Ahead]) - -\divert(1) -\h2([Possible features for future versions]) - - -\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.) - -\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.) - -) - -\p(See also the \link(todo.htm, TODO) file.) - - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/m4lib/whatis.m4 b/examples/WWW/m4lib/whatis.m4 deleted file mode 100644 index 506269a2..00000000 --- a/examples/WWW/m4lib/whatis.m4 +++ /dev/null @@ -1,43 +0,0 @@ -include(`setup.m4') - -\set_author([René Seindal]) -\set_title([What is GNU m4]) - -\divert(1) - -\p([GNU \tt(m4) is an implementation of the traditional Unix macro -processor. It is mostly SVR4 compatible, although it has some extensions -(for example, handling more than 9 positional parameters to macros). GNU -\tt(m4) also has built-in functions for including files, running shell -commands, doing arithmetic, etc.]) - -\p([GNU \tt(m4) is a macro processor, in the sense that it copies its -input to the output, expanding macros as it goes. Macros are either -builtin or user-defined, and can take any number of arguments. Besides -just doing macro expansion, m4 has builtin functions for including named -files, running UNIX commands, doing integer arithmetic, manipulating -text in various ways, recursion, etc... m4 can be used either as a -front-end to a compiler, or as a macro processor in its own right.]) - -\p([The m4 macro processor is widely available on all UNIXes. Usually, -only a small percentage of users are aware of its existence. However, -those who do often become commited users. The growing popularity of GNU -Autoconf, which prerequires GNU m4 for generating the `configure' -scripts, is an incentive for many to install it, while these people will -not themselves program in m4. GNU m4 is mostly compatible with the -System V, Release 3 version, except for some minor differences.]) - -\p([Some people found m4 to be fairly addictive. They first use m4 for -simple problems, then take bigger and bigger challenges, learning how to -write complex m4 sets of macros along the way. Once really addicted, -users pursue writing of sophisticated m4 applications even to solve -simple problems, devoting more time debugging their m4 scripts than -doing real work. Beware that m4 may be dangerous for the health of -compulsive programmers.]) - -\p([Autoconf needs GNU m4 for generating `configure' scripts, but not for -running them.]) - -\divert(0)\dnl -\DO_LAYOUT([\undivert(1)]) -\divert(-1) diff --git a/examples/WWW/modules.htm b/examples/WWW/modules.htm deleted file mode 100644 index ee668972..00000000 --- a/examples/WWW/modules.htm +++ /dev/null @@ -1,347 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Modules</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Modules</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>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. - -Dynamic modules are only available if GNU m4 was configured with ---with-modules and if the dlopen(3) interface is available in the -operating system. - -Implementation details are in ../src/module.c - -A module is a compiled shared object, i.e., modules are written in C and -then compiled. The compiled file can then be loaded into a running m4 -process by calling the builtin "loadmodule". This will give GNU m4 -access to any system feature with a C interface. - -Modules are searched for in M4MODPATH, if set, and 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 -with the same names as existing builtins, which will then be -unavailable. A module cannot redefine internal functions of GNU m4, -such as the input parser or argument handling. - -The infrastructure for writing and compiling modules is still a bit -wanting. - -Each module should include the two header files ../src/m4.h and -../src/builtin.h. These will include <ctype.h>, <stdio.h>, -../lib/obstack.h and ../config.h. - -Each module *must* define the symbol "m4_macro_table" as a pointer to a -table of "struct builtin" (defined in m4.h). The table ends with an -entry with name == NULL. The builtins described in the table will be -defined by GNU m4 as were they normal builtins. - -If a module defines the symbol "m4_init_module", it is supposed to be a -function with a prototype of "void m4_init_module(struct obstack *obs)", -and it will be called as soon as the module is loaded. Any non-finished -object left on the obstack will be the expansion of the call of the -builtin "loadmodule". The obstack pointer might be NULL (in the future). - -If a module defines the symbol "m4_finish_module", it is supposed to be -a function with a prototype of "void m4_finish_module(void)", and it -will be called just before GNU m4 exits. This will allow a module to -clean up before exit. There is no way of communicating information to -the user, as GNU m4 exits immeidately afterwards. - -No other symbols will be used by GNU m4. Other external symbols within -the module are private and will not be accessible to GNU m4 or to other -modules. - -Modules are allowed to call external functions already defined within -the GNU m4 sources. Some of these have prototypes in builtin.h. - - -A complete, though silly, example is found in test.c. A more -interesting example is in time.c. - -To try the demos, compile with `make' and run them with the commands as: - - M4MODPATH=`pwd` ../src/m4 time.m4 - - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/news.htm b/examples/WWW/news.htm deleted file mode 100644 index ed4f374f..00000000 --- a/examples/WWW/news.htm +++ /dev/null @@ -1,551 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<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"> -</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>NEWS - History of user-visible changes</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>GNU m4 NEWS - History of user-visible changes. -*-indented-text-*- -Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc. - -Version beta 1.4m - November 1998, by Rene' Seindal - -* Using libtool for compiling modules and for linking main app. - -* Reorganised the dynamic module code to encapsulate system dependencies - better. The code for HPUX shl_load() still needs testing and debugging. - A dld interface is also missing. Any volunteers? - -* The files from the GNU m4 web-site is now in examples/WWW as a more - complete example of what GNU m4 can do. - -Version beta 1.4l - November 1998, by Rene' Seindal - -* GNU m4 now has an escape syntax category. If a character is marked as - an escape, words are only recognised as macros if preceded by an escape - character. It is a bit like -P, but dynamic: it can be turned on and - off. The GNU m4 web-site on http://www.seindal.dk/rene/gnu/ is - maintained with this feature - the m4 source is available on the site. - -* The module interface is improved, thanks to "Brian J. Fox" - <bfox@datawave.net>, who have contributed some code from Meta-HTML. The - modules now build automatically and installs properly, by default in - /usr/local/libexec/m4. There is a preliminary, untested support for - shl_load(). - -* There is now a __m4_version__ macro that expands to the current version - number. - -Version beta 1.4k - November 1998, by Erick Branderhorst and Rene' Seindal - -* GNU m4 now uses gettext to support internationalization. - -* GNU m4 now uses automake to control Makefile.in generation. This - should make it more consistent with the GNU standards. - -* GNU m4 will use the gmp library for multiple precision integral and - rational arithmetic in `eval' if configured with `--with-gmp'. If - configured without `--with-gmp' or if gmp is not available, and the type - `long long int' is, GNU m4 will use that for `eval' arithmetic. - -* GNU m4 now parses the input according to a syntax table, that can be - modified through the new builtin `changesyntax'. It is a generalisation - of the existing builtins `changecom' and `changequote'. The changes are - completely backwards compatible (except for the existence of - `changesyntax'). - -* Sync lines can be turned on and off with the `syncoutput' builtin. The - builtin `syncoutput' is a GNU extension. - -* New experimental feature: dynamically loadable modules. New builtin - `loadmodules' loads shared libraries, that can define new builtin - macros, ie, new macros can be written in C. Depends on the dlopen() - interface, and is currently only tested on Linux. Enabled at configure - time with `--with-modules'. Documentation is in src/module.c and - module/README. - -* Implement a GNU message catalog for French (Franc,ois Pinard). - -* Filenames found through path searches are now correctly reflected in - error and debug messages and through the `__file__' macro. - -Bugs fixed - -* All 8-bit characters can now be used for quotes. - - -Version 1.4 - October 1994, by Franc,ois Pinard - -(No user visible changes) - - -Version 1.3 - September 1994, by Franc,ois Pinard - -* Diversions are created as needed. Option `-N' is still accepted, but -otherwise ignored. Users should use only negative diversion numbers, -instead of high positive numbers, for diverting to nowhere. - -* Diversions should also work faster. No temporary files will be needed -at all if all diversions taken altogether do not use more than 512K. - -* Frozen state files may be produced with the `--freeze-state' (-F) -option and later brought back through the `--reload-state' (-R) option. - - -Version 1.2 - July 1994, by Franc,ois Pinard - -* In patsubst(STRING, REGEXP, REPLACEMENT), \& in REPLACEMENT has been -changed to represent this part of STRING matched by the whole REGEXP, -instead of the whole STRING as before. \0 does the same, but emits a -diagnostic saying it will disappear in some subsequent release. - -* eval(EXPR) emits a diagnostic if EXPR has suffixed crumb. The same for -other numeric conversions in incr(), decr(), divert(), etc. - -* `--fatal-warnings' (-E) stops execution at first warning. - -* `--nesting-limit=LEVEL' (-L LEVEL) sets a limit to macro nesting. -It is initially fixed at 250. - -* `--word-regexp=REGEXP' (-W REGEXP) modifies macro name syntax, like -does the new `changeword(REGEXP)' macro. This feature is experimental, -tell me your opinions about it. You do need --enable-changeword at -configure time to get these things. Do *not* depend on them yet. - -* Trace output format is scannable by GNU Emacs' next-error function. - -* Stack overflow is detected and diagnosed on some capable systems. - -* Various bugs have been corrected, m4 should be more portable. See the -ChangeLog for details. - - -Version 1.1 - November 1993, by Franc,ois Pinard - -Changes which might affect existing GNU m4 scripts: - -* Option `-V' has been removed, use `--version' instead. `--version' -writes on standard output instead of standard error, and inhibits any -script execution. - -* `--no-gnu-extensions' has been renamed `--traditional'. - -* In `eval', `^' used to indicate exponentiation, use `**' instead. - -* The automatic undiversion which takes place at end of all input is -forced into the main output stream. - -Changes which are unlikely to affect existing scripts: - -* `--help' prints an usage summary on standard output. Script execution -is then inhibited. - -* `--prefix-builtins' (-P) prefixes all builtin macros by `m4_'. - -* Most builtin macros for which arguments are mandatory, called without -any arguments, are no more recognized as builtin macros: they are -consequently copied verbatim to the output stream. - -* `define' and `pushdef' are usable with only one argument, they give -this argument an empty definition. - -* `eval' new operators for binary representation handling: `^' for -exclusive-or, `~' for the bitwise negation, `<<' and `>>' for shifts. - -* `eval' recognizes the notation 0bDIGITS for binary numbers and the -notation 0rRADIX:DIGITS for numbers in any radix from 1 to 36. - -Version 1.0.3 - December 1992, by Franc,ois Pinard - -Changes for the user: - -* `dnl' outputs a diagnostic if immediately followed by `('. Usually, -`dnl' is followed by newline or whitespace. - -* `ifelse' accepts without complaining the common idiom of having only -one argument. This is useful for introducing long comments. - -* `eval' always expresses values as signed, whatever the radix. - -* M4OPTS environment variable is no longer obeyed. - -* `--no-warnings' option is renamed `--silent'. - -* Debug lines use a new format more compatible with GNU standards. - -* Various bugs have been corrected. See the ChangeLog for details. - -Changes for the installer: - -* GNU m4 now uses an Autoconf-generated configure script, and should be -more easily portable in many ways. (Cray is not supported yet). - -* `make check' has been made more portable, expect no errors. - -Changes for the programmer: - -* Sources have been fully reindented to comply with GNU standards, and -cleaned up in many ways. - -* Sources have been protoized. Non-ANSI compilers are automatically -detected, then sources are unprotoized on the fly before compilation. - -* GNU m4 uses newer versions of obstack, regex, getopt, etc. - -Version 1.0 - October 1991, by Rene' Seindal - -* Uses GNU configure, taken from the gdb distribution. - -* Uses GNU getopt(), with long option names. - -* The -Q/+quiet option is added, which suppresses warnings about missing -or superflous arguments to built-in macros. - -* Added default options via the M4OPTS environment variable. - -* Several minor bugs have been fixed. - -Version 0.99 - July 1991, by Rene' Seindal - -* The builtins `incr' and `decr' are now implemented without use of -`eval'. - -* The builtin `indir' is added, to allow for indirect macro calls -(allows use of "illegal" macro names). - -* The debugging and tracing facilities has been enhanced considerably. -See the manual for details. - -* The -tMACRO option is added, marks MACRO for tracing as soon as it -is defined. - -* Builtins are traced after renaming iff they were before. - -* Named files can now be undiverted. - -* The -Nnum option can be used to increase the number of divertions -available. - -* Calling changecom without arguments now disables all comment handling. - -* A bug in `dnl' is fixed. - -* A bug in the multi-character quoting code is fixed. - -* Several typos in the manual has been corrected. More probably persist. - -Version 0.75 - November 1990, by Rene' Seindal - -* Implemented search path for include files (-I option and M4PATH -environment variable). - -* Implemented builtin `format' for printf-like formatting. - -* Implemented builtin `regexp' for searching for regular expressions. - -* Implemented builtin `patsubst' for substitution with regular -expressions. - -* Implemented builtin `esyscmd', which expands to a shell commands output. - -* Implemented `__file__' and `__line__' for use in error messages. - -* Implemented character ranges in `translit'. - -* Implemented control over debugging output. - -* Implemented multi-character quotes. - -* Implemented multi-character comment delimiters. - -* Changed predefined macro `gnu' to `__gnu__'. - -* Changed predefined macro `unix' to `__unix__', when the -G option is -not used. With -G, `unix' is still defined. - -* Added program name to error messages. - -* Fixed two missing null bytes bugs. - -Version 0.50 - January 1990, by Rene' Seindal - -* Initial beta release. - -Local Variables: -fill-column: 75 -End: - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/readme.htm b/examples/WWW/readme.htm deleted file mode 100644 index 09d483e7..00000000 --- a/examples/WWW/readme.htm +++ /dev/null @@ -1,329 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - README</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>README</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>GNU `m4' is an implementation of the traditional Unix macro -processor. It is mostly SVR4 compatible, although it has some -extensions (for example, handling more than 9 positional parameters -to macros). `m4' also has built-in functions for including files, -running shell commands, doing arithmetic, etc. Autoconf needs GNU -`m4' for generating `configure' scripts, but not for running them. - -GNU `m4' has been originally written by René Seindal, from Denmark. - -If GNU `m4' is meant to serve GNU `autoconf', beware that `m4' -should be fully installed *prior to* configuring `autoconf' itself. - -In the subdirectories `tests' and `examples' you will find various m4 -files, ranging from trivial test files to rather advanced macros. If -you intend to use m4 seriously, you might find useful material down -there. - -See file `COPYING' for copying conditions. -See file `INSTALL' for compilation and installation instructions. -See file `ABOUT-NLS' for how to customize this program to your language. -See file `NEWS' for a list of major changes in the current release. -See file `THANKS' for a list of contributors. - -By using `./configure --with-gmp, you get multiple precision integral -and rational arithmetic in eval. 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. -See file `modules/README' for a more detailed description. - -By using `./configure --enable-changeword', you get an experimental -feature which allows for changing the syntax of what is a "word" in -`m4'. THIS WILL PROBABLY GO AWAY, so don't count on it. Some of the -same things can be achieved with `changesyntax' at a much better speed. - -By using `./configure --with-dmalloc', GNU m4 is linked with Gray -Watson's dmalloc package. It is a debugging option for finding memory -management problems. Gray Watson's dmalloc package is available at -ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz. - -Send bug reports, comments or ideas to `bug-m4@gnu.org'. A bug report -is an adequate description of the problem: your input, what you -expected, what you got, and why this is wrong. Diffs are welcome, but -they only describe a solution, from which the problem might be uneasy to -infer. Don't forget all relevant information about your operating -system, compiler, libraries, ... - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/thanks.htm b/examples/WWW/thanks.htm deleted file mode 100644 index 78470a16..00000000 --- a/examples/WWW/thanks.htm +++ /dev/null @@ -1,377 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<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"> -</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>People who have contributed to m4</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>GNU m4 THANKS file - -GNU m4 has originally been written by Rene' Seindal. Many people -further contributed to GNU m4 by reporting problems, suggesting -various improvements or submitting actual code. Here is a list of -these people. Help me keep it complete and exempt of errors. - - - -Akiko Matsushita matusita@sra.co.jp -Alan Magnuson awm@osc.edu -Alexander Lehmann alex@hal.rhein-main.de -Amos Shapira amoss@cs.huji.ac.il -Andreas Gustafsson gson@niksula.hut.fi -Andreas Schwab schwab@ls5.informatik.uni-dortmund.de -Andrew Athan athan@morgan.com -Andrew Bettison andrewb@zip.com.au -Assar Westerlund assar@nada.kth.se -Ben A. Mesander ben@piglet.cr.usgs.gov -Ben Elliston bje@cygnus.com -Bengt Mertensson bengt@mathematik.uni-bremen.de -Bernhard Daeubler daeb@physik.uni-ulm.de -Bill Bumgarner bbum@thoughtport.com -Bjorn R. Bjornsson brb@falcon.is -Brendan Kehoe brendan@cygnus.com -Brian J. Fox bfox@datawave.net -Brian D. Carlstrom bdc@clark.lcs.mit.edu -David J. MacKenzie djm@uunet.uu.net -Erez Zadok ezk@cs.columbia.edu -Eric Allman eric@cs.berkeley.edu -Eric Backus ericb@lsid.hp.com -Eric Fischer enf1@ellis.uchicago.edu -Erick Branderhorst Erick.Branderhorst@asml.nl -François Pinard pinard@iro.umontreal.ca -Gary Affonso Gary_Affonso@iqinc.com -Geoff Russell grussell@guest.adelaide.edu.au -Greg McGary gkm@cstone.net -Hal Peterson hrp@pecan.cray.com -Hoang Uong hoang@ornews.intel.com -Hongjiu Lu hjl@nynexst.com -Ian Taylor ian@cygnus.com -Jan Djarv Jan.Djarv@sa.erisoft.se -Jason Merrill jason@jarthur.claremont.edu -Jim Avera jima@netcom.com -Jim Kingdom kingdon@cygnus.com -Jim Meyering meyering@na-net.ornl.gov -Joel Sherrill jsherril@uahcs2.cs.uah.edu -John David Anglin dave@hiauly1.hia.nrc.ca -John Gerard Malecki johnm@artisan.com -Joseph E. Sacco jsacco@ssl.com -Joshua R. Poulson jrp@plaza.ds.adp.com -Karl Berry karl@cs.umb.edu -Karl Vogel vogelke@c-17igp.wpafb.af.mil -Kaveh R. Ghazi ghazi@noc.rutgers.edu -Keith Bostic bostic@abyssinian.sleepycat.com -Kristine Lund lund@lpnaxp.in2p3.fr -Krste Asanovic krste@icsi.berkeley.edu -Marcus Daniels marcus@ee.pdx.edu -Marion Hakanson hakanson@cse.ogi.edu -Mark Seiden mis@seiden.com -Massimo Dal Zotto dz@cs.unitn.it -Matthias Rabe rabe@mathematik.uni-bielefeld.de -Michael Fetterman mafetter@ichips.intel.com -Michael L. Welcome welcome@bigbird.llnl.gov -Mike Andrews kramer@fragile.termfrost.org -Mike Howard mike@clove.com -Mike Lijewski lijewski@theory.tc.cornell.edu -Nick S. Kanakakorn skanan@otl.scu.edu -Nicolas Pioch pioch@inf.enst.fr -Noah Friedman friedman@gnu.org -Pete Chown pete.chown@dale.dircon.co.uk -Pierre Gaumond gaumondp@ere.umontreal.ca -Pierre Mathieu mathieu@geod.emr.ca -Rafael Corvalan rafael@club-internet.fr -René Seindal rene@seindal.dk -Richard Ling richard@research.canon.oz.au -Richard Stallman rms@gnu.org -Robert Bernstein rocky@panix.com -Roland H. Pesch roland@wrs.com -Roland McGrath roland@gnu.org -Scott Bartram deneb!scottb -Simon Leinen simon@lia.di.epfl.ch -Skip Montanaro skip@automatrix.com -Stephen Perkins perkins@cps.msu.edu -Steve Williamson willy@uinpla.npl.uiuc.edu -Terry Jones terry@cliffs.ucsd.edu -Thorsten Ohl ohl@physics.harvard.edu -Tom McConnell tmcconne@sedona.intel.com -Tom Quinn trq@dionysos.thphys.ox.ac.uk -Tom Tromey tromey@cns.caltech.edu -Ulrich Drepper drepper@gnu.org -Vern Paxson vern@ee.lbl.gov -Vic Abell abe@cc.purdue.edu -Vivek P. Singhal singhal@cs.utexas.edu -Walter Wong wcw+@cmu.edu - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/thissite.htm b/examples/WWW/thissite.htm deleted file mode 100644 index 03e2a01a..00000000 --- a/examples/WWW/thissite.htm +++ /dev/null @@ -1,327 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - This site</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>This site</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -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 -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 -<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 -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. -</P> - - -<P> -The visual aspects of the pages are in <A HREF="m4lib/layout.m4">m4lib/layout.m4</A>. -The macros herein generate the complete HTML structure for the pages. -There are macros for making the header and the body of the document. -</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 -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>. -</P> - - -<P> -There is a single file for each HTML file. -</P> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/todo.htm b/examples/WWW/todo.htm deleted file mode 100644 index 9c5100f1..00000000 --- a/examples/WWW/todo.htm +++ /dev/null @@ -1,388 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<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"> -</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>TODO - Things still to be done</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<PRE>* TODO file for GNU m4 -*- indented-text -*- - -Tell the maintainers at <bug-m4@gnu.org> if you feel like volunteering -for any of these ideas or if you have others to add. - - -* Features or problems - - + 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. - - + There should be a way ot have m4 discard comments instead of - outputting them. - - + Implement discarding comment delimiters with the syntax table. - - + 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. - - + Add support for wide character sets. - - -* Optimization and clean up - - + Have NULs go really undisturbed through GNU m4 - GNU m4 is lousy regarding NULs in streams (this would require - maintaining the string lengths, and avoiding strlen, strcpy, - etc.). - - -* Module specific issues - - + Support for other DL interfaces besides dlopen, such as dld and - hpux is still missing. - - + Modules should be loadable from the command line with something like - `-M module.so' o `--load-module=module.so'. M4 should abort if it - fails. - - + Some way of linking a module statically is needed, for systems - without support for dynamic loading. - - - -Below is the old 1.4 TODO list, several years old. Only a few points -have been kept. Some things are fixed, many others just seem -dated. Write me if I have been to harsh. (René Seindal) - ------------------------------------------------------------------------- -Tell <pinard@iro.umontreal.ca> if you feel like volunteering for any -of these ideas, listed more or less in decreasing order of priority. -Some TODO items are implicit from received email. See file BACKLOG. - -.* Features or problems -. + Update documentation from accumulated mail about it -. + Changeword without arguments should restore default behavior -. + Study synclines at the very beginning of each diverted sequence -. + Make eval work on bignums - the 32 bits limit is artificial - From Krste Asanovic <krste@icsi.berkeley.edu>, 1993-03-20 -. + Make show include dependencies like gcc so targets are updated - when their (included) input files are updated (Erick B). -. + Ask FSF to create m4-bugs@gnu.org for bug reports (Erick B). -. + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B). - -.* Optimization and clean up -. + Check for memory leaks and uninitialized reads - From Vern Paxson <vern@horse.ee.lbl.gov> on 1993-12-06 -. + Simplify format/ecvt code, together with HAVE_EFGCVT -. + Finalize the stdarg vs varargs thing -. + Profile GNU m4 and speed it up - From David J. MacKenzie <djm@eng.umd.edu>, 1993-01-20 - - GNU m4 should be sped up by a factor of three for competing - with other versions (I think that the lexer is not agressive - enough and too often return single characters; obstacks might - be a little abused, too). -. + Have NULs go really undisturbed through GNU m4 - See `dumpdef' and debugging section, which abuses %s - From Thorsten Ohl <ohl@chico.harvard.edu>, 1992-12-21 - - path.c (add_include_directory): Why the '\0' terminator? - - GNU m4 is lousy regarding NULs in streams (this would require - maintaining the string lengths, and avoiding strlen, strcpy, - etc.). -. + Clean up the obstack.[ch] code -. + Use rx.[ch] instead of regex.[ch] - From Hal Peterson <hrp@ironwood.cray.com>, 1994-04-22 - -</PRE> - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/uses.htm b/examples/WWW/uses.htm deleted file mode 100644 index 9988dacf..00000000 --- a/examples/WWW/uses.htm +++ /dev/null @@ -1,322 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - Current uses of m4</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>Current uses of m4</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -The MTA sendmail uses <TT>m4</TT> for generating configuration files. -</P> - - -<P> -<A HREF="http://www.gnu.org/software/autoconf/autoconf.html">GNU -Autoconf</A> uses <TT>m4</TT> to generate "configure" scripts that are used -for configuring <A HREF="http://www.gnu.org/">GNU</A> software for a -particular platform. -</P> - - -<P> -Htm4l is a set of macros for generating HTML. Html4 is written by -Terry Jones (terry@cliffs.ucsd.edu). See -<A HREF="http://cliffs.ucsd.edu/terry/htm4l/htm4l/main.html">http://cliffs.ucsd.edu/terry/htm4l/htm4l/main.html</A> for -details. -</P> - - -<P> -Various programs uses m4 to preprocess configuration files for -example the X11 window manager fvwm. -</P> - - -<P> -There is an <A HREF="http://www.ssc.com/lg/issue22/using_m4.html">article in the Linux Gazette</A> about writing HTML with GNU m4 written by -<A HREF="mailto:bhepple@bit.net.au">Bob Hepple</A> . More recent versions -are kept at <A HREF="http://www.bit.net.au/~bhepple">Bob's home site</A>. -The macros are used to maintain a large commercial site at -<A HREF="http://www.finder.com.au">http://www.finder.com.au</A>. -</P> - - - -<P> -<A HREF="thissite.htm">These files are created with GNU m4 1.4l</A>. -</P> - - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/visions.htm b/examples/WWW/visions.htm deleted file mode 100644 index eceec6f7..00000000 --- a/examples/WWW/visions.htm +++ /dev/null @@ -1,309 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - The Road Ahead</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>The Road Ahead</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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>Possible features for future versions</H2> - - - -<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> - - -<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. -</P> - - - -</UL> - - -<P> -See also the <A HREF="todo.htm">TODO</A> file. -</P> - - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/WWW/whatis.htm b/examples/WWW/whatis.htm deleted file mode 100644 index 3f793cd0..00000000 --- a/examples/WWW/whatis.htm +++ /dev/null @@ -1,327 +0,0 @@ -<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> -<HTML> -<HEAD> -<TITLE>GNU m4 - What is GNU m4</TITLE> -<META NAME="AUTHOR" CONTENT="René Seindal"> -<META NAME="GENERATOR" CONTENT="GNU m4 1.4l"> -</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>What is GNU m4</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></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> -<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 bgcolor="#CC6600"> -<P> -<B>Source files</B> -</P> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="readme.htm">README</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="todo.htm">TODO</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="news.htm">NEWS</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="changelog.htm">ChangeLog</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="thanks.htm">Contributors</A></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="m4/">Browse it</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</TR> - <TR> -<TD> - -<FONT size=-1><P> -<B><A HREF="visions.htm">Visions</A></B> -</P> -</FONT> - -</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></B> -</P> -</FONT> - -</TD> - -</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> - -</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%"> - - -<P> -GNU <TT>m4</TT> is an implementation of the traditional Unix macro -processor. It is mostly SVR4 compatible, although it has some extensions -(for example, handling more than 9 positional parameters to macros). GNU -<TT>m4</TT> also has built-in functions for including files, running shell -commands, doing arithmetic, etc. -</P> - - -<P> -GNU <TT>m4</TT> is a macro processor, in the sense that it copies its -input to the output, expanding macros as it goes. Macros are either -builtin or user-defined, and can take any number of arguments. Besides -just doing macro expansion, m4 has builtin functions for including named -files, running UNIX commands, doing integer arithmetic, manipulating -text in various ways, recursion, etc... m4 can be used either as a -front-end to a compiler, or as a macro processor in its own right. -</P> - - -<P> -The m4 macro processor is widely available on all UNIXes. Usually, -only a small percentage of users are aware of its existence. However, -those who do often become commited users. The growing popularity of GNU -Autoconf, which prerequires GNU m4 for generating the `configure' -scripts, is an incentive for many to install it, while these people will -not themselves program in m4. GNU m4 is mostly compatible with the -System V, Release 3 version, except for some minor differences. -</P> - - -<P> -Some people found m4 to be fairly addictive. They first use m4 for -simple problems, then take bigger and bigger challenges, learning how to -write complex m4 sets of macros along the way. Once really addicted, -users pursue writing of sophisticated m4 applications even to solve -simple problems, devoting more time debugging their m4 scripts than -doing real work. Beware that m4 may be dangerous for the health of -compulsive programmers. -</P> - - -<P> -Autoconf needs GNU m4 for generating `configure' scripts, but not for -running them. -</P> - - - -</TD> - -</TR> - -</TABLE> - -</BODY> - - -</HTML> - - diff --git a/examples/capitalize.test b/examples/capitalize.test deleted file mode 100755 index 5b80f5c0..00000000 --- a/examples/capitalize.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# capitalize.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/capitalize.m4 >in - -cat <<\EOF >ok - - -CONVERT TO UPPER CASE -convert to lower case - - -This Sentence Should Be Capitalized -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/comments.test b/examples/comments.test deleted file mode 100755 index 63161dc2..00000000 --- a/examples/comments.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# comments.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(comments.m4)dnl -EOF - -cat <<\EOF >ok -# An ordinary comment - -# A comment in a macro -Macro foo expansion - - -# A *** Macro comment expansion *** in a macro -Macro foo expansion -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok diff --git a/examples/ddivert.test b/examples/ddivert.test deleted file mode 100755 index 5db82e90..00000000 --- a/examples/ddivert.test +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# ddivert.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(ddivert.m4)dnl -EOF - -cat <<\EOF >ok -Text diverted a first time. -Text diverted a second time. -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok diff --git a/examples/debug.test b/examples/debug.test deleted file mode 100755 index 0260641e..00000000 --- a/examples/debug.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# debug.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(debug.m4)dnl -EOF - -cat <<\EOF >ok - - - -2 1 0 Liftoff -EOF - -cat <<\EOF >okerr -m4trace: -1- countdown ... -m4trace: -1- countdown(`2') -> ??? -m4trace: -1- countdown(...) -> `2 ifelse(eval(2 > 0), 1, `countdown(decr(2))', `Liftoff')' -m4trace: -1- countdown ... -m4trace: -1- countdown(`1') -> ??? -m4trace: -1- countdown(...) -> `1 ifelse(eval(1 > 0), 1, `countdown(decr(1))', `Liftoff')' -m4trace: -1- countdown ... -m4trace: -1- countdown(`0') -> ??? -m4trace: -1- countdown(...) -> `0 ifelse(eval(0 > 0), 1, `countdown(decr(0))', `Liftoff')' -EOF - -M4PATH=$srcdir $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/defs b/examples/defs deleted file mode 100644 index cf97e3b3..00000000 --- a/examples/defs +++ /dev/null @@ -1,54 +0,0 @@ -# -*- ksh -*- -# Defines for GNU m4 testing environment. -# Erick Branderhorst <Erick.Branderhorst@asml.nl> - -# Ensure $srcdir set correctly. -test -f ${srcdir}/defs || { - echo "defs: installation error" 1>&2 - exit 1 -} - -# If srcdir is relative, we need to modify it. -case "$srcdir" in - /*) - ;; - - *) - srcdir="../$srcdir" - ;; -esac - -rm -rf testSubDir > /dev/null 2>&1 -mkdir testSubDir -cd testSubDir - -# Build appropriate environment in test directory. Eg create -# configure.in, touch all necessary files, etc. - -# nothing yet - -# See how redirections should work. User can set VERBOSE to see all -# output. -test -z "$VERBOSE" && { - exec > /dev/null 2>&1 -} - -# User can set MAKE to choose which make to use. Must use GNU make. -test -z "$MAKE" && MAKE=make - -echo "=== Running test $0" - -# See how GNU m4 should be run. No options as default. -test -z "$M4" && M4=../../src/m4 - -# See how cmp should be run. -test -z "$CMP" && CMP=cmp - -# Setting nls related vars. Override them in the test when needed. -LANGUAGE=C -export LANGUAGE -LC_ALL=C -export LC_ALL -LANG=C -export LANG - diff --git a/examples/esyscmd.test b/examples/esyscmd.test deleted file mode 100755 index 47602094..00000000 --- a/examples/esyscmd.test +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# esyscmd.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/esyscmd.m4 >in - -cat <<\EOF >ok -# Cannot use real hostname program because test would fail -hostname = >>www.gnu.org -<< -hostname = >>www<< -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/exp.test b/examples/exp.test deleted file mode 100755 index 443e98c7..00000000 --- a/examples/exp.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# exp.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/exp.m4 >in - -cat <<\EOF >ok -7 -6 -5 -4 -3 -2 -1 -0 -Done -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/foreach.test b/examples/foreach.test deleted file mode 100755 index 969e1638..00000000 --- a/examples/foreach.test +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# foreach.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/foreach.m4 >in - -cat <<\EOF >ok - -Word was: foo -Word was: bar -Word was: foobar - -# Something more complex, from Pierre Gaumond <gaumondp@ere.umontreal.ca>. -case "$1" in - a) - vara=" -a";; - b) - varb=" -b";; - c) - varc=" -c";; -esac -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/forloop.test b/examples/forloop.test deleted file mode 100755 index f2a41e7d..00000000 --- a/examples/forloop.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# forloop.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/forloop.m4 >in - -cat <<\EOF >ok - -2**1 = 2 -2**2 = 4 -2**3 = 8 -2**4 = 16 -2**5 = 32 -2**6 = 64 -2**7 = 128 -2**8 = 256 -2**9 = 512 -2**10 = 1024 - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/fstab.test b/examples/fstab.test deleted file mode 100755 index 89fd2c6b..00000000 --- a/examples/fstab.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# fstab.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/fstab.m4 >in - -cat <<\EOF >ok - - - -freja:/home/gevn /home/gevn nfs rw,soft,bg,grpid 0 0 -freja:/home/freja /home/freja nfs rw,soft,grpid 0 0 -rimfaxe:/home/rimfaxe /home/rimfaxe nfs rw,soft,bg 0 0 - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/hanoi.test b/examples/hanoi.test deleted file mode 100755 index 6080d5f6..00000000 --- a/examples/hanoi.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# hanoi.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/hanoi.m4 >in - -cat <<\EOF >ok - -Move one disk from source to destination. -Move one disk from source to auxilliary. -Move one disk from destination to auxilliary. -Move one disk from source to destination. -Move one disk from auxilliary to source. -Move one disk from auxilliary to destination. -Move one disk from source to destination. - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/include.test b/examples/include.test deleted file mode 100755 index 5d0b1100..00000000 --- a/examples/include.test +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# include.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/include.m4 >in - -cat <<\EOF >ok -Beginning. - -Intermidiate -include test file. - - -After - -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 -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/indir.test b/examples/indir.test deleted file mode 100755 index e243f97c..00000000 --- a/examples/indir.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# indir.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/indir.m4 >in - -cat <<\EOF >ok - - -# indir(`%%$$##', nonsens, nonsens) ->>>%%$$##<<< cnt 2 - -# indir(`indir', `%%$$##', nonsens) ->>>%%$$##<<< cnt 1 - -# indir(`indir', `indir', `indir', `indir', `%%$$##') ->>>%%$$##<<< cnt 0 -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/iso8859.m4 b/examples/iso8859.m4 Binary files differdeleted file mode 100644 index 4ac1d196..00000000 --- a/examples/iso8859.m4 +++ /dev/null diff --git a/examples/iso8859.test b/examples/iso8859.test deleted file mode 100755 index 3cca92e1..00000000 --- a/examples/iso8859.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# iso8859.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(iso8859.m4)dnl -EOF - -cat <<\EOF >ok -# Texting quotes -DEFINE -CHANGEQUOTE(«,») -0 TEST # TEST -1 test # test -2 «test» # «test» -3 ««test»» # ««test»» -CHANGEQUOTE(«««,»»») -0 TEST # TEST -1 «TEST» # «TEST» -2 ««TEST»» # ««TEST»» -3 test # test -# Test use of all iso8859 characters except NUL ` ' -Length of string is: 253 -Comparing strings: MATCH -# NUL does not pass through -This will be seen. -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok diff --git a/examples/misc.test b/examples/misc.test deleted file mode 100755 index 59ea58ad..00000000 --- a/examples/misc.test +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# misc.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/misc.m4 >in - -cat <<\EOF >ok - -127.0.0.1 - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>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 deleted file mode 100644 index 1546b568..00000000 --- a/examples/mktests.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh - -: ${M4:=../../src/m4} - -test $# -eq 1 || exit 1 -FILE=`basename $1 .m4` - - -test -r $FILE.m4 || exit 1 - -if head -1 $FILE.m4 | fgrep -w 'dnl noauto' >/dev/null; then - echo "$FILE.test cannot be generated" 1>&2 - exit 1 -fi - -test -d testSubDir || mkdir testSubDir - -cat "$FILE.m4" > testSubDir/in -(cd testSubDir; $M4 -I.. -d "in" >out 2>err) - -( - -cat <<EOFEOF -#!/bin/sh - -# $FILE.test is part of the GNU m4 testsuite - -. \${srcdir}/defs - -cat \${srcdir}/$FILE.m4 >in -EOFEOF - -echo -echo 'cat <<\EOF >ok' -cat testSubDir/out -echo EOF - -if [ -s testSubDir/err ]; then - echo - echo 'cat <<\EOF >okerr' - 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' - -if [ -s testSubDir/err ]; then - echo '$CMP -s out ok && $CMP -s err okerr' -else - echo '$CMP -s out ok' -fi -) >$FILE.test.new - -if cmp -s $FILE.test.new $FILE.test; then - echo "$FILE.test unchanged" 1>&2 - rm -f $FILE.test.new -else - echo "creating $FILE.test" 1>&2 - mv $FILE.test.new $FILE.test - chmod +x $FILE.test -fi - -rm -f testSubDir/out testSubDir/err diff --git a/examples/multiquotes.test b/examples/multiquotes.test deleted file mode 100755 index 81bd10d1..00000000 --- a/examples/multiquotes.test +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -# multiquotes.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/multiquotes.m4 >in - -cat <<\EOF >ok - -``traceon'' -foo -``FOO'' - -BAR -foo bar -``FOO'' BAR -*>*>*<*< -EOF - -cat <<\EOF >okerr -m4trace: -1- changequote(`[', `]') -m4trace: -1- dnl -m4trace: -1- changequote([``], ['']) -m4trace: -1- dnl -m4trace: -1- define(``foo'', ````FOO'''') -m4trace: -1- dnl -foo: ````FOO'''' -m4trace: -1- dumpdef(``foo'') -m4trace: -1- dnl -m4trace: -1- changequote(``!'', ``!'') -m4trace: -1- dnl -foo: !``FOO''! -m4trace: -1- dumpdef(!foo!) -m4trace: -1- dnl -m4trace: -1- define(!bar!, !BAR!) -m4trace: -1- changequote(!>*>*>*>*>!, !<*<*<*<*<!) -m4trace: -1- dnl -bar: >*>*>*>*>BAR<*<*<*<*< -foo: >*>*>*>*>``FOO''<*<*<*<*< -m4trace: -1- dumpdef(>*>*>*>*>foo<*<*<*<*<, >*>*>*>*>bar<*<*<*<*<) -m4trace: -1- dnl -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/patsubst.test b/examples/patsubst.test deleted file mode 100755 index c31c4c5d..00000000 --- a/examples/patsubst.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# patsubst.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/patsubst.m4 >in - -cat <<\EOF >ok -# traceon(`patsubst') -OBS: GNUs not Unix -OBS: GNUs OBS: not OBS: Unix -G=NUs n=ot U=nix -(GNUs)() (not)() (Unix) -(GNUs) (not) (Unix) - -GNUs not Unix -EOF - -cat <<\EOF >okerr -in:4: m4: 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 -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/pushpop.test b/examples/pushpop.test deleted file mode 100755 index 038aca15..00000000 --- a/examples/pushpop.test +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# pushpop.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/pushpop.m4 >in - -cat <<\EOF >ok -EOF - -cat <<\EOF >okerr -hej: `def 1.' -hej: `def 2.' -hej: `def 3.' -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 -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/regexp.test b/examples/regexp.test deleted file mode 100755 index 4cf21990..00000000 --- a/examples/regexp.test +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -# regexp.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/regexp.m4 >in - -cat <<\EOF >ok ->>hej med dig<< ->>hej<< ->>hej med dig<< ->>med<< ->>med dig<< >>ed dig<< - -0 -0 -0 -4 -4 -EOF - -cat <<\EOF >okerr -in:2: m4: 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<<' -m4trace: -1- regexp(`hej med dig', `m\w+', `>>\0<<') -> `>>med<<' -m4trace: -1- regexp(`hej med dig', `m\(.*\)', `>>\0<< >>\1<<') -> `>>med dig<< >>ed dig<<' -m4trace: -1- regexp(`hej med dig', `.*') -> `0' -m4trace: -1- regexp(`hej med dig', `\w*') -> `0' -m4trace: -1- regexp(`hej med dig', `.+') -> `0' -m4trace: -1- regexp(`hej med dig', `m\w+') -> `4' -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 -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/reverse.test b/examples/reverse.test deleted file mode 100755 index 63b4cefa..00000000 --- a/examples/reverse.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# reverse.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(reverse.m4)dnl -EOF - -cat <<\EOF >ok - -`' => -`hej' => hej -`hej, med, dig' => dig, med, hej -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok diff --git a/examples/sysv-args.test b/examples/sysv-args.test deleted file mode 100755 index ceb68c9a..00000000 --- a/examples/sysv-args.test +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# sysv-args.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(sysv-args.m4)dnl -EOF - -cat <<\EOF >ok - - -0 -1 -6 - - -hej med dig -hej med dig en gang igen -an awful lot of argument at least more that ten silly arguments -EOF - -cat <<\EOF >okerr -m4trace: -1- nargs -m4trace: -1- nargs -m4trace: -1- nargs -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -m4trace: -1- concat -EOF - -M4PATH=$srcdir $M4 in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/trace.test b/examples/trace.test deleted file mode 100755 index 47008f60..00000000 --- a/examples/trace.test +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh - -# trace.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/trace.m4 >in - -cat <<\EOF >ok - -# Debugmode t - -Move one disk from source to auxilliary. -Move one disk from source to destination. -Move one disk from auxilliary to destination. - - -# Debugmode taeq - -Move one disk from source to auxilliary. -Move one disk from source to destination. -Move one disk from auxilliary to destination. - - -# Debugmode OFF - -Move one disk from source to auxilliary. -Move one disk from source to destination. -Move one disk from auxilliary to destination. - - -# Debugmode ae - - -Move one disk from source to auxilliary. -Move one disk from source to destination. -Move one disk from auxilliary to destination. - -EOF - -cat <<\EOF >okerr -m4trace: -1- hanoi -m4trace: -1- _hanoi -m4trace: -2- eval -m4trace: -1- ifelse -m4trace: -2- decr -m4trace: -1- _hanoi -m4trace: -2- eval -m4trace: -1- ifelse -m4trace: -1- move -m4trace: -1- move -m4trace: -2- decr -m4trace: -1- _hanoi -m4trace: -2- eval -m4trace: -1- ifelse -m4trace: -1- move - -m4trace: -1- hanoi(`2') -> `_hanoi(`2', source, destination, auxilliary)' -m4trace: -1- _hanoi(`2', `source', `destination', `auxilliary') -> `ifelse(eval(`2'<=1), 1, `move(source, destination)', -`_hanoi(decr(2), source, auxilliary, destination)move(source, destination)_hanoi(decr(2), auxilliary, destination, source)')' -m4trace: -2- eval(`2<=1') -> `0' -m4trace: -1- ifelse(`0', `1', `move(source, destination)', `_hanoi(decr(2), source, auxilliary, destination)move(source, destination)_hanoi(decr(2), auxilliary, destination, source)') -> `_hanoi(decr(2), source, auxilliary, destination)move(source, destination)_hanoi(decr(2), auxilliary, destination, source)' -m4trace: -2- decr(`2') -> `1' -m4trace: -1- _hanoi(`1', `source', `auxilliary', `destination') -> `ifelse(eval(`1'<=1), 1, `move(source, auxilliary)', -`_hanoi(decr(1), source, destination, auxilliary)move(source, auxilliary)_hanoi(decr(1), destination, auxilliary, source)')' -m4trace: -2- eval(`1<=1') -> `1' -m4trace: -1- ifelse(`1', `1', `move(source, auxilliary)', `_hanoi(decr(1), source, destination, auxilliary)move(source, auxilliary)_hanoi(decr(1), destination, auxilliary, source)') -> `move(source, auxilliary)' -m4trace: -1- move(`source', `auxilliary') -> `Move one disk from `source' to `auxilliary'. -' -m4trace: -1- move(`source', `destination') -> `Move one disk from `source' to `destination'. -' -m4trace: -2- decr(`2') -> `1' -m4trace: -1- _hanoi(`1', `auxilliary', `destination', `source') -> `ifelse(eval(`1'<=1), 1, `move(auxilliary, destination)', -`_hanoi(decr(1), auxilliary, source, destination)move(auxilliary, destination)_hanoi(decr(1), source, destination, auxilliary)')' -m4trace: -2- eval(`1<=1') -> `1' -m4trace: -1- ifelse(`1', `1', `move(auxilliary, destination)', `_hanoi(decr(1), auxilliary, source, destination)move(auxilliary, destination)_hanoi(decr(1), source, destination, auxilliary)') -> `move(auxilliary, destination)' -m4trace: -1- move(`auxilliary', `destination') -> `Move one disk from `auxilliary' to `destination'. -' -m4trace: -1- debugmode -m4trace: -1- _hanoi(2, source, destination, auxilliary) -> ifelse(eval(`2'<=1), 1, `move(source, destination)', -`_hanoi(decr(2), source, auxilliary, destination)move(source, destination)_hanoi(decr(2), auxilliary, destination, source)') -m4trace: -1- _hanoi(1, source, auxilliary, destination) -> ifelse(eval(`1'<=1), 1, `move(source, auxilliary)', -`_hanoi(decr(1), source, destination, auxilliary)move(source, auxilliary)_hanoi(decr(1), destination, auxilliary, source)') -m4trace: -1- move(source, auxilliary) -> Move one disk from `source' to `auxilliary'. - -m4trace: -1- move(source, destination) -> Move one disk from `source' to `destination'. - -m4trace: -1- _hanoi(1, auxilliary, destination, source) -> ifelse(eval(`1'<=1), 1, `move(auxilliary, destination)', -`_hanoi(decr(1), auxilliary, source, destination)move(auxilliary, destination)_hanoi(decr(1), source, destination, auxilliary)') -m4trace: -1- move(auxilliary, destination) -> Move one disk from `auxilliary' to `destination'. - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/examples/translit.test b/examples/translit.test deleted file mode 100755 index 92acfb62..00000000 --- a/examples/translit.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# translit.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/translit.m4 >in - -cat <<\EOF >ok -# traceon(`translit')dnl -GNU U -GNUS NOT UNIX -gnus not unix -s not nix -z --ZY -tmfs not fnix -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/undivert.test b/examples/undivert.test deleted file mode 100755 index 6814a732..00000000 --- a/examples/undivert.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# undivert.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/undivert.m4 >in - -cat <<\EOF >ok - -# undiverted file. -This is to be undiverted soon. - -# included file. -This is to be UNDIVERTED soon. - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/examples/wrap.test b/examples/wrap.test deleted file mode 100755 index a6bba3c2..00000000 --- a/examples/wrap.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# wrap.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat <<\EOF >in -include(wrap.m4)dnl -EOF - -cat <<\EOF >ok - -No. 33: The End. -Wrapper no. 2 -Wrapper no. 1 -Wrapper no. 3 -Wrapper no. 4 -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok diff --git a/gettext.m4 b/gettext.m4 deleted file mode 100644 index 969d0922..00000000 --- a/gettext.m4 +++ /dev/null @@ -1,384 +0,0 @@ -# Macro to add for using GNU gettext. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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. - -# Modified for GNU m4 by René Seindal (rene@seindal.dk) - -# serial 5 - -AC_DEFUN(AM_WITH_NLS, - [AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - USE_INCLUDED_LIBINTL=no - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If gettext or catgets are available (in this order) we - dnl use this. Else we have to fall back to GNU NLS library. - dnl catgets is only used if permitted by option --with-catgets. - nls_cv_header_intl= - nls_cv_header_libgt= - CATOBJEXT=NONE - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, - [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], - gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) - - if test "$gt_cv_func_gettext_libc" != "yes"; then - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CHECK_LIB(intl, gettext, - [LIBS="$LIBS -lintl" - gt_cv_func_gettext_libintl=yes], - [gt_cv_func_gettext_libintl=no])]) - fi - - if test "$gt_cv_func_gettext_libc" = "yes" \ - || test "$gt_cv_func_gettext_libintl" = "yes"; then - AC_DEFINE(HAVE_GETTEXT) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - AC_MSG_CHECKING([whether catgets can be used]) - AC_ARG_WITH(catgets, - [ --with-catgets use catgets functions if available], - nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) - AC_MSG_RESULT($nls_cv_use_catgets) - - if test "$nls_cv_use_catgets" = "yes"; then - dnl No gettext in C library. Try catgets next. - AC_CHECK_LIB(i, main) - AC_CHECK_FUNC(catgets, - [AC_DEFINE(HAVE_CATGETS) - INTLOBJS="\$(CATOBJS)" - AC_PATH_PROG(GENCAT, gencat, no)dnl - if test "$GENCAT" != "no"; then - AC_PATH_PROG(GMSGFMT, gmsgfmt, no) - if test "$GMSGFMT" = "no"; then - AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) - fi - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.cat - INSTOBJEXT=.cat - DATADIRNAME=lib - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi]) - fi - fi - - if test "$CATOBJEXT" = "NONE"; then - dnl Neither gettext nor catgets in included in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INSTOBJEXT=.mo - DATADIRNAME=share - INTLDEPS='$(top_builddir)/intl/libintl.a' - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - else - DATADIRNAME=share - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi - AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) - AC_OUTPUT_COMMANDS( - [case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac]) - - - # If this is used in GNU gettext we have to set USE_NLS to `yes' - # because some of the sources are only built for this goal. - if test "$PACKAGE" = gettext; then - USE_NLS=yes - USE_INCLUDED_LIBINTL=yes - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(DATADIRNAME) - AC_SUBST(GMOFILES) - AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLDEPS) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - ]) - -AC_DEFUN(AM_GNU_GETTEXT, - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ -strdup __argz_count __argz_stringify __argz_next]) - - if test "${ac_cv_func_stpcpy+set}" != "set"; then - AC_CHECK_FUNCS(stpcpy) - fi - if test "${ac_cv_func_stpcpy}" = "yes"; then - AC_DEFINE(HAVE_STPCPY) - fi - - AM_LC_MESSAGES - AM_WITH_NLS - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for lang in ${LINGUAS=$ALL_LINGUAS}; do - case "$ALL_LINGUAS" in - *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; - esac - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl The reference to <locale.h> in the installed <libintl.h> file - dnl must be resolved because we cannot expect the users of this - dnl to define HAVE_LOCALE_H. - if test $ac_cv_header_locale_h = yes; then - INCLUDE_LOCALE_H="#include <locale.h>" - else - INCLUDE_LOCALE_H="\ -/* The system does not provide the header <locale.h>. Take care yourself. */" - fi - AC_SUBST(INCLUDE_LOCALE_H) - - dnl Determine which catalog format we have (if any is needed) - dnl For now we know about two different formats: - dnl Linux libc-5 and the normal X/Open format - test -d intl || mkdir intl - if test "$CATOBJEXT" = ".cat"; then - AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) - - dnl Transform the SED scripts while copying because some dumb SEDs - dnl cannot handle comments. - sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed - fi - dnl po2tbl.sed is always needed. - sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ - $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed - - dnl In the intl/Makefile.in we have a special dependency which makes - dnl only sense for gettext. We comment this out for non-gettext - dnl packages. - if test "$PACKAGE" = "gettext"; then - GT_NO="#NO#" - GT_YES= - else - GT_NO= - GT_YES="#YES#" - fi - AC_SUBST(GT_NO) - AC_SUBST(GT_YES) - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl *** For now the libtool support in intl/Makefile is not for real. - l= - AC_SUBST(l) - - dnl Generate list of files to be processed by xgettext which will - dnl be included in po/Makefile. - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - ]) - -# Search path for a program which passes the given test. -# Ulrich Drepper <drepper@cygnus.com>, 1996. -# -# 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 - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN(AM_PATH_PROG_WITH_TEST, -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) - -# Check whether LC_MESSAGES is available in <locale.h>. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# 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_LC_MESSAGES, - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES) - fi - fi]) - diff --git a/lib/Makefile.am b/lib/Makefile.am deleted file mode 100644 index c7c06190..00000000 --- a/lib/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -## Process this file with automake to produce Makefile.in -noinst_LIBRARIES = libm4.a - -libm4_a_SOURCES = getopt.h obstack.h regex.h regex.c getopt.c \ - getopt1.c error.c obstack.c xmalloc.c \ - xstrdup.c alloca.c strtol.c - -noinst_HEADERS = getopt.h error.h getdate.h - -libm4_a_LIBADD = -libm4_a_DEPENDENCIES = # $(libfu_a_LIBADD) - diff --git a/lib/error.h b/lib/error.h deleted file mode 100644 index 7a803d0c..00000000 --- a/lib/error.h +++ /dev/null @@ -1,65 +0,0 @@ -/* error.h -- declaration for error-reporting function - Copyright (C) 1995, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef ERROR_H_ -# define ERROR_H_ - -# ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -# endif - -# if defined (__STDC__) && __STDC__ - -/* Print a message with `fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ - -extern void error (int status, int errnum, const char *format, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); - -extern void error_at_line (int status, int errnum, const char *fname, - unsigned int lineno, const char *format, ...) - __attribute__ ((__format__ (__printf__, 5, 6))); - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -extern void (*error_print_progname) (void); - -# else -void error (); -void error_at_line (); -extern void (*error_print_progname) (); -# endif - -/* This variable is incremented each time `error' is called. */ -extern unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -extern int error_one_per_line; - -#endif /* not ERROR_H_ */ diff --git a/lib/getdate.h b/lib/getdate.h deleted file mode 100644 index db2dba4b..00000000 --- a/lib/getdate.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 1995 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -# ifndef PARAMS -# if defined (__GNUC__) || __STDC__ -# define PARAMS(args) args -# else -# define PARAMS(args) () -# endif -# endif - -#if defined (vms) -# include <types.h> -# include <time.h> -#else -# include <sys/types.h> -# ifdef TIME_WITH_SYS_TIME -# include <sys/time.h> -# include <time.h> -# else -# ifdef HAVE_SYS_TIME_H -# include <sys/time.h> -# else -# include <time.h> -# endif -# endif -#endif /* defined (vms) */ - -time_t get_date PARAMS ((const char *p, const time_t *now)); diff --git a/lib/m4error.c b/lib/m4error.c deleted file mode 100644 index 5a0d7bdd..00000000 --- a/lib/m4error.c +++ /dev/null @@ -1,259 +0,0 @@ -/* Error handler for noninteractive utilities - Copyright (C) 1990,91,92,93,94,95,96,97,98 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> - -#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC -# if __STDC__ -# include <stdarg.h> -# define VA_START(args, lastarg) va_start(args, lastarg) -# else -# include <varargs.h> -# define VA_START(args, lastarg) va_start(args) -# endif -#else -# define va_alist a1, a2, a3, a4, a5, a6, a7, a8 -# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; -#endif - -#if STDC_HEADERS || _LIBC -# include <stdlib.h> -# include <string.h> -#else -void exit (); -#endif - -#ifndef _ -# define _(String) String -#endif - -/* Get prototypes for the functions defined here. */ -#include <m4error.h> - -#ifdef DLL_EXPORT -# define M4_GLOBAL_DATA __declspec(dllexport) -#else -# define M4_GLOBAL_DATA -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -M4_GLOBAL_DATA void (*error_print_progname) ( -#if __STDC__ - 0 - void -#endif - ); - -/* This variable is incremented each time `error' is called. */ -M4_GLOBAL_DATA unsigned int error_message_count; - -#ifdef _LIBC -/* In the GNU C library, there is a predefined variable for this. */ - -# define program_name program_invocation_name -# include <errno.h> - -/* In GNU libc we want do not want to use the common name `error' directly. - Instead make it a weak alias. */ -# define error __error -# define error_at_line __error_at_line - -# ifdef USE_IN_LIBIO -# include <libio/iolibio.h> -# define fflush(s) _IO_fflush (s) -# endif - -#else /* not _LIBC */ - -/* The calling program should define program_name and set it to the - name of the executing program. */ -M4_GLOBAL_DATA char *program_name; - -# ifdef HAVE_STRERROR_R -# define __strerror_r strerror_r -# else -# if HAVE_STRERROR -# ifndef strerror /* On some systems, strerror is a macro */ -char *strerror (); -# endif -# else -static char * -private_strerror (errnum) - int errnum; -{ - extern char *sys_errlist[]; - extern int sys_nerr; - - if (errnum > 0 && errnum <= sys_nerr) - return _(sys_errlist[errnum]); - return _("Unknown system error"); -} -# define strerror private_strerror -# endif /* HAVE_STRERROR */ -# endif /* HAVE_STRERROR_R */ -#endif /* not _LIBC */ - -/* Print the program name and error message MESSAGE, which is a printf-style - format string with optional args. - If ERRNUM is nonzero, print its corresponding system error message. - Exit with status STATUS if it is nonzero. */ -/* VARARGS */ - -void -#if defined VA_START && __STDC__ -error (int status, int errnum, const char *message, ...) -#else -error (status, errnum, message, va_alist) - int status; - int errnum; - char *message; - va_dcl -#endif -{ -#ifdef VA_START - va_list args; -#endif - - if (error_print_progname) - (*error_print_progname) (); - else - { - fflush (stdout); - fprintf (stderr, "%s: ", program_name); - } - -#ifdef VA_START - VA_START (args, message); -# if HAVE_VPRINTF || _LIBC - vfprintf (stderr, message, args); -# else - _doprnt (message, args, stderr); -# endif - va_end (args); -#else - fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); -#endif - - ++error_message_count; - if (errnum) - { -#if defined HAVE_STRERROR_R || defined _LIBC - char errbuf[1024]; - fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf)); -#else - fprintf (stderr, ": %s", strerror (errnum)); -#endif - } - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -} - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -int error_one_per_line; - -void -#if defined VA_START && __STDC__ -error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) -#else -error_at_line (status, errnum, file_name, line_number, message, va_alist) - int status; - int errnum; - const char *file_name; - unsigned int line_number; - char *message; - va_dcl -#endif -{ -#ifdef VA_START - va_list args; -#endif - - if (error_one_per_line) - { - static const char *old_file_name; - static unsigned int old_line_number; - - if (old_line_number == line_number && - (file_name == old_file_name || !strcmp (old_file_name, file_name))) - /* Simply return and print nothing. */ - return; - - old_file_name = file_name; - old_line_number = line_number; - } - - if (error_print_progname) - (*error_print_progname) (); - else - { - fflush (stdout); - fprintf (stderr, "%s:", program_name); - } - - if (file_name != NULL) - fprintf (stderr, "%s:%d: ", file_name, line_number); - -#ifdef VA_START - VA_START (args, message); -# if HAVE_VPRINTF || _LIBC - vfprintf (stderr, message, args); -# else - _doprnt (message, args, stderr); -# endif - va_end (args); -#else - fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); -#endif - - ++error_message_count; - if (errnum) - { -#if defined HAVE_STRERROR_R || defined _LIBC - char errbuf[1024]; - fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf)); -#else - fprintf (stderr, ": %s", strerror (errnum)); -#endif - } - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -} - -#ifdef _LIBC -/* Make the weak alias. */ -# undef error -# undef error_at_line -weak_alias (__error, error) -weak_alias (__error_at_line, error_at_line) -#endif diff --git a/lib/m4error.h b/lib/m4error.h deleted file mode 100644 index 066ffec4..00000000 --- a/lib/m4error.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Declaration for error-reporting function - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef M4ERROR_H -#define M4ERROR_H 1 - -/* DLL building support on win32 hosts; mostly to workaround their - ridiculous implementation of data symbol exporting. */ -#ifndef M4_SCOPE -# ifdef _WIN32 - /* Incase we are linking a dll with this library, the - LIBM4_DLL_IMPORT takes precedence over a generic DLL_EXPORT - when defining the SCOPE variable for M4. */ -# ifdef LIBM4_DLL_IMPORT /* define if linking with this dll */ -# define M4_SCOPE extern __declspec(dllimport) -# else -# ifdef DLL_EXPORT /* defined by libtool (if required) */ -# define M4_SCOPE __declspec(dllexport) -# endif /* DLL_EXPORT */ -# endif /* LIBM4_DLL_IMPORT */ -# endif /* M4_SCOPE */ -# ifndef M4_SCOPE /* static linking or !_WIN32 */ -# define M4_SCOPE extern -# endif -#endif - - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined (__STDC__) && __STDC__ - -/* Print a message with `fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ - -extern void error (int status, int errnum, const char *format, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); - -extern void error_at_line (int status, int errnum, const char *fname, - unsigned int lineno, const char *format, ...) - __attribute__ ((__format__ (__printf__, 5, 6))); - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -M4_SCOPE void (*error_print_progname) (void); - -#else -void error (); -void error_at_line (); -M4_SCOPE void (*error_print_progname) (); -#endif - -/* This variable is incremented each time `error' is called. */ -M4_SCOPE unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -M4_SCOPE int error_one_per_line; - -#ifdef __cplusplus -} -#endif - -#endif /* m4error.h */ diff --git a/lib/m4module.c b/lib/m4module.c deleted file mode 100644 index b22d8b85..00000000 --- a/lib/m4module.c +++ /dev/null @@ -1,214 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1989, 90, 91, 92, 93, 94, 98 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - 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. -*/ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> - -#define COMPILING_M4 -#include "m4module.h" -#include "m4private.h" - -#ifdef DLL_EXPORT -# define M4_GLOBAL_DATA __declspec(dllexport) -#else -# define M4_GLOBAL_DATA -#endif - -/* The name this program was run with. */ -M4_GLOBAL_DATA const char *program_name; - -/* Operate interactively (-e). */ -M4_GLOBAL_DATA int interactive = 0; - -/* Enable sync output for /lib/cpp (-s). */ -M4_GLOBAL_DATA int sync_output = 0; - -/* Debug (-d[flags]). */ -M4_GLOBAL_DATA int debug_level = 0; - -/* Hash table size (should be a prime) (-Hsize). */ -M4_GLOBAL_DATA int hash_table_size = HASHMAX; - -/* Disable GNU extensions (-G). */ -M4_GLOBAL_DATA int no_gnu_extensions = 0; - -/* Prefix all builtin functions by `m4_'. */ -M4_GLOBAL_DATA int prefix_all_builtins = 0; - -/* Max length of arguments in trace output (-lsize). */ -M4_GLOBAL_DATA int max_debug_argument_length = 0; - -/* Suppress warnings about missing arguments. */ -M4_GLOBAL_DATA int suppress_warnings = 0; - -/* If not zero, then value of exit status for warning diagnostics. */ -M4_GLOBAL_DATA int warning_status = 0; - -/* Artificial limit for expansion_level in macro.c. */ -M4_GLOBAL_DATA int nesting_limit = 250; - -/* User provided regexp for describing m4 words. */ -M4_GLOBAL_DATA const char *user_word_regexp = NULL; - -/* If nonzero, comments are discarded in the token parser. */ -M4_GLOBAL_DATA int discard_comments = 0; - -/* input syntax table. */ -M4_GLOBAL_DATA unsigned short syntax_table[256]; - -/* Quote chars. */ -M4_GLOBAL_DATA STRING rquote; -M4_GLOBAL_DATA STRING lquote; - -/* Comment chars. */ -M4_GLOBAL_DATA STRING bcomm; -M4_GLOBAL_DATA STRING ecomm; - - -/*------------------------------------------------------------------------. -| Addressable function versions of the macros defined in m4private.h. | -| Since they are functions the caller does not need access to the | -| internal data structure, so they are safe to export for use in | -| external modules. | -`------------------------------------------------------------------------*/ -token_data_type -m4_token_data_type (token_data *name) -{ - return TOKEN_DATA_TYPE(name); -} - -char * -m4_token_data_text (token_data *name) -{ - return TOKEN_DATA_TEXT(name); -} - -char * -m4_token_data_orig_text (token_data *name) -{ -#ifdef ENABLE_CHANGEWORD - return TOKEN_DATA_ORIG_TEXT(name); -#else - return NULL; -#endif -} - -builtin_func * -m4_token_data_func (token_data *name) -{ - return TOKEN_DATA_FUNC(name); -} - -boolean -m4_token_data_func_traced (token_data *name) -{ - return TOKEN_DATA_FUNC_TRACED(name); -} - - -/*------------------------------------------------------------------------. -| Give friendly warnings if a builtin macro is passed an inappropriate | -| number of arguments. NAME is macro name for messages, ARGC is actual | -| number of arguments, MIN is the minimum number of acceptable arguments, | -| negative if not applicable, MAX is the maximum number, negative if not | -| applicable. | -`------------------------------------------------------------------------*/ - -boolean -m4_bad_argc (token_data *name, int argc, int min, int max) -{ - boolean isbad = FALSE; - - if (min > 0 && argc < min) - { - if (!suppress_warnings) - M4ERROR ((warning_status, 0, - _("Warning: Too few arguments to built-in `%s'"), - TOKEN_DATA_TEXT (name))); - isbad = TRUE; - } - else if (max > 0 && argc > max && !suppress_warnings) - M4ERROR ((warning_status, 0, - _("Warning: Excess arguments to built-in `%s' ignored"), - TOKEN_DATA_TEXT (name))); - - return isbad; -} - -const char * -m4_skip_space (const char *arg) -{ - while (IS_SPACE(*arg)) - arg++; - return arg; -} - -/*--------------------------------------------------------------------------. -| The function m4_numeric_arg () converts ARG to an int pointed to by | -| VALUEP. If the conversion fails, print error message for macro MACRO. | -| Return TRUE iff conversion succeeds. | -`--------------------------------------------------------------------------*/ -boolean -m4_numeric_arg (token_data *macro, const char *arg, int *valuep) -{ - char *endp; - - if (*arg == 0 || (*valuep = strtol (m4_skip_space(arg), &endp, 10), - *m4_skip_space(endp) != 0)) - { - M4ERROR ((warning_status, 0, - _("Non-numeric argument to built-in `%s'"), - TOKEN_DATA_TEXT (macro))); - return FALSE; - } - return TRUE; -} - -/*----------------------------------------------------------------------. -| Format an int VAL, and stuff it into an obstack OBS. Used for macros | -| expanding to numbers. | -`----------------------------------------------------------------------*/ - -void -m4_shipout_int (struct obstack *obs, int val) -{ - char buf[128]; - - sprintf(buf, "%d", val); - obstack_grow (obs, buf, strlen (buf)); -} - -void -m4_shipout_string (struct obstack *obs, const char *s, int len, boolean quoted) -{ - if (s == NULL) - s = ""; - - if (len == 0) - len = strlen(s); - - if (quoted) - obstack_grow (obs, lquote.string, lquote.length); - obstack_grow (obs, s, len); - if (quoted) - obstack_grow (obs, rquote.string, rquote.length); -} - diff --git a/lib/m4module.h b/lib/m4module.h deleted file mode 100644 index 74da7200..00000000 --- a/lib/m4module.h +++ /dev/null @@ -1,240 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1989, 90, 91, 92, 93, 94 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. -*/ - -#ifndef M4MODULE_H -#define M4MODULE_H - -#include <sys/types.h> -#include <m4error.h> -#include <m4obstack.h> - -#ifdef ENABLE_NLS -#include <libintl.h> -#define _(Text) gettext ((Text)) -#else -#define _(Text) (Text) -#endif - -#ifndef M4_PARAMS -# ifdef __STDC__ -# define M4_PARAMS(Args) Args -# else -# define M4_PARAMS(Args) () -# endif -#endif - -/* DLL building support on win32 hosts; mostly to workaround their - ridiculous implementation of data symbol exporting. */ -#ifndef M4_SCOPE -# ifdef _WIN32 - /* Incase we are linking a dll with this library, the - LIBM4_DLL_IMPORT takes precedence over a generic DLL_EXPORT - when defining the SCOPE variable for M4. */ -# ifdef LIBM4_DLL_IMPORT /* define if linking with this dll */ -# define M4_SCOPE extern __declspec(dllimport) -# else -# ifdef DLL_EXPORT /* defined by libtool (if required) */ -# define M4_SCOPE __declspec(dllexport) -# endif /* DLL_EXPORT */ -# endif /* LIBM4_DLL_IMPORT */ -# endif /* M4_SCOPE */ -# ifndef M4_SCOPE /* static linking or !_WIN32 */ -# define M4_SCOPE extern -# endif -#endif - -#if __STDC__ -# define voidstar void * -#else -# define voidstar char * -#endif - -/* If FALSE is defined, we presume TRUE is defined too. In this case, - merely typedef boolean as being int. Or else, define these all. */ -#ifndef FALSE -/* Do not use `enum boolean': this tag is used in SVR4 <sys/types.h>. */ -typedef enum { FALSE = 0, TRUE = 1 } boolean; -#else -typedef int boolean; -#endif - - -/* Syntax table definitions. */ -/* Please read the comment at the top of input.c for details */ -M4_SCOPE unsigned short syntax_table[256]; - -/* These are simple values, not bit masks. There is no overlap. */ -#define SYNTAX_OTHER (0x0000) - -#define SYNTAX_IGNORE (0x0001) -#define SYNTAX_SPACE (0x0002) -#define SYNTAX_OPEN (0x0003) -#define SYNTAX_CLOSE (0x0004) -#define SYNTAX_COMMA (0x0005) -#define SYNTAX_DOLLAR (0x0006) /* not used yet */ -#define SYNTAX_ACTIVE (0x0007) -#define SYNTAX_ESCAPE (0x0008) - -/* These are values to be assigned to syntax table entries, but they are - used as bit masks with IS_ALNUM.*/ -#define SYNTAX_ALPHA (0x0010) -#define SYNTAX_NUM (0x0020) -#define SYNTAX_ALNUM (SYNTAX_ALPHA|SYNTAX_NUM) - -/* These are bit masks to AND with other categories. - See input.c for details. */ -#define SYNTAX_LQUOTE (0x0100) -#define SYNTAX_RQUOTE (0x0200) -#define SYNTAX_BCOMM (0x0400) -#define SYNTAX_ECOMM (0x0800) - -/* These bits define the syntax code of a character */ -#define SYNTAX_VALUE (0x00FF|SYNTAX_LQUOTE|SYNTAX_BCOMM) -#define SYNTAX_MASKS (0xFF00) - -#define IS_OTHER(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_OTHER) -#define IS_IGNORE(ch) ((syntax_table[(int)(ch)]) == SYNTAX_IGNORE) -#define IS_SPACE(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_SPACE) - -#define IS_OPEN(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_OPEN) -#define IS_CLOSE(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_CLOSE) -#define IS_COMMA(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_COMMA) -#define IS_DOLLAR(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_DOLLAR) -#define IS_ACTIVE(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_ACTIVE) - -#define IS_ESCAPE(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_ESCAPE) -#define IS_ALPHA(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_ALPHA) -#define IS_NUM(ch) ((syntax_table[(int)(ch)]&SYNTAX_VALUE) == SYNTAX_NUM) -#define IS_ALNUM(ch) (((syntax_table[(int)(ch)]) & SYNTAX_ALNUM) != 0) - -#define IS_LQUOTE(ch) (syntax_table[(int)(ch)] & SYNTAX_LQUOTE) -#define IS_RQUOTE(ch) (syntax_table[(int)(ch)] & SYNTAX_RQUOTE) -#define IS_BCOMM(ch) (syntax_table[(int)(ch)] & SYNTAX_BCOMM) -#define IS_ECOMM(ch) (syntax_table[(int)(ch)] & SYNTAX_ECOMM) - - -/* Various declarations. */ - -struct string - { - unsigned char *string; /* characters of the string */ - size_t length; /* length of the string */ - }; -typedef struct string STRING; - -/* Memory allocation. */ -voidstar xmalloc M4_PARAMS((unsigned int)); -voidstar xrealloc M4_PARAMS((voidstar, unsigned int)); -void xfree M4_PARAMS((voidstar)); -char *xstrdup M4_PARAMS((const char *)); -#define obstack_chunk_alloc xmalloc -#define obstack_chunk_free xfree - -/* Other library routines. */ -void error M4_PARAMS((int , int, const char *, ...)); - - -typedef void builtin_func (); - -typedef struct { - const char *name; - boolean gnu_extension; - boolean groks_macro_args; - boolean blind_if_no_args; - builtin_func *func; -} builtin; - -/* Various different token types. */ -typedef enum { - TOKEN_EOF, /* end of file */ - TOKEN_NONE, /* discardable token */ - TOKEN_STRING, /* a quoted string */ - TOKEN_SPACE, /* whitespace */ - TOKEN_WORD, /* an identifier */ - TOKEN_SIMPLE, /* a single character */ - TOKEN_MACDEF /* a macros definition (see "defn") */ -} token_type; - -/* The data for a token, a macro argument, and a macro definition. */ -typedef enum { - TOKEN_VOID, - TOKEN_TEXT, - TOKEN_FUNC -} token_data_type; - -typedef void module_init_t M4_PARAMS((struct obstack *)); -typedef void module_finish_t M4_PARAMS((void)); - -#ifdef COMPILING_M4 -typedef struct token_data token_data; -#else -typedef voidstar token_data; -#endif - -token_data_type m4_token_data_type M4_PARAMS((token_data *)); -char *m4_token_data_text M4_PARAMS((token_data *)); -char *m4_token_data_orig_text M4_PARAMS((token_data *)); -builtin_func *m4_token_data_func M4_PARAMS((token_data *)); -boolean m4_token_data_func_traced M4_PARAMS((token_data *)); - -#define M4ARG(i) (argc > (i) ? m4_token_data_text (argv[i]) : "") - -#define M4BUILTIN(name) \ - static void name M4_PARAMS((struct obstack *, int, token_data **)) - -/* Error handling. */ -#define M4ERROR(Arglist) (error Arglist) - -#define HASHMAX 509 /* default, overridden by -Hsize */ - -/* The name this program was run with. */ -M4_SCOPE const char *program_name; - -/* Option flags (defined in m4module.c; set in m4.c). */ -M4_SCOPE int interactive; /* -e */ -M4_SCOPE int sync_output; /* -s */ -M4_SCOPE int debug_level; /* -d */ -M4_SCOPE int hash_table_size; /* -H */ -M4_SCOPE int no_gnu_extensions; /* -G */ -M4_SCOPE int prefix_all_builtins; /* -P */ -M4_SCOPE int max_debug_argument_length; /* -l */ -M4_SCOPE int suppress_warnings; /* -Q */ -M4_SCOPE int warning_status; /* -E */ -M4_SCOPE int nesting_limit; /* -L */ -M4_SCOPE int discard_comments; /* -c */ -M4_SCOPE const char *user_word_regexp; /* -W */ - -/* left and right quote, begin and end comment */ -M4_SCOPE STRING lquote; -M4_SCOPE STRING rquote; - -M4_SCOPE STRING bcomm; -M4_SCOPE STRING ecomm; - -#define DEF_LQUOTE "`" -#define DEF_RQUOTE "\'" -#define DEF_BCOMM "#" -#define DEF_ECOMM "\n" - -boolean m4_bad_argc M4_PARAMS((token_data *, int, int, int)); -const char *m4_skip_space M4_PARAMS((const char *)); -boolean m4_numeric_arg M4_PARAMS((token_data *, const char *, int *)); -void m4_shipout_int M4_PARAMS((struct obstack *, int)); -void m4_shipout_string M4_PARAMS((struct obstack*, const char*, int, boolean)); - -#endif /* M4MODULE_H */ diff --git a/lib/m4obstack.c b/lib/m4obstack.c deleted file mode 100644 index 022b949f..00000000 --- a/lib/m4obstack.c +++ /dev/null @@ -1,598 +0,0 @@ -/* obstack.c - subroutines used implicitly by object stack macros - Copyright (C) 1988-1994,96,97,98,99 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "m4obstack.h" - -/* NOTE BEFORE MODIFYING THIS FILE: This version number must be - incremented whenever callers compiled using an old obstack.h can no - longer properly call the functions in this obstack.c. */ -#define OBSTACK_INTERFACE_VERSION 1 - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself, and the installed library - supports the same library interface we do. This code is part of the GNU - C Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object - files, it is simpler to just do this in the source for each such file. */ - -#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */ -#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1 -#include <gnu-versions.h> -#if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION -#define ELIDE_CODE -#endif -#endif - - -#ifndef ELIDE_CODE - - -#if defined (__STDC__) && __STDC__ -#define POINTER void * -#else -#define POINTER char * -#endif - -/* Determine default alignment. */ -struct fooalign {char x; double d;}; -#define DEFAULT_ALIGNMENT \ - ((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0)) -/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT. - But in fact it might be less smart and round addresses to as much as - DEFAULT_ROUNDING. So we prepare for it to do that. */ -union fooround {long x; double d;}; -#define DEFAULT_ROUNDING (sizeof (union fooround)) - -/* When we copy a long block of data, this is the unit to do it with. - On some machines, copying successive ints does not work; - in such a case, redefine COPYING_UNIT to `long' (if that works) - or `char' as a last resort. */ -#ifndef COPYING_UNIT -#define COPYING_UNIT int -#endif - - -/* The functions allocating more room by calling `obstack_chunk_alloc' - jump to the handler pointed to by `obstack_alloc_failed_handler'. - This can be set to a user defined function which should either - abort gracefully or use longjump - but shouldn't return. This - variable by default points to the internal function - `print_and_abort'. */ -#if defined (__STDC__) && __STDC__ -static void print_and_abort (void); -void (*obstack_alloc_failed_handler) (void) = print_and_abort; -#else -static void print_and_abort (); -void (*obstack_alloc_failed_handler) () = print_and_abort; -#endif - -/* Exit value used when `print_and_abort' is used. */ -#if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H -#include <stdlib.h> -#endif -#ifndef EXIT_FAILURE -#define EXIT_FAILURE 1 -#endif -int obstack_exit_failure = EXIT_FAILURE; - -/* The non-GNU-C macros copy the obstack into this global variable - to avoid multiple evaluation. */ - -struct obstack *_obstack; - -/* Define a macro that either calls functions with the traditional malloc/free - calling interface, or calls functions with the mmalloc/mfree interface - (that adds an extra first argument), based on the state of use_extra_arg. - For free, do not use ?:, since some compilers, like the MIPS compilers, - do not allow (expr) ? void : void. */ - -#if defined (__STDC__) && __STDC__ -#define CALL_CHUNKFUN(h, size) \ - (((h) -> use_extra_arg) \ - ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ - : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size))) - -#define CALL_FREEFUN(h, old_chunk) \ - do { \ - if ((h) -> use_extra_arg) \ - (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \ - else \ - (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \ - } while (0) -#else -#define CALL_CHUNKFUN(h, size) \ - (((h) -> use_extra_arg) \ - ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ - : (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size))) - -#define CALL_FREEFUN(h, old_chunk) \ - do { \ - if ((h) -> use_extra_arg) \ - (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \ - else \ - (*(void (*) ()) (h)->freefun) ((old_chunk)); \ - } while (0) -#endif - - -/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default). - Objects start on multiples of ALIGNMENT (0 means use default). - CHUNKFUN is the function to use to allocate chunks, - and FREEFUN the function to free them. - - Return nonzero if successful, calls obstack_alloc_failed_handler if - allocation fails. */ - -int -_obstack_begin (h, size, alignment, chunkfun, freefun) - struct obstack *h; - int size; - int alignment; -#if defined (__STDC__) && __STDC__ - POINTER (*chunkfun) (long); - void (*freefun) (void *); -#else - POINTER (*chunkfun) (); - void (*freefun) (); -#endif -{ - register struct _obstack_chunk *chunk; /* points to new chunk */ - - if (alignment == 0) - alignment = (int) DEFAULT_ALIGNMENT; - if (size == 0) - /* Default size is what GNU malloc can fit in a 4096-byte block. */ - { - /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc. - Use the values for range checking, because if range checking is off, - the extra bytes won't be missed terribly, but if range checking is on - and we used a larger request, a whole extra 4096 bytes would be - allocated. - - These number are irrelevant to the new GNU malloc. I suspect it is - less sensitive to the size of the request. */ - int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)) - + 4 + DEFAULT_ROUNDING - 1) - & ~(DEFAULT_ROUNDING - 1)); - size = 4096 - extra; - } - -#if defined (__STDC__) && __STDC__ - h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun; - h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; -#else - h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun; - h->freefun = freefun; -#endif - h->chunk_size = size; - h->alignment_mask = alignment - 1; - h->use_extra_arg = 0; - - chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size); - if (!chunk) - (*obstack_alloc_failed_handler) (); - h->next_free = h->object_base = chunk->contents; - h->chunk_limit = chunk->limit - = (char *) chunk + h->chunk_size; - chunk->prev = 0; - /* The initial chunk now contains no empty object. */ - h->maybe_empty_object = 0; - h->alloc_failed = 0; - return 1; -} - -int -_obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg) - struct obstack *h; - int size; - int alignment; -#if defined (__STDC__) && __STDC__ - POINTER (*chunkfun) (POINTER, long); - void (*freefun) (POINTER, POINTER); -#else - POINTER (*chunkfun) (); - void (*freefun) (); -#endif - POINTER arg; -{ - register struct _obstack_chunk *chunk; /* points to new chunk */ - - if (alignment == 0) - alignment = (int) DEFAULT_ALIGNMENT; - if (size == 0) - /* Default size is what GNU malloc can fit in a 4096-byte block. */ - { - /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc. - Use the values for range checking, because if range checking is off, - the extra bytes won't be missed terribly, but if range checking is on - and we used a larger request, a whole extra 4096 bytes would be - allocated. - - These number are irrelevant to the new GNU malloc. I suspect it is - less sensitive to the size of the request. */ - int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)) - + 4 + DEFAULT_ROUNDING - 1) - & ~(DEFAULT_ROUNDING - 1)); - size = 4096 - extra; - } - -#if defined(__STDC__) && __STDC__ - h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun; - h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; -#else - h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun; - h->freefun = freefun; -#endif - h->chunk_size = size; - h->alignment_mask = alignment - 1; - h->extra_arg = arg; - h->use_extra_arg = 1; - - chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size); - if (!chunk) - (*obstack_alloc_failed_handler) (); - h->next_free = h->object_base = chunk->contents; - h->chunk_limit = chunk->limit - = (char *) chunk + h->chunk_size; - chunk->prev = 0; - /* The initial chunk now contains no empty object. */ - h->maybe_empty_object = 0; - h->alloc_failed = 0; - return 1; -} - -/* Allocate a new current chunk for the obstack *H - on the assumption that LENGTH bytes need to be added - to the current object, or a new object of length LENGTH allocated. - Copies any partial object from the end of the old chunk - to the beginning of the new one. */ - -void -_obstack_newchunk (h, length) - struct obstack *h; - int length; -{ - register struct _obstack_chunk *old_chunk = h->chunk; - register struct _obstack_chunk *new_chunk; - register long new_size; - register long obj_size = h->next_free - h->object_base; - register long i; - long already; - - /* Compute size for new chunk. */ - new_size = (obj_size + length) + (obj_size >> 3) + 100; - if (new_size < h->chunk_size) - new_size = h->chunk_size; - - /* Allocate and initialize the new chunk. */ - new_chunk = CALL_CHUNKFUN (h, new_size); - if (!new_chunk) - (*obstack_alloc_failed_handler) (); - h->chunk = new_chunk; - new_chunk->prev = old_chunk; - new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size; - - /* Move the existing object to the new chunk. - Word at a time is fast and is safe if the object - is sufficiently aligned. */ - if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT) - { - for (i = obj_size / sizeof (COPYING_UNIT) - 1; - i >= 0; i--) - ((COPYING_UNIT *)new_chunk->contents)[i] - = ((COPYING_UNIT *)h->object_base)[i]; - /* We used to copy the odd few remaining bytes as one extra COPYING_UNIT, - but that can cross a page boundary on a machine - which does not do strict alignment for COPYING_UNITS. */ - already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT); - } - else - already = 0; - /* Copy remaining bytes one by one. */ - for (i = already; i < obj_size; i++) - new_chunk->contents[i] = h->object_base[i]; - - /* If the object just copied was the only data in OLD_CHUNK, - free that chunk and remove it from the chain. - But not if that chunk might contain an empty object. */ - if (h->object_base == old_chunk->contents && ! h->maybe_empty_object) - { - new_chunk->prev = old_chunk->prev; - CALL_FREEFUN (h, old_chunk); - } - - h->object_base = new_chunk->contents; - h->next_free = h->object_base + obj_size; - /* The new chunk certainly contains no empty object yet. */ - h->maybe_empty_object = 0; -} - -/* Return nonzero if object OBJ has been allocated from obstack H. - This is here for debugging. - If you use it in a program, you are probably losing. */ - -#if defined (__STDC__) && __STDC__ -/* Suppress -Wmissing-prototypes warning. We don't want to declare this in - obstack.h because it is just for debugging. */ -int _obstack_allocated_p (struct obstack *h, POINTER obj); -#endif - -int -_obstack_allocated_p (h, obj) - struct obstack *h; - POINTER obj; -{ - register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ - register struct _obstack_chunk *plp; /* point to previous chunk if any */ - - lp = (h)->chunk; - /* We use >= rather than > since the object cannot be exactly at - the beginning of the chunk but might be an empty object exactly - at the end of an adjacent chunk. */ - while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj)) - { - plp = lp->prev; - lp = plp; - } - return lp != 0; -} - -/* Free objects in obstack H, including OBJ and everything allocate - more recently than OBJ. If OBJ is zero, free everything in H. */ - -#undef obstack_free - -/* This function has two names with identical definitions. - This is the first one, called from non-ANSI code. */ - -void -_obstack_free (h, obj) - struct obstack *h; - POINTER obj; -{ - register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ - register struct _obstack_chunk *plp; /* point to previous chunk if any */ - - lp = h->chunk; - /* We use >= because there cannot be an object at the beginning of a chunk. - But there can be an empty object at that address - at the end of another chunk. */ - while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj)) - { - plp = lp->prev; - CALL_FREEFUN (h, lp); - lp = plp; - /* If we switch chunks, we can't tell whether the new current - chunk contains an empty object, so assume that it may. */ - h->maybe_empty_object = 1; - } - if (lp) - { - h->object_base = h->next_free = (char *) (obj); - h->chunk_limit = lp->limit; - h->chunk = lp; - } - else if (obj != 0) - /* obj is not in any of the chunks! */ - abort (); -} - -/* This function is used from ANSI code. */ - -void -obstack_free (h, obj) - struct obstack *h; - POINTER obj; -{ - register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ - register struct _obstack_chunk *plp; /* point to previous chunk if any */ - - lp = h->chunk; - /* We use >= because there cannot be an object at the beginning of a chunk. - But there can be an empty object at that address - at the end of another chunk. */ - while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj)) - { - plp = lp->prev; - CALL_FREEFUN (h, lp); - lp = plp; - /* If we switch chunks, we can't tell whether the new current - chunk contains an empty object, so assume that it may. */ - h->maybe_empty_object = 1; - } - if (lp) - { - h->object_base = h->next_free = (char *) (obj); - h->chunk_limit = lp->limit; - h->chunk = lp; - } - else if (obj != 0) - /* obj is not in any of the chunks! */ - abort (); -} - -int -_obstack_memory_used (h) - struct obstack *h; -{ - register struct _obstack_chunk* lp; - register int nbytes = 0; - - for (lp = h->chunk; lp != 0; lp = lp->prev) - { - nbytes += lp->limit - (char *) lp; - } - return nbytes; -} - -/* Define the error handler. */ -#ifndef _ -# ifdef HAVE_LIBINTL_H -# include <libintl.h> -# ifndef _ -# define _(Str) gettext (Str) -# endif -# else -# define _(Str) (Str) -# endif -#endif -#if defined _LIBC && defined USE_IN_LIBIO -# include <libio/iolibio.h> -# define fputs(s, f) _IO_fputs (s, f) -#endif - -static void -print_and_abort () -{ - fputs (_("memory exhausted"), stderr); - fputc ('\n', stderr); - exit (obstack_exit_failure); -} - -#if 0 -/* These are now turned off because the applications do not use it - and it uses bcopy via obstack_grow, which causes trouble on sysV. */ - -/* Now define the functional versions of the obstack macros. - Define them to simply use the corresponding macros to do the job. */ - -#if defined (__STDC__) && __STDC__ -/* These function definitions do not work with non-ANSI preprocessors; - they won't pass through the macro names in parentheses. */ - -/* The function names appear in parentheses in order to prevent - the macro-definitions of the names from being expanded there. */ - -POINTER (obstack_base) (obstack) - struct obstack *obstack; -{ - return obstack_base (obstack); -} - -POINTER (obstack_next_free) (obstack) - struct obstack *obstack; -{ - return obstack_next_free (obstack); -} - -int (obstack_object_size) (obstack) - struct obstack *obstack; -{ - return obstack_object_size (obstack); -} - -int (obstack_room) (obstack) - struct obstack *obstack; -{ - return obstack_room (obstack); -} - -int (obstack_make_room) (obstack, length) - struct obstack *obstack; - int length; -{ - return obstack_make_room (obstack, length); -} - -void (obstack_grow) (obstack, pointer, length) - struct obstack *obstack; - POINTER pointer; - int length; -{ - obstack_grow (obstack, pointer, length); -} - -void (obstack_grow0) (obstack, pointer, length) - struct obstack *obstack; - POINTER pointer; - int length; -{ - obstack_grow0 (obstack, pointer, length); -} - -void (obstack_1grow) (obstack, character) - struct obstack *obstack; - int character; -{ - obstack_1grow (obstack, character); -} - -void (obstack_blank) (obstack, length) - struct obstack *obstack; - int length; -{ - obstack_blank (obstack, length); -} - -void (obstack_1grow_fast) (obstack, character) - struct obstack *obstack; - int character; -{ - obstack_1grow_fast (obstack, character); -} - -void (obstack_blank_fast) (obstack, length) - struct obstack *obstack; - int length; -{ - obstack_blank_fast (obstack, length); -} - -POINTER (obstack_finish) (obstack) - struct obstack *obstack; -{ - return obstack_finish (obstack); -} - -POINTER (obstack_alloc) (obstack, length) - struct obstack *obstack; - int length; -{ - return obstack_alloc (obstack, length); -} - -POINTER (obstack_copy) (obstack, pointer, length) - struct obstack *obstack; - POINTER pointer; - int length; -{ - return obstack_copy (obstack, pointer, length); -} - -POINTER (obstack_copy0) (obstack, pointer, length) - struct obstack *obstack; - POINTER pointer; - int length; -{ - return obstack_copy0 (obstack, pointer, length); -} - -#endif /* __STDC__ */ - -#endif /* 0 */ - -#endif /* !ELIDE_CODE */ diff --git a/lib/m4obstack.h b/lib/m4obstack.h deleted file mode 100644 index 4d49ce02..00000000 --- a/lib/m4obstack.h +++ /dev/null @@ -1,593 +0,0 @@ -/* obstack.h - object stack macros - Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* Summary: - -All the apparent functions defined here are macros. The idea -is that you would use these pre-tested macros to solve a -very specific set of problems, and they would run fast. -Caution: no side-effects in arguments please!! They may be -evaluated MANY times!! - -These macros operate a stack of objects. Each object starts life -small, and may grow to maturity. (Consider building a word syllable -by syllable.) An object can move while it is growing. Once it has -been "finished" it never changes address again. So the "top of the -stack" is typically an immature growing object, while the rest of the -stack is of mature, fixed size and fixed address objects. - -These routines grab large chunks of memory, using a function you -supply, called `obstack_chunk_alloc'. On occasion, they free chunks, -by calling `obstack_chunk_free'. You must define them and declare -them before using any obstack macros. - -Each independent stack is represented by a `struct obstack'. -Each of the obstack macros expects a pointer to such a structure -as the first argument. - -One motivation for this package is the problem of growing char strings -in symbol tables. Unless you are "fascist pig with a read-only mind" ---Gosper's immortal quote from HAKMEM item 154, out of context--you -would not like to put any arbitrary upper limit on the length of your -symbols. - -In practice this often means you will build many short symbols and a -few long symbols. At the time you are reading a symbol you don't know -how long it is. One traditional method is to read a symbol into a -buffer, realloc()ating the buffer every time you try to read a symbol -that is longer than the buffer. This is beaut, but you still will -want to copy the symbol from the buffer to a more permanent -symbol-table entry say about half the time. - -With obstacks, you can work differently. Use one obstack for all symbol -names. As you read a symbol, grow the name in the obstack gradually. -When the name is complete, finalize it. Then, if the symbol exists already, -free the newly read name. - -The way we do this is to take a large chunk, allocating memory from -low addresses. When you want to build a symbol in the chunk you just -add chars above the current "high water mark" in the chunk. When you -have finished adding chars, because you got to the end of the symbol, -you know how long the chars are, and you can create a new object. -Mostly the chars will not burst over the highest address of the chunk, -because you would typically expect a chunk to be (say) 100 times as -long as an average object. - -In case that isn't clear, when we have enough chars to make up -the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) -so we just point to it where it lies. No moving of chars is -needed and this is the second win: potentially long strings need -never be explicitly shuffled. Once an object is formed, it does not -change its address during its lifetime. - -When the chars burst over a chunk boundary, we allocate a larger -chunk, and then copy the partly formed object from the end of the old -chunk to the beginning of the new larger chunk. We then carry on -accreting characters to the end of the object as we normally would. - -A special macro is provided to add a single char at a time to a -growing object. This allows the use of register variables, which -break the ordinary 'growth' macro. - -Summary: - We allocate large chunks. - We carve out one object at a time from the current chunk. - Once carved, an object never moves. - We are free to append data of any size to the currently - growing object. - Exactly one object is growing in an obstack at any one time. - You can run one obstack per control block. - You may have as many control blocks as you dare. - Because of the way we do it, you can `unwind' an obstack - back to a previous state. (You may remove objects much - as you would with a stack.) -*/ - - -/* Don't do the contents of this file more than once. */ - -#ifndef _OBSTACK_H -#define _OBSTACK_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* We use subtraction of (char *) 0 instead of casting to int - because on word-addressable machines a simple cast to int - may ignore the byte-within-word field of the pointer. */ - -#ifndef __PTR_TO_INT -# define __PTR_TO_INT(P) ((P) - (char *) 0) -#endif - -#ifndef __INT_TO_PTR -# define __INT_TO_PTR(P) ((P) + (char *) 0) -#endif - -/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is - defined, as with GNU C, use that; that way we don't pollute the - namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is - available, include it and use ptrdiff_t. In traditional C, long is - the best that we can do. */ - -#ifdef __PTRDIFF_TYPE__ -# define PTR_INT_TYPE __PTRDIFF_TYPE__ -#else -# ifdef HAVE_STDDEF_H -# include <stddef.h> -# define PTR_INT_TYPE ptrdiff_t -# else -# define PTR_INT_TYPE long -# endif -#endif - -#if defined _LIBC || defined HAVE_STRING_H -# include <string.h> -# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) -#else -# ifdef memcpy -# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) -# else -# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N)) -# endif -#endif - -struct _obstack_chunk /* Lives at front of each chunk. */ -{ - char *limit; /* 1 past end of this chunk */ - struct _obstack_chunk *prev; /* address of prior chunk or NULL */ - char contents[4]; /* objects begin here */ -}; - -struct obstack /* control current object in current chunk */ -{ - long chunk_size; /* preferred size to allocate chunks in */ - struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ - char *object_base; /* address of object we are building */ - char *next_free; /* where to add next char to current object */ - char *chunk_limit; /* address of char after current chunk */ - PTR_INT_TYPE temp; /* Temporary for some macros. */ - int alignment_mask; /* Mask of alignment for each object. */ -#if defined __STDC__ && __STDC__ - /* These prototypes vary based on `use_extra_arg', and we use - casts to the prototypeless function type in all assignments, - but having prototypes here quiets -Wstrict-prototypes. */ - struct _obstack_chunk *(*chunkfun) (void *, long); - void (*freefun) (void *, struct _obstack_chunk *); - void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ -#else - struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */ - void (*freefun) (); /* User's function to free a chunk. */ - char *extra_arg; /* first arg for chunk alloc/dealloc funcs */ -#endif - unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */ - unsigned maybe_empty_object:1;/* There is a possibility that the current - chunk contains a zero-length object. This - prevents freeing the chunk if we allocate - a bigger chunk to replace it. */ - unsigned alloc_failed:1; /* No longer used, as we now call the failed - handler on error, but retained for binary - compatibility. */ -}; - -/* Declare the external functions we use; they are in obstack.c. */ - -#if defined __STDC__ && __STDC__ -extern void _obstack_newchunk (struct obstack *, int); -extern void _obstack_free (struct obstack *, void *); -extern int _obstack_begin (struct obstack *, int, int, - void *(*) (long), void (*) (void *)); -extern int _obstack_begin_1 (struct obstack *, int, int, - void *(*) (void *, long), - void (*) (void *, void *), void *); -extern int _obstack_memory_used (struct obstack *); -#else -extern void _obstack_newchunk (); -extern void _obstack_free (); -extern int _obstack_begin (); -extern int _obstack_begin_1 (); -extern int _obstack_memory_used (); -#endif - -#if defined __STDC__ && __STDC__ - -/* Do the function-declarations after the structs - but before defining the macros. */ - -void obstack_init (struct obstack *obstack); - -void * obstack_alloc (struct obstack *obstack, int size); - -void * obstack_copy (struct obstack *obstack, void *address, int size); -void * obstack_copy0 (struct obstack *obstack, void *address, int size); - -void obstack_free (struct obstack *obstack, void *block); - -void obstack_blank (struct obstack *obstack, int size); - -void obstack_grow (struct obstack *obstack, void *data, int size); -void obstack_grow0 (struct obstack *obstack, void *data, int size); - -void obstack_1grow (struct obstack *obstack, int data_char); -void obstack_ptr_grow (struct obstack *obstack, void *data); -void obstack_int_grow (struct obstack *obstack, int data); - -void * obstack_finish (struct obstack *obstack); - -int obstack_object_size (struct obstack *obstack); - -int obstack_room (struct obstack *obstack); -void obstack_make_room (struct obstack *obstack, int size); -void obstack_1grow_fast (struct obstack *obstack, int data_char); -void obstack_ptr_grow_fast (struct obstack *obstack, void *data); -void obstack_int_grow_fast (struct obstack *obstack, int data); -void obstack_blank_fast (struct obstack *obstack, int size); - -void * obstack_base (struct obstack *obstack); -void * obstack_next_free (struct obstack *obstack); -int obstack_alignment_mask (struct obstack *obstack); -int obstack_chunk_size (struct obstack *obstack); -int obstack_memory_used (struct obstack *obstack); - -#endif /* __STDC__ */ - -/* Non-ANSI C cannot really support alternative functions for these macros, - so we do not declare them. */ - -/* Error handler called when `obstack_chunk_alloc' failed to allocate - more memory. This can be set to a user defined function which - should either abort gracefully or use longjump - but shouldn't - return. The default action is to print a message and abort. */ -#if defined __STDC__ && __STDC__ -extern void (*obstack_alloc_failed_handler) (void); -#else -extern void (*obstack_alloc_failed_handler) (); -#endif - -/* Exit value used when `print_and_abort' is used. */ -extern int obstack_exit_failure; - -/* Pointer to beginning of object being allocated or to be allocated next. - Note that this might not be the final address of the object - because a new chunk might be needed to hold the final size. */ - -#define obstack_base(h) ((h)->object_base) - -/* Size for allocating ordinary chunks. */ - -#define obstack_chunk_size(h) ((h)->chunk_size) - -/* Pointer to next byte not yet allocated in current chunk. */ - -#define obstack_next_free(h) ((h)->next_free) - -/* Mask specifying low bits that should be clear in address of an object. */ - -#define obstack_alignment_mask(h) ((h)->alignment_mask) - -/* To prevent prototype warnings provide complete argument list in - standard C version. */ -#if defined __STDC__ && __STDC__ - -# define obstack_init(h) \ - _obstack_begin ((h), 0, 0, \ - (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) - -# define obstack_begin(h, size) \ - _obstack_begin ((h), (size), 0, \ - (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) - -# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ - _obstack_begin ((h), (size), (alignment), \ - (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun)) - -# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ - _obstack_begin_1 ((h), (size), (alignment), \ - (void *(*) (void *, long)) (chunkfun), \ - (void (*) (void *, void *)) (freefun), (arg)) - -# define obstack_chunkfun(h, newchunkfun) \ - ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) - -# define obstack_freefun(h, newfreefun) \ - ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) - -#else - -# define obstack_init(h) \ - _obstack_begin ((h), 0, 0, \ - (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free) - -# define obstack_begin(h, size) \ - _obstack_begin ((h), (size), 0, \ - (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free) - -# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ - _obstack_begin ((h), (size), (alignment), \ - (void *(*) ()) (chunkfun), (void (*) ()) (freefun)) - -# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ - _obstack_begin_1 ((h), (size), (alignment), \ - (void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg)) - -# define obstack_chunkfun(h, newchunkfun) \ - ((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun)) - -# define obstack_freefun(h, newfreefun) \ - ((h) -> freefun = (void (*)()) (newfreefun)) - -#endif - -#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar) - -#define obstack_blank_fast(h,n) ((h)->next_free += (n)) - -#define obstack_memory_used(h) _obstack_memory_used (h) - -#if defined __GNUC__ && defined __STDC__ && __STDC__ -/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and - does not implement __extension__. But that compiler doesn't define - __GNUC_MINOR__. */ -# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) -# define __extension__ -# endif - -/* For GNU C, if not -traditional, - we can define these macros to compute all args only once - without using a global variable. - Also, we can avoid using the `temp' slot, to make faster code. */ - -# define obstack_object_size(OBSTACK) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - (unsigned) (__o->next_free - __o->object_base); }) - -# define obstack_room(OBSTACK) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - (unsigned) (__o->chunk_limit - __o->next_free); }) - -# define obstack_make_room(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->chunk_limit - __o->next_free < __len) \ - _obstack_newchunk (__o, __len); \ - (void) 0; }) - -# define obstack_empty_p(OBSTACK) \ - __extension__ \ - ({ struct obstack *__o = (OBSTACK); \ - (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); }) - -# define obstack_grow(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->next_free + __len > __o->chunk_limit) \ - _obstack_newchunk (__o, __len); \ - _obstack_memcpy (__o->next_free, (char *) (where), __len); \ - __o->next_free += __len; \ - (void) 0; }) - -# define obstack_grow0(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->next_free + __len + 1 > __o->chunk_limit) \ - _obstack_newchunk (__o, __len + 1); \ - _obstack_memcpy (__o->next_free, (char *) (where), __len); \ - __o->next_free += __len; \ - *(__o->next_free)++ = 0; \ - (void) 0; }) - -# define obstack_1grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + 1 > __o->chunk_limit) \ - _obstack_newchunk (__o, 1); \ - *(__o->next_free)++ = (datum); \ - (void) 0; }) - -/* These assume that the obstack alignment is good enough for pointers or ints, - and that the data added so far to the current object - shares that much alignment. */ - -# define obstack_ptr_grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + sizeof (void *) > __o->chunk_limit) \ - _obstack_newchunk (__o, sizeof (void *)); \ - *((void **)__o->next_free)++ = ((void *)datum); \ - (void) 0; }) - -# define obstack_int_grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + sizeof (int) > __o->chunk_limit) \ - _obstack_newchunk (__o, sizeof (int)); \ - *((int *)__o->next_free)++ = ((int)datum); \ - (void) 0; }) - -# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr) -# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint) - -# define obstack_blank(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->chunk_limit - __o->next_free < __len) \ - _obstack_newchunk (__o, __len); \ - __o->next_free += __len; \ - (void) 0; }) - -# define obstack_alloc(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_blank (__h, (length)); \ - obstack_finish (__h); }) - -# define obstack_copy(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_grow (__h, (where), (length)); \ - obstack_finish (__h); }) - -# define obstack_copy0(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_grow0 (__h, (where), (length)); \ - obstack_finish (__h); }) - -/* The local variable is named __o1 to avoid a name conflict - when obstack_blank is called. */ -# define obstack_finish(OBSTACK) \ -__extension__ \ -({ struct obstack *__o1 = (OBSTACK); \ - void *value; \ - value = (void *) __o1->object_base; \ - if (__o1->next_free == value) \ - __o1->maybe_empty_object = 1; \ - __o1->next_free \ - = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ - & ~ (__o1->alignment_mask)); \ - if (__o1->next_free - (char *)__o1->chunk \ - > __o1->chunk_limit - (char *)__o1->chunk) \ - __o1->next_free = __o1->chunk_limit; \ - __o1->object_base = __o1->next_free; \ - value; }) - -# define obstack_free(OBSTACK, OBJ) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - void *__obj = (OBJ); \ - if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \ - __o->next_free = __o->object_base = (char *)__obj; \ - else (obstack_free) (__o, __obj); }) - -#else /* not __GNUC__ or not __STDC__ */ - -# define obstack_object_size(h) \ - (unsigned) ((h)->next_free - (h)->object_base) - -# define obstack_room(h) \ - (unsigned) ((h)->chunk_limit - (h)->next_free) - -# define obstack_empty_p(h) \ - ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0) - -/* Note that the call to _obstack_newchunk is enclosed in (..., 0) - so that we can avoid having void expressions - in the arms of the conditional expression. - Casting the third operand to void was tried before, - but some compilers won't accept it. */ - -# define obstack_make_room(h,length) \ -( (h)->temp = (length), \ - (((h)->next_free + (h)->temp > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp), 0) : 0)) - -# define obstack_grow(h,where,length) \ -( (h)->temp = (length), \ - (((h)->next_free + (h)->temp > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ - _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ - (h)->next_free += (h)->temp) - -# define obstack_grow0(h,where,length) \ -( (h)->temp = (length), \ - (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \ - _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ - (h)->next_free += (h)->temp, \ - *((h)->next_free)++ = 0) - -# define obstack_1grow(h,datum) \ -( (((h)->next_free + 1 > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), 1), 0) : 0), \ - (*((h)->next_free)++ = (datum))) - -# define obstack_ptr_grow(h,datum) \ -( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ - (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum))) - -# define obstack_int_grow(h,datum) \ -( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ - (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum))) - -# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr) -# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint) - -# define obstack_blank(h,length) \ -( (h)->temp = (length), \ - (((h)->chunk_limit - (h)->next_free < (h)->temp) \ - ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ - ((h)->next_free += (h)->temp)) - -# define obstack_alloc(h,length) \ - (obstack_blank ((h), (length)), obstack_finish ((h))) - -# define obstack_copy(h,where,length) \ - (obstack_grow ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_copy0(h,where,length) \ - (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_finish(h) \ -( ((h)->next_free == (h)->object_base \ - ? (((h)->maybe_empty_object = 1), 0) \ - : 0), \ - (h)->temp = __PTR_TO_INT ((h)->object_base), \ - (h)->next_free \ - = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \ - & ~ ((h)->alignment_mask)), \ - (((h)->next_free - (char *) (h)->chunk \ - > (h)->chunk_limit - (char *) (h)->chunk) \ - ? ((h)->next_free = (h)->chunk_limit) : 0), \ - (h)->object_base = (h)->next_free, \ - __INT_TO_PTR ((h)->temp)) - -# if defined __STDC__ && __STDC__ -# define obstack_free(h,obj) \ -( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ - (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\ - ? (int) ((h)->next_free = (h)->object_base \ - = (h)->temp + (char *) (h)->chunk) \ - : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0))) -# else -# define obstack_free(h,obj) \ -( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ - (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\ - ? (int) ((h)->next_free = (h)->object_base \ - = (h)->temp + (char *) (h)->chunk) \ - : (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0))) -# endif - -#endif /* not __GNUC__ or not __STDC__ */ - -#ifdef __cplusplus -} /* C++ */ -#endif - -#endif /* obstack.h */ diff --git a/lib/m4private.h b/lib/m4private.h deleted file mode 100644 index 03542d79..00000000 --- a/lib/m4private.h +++ /dev/null @@ -1,68 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1989, 90, 91, 92, 93, 94, 98 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - 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. -*/ - -struct token_data { - token_data_type type; - union { - struct { - char *text; -#ifdef ENABLE_CHANGEWORD - char *original_text; -#endif - } u_t; - struct { - builtin_func *func; - boolean traced; - } u_f; - } u; -}; - -#define TOKEN_DATA_TYPE(Td) ((Td)->type) -#define TOKEN_DATA_TEXT(Td) ((Td)->u.u_t.text) -#ifdef ENABLE_CHANGEWORD -# define TOKEN_DATA_ORIG_TEXT(Td) ((Td)->u.u_t.original_text) -#endif -#define TOKEN_DATA_FUNC(Td) ((Td)->u.u_f.func) -#define TOKEN_DATA_FUNC_TRACED(Td) ((Td)->u.u_f.traced) - -/* Redefine the exported function using macro to this faster - macro based version for internal use by the m4 code. */ -#undef M4ARG -#define M4ARG(i) (argc > (i) ? TOKEN_DATA_TEXT (argv[i]) : "") - -struct symbol -{ - struct symbol *next; - boolean traced; - boolean shadowed; - boolean macro_args; - boolean blind_no_args; - - char *name; - token_data data; -}; - -#define SYMBOL_NEXT(S) ((S)->next) -#define SYMBOL_TRACED(S) ((S)->traced) -#define SYMBOL_SHADOWED(S) ((S)->shadowed) -#define SYMBOL_MACRO_ARGS(S) ((S)->macro_args) -#define SYMBOL_BLIND_NO_ARGS(S) ((S)->blind_no_args) -#define SYMBOL_NAME(S) ((S)->name) -#define SYMBOL_TYPE(S) (TOKEN_DATA_TYPE (&(S)->data)) -#define SYMBOL_TEXT(S) (TOKEN_DATA_TEXT (&(S)->data)) -#define SYMBOL_FUNC(S) (TOKEN_DATA_FUNC (&(S)->data)) diff --git a/lib/m4regex.c b/lib/m4regex.c deleted file mode 100644 index 36f7faca..00000000 --- a/lib/m4regex.c +++ /dev/null @@ -1,5880 +0,0 @@ -/* Extended regular expression matching and search library, - version 0.12. - (Implements POSIX draft P1003.2/D11.2, except for some of the - internationalization features.) - Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* AIX requires this to be the first thing in the file. */ -#if defined _AIX && !defined REGEX_MALLOC - #pragma alloca -#endif - -#undef _GNU_SOURCE -#define _GNU_SOURCE - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#ifndef PARAMS -# if defined __GNUC__ || (defined __STDC__ && __STDC__) -# define PARAMS(args) args -# else -# define PARAMS(args) () -# endif /* GCC. */ -#endif /* Not PARAMS. */ - -#if defined STDC_HEADERS && !defined emacs -# include <stddef.h> -#else -/* We need this for `regex.h', and perhaps for the Emacs include files. */ -# include <sys/types.h> -#endif - -#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) - -/* For platform which support the ISO C amendement 1 functionality we - support user defined character classes. */ -#if defined _LIBC || WIDE_CHAR_SUPPORT -/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ -# include <wchar.h> -# include <wctype.h> -#endif - -#ifdef _LIBC -/* We have to keep the namespace clean. */ -# define regfree(preg) __regfree (preg) -# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) -# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) -# define regerror(errcode, preg, errbuf, errbuf_size) \ - __regerror(errcode, preg, errbuf, errbuf_size) -# define re_set_registers(bu, re, nu, st, en) \ - __re_set_registers (bu, re, nu, st, en) -# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ - __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) -# define re_match(bufp, string, size, pos, regs) \ - __re_match (bufp, string, size, pos, regs) -# define re_search(bufp, string, size, startpos, range, regs) \ - __re_search (bufp, string, size, startpos, range, regs) -# define re_compile_pattern(pattern, length, bufp) \ - __re_compile_pattern (pattern, length, bufp) -# define re_set_syntax(syntax) __re_set_syntax (syntax) -# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ - __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) -# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) - -#define btowc __btowc -#endif - -/* This is for other GNU distributions with internationalized messages. */ -#if HAVE_LIBINTL_H || defined _LIBC -# include <libintl.h> -#else -# define gettext(msgid) (msgid) -#endif - -#ifndef gettext_noop -/* This define is so xgettext can find the internationalizable - strings. */ -# define gettext_noop(String) String -#endif - -/* The `emacs' switch turns on certain matching commands - that make sense only in Emacs. */ -#ifdef emacs - -# include "lisp.h" -# include "buffer.h" -# include "syntax.h" - -#else /* not emacs */ - -/* If we are not linking with Emacs proper, - we can't use the relocating allocator - even if config.h says that we can. */ -# undef REL_ALLOC - -# if defined STDC_HEADERS || defined _LIBC -# include <stdlib.h> -# else -char *malloc (); -char *realloc (); -# endif - -/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow. - If nothing else has been done, use the method below. */ -# ifdef INHIBIT_STRING_HEADER -# if !(defined HAVE_BZERO && defined HAVE_BCOPY) -# if !defined bzero && !defined bcopy -# undef INHIBIT_STRING_HEADER -# endif -# endif -# endif - -/* This is the normal way of making sure we have a bcopy and a bzero. - This is used in most programs--a few other programs avoid this - by defining INHIBIT_STRING_HEADER. */ -# ifndef INHIBIT_STRING_HEADER -# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC -# include <string.h> -# ifndef bzero -# ifndef _LIBC -# define bzero(s, n) (memset (s, '\0', n), (s)) -# else -# define bzero(s, n) __bzero (s, n) -# endif -# endif -# else -# include <strings.h> -# ifndef memcmp -# define memcmp(s1, s2, n) bcmp (s1, s2, n) -# endif -# ifndef memcpy -# define memcpy(d, s, n) (bcopy (s, d, n), (d)) -# endif -# endif -# endif - -/* Define the syntax stuff for \<, \>, etc. */ - -/* This must be nonzero for the wordchar and notwordchar pattern - commands in re_match_2. */ -# ifndef Sword -# define Sword 1 -# endif - -# ifdef SWITCH_ENUM_BUG -# define SWITCH_ENUM_CAST(x) ((int)(x)) -# else -# define SWITCH_ENUM_CAST(x) (x) -# endif - -/* How many characters in the character set. */ -# define CHAR_SET_SIZE 256 - -# ifdef SYNTAX_TABLE - -extern char *re_syntax_table; - -# else /* not SYNTAX_TABLE */ - -static char re_syntax_table[CHAR_SET_SIZE]; - -static void -init_syntax_once () -{ - register int c; - static int done; - - if (done) - return; - - bzero (re_syntax_table, sizeof re_syntax_table); - - for (c = 'a'; c <= 'z'; c++) - re_syntax_table[c] = Sword; - - for (c = 'A'; c <= 'Z'; c++) - re_syntax_table[c] = Sword; - - for (c = '0'; c <= '9'; c++) - re_syntax_table[c] = Sword; - - re_syntax_table['_'] = Sword; - - done = 1; -} - -# endif /* not SYNTAX_TABLE */ - -# define SYNTAX(c) re_syntax_table[c] - -#endif /* not emacs */ - -/* Get the interface, including the syntax bits. */ -#include <m4regex.h> - -/* isalpha etc. are used for the character classes. */ -#include <ctype.h> - -/* Jim Meyering writes: - - "... Some ctype macros are valid only for character codes that - isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when - using /bin/cc or gcc but without giving an ansi option). So, all - ctype uses should be through macros like ISPRINT... If - STDC_HEADERS is defined, then autoconf has verified that the ctype - macros don't need to be guarded with references to isascii. ... - Defining isascii to 1 should let any compiler worth its salt - eliminate the && through constant folding." - Solaris defines some of these symbols so we must undefine them first. */ - -#undef ISASCII -#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -# define ISASCII(c) 1 -#else -# define ISASCII(c) isascii(c) -#endif - -#ifdef isblank -# define ISBLANK(c) (ISASCII (c) && isblank (c)) -#else -# define ISBLANK(c) ((c) == ' ' || (c) == '\t') -#endif -#ifdef isgraph -# define ISGRAPH(c) (ISASCII (c) && isgraph (c)) -#else -# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) -#endif - -#undef ISPRINT -#define ISPRINT(c) (ISASCII (c) && isprint (c)) -#define ISDIGIT(c) (ISASCII (c) && isdigit (c)) -#define ISALNUM(c) (ISASCII (c) && isalnum (c)) -#define ISALPHA(c) (ISASCII (c) && isalpha (c)) -#define ISCNTRL(c) (ISASCII (c) && iscntrl (c)) -#define ISLOWER(c) (ISASCII (c) && islower (c)) -#define ISPUNCT(c) (ISASCII (c) && ispunct (c)) -#define ISSPACE(c) (ISASCII (c) && isspace (c)) -#define ISUPPER(c) (ISASCII (c) && isupper (c)) -#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) - -#ifdef _tolower -# define TOLOWER(c) _tolower(c) -#else -# define TOLOWER(c) tolower(c) -#endif - -#ifndef NULL -# define NULL (void *)0 -#endif - -/* We remove any previous definition of `SIGN_EXTEND_CHAR', - since ours (we hope) works properly with all combinations of - machines, compilers, `char' and `unsigned char' argument types. - (Per Bothner suggested the basic approach.) */ -#undef SIGN_EXTEND_CHAR -#if __STDC__ -# define SIGN_EXTEND_CHAR(c) ((signed char) (c)) -#else /* not __STDC__ */ -/* As in Harbison and Steele. */ -# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) -#endif - -/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we - use `alloca' instead of `malloc'. This is because using malloc in - re_search* or re_match* could cause memory leaks when C-g is used in - Emacs; also, malloc is slower and causes storage fragmentation. On - the other hand, malloc is more portable, and easier to debug. - - Because we sometimes use alloca, some routines have to be macros, - not functions -- `alloca'-allocated space disappears at the end of the - function it is called in. */ - -#ifdef REGEX_MALLOC - -# define REGEX_ALLOCATE malloc -# define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize) -# define REGEX_FREE free - -#else /* not REGEX_MALLOC */ - -/* Emacs already defines alloca, sometimes. */ -# ifndef alloca - -/* Make alloca work the best possible way. */ -# ifdef __GNUC__ -# define alloca __builtin_alloca -# else /* not __GNUC__ */ -# if HAVE_ALLOCA_H -# include <alloca.h> -# endif /* HAVE_ALLOCA_H */ -# endif /* not __GNUC__ */ - -# endif /* not alloca */ - -# define REGEX_ALLOCATE alloca - -/* Assumes a `char *destination' variable. */ -# define REGEX_REALLOCATE(source, osize, nsize) \ - (destination = (char *) alloca (nsize), \ - memcpy (destination, source, osize)) - -/* No need to do anything to free, after alloca. */ -# define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */ - -#endif /* not REGEX_MALLOC */ - -/* Define how to allocate the failure stack. */ - -#if defined REL_ALLOC && defined REGEX_MALLOC - -# define REGEX_ALLOCATE_STACK(size) \ - r_alloc (&failure_stack_ptr, (size)) -# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ - r_re_alloc (&failure_stack_ptr, (nsize)) -# define REGEX_FREE_STACK(ptr) \ - r_alloc_free (&failure_stack_ptr) - -#else /* not using relocating allocator */ - -# ifdef REGEX_MALLOC - -# define REGEX_ALLOCATE_STACK malloc -# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) -# define REGEX_FREE_STACK free - -# else /* not REGEX_MALLOC */ - -# define REGEX_ALLOCATE_STACK alloca - -# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ - REGEX_REALLOCATE (source, osize, nsize) -/* No need to explicitly free anything. */ -# define REGEX_FREE_STACK(arg) - -# endif /* not REGEX_MALLOC */ -#endif /* not using relocating allocator */ - - -/* True if `size1' is non-NULL and PTR is pointing anywhere inside - `string1' or just past its end. This works if PTR is NULL, which is - a good thing. */ -#define FIRST_STRING_P(ptr) \ - (size1 && string1 <= (ptr) && (ptr) <= string1 + size1) - -/* (Re)Allocate N items of type T using malloc, or fail. */ -#define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t))) -#define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t))) -#define RETALLOC_IF(addr, n, t) \ - if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t) -#define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t))) - -#define BYTEWIDTH 8 /* In bits. */ - -#define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) - -#undef MAX -#undef MIN -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -typedef char boolean; -#define false 0 -#define true 1 - -static int re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp, - const char *string1, int size1, - const char *string2, int size2, - int pos, - struct re_registers *regs, - int stop)); - -/* These are the command codes that appear in compiled regular - expressions. Some opcodes are followed by argument bytes. A - command code can specify any interpretation whatsoever for its - arguments. Zero bytes may appear in the compiled regular expression. */ - -typedef enum -{ - no_op = 0, - - /* Succeed right away--no more backtracking. */ - succeed, - - /* Followed by one byte giving n, then by n literal bytes. */ - exactn, - - /* Matches any (more or less) character. */ - anychar, - - /* Matches any one char belonging to specified set. First - following byte is number of bitmap bytes. Then come bytes - for a bitmap saying which chars are in. Bits in each byte - are ordered low-bit-first. A character is in the set if its - bit is 1. A character too large to have a bit in the map is - automatically not in the set. */ - charset, - - /* Same parameters as charset, but match any character that is - not one of those specified. */ - charset_not, - - /* Start remembering the text that is matched, for storing in a - register. Followed by one byte with the register number, in - the range 0 to one less than the pattern buffer's re_nsub - field. Then followed by one byte with the number of groups - inner to this one. (This last has to be part of the - start_memory only because we need it in the on_failure_jump - of re_match_2.) */ - start_memory, - - /* Stop remembering the text that is matched and store it in a - memory register. Followed by one byte with the register - number, in the range 0 to one less than `re_nsub' in the - pattern buffer, and one byte with the number of inner groups, - just like `start_memory'. (We need the number of inner - groups here because we don't have any easy way of finding the - corresponding start_memory when we're at a stop_memory.) */ - stop_memory, - - /* Match a duplicate of something remembered. Followed by one - byte containing the register number. */ - duplicate, - - /* Fail unless at beginning of line. */ - begline, - - /* Fail unless at end of line. */ - endline, - - /* Succeeds if at beginning of buffer (if emacs) or at beginning - of string to be matched (if not). */ - begbuf, - - /* Analogously, for end of buffer/string. */ - endbuf, - - /* Followed by two byte relative address to which to jump. */ - jump, - - /* Same as jump, but marks the end of an alternative. */ - jump_past_alt, - - /* Followed by two-byte relative address of place to resume at - in case of failure. */ - on_failure_jump, - - /* Like on_failure_jump, but pushes a placeholder instead of the - current string position when executed. */ - on_failure_keep_string_jump, - - /* Throw away latest failure point and then jump to following - two-byte relative address. */ - pop_failure_jump, - - /* Change to pop_failure_jump if know won't have to backtrack to - match; otherwise change to jump. This is used to jump - back to the beginning of a repeat. If what follows this jump - clearly won't match what the repeat does, such that we can be - sure that there is no use backtracking out of repetitions - already matched, then we change it to a pop_failure_jump. - Followed by two-byte address. */ - maybe_pop_jump, - - /* Jump to following two-byte address, and push a dummy failure - point. This failure point will be thrown away if an attempt - is made to use it for a failure. A `+' construct makes this - before the first repeat. Also used as an intermediary kind - of jump when compiling an alternative. */ - dummy_failure_jump, - - /* Push a dummy failure point and continue. Used at the end of - alternatives. */ - push_dummy_failure, - - /* Followed by two-byte relative address and two-byte number n. - After matching N times, jump to the address upon failure. */ - succeed_n, - - /* Followed by two-byte relative address, and two-byte number n. - Jump to the address N times, then fail. */ - jump_n, - - /* Set the following two-byte relative address to the - subsequent two-byte number. The address *includes* the two - bytes of number. */ - set_number_at, - - wordchar, /* Matches any word-constituent character. */ - notwordchar, /* Matches any char that is not a word-constituent. */ - - wordbeg, /* Succeeds if at word beginning. */ - wordend, /* Succeeds if at word end. */ - - wordbound, /* Succeeds if at a word boundary. */ - notwordbound /* Succeeds if not at a word boundary. */ - -#ifdef emacs - ,before_dot, /* Succeeds if before point. */ - at_dot, /* Succeeds if at point. */ - after_dot, /* Succeeds if after point. */ - - /* Matches any character whose syntax is specified. Followed by - a byte which contains a syntax code, e.g., Sword. */ - syntaxspec, - - /* Matches any character whose syntax is not that specified. */ - notsyntaxspec -#endif /* emacs */ -} re_opcode_t; - -/* Common operations on the compiled pattern. */ - -/* Store NUMBER in two contiguous bytes starting at DESTINATION. */ - -#define STORE_NUMBER(destination, number) \ - do { \ - (destination)[0] = (number) & 0377; \ - (destination)[1] = (number) >> 8; \ - } while (0) - -/* Same as STORE_NUMBER, except increment DESTINATION to - the byte after where the number is stored. Therefore, DESTINATION - must be an lvalue. */ - -#define STORE_NUMBER_AND_INCR(destination, number) \ - do { \ - STORE_NUMBER (destination, number); \ - (destination) += 2; \ - } while (0) - -/* Put into DESTINATION a number stored in two contiguous bytes starting - at SOURCE. */ - -#define EXTRACT_NUMBER(destination, source) \ - do { \ - (destination) = *(source) & 0377; \ - (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \ - } while (0) - -#ifdef DEBUG -static void extract_number _RE_ARGS ((int *dest, unsigned char *source)); -static void -extract_number (dest, source) - int *dest; - unsigned char *source; -{ - int temp = SIGN_EXTEND_CHAR (*(source + 1)); - *dest = *source & 0377; - *dest += temp << 8; -} - -# ifndef EXTRACT_MACROS /* To debug the macros. */ -# undef EXTRACT_NUMBER -# define EXTRACT_NUMBER(dest, src) extract_number (&dest, src) -# endif /* not EXTRACT_MACROS */ - -#endif /* DEBUG */ - -/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number. - SOURCE must be an lvalue. */ - -#define EXTRACT_NUMBER_AND_INCR(destination, source) \ - do { \ - EXTRACT_NUMBER (destination, source); \ - (source) += 2; \ - } while (0) - -#ifdef DEBUG -static void extract_number_and_incr _RE_ARGS ((int *destination, - unsigned char **source)); -static void -extract_number_and_incr (destination, source) - int *destination; - unsigned char **source; -{ - extract_number (destination, *source); - *source += 2; -} - -# ifndef EXTRACT_MACROS -# undef EXTRACT_NUMBER_AND_INCR -# define EXTRACT_NUMBER_AND_INCR(dest, src) \ - extract_number_and_incr (&dest, &src) -# endif /* not EXTRACT_MACROS */ - -#endif /* DEBUG */ - -/* If DEBUG is defined, Regex prints many voluminous messages about what - it is doing (if the variable `debug' is nonzero). If linked with the - main program in `iregex.c', you can enter patterns and strings - interactively. And if linked with the main program in `main.c' and - the other test files, you can run the already-written tests. */ - -#ifdef DEBUG - -/* We use standard I/O for debugging. */ -# include <stdio.h> - -/* It is useful to test things that ``must'' be true when debugging. */ -# include <assert.h> - -static int debug; - -# define DEBUG_STATEMENT(e) e -# define DEBUG_PRINT1(x) if (debug) printf (x) -# define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2) -# define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3) -# define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4) -# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \ - if (debug) print_partial_compiled_pattern (s, e) -# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \ - if (debug) print_double_string (w, s1, sz1, s2, sz2) - - -/* Print the fastmap in human-readable form. */ - -void -print_fastmap (fastmap) - char *fastmap; -{ - unsigned was_a_range = 0; - unsigned i = 0; - - while (i < (1 << BYTEWIDTH)) - { - if (fastmap[i++]) - { - was_a_range = 0; - putchar (i - 1); - while (i < (1 << BYTEWIDTH) && fastmap[i]) - { - was_a_range = 1; - i++; - } - if (was_a_range) - { - printf ("-"); - putchar (i - 1); - } - } - } - putchar ('\n'); -} - - -/* Print a compiled pattern string in human-readable form, starting at - the START pointer into it and ending just before the pointer END. */ - -void -print_partial_compiled_pattern (start, end) - unsigned char *start; - unsigned char *end; -{ - int mcnt, mcnt2; - unsigned char *p1; - unsigned char *p = start; - unsigned char *pend = end; - - if (start == NULL) - { - printf ("(null)\n"); - return; - } - - /* Loop over pattern commands. */ - while (p < pend) - { - printf ("%d:\t", p - start); - - switch ((re_opcode_t) *p++) - { - case no_op: - printf ("/no_op"); - break; - - case exactn: - mcnt = *p++; - printf ("/exactn/%d", mcnt); - do - { - putchar ('/'); - putchar (*p++); - } - while (--mcnt); - break; - - case start_memory: - mcnt = *p++; - printf ("/start_memory/%d/%d", mcnt, *p++); - break; - - case stop_memory: - mcnt = *p++; - printf ("/stop_memory/%d/%d", mcnt, *p++); - break; - - case duplicate: - printf ("/duplicate/%d", *p++); - break; - - case anychar: - printf ("/anychar"); - break; - - case charset: - case charset_not: - { - register int c, last = -100; - register int in_range = 0; - - printf ("/charset [%s", - (re_opcode_t) *(p - 1) == charset_not ? "^" : ""); - - assert (p + *p < pend); - - for (c = 0; c < 256; c++) - if (c / 8 < *p - && (p[1 + (c/8)] & (1 << (c % 8)))) - { - /* Are we starting a range? */ - if (last + 1 == c && ! in_range) - { - putchar ('-'); - in_range = 1; - } - /* Have we broken a range? */ - else if (last + 1 != c && in_range) - { - putchar (last); - in_range = 0; - } - - if (! in_range) - putchar (c); - - last = c; - } - - if (in_range) - putchar (last); - - putchar (']'); - - p += 1 + *p; - } - break; - - case begline: - printf ("/begline"); - break; - - case endline: - printf ("/endline"); - break; - - case on_failure_jump: - extract_number_and_incr (&mcnt, &p); - printf ("/on_failure_jump to %d", p + mcnt - start); - break; - - case on_failure_keep_string_jump: - extract_number_and_incr (&mcnt, &p); - printf ("/on_failure_keep_string_jump to %d", p + mcnt - start); - break; - - case dummy_failure_jump: - extract_number_and_incr (&mcnt, &p); - printf ("/dummy_failure_jump to %d", p + mcnt - start); - break; - - case push_dummy_failure: - printf ("/push_dummy_failure"); - break; - - case maybe_pop_jump: - extract_number_and_incr (&mcnt, &p); - printf ("/maybe_pop_jump to %d", p + mcnt - start); - break; - - case pop_failure_jump: - extract_number_and_incr (&mcnt, &p); - printf ("/pop_failure_jump to %d", p + mcnt - start); - break; - - case jump_past_alt: - extract_number_and_incr (&mcnt, &p); - printf ("/jump_past_alt to %d", p + mcnt - start); - break; - - case jump: - extract_number_and_incr (&mcnt, &p); - printf ("/jump to %d", p + mcnt - start); - break; - - case succeed_n: - extract_number_and_incr (&mcnt, &p); - p1 = p + mcnt; - extract_number_and_incr (&mcnt2, &p); - printf ("/succeed_n to %d, %d times", p1 - start, mcnt2); - break; - - case jump_n: - extract_number_and_incr (&mcnt, &p); - p1 = p + mcnt; - extract_number_and_incr (&mcnt2, &p); - printf ("/jump_n to %d, %d times", p1 - start, mcnt2); - break; - - case set_number_at: - extract_number_and_incr (&mcnt, &p); - p1 = p + mcnt; - extract_number_and_incr (&mcnt2, &p); - printf ("/set_number_at location %d to %d", p1 - start, mcnt2); - break; - - case wordbound: - printf ("/wordbound"); - break; - - case notwordbound: - printf ("/notwordbound"); - break; - - case wordbeg: - printf ("/wordbeg"); - break; - - case wordend: - printf ("/wordend"); - -# ifdef emacs - case before_dot: - printf ("/before_dot"); - break; - - case at_dot: - printf ("/at_dot"); - break; - - case after_dot: - printf ("/after_dot"); - break; - - case syntaxspec: - printf ("/syntaxspec"); - mcnt = *p++; - printf ("/%d", mcnt); - break; - - case notsyntaxspec: - printf ("/notsyntaxspec"); - mcnt = *p++; - printf ("/%d", mcnt); - break; -# endif /* emacs */ - - case wordchar: - printf ("/wordchar"); - break; - - case notwordchar: - printf ("/notwordchar"); - break; - - case begbuf: - printf ("/begbuf"); - break; - - case endbuf: - printf ("/endbuf"); - break; - - default: - printf ("?%d", *(p-1)); - } - - putchar ('\n'); - } - - printf ("%d:\tend of pattern.\n", p - start); -} - - -void -print_compiled_pattern (bufp) - struct re_pattern_buffer *bufp; -{ - unsigned char *buffer = bufp->buffer; - - print_partial_compiled_pattern (buffer, buffer + bufp->used); - printf ("%ld bytes used/%ld bytes allocated.\n", - bufp->used, bufp->allocated); - - if (bufp->fastmap_accurate && bufp->fastmap) - { - printf ("fastmap: "); - print_fastmap (bufp->fastmap); - } - - printf ("re_nsub: %d\t", bufp->re_nsub); - printf ("regs_alloc: %d\t", bufp->regs_allocated); - printf ("can_be_null: %d\t", bufp->can_be_null); - printf ("newline_anchor: %d\n", bufp->newline_anchor); - printf ("no_sub: %d\t", bufp->no_sub); - printf ("not_bol: %d\t", bufp->not_bol); - printf ("not_eol: %d\t", bufp->not_eol); - printf ("syntax: %lx\n", bufp->syntax); - /* Perhaps we should print the translate table? */ -} - - -void -print_double_string (where, string1, size1, string2, size2) - const char *where; - const char *string1; - const char *string2; - int size1; - int size2; -{ - int this_char; - - if (where == NULL) - printf ("(null)"); - else - { - if (FIRST_STRING_P (where)) - { - for (this_char = where - string1; this_char < size1; this_char++) - putchar (string1[this_char]); - - where = string2; - } - - for (this_char = where - string2; this_char < size2; this_char++) - putchar (string2[this_char]); - } -} - -void -printchar (c) - int c; -{ - putc (c, stderr); -} - -#else /* not DEBUG */ - -# undef assert -# define assert(e) - -# define DEBUG_STATEMENT(e) -# define DEBUG_PRINT1(x) -# define DEBUG_PRINT2(x1, x2) -# define DEBUG_PRINT3(x1, x2, x3) -# define DEBUG_PRINT4(x1, x2, x3, x4) -# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) -# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) - -#endif /* not DEBUG */ - -/* Set by `re_set_syntax' to the current regexp syntax to recognize. Can - also be assigned to arbitrarily: each pattern buffer stores its own - syntax, so it can be changed between regex compilations. */ -/* This has no initializer because initialized variables in Emacs - become read-only after dumping. */ -reg_syntax_t re_syntax_options; - - -/* Specify the precise syntax of regexps for compilation. This provides - for compatibility for various utilities which historically have - different, incompatible syntaxes. - - The argument SYNTAX is a bit mask comprised of the various bits - defined in regex.h. We return the old syntax. */ - -reg_syntax_t -re_set_syntax (syntax) - reg_syntax_t syntax; -{ - reg_syntax_t ret = re_syntax_options; - - re_syntax_options = syntax; -#ifdef DEBUG - if (syntax & RE_DEBUG) - debug = 1; - else if (debug) /* was on but now is not */ - debug = 0; -#endif /* DEBUG */ - return ret; -} -#ifdef _LIBC -weak_alias (__re_set_syntax, re_set_syntax) -#endif - -/* This table gives an error message for each of the error codes listed - in regex.h. Obviously the order here has to be same as there. - POSIX doesn't require that we do anything for REG_NOERROR, - but why not be nice? */ - -static const char re_error_msgid[] = - { -#define REG_NOERROR_IDX 0 - gettext_noop ("Success") /* REG_NOERROR */ - "\0" -#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") - gettext_noop ("No match") /* REG_NOMATCH */ - "\0" -#define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") - gettext_noop ("Invalid regular expression") /* REG_BADPAT */ - "\0" -#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") - gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ - "\0" -#define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") - gettext_noop ("Invalid character class name") /* REG_ECTYPE */ - "\0" -#define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") - gettext_noop ("Trailing backslash") /* REG_EESCAPE */ - "\0" -#define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") - gettext_noop ("Invalid back reference") /* REG_ESUBREG */ - "\0" -#define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") - gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ - "\0" -#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") - gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ - "\0" -#define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") - gettext_noop ("Unmatched \\{") /* REG_EBRACE */ - "\0" -#define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") - gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ - "\0" -#define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") - gettext_noop ("Invalid range end") /* REG_ERANGE */ - "\0" -#define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") - gettext_noop ("Memory exhausted") /* REG_ESPACE */ - "\0" -#define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") - gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ - "\0" -#define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") - gettext_noop ("Premature end of regular expression") /* REG_EEND */ - "\0" -#define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") - gettext_noop ("Regular expression too big") /* REG_ESIZE */ - "\0" -#define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") - gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ - }; - -static const size_t re_error_msgid_idx[] = - { - REG_NOERROR_IDX, - REG_NOMATCH_IDX, - REG_BADPAT_IDX, - REG_ECOLLATE_IDX, - REG_ECTYPE_IDX, - REG_EESCAPE_IDX, - REG_ESUBREG_IDX, - REG_EBRACK_IDX, - REG_EPAREN_IDX, - REG_EBRACE_IDX, - REG_BADBR_IDX, - REG_ERANGE_IDX, - REG_ESPACE_IDX, - REG_BADRPT_IDX, - REG_EEND_IDX, - REG_ESIZE_IDX, - REG_ERPAREN_IDX - }; - -/* Avoiding alloca during matching, to placate r_alloc. */ - -/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the - searching and matching functions should not call alloca. On some - systems, alloca is implemented in terms of malloc, and if we're - using the relocating allocator routines, then malloc could cause a - relocation, which might (if the strings being searched are in the - ralloc heap) shift the data out from underneath the regexp - routines. - - Here's another reason to avoid allocation: Emacs - processes input from X in a signal handler; processing X input may - call malloc; if input arrives while a matching routine is calling - malloc, then we're scrod. But Emacs can't just block input while - calling matching routines; then we don't notice interrupts when - they come in. So, Emacs blocks input around all regexp calls - except the matching calls, which it leaves unprotected, in the - faith that they will not malloc. */ - -/* Normally, this is fine. */ -#define MATCH_MAY_ALLOCATE - -/* When using GNU C, we are not REALLY using the C alloca, no matter - what config.h may say. So don't take precautions for it. */ -#ifdef __GNUC__ -# undef C_ALLOCA -#endif - -/* The match routines may not allocate if (1) they would do it with malloc - and (2) it's not safe for them to use malloc. - Note that if REL_ALLOC is defined, matching would not use malloc for the - failure stack, but we would still use it for the register vectors; - so REL_ALLOC should not affect this. */ -#if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs -# undef MATCH_MAY_ALLOCATE -#endif - - -/* Failure stack declarations and macros; both re_compile_fastmap and - re_match_2 use a failure stack. These have to be macros because of - REGEX_ALLOCATE_STACK. */ - - -/* Number of failure points for which to initially allocate space - when matching. If this number is exceeded, we allocate more - space, so it is not a hard limit. */ -#ifndef INIT_FAILURE_ALLOC -# define INIT_FAILURE_ALLOC 5 -#endif - -/* Roughly the maximum number of failure points on the stack. Would be - exactly that if always used MAX_FAILURE_ITEMS items each time we failed. - This is a variable only so users of regex can assign to it; we never - change it ourselves. */ - -#ifdef INT_IS_16BIT - -# if defined MATCH_MAY_ALLOCATE -/* 4400 was enough to cause a crash on Alpha OSF/1, - whose default stack limit is 2mb. */ -long int re_max_failures = 4000; -# else -long int re_max_failures = 2000; -# endif - -union fail_stack_elt -{ - unsigned char *pointer; - long int integer; -}; - -typedef union fail_stack_elt fail_stack_elt_t; - -typedef struct -{ - fail_stack_elt_t *stack; - unsigned long int size; - unsigned long int avail; /* Offset of next open position. */ -} fail_stack_type; - -#else /* not INT_IS_16BIT */ - -# if defined MATCH_MAY_ALLOCATE -/* 4400 was enough to cause a crash on Alpha OSF/1, - whose default stack limit is 2mb. */ -int re_max_failures = 20000; -# else -int re_max_failures = 2000; -# endif - -union fail_stack_elt -{ - unsigned char *pointer; - int integer; -}; - -typedef union fail_stack_elt fail_stack_elt_t; - -typedef struct -{ - fail_stack_elt_t *stack; - unsigned size; - unsigned avail; /* Offset of next open position. */ -} fail_stack_type; - -#endif /* INT_IS_16BIT */ - -#define FAIL_STACK_EMPTY() (fail_stack.avail == 0) -#define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0) -#define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size) - - -/* Define macros to initialize and free the failure stack. - Do `return -2' if the alloc fails. */ - -#ifdef MATCH_MAY_ALLOCATE -# define INIT_FAIL_STACK() \ - do { \ - fail_stack.stack = (fail_stack_elt_t *) \ - REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \ - \ - if (fail_stack.stack == NULL) \ - return -2; \ - \ - fail_stack.size = INIT_FAILURE_ALLOC; \ - fail_stack.avail = 0; \ - } while (0) - -# define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack) -#else -# define INIT_FAIL_STACK() \ - do { \ - fail_stack.avail = 0; \ - } while (0) - -# define RESET_FAIL_STACK() -#endif - - -/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items. - - Return 1 if succeeds, and 0 if either ran out of memory - allocating space for it or it was already too large. - - REGEX_REALLOCATE_STACK requires `destination' be declared. */ - -#define DOUBLE_FAIL_STACK(fail_stack) \ - ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS) \ - ? 0 \ - : ((fail_stack).stack = (fail_stack_elt_t *) \ - REGEX_REALLOCATE_STACK ((fail_stack).stack, \ - (fail_stack).size * sizeof (fail_stack_elt_t), \ - ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)), \ - \ - (fail_stack).stack == NULL \ - ? 0 \ - : ((fail_stack).size <<= 1, \ - 1))) - - -/* Push pointer POINTER on FAIL_STACK. - Return 1 if was able to do so and 0 if ran out of memory allocating - space to do so. */ -#define PUSH_PATTERN_OP(POINTER, FAIL_STACK) \ - ((FAIL_STACK_FULL () \ - && !DOUBLE_FAIL_STACK (FAIL_STACK)) \ - ? 0 \ - : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER, \ - 1)) - -/* Push a pointer value onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -#define PUSH_FAILURE_POINTER(item) \ - fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (item) - -/* This pushes an integer-valued item onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -#define PUSH_FAILURE_INT(item) \ - fail_stack.stack[fail_stack.avail++].integer = (item) - -/* Push a fail_stack_elt_t value onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -#define PUSH_FAILURE_ELT(item) \ - fail_stack.stack[fail_stack.avail++] = (item) - -/* These three POP... operations complement the three PUSH... operations. - All assume that `fail_stack' is nonempty. */ -#define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer -#define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer -#define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail] - -/* Used to omit pushing failure point id's when we're not debugging. */ -#ifdef DEBUG -# define DEBUG_PUSH PUSH_FAILURE_INT -# define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT () -#else -# define DEBUG_PUSH(item) -# define DEBUG_POP(item_addr) -#endif - - -/* Push the information about the state we will need - if we ever fail back to it. - - Requires variables fail_stack, regstart, regend, reg_info, and - num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination' - be declared. - - Does `return FAILURE_CODE' if runs out of memory. */ - -#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \ - do { \ - char *destination; \ - /* Must be int, so when we don't save any registers, the arithmetic \ - of 0 + -1 isn't done as unsigned. */ \ - /* Can't be int, since there is not a shred of a guarantee that int \ - is wide enough to hold a value of something to which pointer can \ - be assigned */ \ - active_reg_t this_reg; \ - \ - DEBUG_STATEMENT (failure_id++); \ - DEBUG_STATEMENT (nfailure_points_pushed++); \ - DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \ - DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\ - DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\ - \ - DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \ - DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \ - \ - /* Ensure we have enough space allocated for what we will push. */ \ - while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \ - { \ - if (!DOUBLE_FAIL_STACK (fail_stack)) \ - return failure_code; \ - \ - DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \ - (fail_stack).size); \ - DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\ - } \ - \ - /* Push the info, starting with the registers. */ \ - DEBUG_PRINT1 ("\n"); \ - \ - if (1) \ - for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \ - this_reg++) \ - { \ - DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \ - DEBUG_STATEMENT (num_regs_pushed++); \ - \ - DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ - PUSH_FAILURE_POINTER (regstart[this_reg]); \ - \ - DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ - PUSH_FAILURE_POINTER (regend[this_reg]); \ - \ - DEBUG_PRINT2 (" info: %p\n ", \ - reg_info[this_reg].word.pointer); \ - DEBUG_PRINT2 (" match_null=%d", \ - REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \ - DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \ - DEBUG_PRINT2 (" matched_something=%d", \ - MATCHED_SOMETHING (reg_info[this_reg])); \ - DEBUG_PRINT2 (" ever_matched=%d", \ - EVER_MATCHED_SOMETHING (reg_info[this_reg])); \ - DEBUG_PRINT1 ("\n"); \ - PUSH_FAILURE_ELT (reg_info[this_reg].word); \ - } \ - \ - DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\ - PUSH_FAILURE_INT (lowest_active_reg); \ - \ - DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\ - PUSH_FAILURE_INT (highest_active_reg); \ - \ - DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \ - DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \ - PUSH_FAILURE_POINTER (pattern_place); \ - \ - DEBUG_PRINT2 (" Pushing string %p: `", string_place); \ - DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \ - size2); \ - DEBUG_PRINT1 ("'\n"); \ - PUSH_FAILURE_POINTER (string_place); \ - \ - DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \ - DEBUG_PUSH (failure_id); \ - } while (0) - -/* This is the number of items that are pushed and popped on the stack - for each register. */ -#define NUM_REG_ITEMS 3 - -/* Individual items aside from the registers. */ -#ifdef DEBUG -# define NUM_NONREG_ITEMS 5 /* Includes failure point id. */ -#else -# define NUM_NONREG_ITEMS 4 -#endif - -/* We push at most this many items on the stack. */ -/* We used to use (num_regs - 1), which is the number of registers - this regexp will save; but that was changed to 5 - to avoid stack overflow for a regexp with lots of parens. */ -#define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS) - -/* We actually push this many items. */ -#define NUM_FAILURE_ITEMS \ - (((0 \ - ? 0 : highest_active_reg - lowest_active_reg + 1) \ - * NUM_REG_ITEMS) \ - + NUM_NONREG_ITEMS) - -/* How many items can still be added to the stack without overflowing it. */ -#define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail) - - -/* Pops what PUSH_FAIL_STACK pushes. - - We restore into the parameters, all of which should be lvalues: - STR -- the saved data position. - PAT -- the saved pattern position. - LOW_REG, HIGH_REG -- the highest and lowest active registers. - REGSTART, REGEND -- arrays of string positions. - REG_INFO -- array of information about each subexpression. - - Also assumes the variables `fail_stack' and (if debugging), `bufp', - `pend', `string1', `size1', `string2', and `size2'. */ - -#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\ -{ \ - DEBUG_STATEMENT (unsigned failure_id;) \ - active_reg_t this_reg; \ - const unsigned char *string_temp; \ - \ - assert (!FAIL_STACK_EMPTY ()); \ - \ - /* Remove failure points and point to how many regs pushed. */ \ - DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \ - DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \ - DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \ - \ - assert (fail_stack.avail >= NUM_NONREG_ITEMS); \ - \ - DEBUG_POP (&failure_id); \ - DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \ - \ - /* If the saved string location is NULL, it came from an \ - on_failure_keep_string_jump opcode, and we want to throw away the \ - saved NULL, thus retaining our current position in the string. */ \ - string_temp = POP_FAILURE_POINTER (); \ - if (string_temp != NULL) \ - str = (const char *) string_temp; \ - \ - DEBUG_PRINT2 (" Popping string %p: `", str); \ - DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \ - DEBUG_PRINT1 ("'\n"); \ - \ - pat = (unsigned char *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \ - DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \ - \ - /* Restore register info. */ \ - high_reg = (active_reg_t) POP_FAILURE_INT (); \ - DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \ - \ - low_reg = (active_reg_t) POP_FAILURE_INT (); \ - DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \ - \ - if (1) \ - for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ - { \ - DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \ - \ - reg_info[this_reg].word = POP_FAILURE_ELT (); \ - DEBUG_PRINT2 (" info: %p\n", \ - reg_info[this_reg].word.pointer); \ - \ - regend[this_reg] = (const char *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ - \ - regstart[this_reg] = (const char *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ - } \ - else \ - { \ - for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \ - { \ - reg_info[this_reg].word.integer = 0; \ - regend[this_reg] = 0; \ - regstart[this_reg] = 0; \ - } \ - highest_active_reg = high_reg; \ - } \ - \ - set_regs_matched_done = 0; \ - DEBUG_STATEMENT (nfailure_points_popped++); \ -} /* POP_FAILURE_POINT */ - - - -/* Structure for per-register (a.k.a. per-group) information. - Other register information, such as the - starting and ending positions (which are addresses), and the list of - inner groups (which is a bits list) are maintained in separate - variables. - - We are making a (strictly speaking) nonportable assumption here: that - the compiler will pack our bit fields into something that fits into - the type of `word', i.e., is something that fits into one item on the - failure stack. */ - - -/* Declarations and macros for re_match_2. */ - -typedef union -{ - fail_stack_elt_t word; - struct - { - /* This field is one if this group can match the empty string, - zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */ -#define MATCH_NULL_UNSET_VALUE 3 - unsigned match_null_string_p : 2; - unsigned is_active : 1; - unsigned matched_something : 1; - unsigned ever_matched_something : 1; - } bits; -} register_info_type; - -#define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p) -#define IS_ACTIVE(R) ((R).bits.is_active) -#define MATCHED_SOMETHING(R) ((R).bits.matched_something) -#define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something) - - -/* Call this when have matched a real character; it sets `matched' flags - for the subexpressions which we are currently inside. Also records - that those subexprs have matched. */ -#define SET_REGS_MATCHED() \ - do \ - { \ - if (!set_regs_matched_done) \ - { \ - active_reg_t r; \ - set_regs_matched_done = 1; \ - for (r = lowest_active_reg; r <= highest_active_reg; r++) \ - { \ - MATCHED_SOMETHING (reg_info[r]) \ - = EVER_MATCHED_SOMETHING (reg_info[r]) \ - = 1; \ - } \ - } \ - } \ - while (0) - -/* Registers are set to a sentinel when they haven't yet matched. */ -static char reg_unset_dummy; -#define REG_UNSET_VALUE (®_unset_dummy) -#define REG_UNSET(e) ((e) == REG_UNSET_VALUE) - -/* Subroutine declarations and macros for regex_compile. */ - -static reg_errcode_t regex_compile _RE_ARGS ((const char *pattern, size_t size, - reg_syntax_t syntax, - struct re_pattern_buffer *bufp)); -static void store_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg)); -static void store_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc, - int arg1, int arg2)); -static void insert_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, - int arg, unsigned char *end)); -static void insert_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc, - int arg1, int arg2, unsigned char *end)); -static boolean at_begline_loc_p _RE_ARGS ((const char *pattern, const char *p, - reg_syntax_t syntax)); -static boolean at_endline_loc_p _RE_ARGS ((const char *p, const char *pend, - reg_syntax_t syntax)); -static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr, - const char *pend, - char *translate, - reg_syntax_t syntax, - unsigned char *b)); - -/* Fetch the next character in the uncompiled pattern---translating it - if necessary. Also cast from a signed character in the constant - string passed to us by the user to an unsigned char that we can use - as an array index (in, e.g., `translate'). */ -#ifndef PATFETCH -# define PATFETCH(c) \ - do {if (p == pend) return REG_EEND; \ - c = (unsigned char) *p++; \ - if (translate) c = (unsigned char) translate[c]; \ - } while (0) -#endif - -/* Fetch the next character in the uncompiled pattern, with no - translation. */ -#define PATFETCH_RAW(c) \ - do {if (p == pend) return REG_EEND; \ - c = (unsigned char) *p++; \ - } while (0) - -/* Go backwards one character in the pattern. */ -#define PATUNFETCH p-- - - -/* If `translate' is non-null, return translate[D], else just D. We - cast the subscript to translate because some data is declared as - `char *', to avoid warnings when a string constant is passed. But - when we use a character as a subscript we must make it unsigned. */ -#ifndef TRANSLATE -# define TRANSLATE(d) \ - (translate ? (char) translate[(unsigned char) (d)] : (d)) -#endif - - -/* Macros for outputting the compiled pattern into `buffer'. */ - -/* If the buffer isn't allocated when it comes in, use this. */ -#define INIT_BUF_SIZE 32 - -/* Make sure we have at least N more bytes of space in buffer. */ -#define GET_BUFFER_SPACE(n) \ - while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \ - EXTEND_BUFFER () - -/* Make sure we have one more byte of buffer space and then add C to it. */ -#define BUF_PUSH(c) \ - do { \ - GET_BUFFER_SPACE (1); \ - *b++ = (unsigned char) (c); \ - } while (0) - - -/* Ensure we have two more bytes of buffer space and then append C1 and C2. */ -#define BUF_PUSH_2(c1, c2) \ - do { \ - GET_BUFFER_SPACE (2); \ - *b++ = (unsigned char) (c1); \ - *b++ = (unsigned char) (c2); \ - } while (0) - - -/* As with BUF_PUSH_2, except for three bytes. */ -#define BUF_PUSH_3(c1, c2, c3) \ - do { \ - GET_BUFFER_SPACE (3); \ - *b++ = (unsigned char) (c1); \ - *b++ = (unsigned char) (c2); \ - *b++ = (unsigned char) (c3); \ - } while (0) - - -/* Store a jump with opcode OP at LOC to location TO. We store a - relative address offset by the three bytes the jump itself occupies. */ -#define STORE_JUMP(op, loc, to) \ - store_op1 (op, loc, (int) ((to) - (loc) - 3)) - -/* Likewise, for a two-argument jump. */ -#define STORE_JUMP2(op, loc, to, arg) \ - store_op2 (op, loc, (int) ((to) - (loc) - 3), arg) - -/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */ -#define INSERT_JUMP(op, loc, to) \ - insert_op1 (op, loc, (int) ((to) - (loc) - 3), b) - -/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */ -#define INSERT_JUMP2(op, loc, to, arg) \ - insert_op2 (op, loc, (int) ((to) - (loc) - 3), arg, b) - - -/* This is not an arbitrary limit: the arguments which represent offsets - into the pattern are two bytes long. So if 2^16 bytes turns out to - be too small, many things would have to change. */ -/* Any other compiler which, like MSC, has allocation limit below 2^16 - bytes will have to use approach similar to what was done below for - MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up - reallocating to 0 bytes. Such thing is not going to work too well. - You have been warned!! */ -#if defined _MSC_VER && !defined WIN32 -/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes. - The REALLOC define eliminates a flurry of conversion warnings, - but is not required. */ -# define MAX_BUF_SIZE 65500L -# define REALLOC(p,s) realloc ((p), (size_t) (s)) -#else -# define MAX_BUF_SIZE (1L << 16) -# define REALLOC(p,s) realloc ((p), (s)) -#endif - -/* Extend the buffer by twice its current size via realloc and - reset the pointers that pointed into the old block to point to the - correct places in the new one. If extending the buffer results in it - being larger than MAX_BUF_SIZE, then flag memory exhausted. */ -#define EXTEND_BUFFER() \ - do { \ - unsigned char *old_buffer = bufp->buffer; \ - if (bufp->allocated == MAX_BUF_SIZE) \ - return REG_ESIZE; \ - bufp->allocated <<= 1; \ - if (bufp->allocated > MAX_BUF_SIZE) \ - bufp->allocated = MAX_BUF_SIZE; \ - bufp->buffer = (unsigned char *) REALLOC (bufp->buffer, bufp->allocated);\ - if (bufp->buffer == NULL) \ - return REG_ESPACE; \ - /* If the buffer moved, move all the pointers into it. */ \ - if (old_buffer != bufp->buffer) \ - { \ - b = (b - old_buffer) + bufp->buffer; \ - begalt = (begalt - old_buffer) + bufp->buffer; \ - if (fixup_alt_jump) \ - fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\ - if (laststart) \ - laststart = (laststart - old_buffer) + bufp->buffer; \ - if (pending_exact) \ - pending_exact = (pending_exact - old_buffer) + bufp->buffer; \ - } \ - } while (0) - - -/* Since we have one byte reserved for the register number argument to - {start,stop}_memory, the maximum number of groups we can report - things about is what fits in that byte. */ -#define MAX_REGNUM 255 - -/* But patterns can have more than `MAX_REGNUM' registers. We just - ignore the excess. */ -typedef unsigned regnum_t; - - -/* Macros for the compile stack. */ - -/* Since offsets can go either forwards or backwards, this type needs to - be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */ -/* int may be not enough when sizeof(int) == 2. */ -typedef long pattern_offset_t; - -typedef struct -{ - pattern_offset_t begalt_offset; - pattern_offset_t fixup_alt_jump; - pattern_offset_t inner_group_offset; - pattern_offset_t laststart_offset; - regnum_t regnum; -} compile_stack_elt_t; - - -typedef struct -{ - compile_stack_elt_t *stack; - unsigned size; - unsigned avail; /* Offset of next open position. */ -} compile_stack_type; - - -#define INIT_COMPILE_STACK_SIZE 32 - -#define COMPILE_STACK_EMPTY (compile_stack.avail == 0) -#define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size) - -/* The next available element. */ -#define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) - - -/* Set the bit for character C in a list. */ -#define SET_LIST_BIT(c) \ - (b[((unsigned char) (c)) / BYTEWIDTH] \ - |= 1 << (((unsigned char) c) % BYTEWIDTH)) - - -/* Get the next unsigned number in the uncompiled pattern. */ -#define GET_UNSIGNED_NUMBER(num) \ - { if (p != pend) \ - { \ - PATFETCH (c); \ - while (ISDIGIT (c)) \ - { \ - if (num < 0) \ - num = 0; \ - num = num * 10 + c - '0'; \ - if (p == pend) \ - break; \ - PATFETCH (c); \ - } \ - } \ - } - -#if defined _LIBC || WIDE_CHAR_SUPPORT -/* The GNU C library provides support for user-defined character classes - and the functions from ISO C amendement 1. */ -# ifdef CHARCLASS_NAME_MAX -# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX -# else -/* This shouldn't happen but some implementation might still have this - problem. Use a reasonable default value. */ -# define CHAR_CLASS_MAX_LENGTH 256 -# endif - -# ifdef _LIBC -# define IS_CHAR_CLASS(string) __wctype (string) -# else -# define IS_CHAR_CLASS(string) wctype (string) -# endif -#else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ - -# define IS_CHAR_CLASS(string) \ - (STREQ (string, "alpha") || STREQ (string, "upper") \ - || STREQ (string, "lower") || STREQ (string, "digit") \ - || STREQ (string, "alnum") || STREQ (string, "xdigit") \ - || STREQ (string, "space") || STREQ (string, "print") \ - || STREQ (string, "punct") || STREQ (string, "graph") \ - || STREQ (string, "cntrl") || STREQ (string, "blank")) -#endif - -#ifndef MATCH_MAY_ALLOCATE - -/* If we cannot allocate large objects within re_match_2_internal, - we make the fail stack and register vectors global. - The fail stack, we grow to the maximum size when a regexp - is compiled. - The register vectors, we adjust in size each time we - compile a regexp, according to the number of registers it needs. */ - -static fail_stack_type fail_stack; - -/* Size with which the following vectors are currently allocated. - That is so we can make them bigger as needed, - but never make them smaller. */ -static int regs_allocated_size; - -static const char ** regstart, ** regend; -static const char ** old_regstart, ** old_regend; -static const char **best_regstart, **best_regend; -static register_info_type *reg_info; -static const char **reg_dummy; -static register_info_type *reg_info_dummy; - -/* Make the register vectors big enough for NUM_REGS registers, - but don't make them smaller. */ - -static -regex_grow_registers (num_regs) - int num_regs; -{ - if (num_regs > regs_allocated_size) - { - RETALLOC_IF (regstart, num_regs, const char *); - RETALLOC_IF (regend, num_regs, const char *); - RETALLOC_IF (old_regstart, num_regs, const char *); - RETALLOC_IF (old_regend, num_regs, const char *); - RETALLOC_IF (best_regstart, num_regs, const char *); - RETALLOC_IF (best_regend, num_regs, const char *); - RETALLOC_IF (reg_info, num_regs, register_info_type); - RETALLOC_IF (reg_dummy, num_regs, const char *); - RETALLOC_IF (reg_info_dummy, num_regs, register_info_type); - - regs_allocated_size = num_regs; - } -} - -#endif /* not MATCH_MAY_ALLOCATE */ - -static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type - compile_stack, - regnum_t regnum)); - -/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX. - Returns one of error codes defined in `regex.h', or zero for success. - - Assumes the `allocated' (and perhaps `buffer') and `translate' - fields are set in BUFP on entry. - - If it succeeds, results are put in BUFP (if it returns an error, the - contents of BUFP are undefined): - `buffer' is the compiled pattern; - `syntax' is set to SYNTAX; - `used' is set to the length of the compiled pattern; - `fastmap_accurate' is zero; - `re_nsub' is the number of subexpressions in PATTERN; - `not_bol' and `not_eol' are zero; - - The `fastmap' and `newline_anchor' fields are neither - examined nor set. */ - -/* Return, freeing storage we allocated. */ -#define FREE_STACK_RETURN(value) \ - return (free (compile_stack.stack), value) - -static reg_errcode_t -regex_compile (pattern, size, syntax, bufp) - const char *pattern; - size_t size; - reg_syntax_t syntax; - struct re_pattern_buffer *bufp; -{ - /* We fetch characters from PATTERN here. Even though PATTERN is - `char *' (i.e., signed), we declare these variables as unsigned, so - they can be reliably used as array indices. */ - register unsigned char c, c1; - - /* A random temporary spot in PATTERN. */ - const char *p1; - - /* Points to the end of the buffer, where we should append. */ - register unsigned char *b; - - /* Keeps track of unclosed groups. */ - compile_stack_type compile_stack; - - /* Points to the current (ending) position in the pattern. */ - const char *p = pattern; - const char *pend = pattern + size; - - /* How to translate the characters in the pattern. */ - RE_TRANSLATE_TYPE translate = bufp->translate; - - /* Address of the count-byte of the most recently inserted `exactn' - command. This makes it possible to tell if a new exact-match - character can be added to that command or if the character requires - a new `exactn' command. */ - unsigned char *pending_exact = 0; - - /* Address of start of the most recently finished expression. - This tells, e.g., postfix * where to find the start of its - operand. Reset at the beginning of groups and alternatives. */ - unsigned char *laststart = 0; - - /* Address of beginning of regexp, or inside of last group. */ - unsigned char *begalt; - - /* Place in the uncompiled pattern (i.e., the {) to - which to go back if the interval is invalid. */ - const char *beg_interval; - - /* Address of the place where a forward jump should go to the end of - the containing expression. Each alternative of an `or' -- except the - last -- ends with a forward jump of this sort. */ - unsigned char *fixup_alt_jump = 0; - - /* Counts open-groups as they are encountered. Remembered for the - matching close-group on the compile stack, so the same register - number is put in the stop_memory as the start_memory. */ - regnum_t regnum = 0; - -#ifdef DEBUG - DEBUG_PRINT1 ("\nCompiling pattern: "); - if (debug) - { - unsigned debug_count; - - for (debug_count = 0; debug_count < size; debug_count++) - putchar (pattern[debug_count]); - putchar ('\n'); - } -#endif /* DEBUG */ - - /* Initialize the compile stack. */ - compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t); - if (compile_stack.stack == NULL) - return REG_ESPACE; - - compile_stack.size = INIT_COMPILE_STACK_SIZE; - compile_stack.avail = 0; - - /* Initialize the pattern buffer. */ - bufp->syntax = syntax; - bufp->fastmap_accurate = 0; - bufp->not_bol = bufp->not_eol = 0; - - /* Set `used' to zero, so that if we return an error, the pattern - printer (for debugging) will think there's no pattern. We reset it - at the end. */ - bufp->used = 0; - - /* Always count groups, whether or not bufp->no_sub is set. */ - bufp->re_nsub = 0; - -#if !defined emacs && !defined SYNTAX_TABLE - /* Initialize the syntax table. */ - init_syntax_once (); -#endif - - if (bufp->allocated == 0) - { - if (bufp->buffer) - { /* If zero allocated, but buffer is non-null, try to realloc - enough space. This loses if buffer's address is bogus, but - that is the user's responsibility. */ - RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char); - } - else - { /* Caller did not allocate a buffer. Do it for them. */ - bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char); - } - if (!bufp->buffer) FREE_STACK_RETURN (REG_ESPACE); - - bufp->allocated = INIT_BUF_SIZE; - } - - begalt = b = bufp->buffer; - - /* Loop through the uncompiled pattern until we're at the end. */ - while (p != pend) - { - PATFETCH (c); - - switch (c) - { - case '^': - { - if ( /* If at start of pattern, it's an operator. */ - p == pattern + 1 - /* If context independent, it's an operator. */ - || syntax & RE_CONTEXT_INDEP_ANCHORS - /* Otherwise, depends on what's come before. */ - || at_begline_loc_p (pattern, p, syntax)) - BUF_PUSH (begline); - else - goto normal_char; - } - break; - - - case '$': - { - if ( /* If at end of pattern, it's an operator. */ - p == pend - /* If context independent, it's an operator. */ - || syntax & RE_CONTEXT_INDEP_ANCHORS - /* Otherwise, depends on what's next. */ - || at_endline_loc_p (p, pend, syntax)) - BUF_PUSH (endline); - else - goto normal_char; - } - break; - - - case '+': - case '?': - if ((syntax & RE_BK_PLUS_QM) - || (syntax & RE_LIMITED_OPS)) - goto normal_char; - handle_plus: - case '*': - /* If there is no previous pattern... */ - if (!laststart) - { - if (syntax & RE_CONTEXT_INVALID_OPS) - FREE_STACK_RETURN (REG_BADRPT); - else if (!(syntax & RE_CONTEXT_INDEP_OPS)) - goto normal_char; - } - - { - /* Are we optimizing this jump? */ - boolean keep_string_p = false; - - /* 1 means zero (many) matches is allowed. */ - char zero_times_ok = 0, many_times_ok = 0; - - /* If there is a sequence of repetition chars, collapse it - down to just one (the right one). We can't combine - interval operators with these because of, e.g., `a{2}*', - which should only match an even number of `a's. */ - - for (;;) - { - zero_times_ok |= c != '+'; - many_times_ok |= c != '?'; - - if (p == pend) - break; - - PATFETCH (c); - - if (c == '*' - || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?'))) - ; - - else if (syntax & RE_BK_PLUS_QM && c == '\\') - { - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - PATFETCH (c1); - if (!(c1 == '+' || c1 == '?')) - { - PATUNFETCH; - PATUNFETCH; - break; - } - - c = c1; - } - else - { - PATUNFETCH; - break; - } - - /* If we get here, we found another repeat character. */ - } - - /* Star, etc. applied to an empty pattern is equivalent - to an empty pattern. */ - if (!laststart) - break; - - /* Now we know whether or not zero matches is allowed - and also whether or not two or more matches is allowed. */ - if (many_times_ok) - { /* More than one repetition is allowed, so put in at the - end a backward relative jump from `b' to before the next - jump we're going to put in below (which jumps from - laststart to after this jump). - - But if we are at the `*' in the exact sequence `.*\n', - insert an unconditional jump backwards to the ., - instead of the beginning of the loop. This way we only - push a failure point once, instead of every time - through the loop. */ - assert (p - 1 > pattern); - - /* Allocate the space for the jump. */ - GET_BUFFER_SPACE (3); - - /* We know we are not at the first character of the pattern, - because laststart was nonzero. And we've already - incremented `p', by the way, to be the character after - the `*'. Do we have to do something analogous here - for null bytes, because of RE_DOT_NOT_NULL? */ - if (TRANSLATE (*(p - 2)) == TRANSLATE ('.') - && zero_times_ok - && p < pend && TRANSLATE (*p) == TRANSLATE ('\n') - && !(syntax & RE_DOT_NEWLINE)) - { /* We have .*\n. */ - STORE_JUMP (jump, b, laststart); - keep_string_p = true; - } - else - /* Anything else. */ - STORE_JUMP (maybe_pop_jump, b, laststart - 3); - - /* We've added more stuff to the buffer. */ - b += 3; - } - - /* On failure, jump from laststart to b + 3, which will be the - end of the buffer after this jump is inserted. */ - GET_BUFFER_SPACE (3); - INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump - : on_failure_jump, - laststart, b + 3); - pending_exact = 0; - b += 3; - - if (!zero_times_ok) - { - /* At least one repetition is required, so insert a - `dummy_failure_jump' before the initial - `on_failure_jump' instruction of the loop. This - effects a skip over that instruction the first time - we hit that loop. */ - GET_BUFFER_SPACE (3); - INSERT_JUMP (dummy_failure_jump, laststart, laststart + 6); - b += 3; - } - } - break; - - - case '.': - laststart = b; - BUF_PUSH (anychar); - break; - - - case '[': - { - boolean had_char_class = false; - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - /* Ensure that we have enough space to push a charset: the - opcode, the length count, and the bitset; 34 bytes in all. */ - GET_BUFFER_SPACE (34); - - laststart = b; - - /* We test `*p == '^' twice, instead of using an if - statement, so we only need one BUF_PUSH. */ - BUF_PUSH (*p == '^' ? charset_not : charset); - if (*p == '^') - p++; - - /* Remember the first position in the bracket expression. */ - p1 = p; - - /* Push the number of bytes in the bitmap. */ - BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH); - - /* Clear the whole map. */ - bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH); - - /* charset_not matches newline according to a syntax bit. */ - if ((re_opcode_t) b[-2] == charset_not - && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) - SET_LIST_BIT ('\n'); - - /* Read in characters and ranges, setting map bits. */ - for (;;) - { - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - PATFETCH (c); - - /* \ might escape characters inside [...] and [^...]. */ - if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') - { - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - PATFETCH (c1); - SET_LIST_BIT (c1); - continue; - } - - /* Could be the end of the bracket expression. If it's - not (i.e., when the bracket expression is `[]' so - far), the ']' character bit gets set way below. */ - if (c == ']' && p != p1 + 1) - break; - - /* Look ahead to see if it's a range when the last thing - was a character class. */ - if (had_char_class && c == '-' && *p != ']') - FREE_STACK_RETURN (REG_ERANGE); - - /* Look ahead to see if it's a range when the last thing - was a character: if this is a hyphen not at the - beginning or the end of a list, then it's the range - operator. */ - if (c == '-' - && !(p - 2 >= pattern && p[-2] == '[') - && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') - && *p != ']') - { - reg_errcode_t ret - = compile_range (&p, pend, translate, syntax, b); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - } - - else if (p[0] == '-' && p[1] != ']') - { /* This handles ranges made up of characters only. */ - reg_errcode_t ret; - - /* Move past the `-'. */ - PATFETCH (c1); - - ret = compile_range (&p, pend, translate, syntax, b); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - } - - /* See if we're at the beginning of a possible character - class. */ - - else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') - { /* Leave room for the null. */ - char str[CHAR_CLASS_MAX_LENGTH + 1]; - - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[:'. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == ':' && *p == ']') || p == pend) - break; - if (c1 < CHAR_CLASS_MAX_LENGTH) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - /* If isn't a word bracketed by `[:' and `:]': - undo the ending character, the letters, and leave - the leading `:' and `[' (but set bits for them). */ - if (c == ':' && *p == ']') - { -#if defined _LIBC || WIDE_CHAR_SUPPORT - boolean is_lower = STREQ (str, "lower"); - boolean is_upper = STREQ (str, "upper"); - wctype_t wt; - int ch; - - wt = IS_CHAR_CLASS (str); - if (wt == 0) - FREE_STACK_RETURN (REG_ECTYPE); - - /* Throw away the ] at the end of the character - class. */ - PATFETCH (c); - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (ch = 0; ch < 1 << BYTEWIDTH; ++ch) - { -# ifdef _LIBC - if (__iswctype (__btowc (ch), wt)) - SET_LIST_BIT (ch); -# else - if (iswctype (btowc (ch), wt)) - SET_LIST_BIT (ch); -# endif - - if (translate && (is_upper || is_lower) - && (ISUPPER (ch) || ISLOWER (ch))) - SET_LIST_BIT (ch); - } - - had_char_class = true; -#else - int ch; - boolean is_alnum = STREQ (str, "alnum"); - boolean is_alpha = STREQ (str, "alpha"); - boolean is_blank = STREQ (str, "blank"); - boolean is_cntrl = STREQ (str, "cntrl"); - boolean is_digit = STREQ (str, "digit"); - boolean is_graph = STREQ (str, "graph"); - boolean is_lower = STREQ (str, "lower"); - boolean is_print = STREQ (str, "print"); - boolean is_punct = STREQ (str, "punct"); - boolean is_space = STREQ (str, "space"); - boolean is_upper = STREQ (str, "upper"); - boolean is_xdigit = STREQ (str, "xdigit"); - - if (!IS_CHAR_CLASS (str)) - FREE_STACK_RETURN (REG_ECTYPE); - - /* Throw away the ] at the end of the character - class. */ - PATFETCH (c); - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (ch = 0; ch < 1 << BYTEWIDTH; ch++) - { - /* This was split into 3 if's to - avoid an arbitrary limit in some compiler. */ - if ( (is_alnum && ISALNUM (ch)) - || (is_alpha && ISALPHA (ch)) - || (is_blank && ISBLANK (ch)) - || (is_cntrl && ISCNTRL (ch))) - SET_LIST_BIT (ch); - if ( (is_digit && ISDIGIT (ch)) - || (is_graph && ISGRAPH (ch)) - || (is_lower && ISLOWER (ch)) - || (is_print && ISPRINT (ch))) - SET_LIST_BIT (ch); - if ( (is_punct && ISPUNCT (ch)) - || (is_space && ISSPACE (ch)) - || (is_upper && ISUPPER (ch)) - || (is_xdigit && ISXDIGIT (ch))) - SET_LIST_BIT (ch); - if ( translate && (is_upper || is_lower) - && (ISUPPER (ch) || ISLOWER (ch))) - SET_LIST_BIT (ch); - } - had_char_class = true; -#endif /* libc || wctype.h */ - } - else - { - c1++; - while (c1--) - PATUNFETCH; - SET_LIST_BIT ('['); - SET_LIST_BIT (':'); - had_char_class = false; - } - } - else - { - had_char_class = false; - SET_LIST_BIT (c); - } - } - - /* Discard any (non)matching list bytes that are all 0 at the - end of the map. Decrease the map-length byte too. */ - while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) - b[-1]--; - b += b[-1]; - } - break; - - - case '(': - if (syntax & RE_NO_BK_PARENS) - goto handle_open; - else - goto normal_char; - - - case ')': - if (syntax & RE_NO_BK_PARENS) - goto handle_close; - else - goto normal_char; - - - case '\n': - if (syntax & RE_NEWLINE_ALT) - goto handle_alt; - else - goto normal_char; - - - case '|': - if (syntax & RE_NO_BK_VBAR) - goto handle_alt; - else - goto normal_char; - - - case '{': - if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES) - goto handle_interval; - else - goto normal_char; - - - case '\\': - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - /* Do not translate the character after the \, so that we can - distinguish, e.g., \B from \b, even if we normally would - translate, e.g., B to b. */ - PATFETCH_RAW (c); - - switch (c) - { - case '(': - if (syntax & RE_NO_BK_PARENS) - goto normal_backslash; - - handle_open: - bufp->re_nsub++; - regnum++; - - if (COMPILE_STACK_FULL) - { - RETALLOC (compile_stack.stack, compile_stack.size << 1, - compile_stack_elt_t); - if (compile_stack.stack == NULL) return REG_ESPACE; - - compile_stack.size <<= 1; - } - - /* These are the values to restore when we hit end of this - group. They are all relative offsets, so that if the - whole pattern moves because of realloc, they will still - be valid. */ - COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer; - COMPILE_STACK_TOP.fixup_alt_jump - = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0; - COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer; - COMPILE_STACK_TOP.regnum = regnum; - - /* We will eventually replace the 0 with the number of - groups inner to this one. But do not push a - start_memory for groups beyond the last one we can - represent in the compiled pattern. */ - if (regnum <= MAX_REGNUM) - { - COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2; - BUF_PUSH_3 (start_memory, regnum, 0); - } - - compile_stack.avail++; - - fixup_alt_jump = 0; - laststart = 0; - begalt = b; - /* If we've reached MAX_REGNUM groups, then this open - won't actually generate any code, so we'll have to - clear pending_exact explicitly. */ - pending_exact = 0; - break; - - - case ')': - if (syntax & RE_NO_BK_PARENS) goto normal_backslash; - - if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - - handle_close: - if (fixup_alt_jump) - { /* Push a dummy failure point at the end of the - alternative for a possible future - `pop_failure_jump' to pop. See comments at - `push_dummy_failure' in `re_match_2'. */ - BUF_PUSH (push_dummy_failure); - - /* We allocated space for this jump when we assigned - to `fixup_alt_jump', in the `handle_alt' case below. */ - STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1); - } - - /* See similar code for backslashed left paren above. */ - if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - - /* Since we just checked for an empty stack above, this - ``can't happen''. */ - assert (compile_stack.avail != 0); - { - /* We don't just want to restore into `regnum', because - later groups should continue to be numbered higher, - as in `(ab)c(de)' -- the second group is #2. */ - regnum_t this_group_regnum; - - compile_stack.avail--; - begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset; - fixup_alt_jump - = COMPILE_STACK_TOP.fixup_alt_jump - ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1 - : 0; - laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset; - this_group_regnum = COMPILE_STACK_TOP.regnum; - /* If we've reached MAX_REGNUM groups, then this open - won't actually generate any code, so we'll have to - clear pending_exact explicitly. */ - pending_exact = 0; - - /* We're at the end of the group, so now we know how many - groups were inside this one. */ - if (this_group_regnum <= MAX_REGNUM) - { - unsigned char *inner_group_loc - = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset; - - *inner_group_loc = regnum - this_group_regnum; - BUF_PUSH_3 (stop_memory, this_group_regnum, - regnum - this_group_regnum); - } - } - break; - - - case '|': /* `\|'. */ - if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR) - goto normal_backslash; - handle_alt: - if (syntax & RE_LIMITED_OPS) - goto normal_char; - - /* Insert before the previous alternative a jump which - jumps to this alternative if the former fails. */ - GET_BUFFER_SPACE (3); - INSERT_JUMP (on_failure_jump, begalt, b + 6); - pending_exact = 0; - b += 3; - - /* The alternative before this one has a jump after it - which gets executed if it gets matched. Adjust that - jump so it will jump to this alternative's analogous - jump (put in below, which in turn will jump to the next - (if any) alternative's such jump, etc.). The last such - jump jumps to the correct final destination. A picture: - _____ _____ - | | | | - | v | v - a | b | c - - If we are at `b', then fixup_alt_jump right now points to a - three-byte space after `a'. We'll put in the jump, set - fixup_alt_jump to right after `b', and leave behind three - bytes which we'll fill in when we get to after `c'. */ - - if (fixup_alt_jump) - STORE_JUMP (jump_past_alt, fixup_alt_jump, b); - - /* Mark and leave space for a jump after this alternative, - to be filled in later either by next alternative or - when know we're at the end of a series of alternatives. */ - fixup_alt_jump = b; - GET_BUFFER_SPACE (3); - b += 3; - - laststart = 0; - begalt = b; - break; - - - case '{': - /* If \{ is a literal. */ - if (!(syntax & RE_INTERVALS) - /* If we're at `\{' and it's not the open-interval - operator. */ - || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) - || (p - 2 == pattern && p == pend)) - goto normal_backslash; - - handle_interval: - { - /* If got here, then the syntax allows intervals. */ - - /* At least (most) this many matches must be made. */ - int lower_bound = -1, upper_bound = -1; - - beg_interval = p - 1; - - if (p == pend) - { - if (syntax & RE_NO_BK_BRACES) - goto unfetch_interval; - else - FREE_STACK_RETURN (REG_EBRACE); - } - - GET_UNSIGNED_NUMBER (lower_bound); - - if (c == ',') - { - GET_UNSIGNED_NUMBER (upper_bound); - if (upper_bound < 0) upper_bound = RE_DUP_MAX; - } - else - /* Interval such as `{1}' => match exactly once. */ - upper_bound = lower_bound; - - if (lower_bound < 0 || upper_bound > RE_DUP_MAX - || lower_bound > upper_bound) - { - if (syntax & RE_NO_BK_BRACES) - goto unfetch_interval; - else - FREE_STACK_RETURN (REG_BADBR); - } - - if (!(syntax & RE_NO_BK_BRACES)) - { - if (c != '\\') FREE_STACK_RETURN (REG_EBRACE); - - PATFETCH (c); - } - - if (c != '}') - { - if (syntax & RE_NO_BK_BRACES) - goto unfetch_interval; - else - FREE_STACK_RETURN (REG_BADBR); - } - - /* We just parsed a valid interval. */ - - /* If it's invalid to have no preceding re. */ - if (!laststart) - { - if (syntax & RE_CONTEXT_INVALID_OPS) - FREE_STACK_RETURN (REG_BADRPT); - else if (syntax & RE_CONTEXT_INDEP_OPS) - laststart = b; - else - goto unfetch_interval; - } - - /* If the upper bound is zero, don't want to succeed at - all; jump from `laststart' to `b + 3', which will be - the end of the buffer after we insert the jump. */ - if (upper_bound == 0) - { - GET_BUFFER_SPACE (3); - INSERT_JUMP (jump, laststart, b + 3); - b += 3; - } - - /* Otherwise, we have a nontrivial interval. When - we're all done, the pattern will look like: - set_number_at <jump count> <upper bound> - set_number_at <succeed_n count> <lower bound> - succeed_n <after jump addr> <succeed_n count> - <body of loop> - jump_n <succeed_n addr> <jump count> - (The upper bound and `jump_n' are omitted if - `upper_bound' is 1, though.) */ - else - { /* If the upper bound is > 1, we need to insert - more at the end of the loop. */ - unsigned nbytes = 10 + (upper_bound > 1) * 10; - - GET_BUFFER_SPACE (nbytes); - - /* Initialize lower bound of the `succeed_n', even - though it will be set during matching by its - attendant `set_number_at' (inserted next), - because `re_compile_fastmap' needs to know. - Jump to the `jump_n' we might insert below. */ - INSERT_JUMP2 (succeed_n, laststart, - b + 5 + (upper_bound > 1) * 5, - lower_bound); - b += 5; - - /* Code to initialize the lower bound. Insert - before the `succeed_n'. The `5' is the last two - bytes of this `set_number_at', plus 3 bytes of - the following `succeed_n'. */ - insert_op2 (set_number_at, laststart, 5, lower_bound, b); - b += 5; - - if (upper_bound > 1) - { /* More than one repetition is allowed, so - append a backward jump to the `succeed_n' - that starts this interval. - - When we've reached this during matching, - we'll have matched the interval once, so - jump back only `upper_bound - 1' times. */ - STORE_JUMP2 (jump_n, b, laststart + 5, - upper_bound - 1); - b += 5; - - /* The location we want to set is the second - parameter of the `jump_n'; that is `b-2' as - an absolute address. `laststart' will be - the `set_number_at' we're about to insert; - `laststart+3' the number to set, the source - for the relative address. But we are - inserting into the middle of the pattern -- - so everything is getting moved up by 5. - Conclusion: (b - 2) - (laststart + 3) + 5, - i.e., b - laststart. - - We insert this at the beginning of the loop - so that if we fail during matching, we'll - reinitialize the bounds. */ - insert_op2 (set_number_at, laststart, b - laststart, - upper_bound - 1, b); - b += 5; - } - } - pending_exact = 0; - beg_interval = NULL; - } - break; - - unfetch_interval: - /* If an invalid interval, match the characters as literals. */ - assert (beg_interval); - p = beg_interval; - beg_interval = NULL; - - /* normal_char and normal_backslash need `c'. */ - PATFETCH (c); - - if (!(syntax & RE_NO_BK_BRACES)) - { - if (p > pattern && p[-1] == '\\') - goto normal_backslash; - } - goto normal_char; - -#ifdef emacs - /* There is no way to specify the before_dot and after_dot - operators. rms says this is ok. --karl */ - case '=': - BUF_PUSH (at_dot); - break; - - case 's': - laststart = b; - PATFETCH (c); - BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]); - break; - - case 'S': - laststart = b; - PATFETCH (c); - BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]); - break; -#endif /* emacs */ - - - case 'w': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - laststart = b; - BUF_PUSH (wordchar); - break; - - - case 'W': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - laststart = b; - BUF_PUSH (notwordchar); - break; - - - case '<': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordbeg); - break; - - case '>': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordend); - break; - - case 'b': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordbound); - break; - - case 'B': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (notwordbound); - break; - - case '`': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (begbuf); - break; - - case '\'': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (endbuf); - break; - - case '1': case '2': case '3': case '4': case '5': - case '6': case '7': case '8': case '9': - if (syntax & RE_NO_BK_REFS) - goto normal_char; - - c1 = c - '0'; - - if (c1 > regnum) - FREE_STACK_RETURN (REG_ESUBREG); - - /* Can't back reference to a subexpression if inside of it. */ - if (group_in_compile_stack (compile_stack, (regnum_t) c1)) - goto normal_char; - - laststart = b; - BUF_PUSH_2 (duplicate, c1); - break; - - - case '+': - case '?': - if (syntax & RE_BK_PLUS_QM) - goto handle_plus; - else - goto normal_backslash; - - default: - normal_backslash: - /* You might think it would be useful for \ to mean - not to translate; but if we don't translate it - it will never match anything. */ - c = TRANSLATE (c); - goto normal_char; - } - break; - - - default: - /* Expects the character in `c'. */ - normal_char: - /* If no exactn currently being built. */ - if (!pending_exact - - /* If last exactn not at current position. */ - || pending_exact + *pending_exact + 1 != b - - /* We have only one byte following the exactn for the count. */ - || *pending_exact == (1 << BYTEWIDTH) - 1 - - /* If followed by a repetition operator. */ - || *p == '*' || *p == '^' - || ((syntax & RE_BK_PLUS_QM) - ? *p == '\\' && (p[1] == '+' || p[1] == '?') - : (*p == '+' || *p == '?')) - || ((syntax & RE_INTERVALS) - && ((syntax & RE_NO_BK_BRACES) - ? *p == '{' - : (p[0] == '\\' && p[1] == '{')))) - { - /* Start building a new exactn. */ - - laststart = b; - - BUF_PUSH_2 (exactn, 0); - pending_exact = b - 1; - } - - BUF_PUSH (c); - (*pending_exact)++; - break; - } /* switch (c) */ - } /* while p != pend */ - - - /* Through the pattern now. */ - - if (fixup_alt_jump) - STORE_JUMP (jump_past_alt, fixup_alt_jump, b); - - if (!COMPILE_STACK_EMPTY) - FREE_STACK_RETURN (REG_EPAREN); - - /* If we don't want backtracking, force success - the first time we reach the end of the compiled pattern. */ - if (syntax & RE_NO_POSIX_BACKTRACKING) - BUF_PUSH (succeed); - - free (compile_stack.stack); - - /* We have succeeded; set the length of the buffer. */ - bufp->used = b - bufp->buffer; - -#ifdef DEBUG - if (debug) - { - DEBUG_PRINT1 ("\nCompiled pattern: \n"); - print_compiled_pattern (bufp); - } -#endif /* DEBUG */ - -#ifndef MATCH_MAY_ALLOCATE - /* Initialize the failure stack to the largest possible stack. This - isn't necessary unless we're trying to avoid calling alloca in - the search and match routines. */ - { - int num_regs = bufp->re_nsub + 1; - - /* Since DOUBLE_FAIL_STACK refuses to double only if the current size - is strictly greater than re_max_failures, the largest possible stack - is 2 * re_max_failures failure points. */ - if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS)) - { - fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); - -# ifdef emacs - if (! fail_stack.stack) - fail_stack.stack - = (fail_stack_elt_t *) xmalloc (fail_stack.size - * sizeof (fail_stack_elt_t)); - else - fail_stack.stack - = (fail_stack_elt_t *) xrealloc (fail_stack.stack, - (fail_stack.size - * sizeof (fail_stack_elt_t))); -# else /* not emacs */ - if (! fail_stack.stack) - fail_stack.stack - = (fail_stack_elt_t *) malloc (fail_stack.size - * sizeof (fail_stack_elt_t)); - else - fail_stack.stack - = (fail_stack_elt_t *) realloc (fail_stack.stack, - (fail_stack.size - * sizeof (fail_stack_elt_t))); -# endif /* not emacs */ - } - - regex_grow_registers (num_regs); - } -#endif /* not MATCH_MAY_ALLOCATE */ - - return REG_NOERROR; -} /* regex_compile */ - -/* Subroutines for `regex_compile'. */ - -/* Store OP at LOC followed by two-byte integer parameter ARG. */ - -static void -store_op1 (op, loc, arg) - re_opcode_t op; - unsigned char *loc; - int arg; -{ - *loc = (unsigned char) op; - STORE_NUMBER (loc + 1, arg); -} - - -/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */ - -static void -store_op2 (op, loc, arg1, arg2) - re_opcode_t op; - unsigned char *loc; - int arg1, arg2; -{ - *loc = (unsigned char) op; - STORE_NUMBER (loc + 1, arg1); - STORE_NUMBER (loc + 3, arg2); -} - - -/* Copy the bytes from LOC to END to open up three bytes of space at LOC - for OP followed by two-byte integer parameter ARG. */ - -static void -insert_op1 (op, loc, arg, end) - re_opcode_t op; - unsigned char *loc; - int arg; - unsigned char *end; -{ - register unsigned char *pfrom = end; - register unsigned char *pto = end + 3; - - while (pfrom != loc) - *--pto = *--pfrom; - - store_op1 (op, loc, arg); -} - - -/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */ - -static void -insert_op2 (op, loc, arg1, arg2, end) - re_opcode_t op; - unsigned char *loc; - int arg1, arg2; - unsigned char *end; -{ - register unsigned char *pfrom = end; - register unsigned char *pto = end + 5; - - while (pfrom != loc) - *--pto = *--pfrom; - - store_op2 (op, loc, arg1, arg2); -} - - -/* P points to just after a ^ in PATTERN. Return true if that ^ comes - after an alternative or a begin-subexpression. We assume there is at - least one character before the ^. */ - -static boolean -at_begline_loc_p (pattern, p, syntax) - const char *pattern, *p; - reg_syntax_t syntax; -{ - const char *prev = p - 2; - boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\'; - - return - /* After a subexpression? */ - (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash)) - /* After an alternative? */ - || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash)); -} - - -/* The dual of at_begline_loc_p. This one is for $. We assume there is - at least one character after the $, i.e., `P < PEND'. */ - -static boolean -at_endline_loc_p (p, pend, syntax) - const char *p, *pend; - reg_syntax_t syntax; -{ - const char *next = p; - boolean next_backslash = *next == '\\'; - const char *next_next = p + 1 < pend ? p + 1 : 0; - - return - /* Before a subexpression? */ - (syntax & RE_NO_BK_PARENS ? *next == ')' - : next_backslash && next_next && *next_next == ')') - /* Before an alternative? */ - || (syntax & RE_NO_BK_VBAR ? *next == '|' - : next_backslash && next_next && *next_next == '|'); -} - - -/* Returns true if REGNUM is in one of COMPILE_STACK's elements and - false if it's not. */ - -static boolean -group_in_compile_stack (compile_stack, regnum) - compile_stack_type compile_stack; - regnum_t regnum; -{ - int this_element; - - for (this_element = compile_stack.avail - 1; - this_element >= 0; - this_element--) - if (compile_stack.stack[this_element].regnum == regnum) - return true; - - return false; -} - - -/* Read the ending character of a range (in a bracket expression) from the - uncompiled pattern *P_PTR (which ends at PEND). We assume the - starting character is in `P[-2]'. (`P[-1]' is the character `-'.) - Then we set the translation of all bits between the starting and - ending characters (inclusive) in the compiled pattern B. - - Return an error code. - - We use these short variable names so we can use the same macros as - `regex_compile' itself. */ - -static reg_errcode_t -compile_range (p_ptr, pend, translate, syntax, b) - const char **p_ptr, *pend; - RE_TRANSLATE_TYPE translate; - reg_syntax_t syntax; - unsigned char *b; -{ - unsigned this_char; - - const char *p = *p_ptr; - unsigned int range_start, range_end; - - if (p == pend) - return REG_ERANGE; - - /* Even though the pattern is a signed `char *', we need to fetch - with unsigned char *'s; if the high bit of the pattern character - is set, the range endpoints will be negative if we fetch using a - signed char *. - - We also want to fetch the endpoints without translating them; the - appropriate translation is done in the bit-setting loop below. */ - /* The SVR4 compiler on the 3B2 had trouble with unsigned const char *. */ - range_start = ((const unsigned char *) p)[-2]; - range_end = ((const unsigned char *) p)[0]; - - /* Have to increment the pointer into the pattern string, so the - caller isn't still at the ending character. */ - (*p_ptr)++; - - /* If the start is after the end, the range is empty. */ - if (range_start > range_end) - return syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR; - - /* Here we see why `this_char' has to be larger than an `unsigned - char' -- the range is inclusive, so if `range_end' == 0xff - (assuming 8-bit characters), we would otherwise go into an infinite - loop, since all characters <= 0xff. */ - for (this_char = range_start; this_char <= range_end; this_char++) - { - SET_LIST_BIT (TRANSLATE (this_char)); - } - - return REG_NOERROR; -} - -/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in - BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible - characters can start a string that matches the pattern. This fastmap - is used by re_search to skip quickly over impossible starting points. - - The caller must supply the address of a (1 << BYTEWIDTH)-byte data - area as BUFP->fastmap. - - We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in - the pattern buffer. - - Returns 0 if we succeed, -2 if an internal error. */ - -int -re_compile_fastmap (bufp) - struct re_pattern_buffer *bufp; -{ - int j, k; -#ifdef MATCH_MAY_ALLOCATE - fail_stack_type fail_stack; -#endif -#ifndef REGEX_MALLOC - char *destination; -#endif - - register char *fastmap = bufp->fastmap; - unsigned char *pattern = bufp->buffer; - unsigned char *p = pattern; - register unsigned char *pend = pattern + bufp->used; - -#ifdef REL_ALLOC - /* This holds the pointer to the failure stack, when - it is allocated relocatably. */ - fail_stack_elt_t *failure_stack_ptr; -#endif - - /* Assume that each path through the pattern can be null until - proven otherwise. We set this false at the bottom of switch - statement, to which we get only if a particular path doesn't - match the empty string. */ - boolean path_can_be_null = true; - - /* We aren't doing a `succeed_n' to begin with. */ - boolean succeed_n_p = false; - - assert (fastmap != NULL && p != NULL); - - INIT_FAIL_STACK (); - bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */ - bufp->fastmap_accurate = 1; /* It will be when we're done. */ - bufp->can_be_null = 0; - - while (1) - { - if (p == pend || *p == succeed) - { - /* We have reached the (effective) end of pattern. */ - if (!FAIL_STACK_EMPTY ()) - { - bufp->can_be_null |= path_can_be_null; - - /* Reset for next path. */ - path_can_be_null = true; - - p = fail_stack.stack[--fail_stack.avail].pointer; - - continue; - } - else - break; - } - - /* We should never be about to go beyond the end of the pattern. */ - assert (p < pend); - - switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) - { - - /* I guess the idea here is to simply not bother with a fastmap - if a backreference is used, since it's too hard to figure out - the fastmap for the corresponding group. Setting - `can_be_null' stops `re_search_2' from using the fastmap, so - that is all we do. */ - case duplicate: - bufp->can_be_null = 1; - goto done; - - - /* Following are the cases which match a character. These end - with `break'. */ - - case exactn: - fastmap[p[1]] = 1; - break; - - - case charset: - for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) - if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) - fastmap[j] = 1; - break; - - - case charset_not: - /* Chars beyond end of map must be allowed. */ - for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++) - fastmap[j] = 1; - - for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) - if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))) - fastmap[j] = 1; - break; - - - case wordchar: - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) == Sword) - fastmap[j] = 1; - break; - - - case notwordchar: - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) != Sword) - fastmap[j] = 1; - break; - - - case anychar: - { - int fastmap_newline = fastmap['\n']; - - /* `.' matches anything ... */ - for (j = 0; j < (1 << BYTEWIDTH); j++) - fastmap[j] = 1; - - /* ... except perhaps newline. */ - if (!(bufp->syntax & RE_DOT_NEWLINE)) - fastmap['\n'] = fastmap_newline; - - /* Return if we have already set `can_be_null'; if we have, - then the fastmap is irrelevant. Something's wrong here. */ - else if (bufp->can_be_null) - goto done; - - /* Otherwise, have to check alternative paths. */ - break; - } - -#ifdef emacs - case syntaxspec: - k = *p++; - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) == (enum syntaxcode) k) - fastmap[j] = 1; - break; - - - case notsyntaxspec: - k = *p++; - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) != (enum syntaxcode) k) - fastmap[j] = 1; - break; - - - /* All cases after this match the empty string. These end with - `continue'. */ - - - case before_dot: - case at_dot: - case after_dot: - continue; -#endif /* emacs */ - - - case no_op: - case begline: - case endline: - case begbuf: - case endbuf: - case wordbound: - case notwordbound: - case wordbeg: - case wordend: - case push_dummy_failure: - continue; - - - case jump_n: - case pop_failure_jump: - case maybe_pop_jump: - case jump: - case jump_past_alt: - case dummy_failure_jump: - EXTRACT_NUMBER_AND_INCR (j, p); - p += j; - if (j > 0) - continue; - - /* Jump backward implies we just went through the body of a - loop and matched nothing. Opcode jumped to should be - `on_failure_jump' or `succeed_n'. Just treat it like an - ordinary jump. For a * loop, it has pushed its failure - point already; if so, discard that as redundant. */ - if ((re_opcode_t) *p != on_failure_jump - && (re_opcode_t) *p != succeed_n) - continue; - - p++; - EXTRACT_NUMBER_AND_INCR (j, p); - p += j; - - /* If what's on the stack is where we are now, pop it. */ - if (!FAIL_STACK_EMPTY () - && fail_stack.stack[fail_stack.avail - 1].pointer == p) - fail_stack.avail--; - - continue; - - - case on_failure_jump: - case on_failure_keep_string_jump: - handle_on_failure_jump: - EXTRACT_NUMBER_AND_INCR (j, p); - - /* For some patterns, e.g., `(a?)?', `p+j' here points to the - end of the pattern. We don't want to push such a point, - since when we restore it above, entering the switch will - increment `p' past the end of the pattern. We don't need - to push such a point since we obviously won't find any more - fastmap entries beyond `pend'. Such a pattern can match - the null string, though. */ - if (p + j < pend) - { - if (!PUSH_PATTERN_OP (p + j, fail_stack)) - { - RESET_FAIL_STACK (); - return -2; - } - } - else - bufp->can_be_null = 1; - - if (succeed_n_p) - { - EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */ - succeed_n_p = false; - } - - continue; - - - case succeed_n: - /* Get to the number of times to succeed. */ - p += 2; - - /* Increment p past the n for when k != 0. */ - EXTRACT_NUMBER_AND_INCR (k, p); - if (k == 0) - { - p -= 4; - succeed_n_p = true; /* Spaghetti code alert. */ - goto handle_on_failure_jump; - } - continue; - - - case set_number_at: - p += 4; - continue; - - - case start_memory: - case stop_memory: - p += 2; - continue; - - - default: - abort (); /* We have listed all the cases. */ - } /* switch *p++ */ - - /* Getting here means we have found the possible starting - characters for one path of the pattern -- and that the empty - string does not match. We need not follow this path further. - Instead, look at the next alternative (remembered on the - stack), or quit if no more. The test at the top of the loop - does these things. */ - path_can_be_null = false; - p = pend; - } /* while p */ - - /* Set `can_be_null' for the last path (also the first path, if the - pattern is empty). */ - bufp->can_be_null |= path_can_be_null; - - done: - RESET_FAIL_STACK (); - return 0; -} /* re_compile_fastmap */ -#ifdef _LIBC -weak_alias (__re_compile_fastmap, re_compile_fastmap) -#endif - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use - this memory for recording register information. STARTS and ENDS - must be allocated using the malloc library routine, and must each - be at least NUM_REGS * sizeof (regoff_t) bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ - -void -re_set_registers (bufp, regs, num_regs, starts, ends) - struct re_pattern_buffer *bufp; - struct re_registers *regs; - unsigned num_regs; - regoff_t *starts, *ends; -{ - if (num_regs) - { - bufp->regs_allocated = REGS_REALLOCATE; - regs->num_regs = num_regs; - regs->start = starts; - regs->end = ends; - } - else - { - bufp->regs_allocated = REGS_UNALLOCATED; - regs->num_regs = 0; - regs->start = regs->end = (regoff_t *) 0; - } -} -#ifdef _LIBC -weak_alias (__re_set_registers, re_set_registers) -#endif - -/* Searching routines. */ - -/* Like re_search_2, below, but only one string is specified, and - doesn't let you say where to stop matching. */ - -int -re_search (bufp, string, size, startpos, range, regs) - struct re_pattern_buffer *bufp; - const char *string; - int size, startpos, range; - struct re_registers *regs; -{ - return re_search_2 (bufp, NULL, 0, string, size, startpos, range, - regs, size); -} -#ifdef _LIBC -weak_alias (__re_search, re_search) -#endif - - -/* Using the compiled pattern in BUFP->buffer, first tries to match the - virtual concatenation of STRING1 and STRING2, starting first at index - STARTPOS, then at STARTPOS + 1, and so on. - - STRING1 and STRING2 have length SIZE1 and SIZE2, respectively. - - RANGE is how far to scan while trying to match. RANGE = 0 means try - only at STARTPOS; in general, the last start tried is STARTPOS + - RANGE. - - In REGS, return the indices of the virtual concatenation of STRING1 - and STRING2 that matched the entire BUFP->buffer and its contained - subexpressions. - - Do not consider matching one past the index STOP in the virtual - concatenation of STRING1 and STRING2. - - We return either the position in the strings at which the match was - found, -1 if no match, or -2 if error (such as failure - stack overflow). */ - -int -re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int startpos; - int range; - struct re_registers *regs; - int stop; -{ - int val; - register char *fastmap = bufp->fastmap; - register RE_TRANSLATE_TYPE translate = bufp->translate; - int total_size = size1 + size2; - int endpos = startpos + range; - - /* Check for out-of-range STARTPOS. */ - if (startpos < 0 || startpos > total_size) - return -1; - - /* Fix up RANGE if it might eventually take us outside - the virtual concatenation of STRING1 and STRING2. - Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */ - if (endpos < 0) - range = 0 - startpos; - else if (endpos > total_size) - range = total_size - startpos; - - /* If the search isn't to be a backwards one, don't waste time in a - search for a pattern that must be anchored. */ - if (bufp->used > 0 && range > 0 - && ((re_opcode_t) bufp->buffer[0] == begbuf - /* `begline' is like `begbuf' if it cannot match at newlines. */ - || ((re_opcode_t) bufp->buffer[0] == begline - && !bufp->newline_anchor))) - { - if (startpos > 0) - return -1; - else - range = 1; - } - -#ifdef emacs - /* In a forward search for something that starts with \=. - don't keep searching past point. */ - if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0) - { - range = PT - startpos; - if (range <= 0) - return -1; - } -#endif /* emacs */ - - /* Update the fastmap now if not correct already. */ - if (fastmap && !bufp->fastmap_accurate) - if (re_compile_fastmap (bufp) == -2) - return -2; - - /* Loop through the string, looking for a place to start matching. */ - for (;;) - { - /* If a fastmap is supplied, skip quickly over characters that - cannot be the start of a match. If the pattern can match the - null string, however, we don't need to skip characters; we want - the first null string. */ - if (fastmap && startpos < total_size && !bufp->can_be_null) - { - if (range > 0) /* Searching forwards. */ - { - register const char *d; - register int lim = 0; - int irange = range; - - if (startpos < size1 && startpos + range >= size1) - lim = range - (size1 - startpos); - - d = (startpos >= size1 ? string2 - size1 : string1) + startpos; - - /* Written out as an if-else to avoid testing `translate' - inside the loop. */ - if (translate) - while (range > lim - && !fastmap[(unsigned char) - translate[(unsigned char) *d++]]) - range--; - else - while (range > lim && !fastmap[(unsigned char) *d++]) - range--; - - startpos += irange - range; - } - else /* Searching backwards. */ - { - register char c = (size1 == 0 || startpos >= size1 - ? string2[startpos - size1] - : string1[startpos]); - - if (!fastmap[(unsigned char) TRANSLATE (c)]) - goto advance; - } - } - - /* If can't match the null string, and that's all we have left, fail. */ - if (range >= 0 && startpos == total_size && fastmap - && !bufp->can_be_null) - return -1; - - val = re_match_2_internal (bufp, string1, size1, string2, size2, - startpos, regs, stop); -#ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -#endif - - if (val >= 0) - return startpos; - - if (val == -2) - return -2; - - advance: - if (!range) - break; - else if (range > 0) - { - range--; - startpos++; - } - else - { - range++; - startpos--; - } - } - return -1; -} /* re_search_2 */ -#ifdef _LIBC -weak_alias (__re_search_2, re_search_2) -#endif - -/* This converts PTR, a pointer into one of the search strings `string1' - and `string2' into an offset from the beginning of that string. */ -#define POINTER_TO_OFFSET(ptr) \ - (FIRST_STRING_P (ptr) \ - ? ((regoff_t) ((ptr) - string1)) \ - : ((regoff_t) ((ptr) - string2 + size1))) - -/* Macros for dealing with the split strings in re_match_2. */ - -#define MATCHING_IN_FIRST_STRING (dend == end_match_1) - -/* Call before fetching a character with *d. This switches over to - string2 if necessary. */ -#define PREFETCH() \ - while (d == dend) \ - { \ - /* End of string2 => fail. */ \ - if (dend == end_match_2) \ - goto fail; \ - /* End of string1 => advance to string2. */ \ - d = string2; \ - dend = end_match_2; \ - } - - -/* Test if at very beginning or at very end of the virtual concatenation - of `string1' and `string2'. If only one string, it's `string2'. */ -#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2) -#define AT_STRINGS_END(d) ((d) == end2) - - -/* Test if D points to a character which is word-constituent. We have - two special cases to check for: if past the end of string1, look at - the first character in string2; and if before the beginning of - string2, look at the last character in string1. */ -#define WORDCHAR_P(d) \ - (SYNTAX ((d) == end1 ? *string2 \ - : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \ - == Sword) - -/* Disabled due to a compiler bug -- see comment at case wordbound */ -#if 0 -/* Test if the character before D and the one at D differ with respect - to being word-constituent. */ -#define AT_WORD_BOUNDARY(d) \ - (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \ - || WORDCHAR_P (d - 1) != WORDCHAR_P (d)) -#endif - -/* Free everything we malloc. */ -#ifdef MATCH_MAY_ALLOCATE -# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL -# define FREE_VARIABLES() \ - do { \ - REGEX_FREE_STACK (fail_stack.stack); \ - FREE_VAR (regstart); \ - FREE_VAR (regend); \ - FREE_VAR (old_regstart); \ - FREE_VAR (old_regend); \ - FREE_VAR (best_regstart); \ - FREE_VAR (best_regend); \ - FREE_VAR (reg_info); \ - FREE_VAR (reg_dummy); \ - FREE_VAR (reg_info_dummy); \ - } while (0) -#else -# define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */ -#endif /* not MATCH_MAY_ALLOCATE */ - -/* These values must meet several constraints. They must not be valid - register values; since we have a limit of 255 registers (because - we use only one byte in the pattern for the register number), we can - use numbers larger than 255. They must differ by 1, because of - NUM_FAILURE_ITEMS above. And the value for the lowest register must - be larger than the value for the highest register, so we do not try - to actually save any registers when none are active. */ -#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH) -#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1) - -/* Matching routines. */ - -#ifndef emacs /* Emacs never uses this. */ -/* re_match is like re_match_2 except it takes only a single string. */ - -int -re_match (bufp, string, size, pos, regs) - struct re_pattern_buffer *bufp; - const char *string; - int size, pos; - struct re_registers *regs; -{ - int result = re_match_2_internal (bufp, NULL, 0, string, size, - pos, regs, size); -# ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -# endif - return result; -} -# ifdef _LIBC -weak_alias (__re_match, re_match) -# endif -#endif /* not emacs */ - -static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p, - unsigned char *end, - register_info_type *reg_info)); -static boolean alt_match_null_string_p _RE_ARGS ((unsigned char *p, - unsigned char *end, - register_info_type *reg_info)); -static boolean common_op_match_null_string_p _RE_ARGS ((unsigned char **p, - unsigned char *end, - register_info_type *reg_info)); -static int bcmp_translate _RE_ARGS ((const char *s1, const char *s2, - int len, char *translate)); - -/* re_match_2 matches the compiled pattern in BUFP against the - the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1 - and SIZE2, respectively). We start matching at POS, and stop - matching at STOP. - - If REGS is non-null and the `no_sub' field of BUFP is nonzero, we - store offsets for the substring each group matched in REGS. See the - documentation for exactly how many groups we fill. - - We return -1 if no match, -2 if an internal error (such as the - failure stack overflowing). Otherwise, we return the length of the - matched substring. */ - -int -re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int pos; - struct re_registers *regs; - int stop; -{ - int result = re_match_2_internal (bufp, string1, size1, string2, size2, - pos, regs, stop); -#ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -#endif - return result; -} -#ifdef _LIBC -weak_alias (__re_match_2, re_match_2) -#endif - -/* This is a separate function so that we can force an alloca cleanup - afterwards. */ -static int -re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int pos; - struct re_registers *regs; - int stop; -{ - /* General temporaries. */ - int mcnt; - unsigned char *p1; - - /* Just past the end of the corresponding string. */ - const char *end1, *end2; - - /* Pointers into string1 and string2, just past the last characters in - each to consider matching. */ - const char *end_match_1, *end_match_2; - - /* Where we are in the data, and the end of the current string. */ - const char *d, *dend; - - /* Where we are in the pattern, and the end of the pattern. */ - unsigned char *p = bufp->buffer; - register unsigned char *pend = p + bufp->used; - - /* Mark the opcode just after a start_memory, so we can test for an - empty subpattern when we get to the stop_memory. */ - unsigned char *just_past_start_mem = 0; - - /* We use this to map every character in the string. */ - RE_TRANSLATE_TYPE translate = bufp->translate; - - /* Failure point stack. Each place that can handle a failure further - down the line pushes a failure point on this stack. It consists of - restart, regend, and reg_info for all registers corresponding to - the subexpressions we're currently inside, plus the number of such - registers, and, finally, two char *'s. The first char * is where - to resume scanning the pattern; the second one is where to resume - scanning the strings. If the latter is zero, the failure point is - a ``dummy''; if a failure happens and the failure point is a dummy, - it gets discarded and the next next one is tried. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ - fail_stack_type fail_stack; -#endif -#ifdef DEBUG - static unsigned failure_id; - unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0; -#endif - -#ifdef REL_ALLOC - /* This holds the pointer to the failure stack, when - it is allocated relocatably. */ - fail_stack_elt_t *failure_stack_ptr; -#endif - - /* We fill all the registers internally, independent of what we - return, for use in backreferences. The number here includes - an element for register zero. */ - size_t num_regs = bufp->re_nsub + 1; - - /* The currently active registers. */ - active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG; - active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG; - - /* Information on the contents of registers. These are pointers into - the input strings; they record just what was matched (on this - attempt) by a subexpression part of the pattern, that is, the - regnum-th regstart pointer points to where in the pattern we began - matching and the regnum-th regend points to right after where we - stopped matching the regnum-th subexpression. (The zeroth register - keeps track of what the whole pattern matches.) */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const char **regstart, **regend; -#endif - - /* If a group that's operated upon by a repetition operator fails to - match anything, then the register for its start will need to be - restored because it will have been set to wherever in the string we - are when we last see its open-group operator. Similarly for a - register's end. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const char **old_regstart, **old_regend; -#endif - - /* The is_active field of reg_info helps us keep track of which (possibly - nested) subexpressions we are currently in. The matched_something - field of reg_info[reg_num] helps us tell whether or not we have - matched any of the pattern so far this time through the reg_num-th - subexpression. These two fields get reset each time through any - loop their register is in. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ - register_info_type *reg_info; -#endif - - /* The following record the register info as found in the above - variables when we find a match better than any we've seen before. - This happens as we backtrack through the failure points, which in - turn happens only if we have not yet matched the entire string. */ - unsigned best_regs_set = false; -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const char **best_regstart, **best_regend; -#endif - - /* Logically, this is `best_regend[0]'. But we don't want to have to - allocate space for that if we're not allocating space for anything - else (see below). Also, we never need info about register 0 for - any of the other register vectors, and it seems rather a kludge to - treat `best_regend' differently than the rest. So we keep track of - the end of the best match so far in a separate variable. We - initialize this to NULL so that when we backtrack the first time - and need to test it, it's not garbage. */ - const char *match_end = NULL; - - /* This helps SET_REGS_MATCHED avoid doing redundant work. */ - int set_regs_matched_done = 0; - - /* Used when we pop values we don't care about. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const char **reg_dummy; - register_info_type *reg_info_dummy; -#endif - -#ifdef DEBUG - /* Counts the total number of registers pushed. */ - unsigned num_regs_pushed = 0; -#endif - - DEBUG_PRINT1 ("\n\nEntering re_match_2.\n"); - - INIT_FAIL_STACK (); - -#ifdef MATCH_MAY_ALLOCATE - /* Do not bother to initialize all the register variables if there are - no groups in the pattern, as it takes a fair amount of time. If - there are groups, we include space for register 0 (the whole - pattern), even though we never use it, since it simplifies the - array indexing. We should fix this. */ - if (bufp->re_nsub) - { - regstart = REGEX_TALLOC (num_regs, const char *); - regend = REGEX_TALLOC (num_regs, const char *); - old_regstart = REGEX_TALLOC (num_regs, const char *); - old_regend = REGEX_TALLOC (num_regs, const char *); - best_regstart = REGEX_TALLOC (num_regs, const char *); - best_regend = REGEX_TALLOC (num_regs, const char *); - reg_info = REGEX_TALLOC (num_regs, register_info_type); - reg_dummy = REGEX_TALLOC (num_regs, const char *); - reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type); - - if (!(regstart && regend && old_regstart && old_regend && reg_info - && best_regstart && best_regend && reg_dummy && reg_info_dummy)) - { - FREE_VARIABLES (); - return -2; - } - } - else - { - /* We must initialize all our variables to NULL, so that - `FREE_VARIABLES' doesn't try to free them. */ - regstart = regend = old_regstart = old_regend = best_regstart - = best_regend = reg_dummy = NULL; - reg_info = reg_info_dummy = (register_info_type *) NULL; - } -#endif /* MATCH_MAY_ALLOCATE */ - - /* The starting position is bogus. */ - if (pos < 0 || pos > size1 + size2) - { - FREE_VARIABLES (); - return -1; - } - - /* Initialize subexpression text positions to -1 to mark ones that no - start_memory/stop_memory has been seen for. Also initialize the - register information struct. */ - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - regstart[mcnt] = regend[mcnt] - = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE; - - REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE; - IS_ACTIVE (reg_info[mcnt]) = 0; - MATCHED_SOMETHING (reg_info[mcnt]) = 0; - EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0; - } - - /* We move `string1' into `string2' if the latter's empty -- but not if - `string1' is null. */ - if (size2 == 0 && string1 != NULL) - { - string2 = string1; - size2 = size1; - string1 = 0; - size1 = 0; - } - end1 = string1 + size1; - end2 = string2 + size2; - - /* Compute where to stop matching, within the two strings. */ - if (stop <= size1) - { - end_match_1 = string1 + stop; - end_match_2 = string2; - } - else - { - end_match_1 = end1; - end_match_2 = string2 + stop - size1; - } - - /* `p' scans through the pattern as `d' scans through the data. - `dend' is the end of the input string that `d' points within. `d' - is advanced into the following input string whenever necessary, but - this happens before fetching; therefore, at the beginning of the - loop, `d' can be pointing at the end of a string, but it cannot - equal `string2'. */ - if (size1 > 0 && pos <= size1) - { - d = string1 + pos; - dend = end_match_1; - } - else - { - d = string2 + pos - size1; - dend = end_match_2; - } - - DEBUG_PRINT1 ("The compiled pattern is:\n"); - DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend); - DEBUG_PRINT1 ("The string to match is: `"); - DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2); - DEBUG_PRINT1 ("'\n"); - - /* This loops over pattern commands. It exits by returning from the - function if the match is complete, or it drops through if the match - fails at this starting point in the input data. */ - for (;;) - { -#ifdef _LIBC - DEBUG_PRINT2 ("\n%p: ", p); -#else - DEBUG_PRINT2 ("\n0x%x: ", p); -#endif - - if (p == pend) - { /* End of pattern means we might have succeeded. */ - DEBUG_PRINT1 ("end of pattern ... "); - - /* If we haven't matched the entire string, and we want the - longest match, try backtracking. */ - if (d != end_match_2) - { - /* 1 if this match ends in the same string (string1 or string2) - as the best previous match. */ - boolean same_str_p = (FIRST_STRING_P (match_end) - == MATCHING_IN_FIRST_STRING); - /* 1 if this match is the best seen so far. */ - boolean best_match_p; - - /* AIX compiler got confused when this was combined - with the previous declaration. */ - if (same_str_p) - best_match_p = d > match_end; - else - best_match_p = !MATCHING_IN_FIRST_STRING; - - DEBUG_PRINT1 ("backtracking.\n"); - - if (!FAIL_STACK_EMPTY ()) - { /* More failure points to try. */ - - /* If exceeds best match so far, save it. */ - if (!best_regs_set || best_match_p) - { - best_regs_set = true; - match_end = d; - - DEBUG_PRINT1 ("\nSAVING match as best so far.\n"); - - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - best_regstart[mcnt] = regstart[mcnt]; - best_regend[mcnt] = regend[mcnt]; - } - } - goto fail; - } - - /* If no failure points, don't restore garbage. And if - last match is real best match, don't restore second - best one. */ - else if (best_regs_set && !best_match_p) - { - restore_best_regs: - /* Restore best match. It may happen that `dend == - end_match_1' while the restored d is in string2. - For example, the pattern `x.*y.*z' against the - strings `x-' and `y-z-', if the two strings are - not consecutive in memory. */ - DEBUG_PRINT1 ("Restoring best registers.\n"); - - d = match_end; - dend = ((d >= string1 && d <= end1) - ? end_match_1 : end_match_2); - - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - regstart[mcnt] = best_regstart[mcnt]; - regend[mcnt] = best_regend[mcnt]; - } - } - } /* d != end_match_2 */ - - succeed_label: - DEBUG_PRINT1 ("Accepting match.\n"); - - /* If caller wants register contents data back, do it. */ - if (regs && !bufp->no_sub) - { - /* Have the register data arrays been allocated? */ - if (bufp->regs_allocated == REGS_UNALLOCATED) - { /* No. So allocate them with malloc. We need one - extra element beyond `num_regs' for the `-1' marker - GNU code uses. */ - regs->num_regs = MAX (RE_NREGS, num_regs + 1); - regs->start = TALLOC (regs->num_regs, regoff_t); - regs->end = TALLOC (regs->num_regs, regoff_t); - if (regs->start == NULL || regs->end == NULL) - { - FREE_VARIABLES (); - return -2; - } - bufp->regs_allocated = REGS_REALLOCATE; - } - else if (bufp->regs_allocated == REGS_REALLOCATE) - { /* Yes. If we need more elements than were already - allocated, reallocate them. If we need fewer, just - leave it alone. */ - if (regs->num_regs < num_regs + 1) - { - regs->num_regs = num_regs + 1; - RETALLOC (regs->start, regs->num_regs, regoff_t); - RETALLOC (regs->end, regs->num_regs, regoff_t); - if (regs->start == NULL || regs->end == NULL) - { - FREE_VARIABLES (); - return -2; - } - } - } - else - { - /* These braces fend off a "empty body in an else-statement" - warning under GCC when assert expands to nothing. */ - assert (bufp->regs_allocated == REGS_FIXED); - } - - /* Convert the pointer data in `regstart' and `regend' to - indices. Register zero has to be set differently, - since we haven't kept track of any info for it. */ - if (regs->num_regs > 0) - { - regs->start[0] = pos; - regs->end[0] = (MATCHING_IN_FIRST_STRING - ? ((regoff_t) (d - string1)) - : ((regoff_t) (d - string2 + size1))); - } - - /* Go through the first `min (num_regs, regs->num_regs)' - registers, since that is all we initialized. */ - for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs); - mcnt++) - { - if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt])) - regs->start[mcnt] = regs->end[mcnt] = -1; - else - { - regs->start[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]); - regs->end[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]); - } - } - - /* If the regs structure we return has more elements than - were in the pattern, set the extra elements to -1. If - we (re)allocated the registers, this is the case, - because we always allocate enough to have at least one - -1 at the end. */ - for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++) - regs->start[mcnt] = regs->end[mcnt] = -1; - } /* regs && !bufp->no_sub */ - - DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n", - nfailure_points_pushed, nfailure_points_popped, - nfailure_points_pushed - nfailure_points_popped); - DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed); - - mcnt = d - pos - (MATCHING_IN_FIRST_STRING - ? string1 - : string2 - size1); - - DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt); - - FREE_VARIABLES (); - return mcnt; - } - - /* Otherwise match next pattern command. */ - switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) - { - /* Ignore these. Used to ignore the n of succeed_n's which - currently have n == 0. */ - case no_op: - DEBUG_PRINT1 ("EXECUTING no_op.\n"); - break; - - case succeed: - DEBUG_PRINT1 ("EXECUTING succeed.\n"); - goto succeed_label; - - /* Match the next n pattern characters exactly. The following - byte in the pattern defines n, and the n bytes after that - are the characters to match. */ - case exactn: - mcnt = *p++; - DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt); - - /* This is written out as an if-else so we don't waste time - testing `translate' inside the loop. */ - if (translate) - { - do - { - PREFETCH (); - if ((unsigned char) translate[(unsigned char) *d++] - != (unsigned char) *p++) - goto fail; - } - while (--mcnt); - } - else - { - do - { - PREFETCH (); - if (*d++ != (char) *p++) goto fail; - } - while (--mcnt); - } - SET_REGS_MATCHED (); - break; - - - /* Match any character except possibly a newline or a null. */ - case anychar: - DEBUG_PRINT1 ("EXECUTING anychar.\n"); - - PREFETCH (); - - if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n') - || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000')) - goto fail; - - SET_REGS_MATCHED (); - DEBUG_PRINT2 (" Matched `%d'.\n", *d); - d++; - break; - - - case charset: - case charset_not: - { - register unsigned char c; - boolean not = (re_opcode_t) *(p - 1) == charset_not; - - DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : ""); - - PREFETCH (); - c = TRANSLATE (*d); /* The character to match. */ - - /* Cast to `unsigned' instead of `unsigned char' in case the - bit list is a full 32 bytes long. */ - if (c < (unsigned) (*p * BYTEWIDTH) - && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) - not = !not; - - p += 1 + *p; - - if (!not) goto fail; - - SET_REGS_MATCHED (); - d++; - break; - } - - - /* The beginning of a group is represented by start_memory. - The arguments are the register number in the next byte, and the - number of groups inner to this one in the next. The text - matched within the group is recorded (in the internal - registers data structure) under the register number. */ - case start_memory: - DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]); - - /* Find out if this group can match the empty string. */ - p1 = p; /* To send to group_match_null_string_p. */ - - if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE) - REG_MATCH_NULL_STRING_P (reg_info[*p]) - = group_match_null_string_p (&p1, pend, reg_info); - - /* Save the position in the string where we were the last time - we were at this open-group operator in case the group is - operated upon by a repetition operator, e.g., with `(a*)*b' - against `ab'; then we want to ignore where we are now in - the string in case this attempt to match fails. */ - old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) - ? REG_UNSET (regstart[*p]) ? d : regstart[*p] - : regstart[*p]; - DEBUG_PRINT2 (" old_regstart: %d\n", - POINTER_TO_OFFSET (old_regstart[*p])); - - regstart[*p] = d; - DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p])); - - IS_ACTIVE (reg_info[*p]) = 1; - MATCHED_SOMETHING (reg_info[*p]) = 0; - - /* Clear this whenever we change the register activity status. */ - set_regs_matched_done = 0; - - /* This is the new highest active register. */ - highest_active_reg = *p; - - /* If nothing was active before, this is the new lowest active - register. */ - if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) - lowest_active_reg = *p; - - /* Move past the register number and inner group count. */ - p += 2; - just_past_start_mem = p; - - break; - - - /* The stop_memory opcode represents the end of a group. Its - arguments are the same as start_memory's: the register - number, and the number of inner groups. */ - case stop_memory: - DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]); - - /* We need to save the string position the last time we were at - this close-group operator in case the group is operated - upon by a repetition operator, e.g., with `((a*)*(b*)*)*' - against `aba'; then we want to ignore where we are now in - the string in case this attempt to match fails. */ - old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) - ? REG_UNSET (regend[*p]) ? d : regend[*p] - : regend[*p]; - DEBUG_PRINT2 (" old_regend: %d\n", - POINTER_TO_OFFSET (old_regend[*p])); - - regend[*p] = d; - DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p])); - - /* This register isn't active anymore. */ - IS_ACTIVE (reg_info[*p]) = 0; - - /* Clear this whenever we change the register activity status. */ - set_regs_matched_done = 0; - - /* If this was the only register active, nothing is active - anymore. */ - if (lowest_active_reg == highest_active_reg) - { - lowest_active_reg = NO_LOWEST_ACTIVE_REG; - highest_active_reg = NO_HIGHEST_ACTIVE_REG; - } - else - { /* We must scan for the new highest active register, since - it isn't necessarily one less than now: consider - (a(b)c(d(e)f)g). When group 3 ends, after the f), the - new highest active register is 1. */ - unsigned char r = *p - 1; - while (r > 0 && !IS_ACTIVE (reg_info[r])) - r--; - - /* If we end up at register zero, that means that we saved - the registers as the result of an `on_failure_jump', not - a `start_memory', and we jumped to past the innermost - `stop_memory'. For example, in ((.)*) we save - registers 1 and 2 as a result of the *, but when we pop - back to the second ), we are at the stop_memory 1. - Thus, nothing is active. */ - if (r == 0) - { - lowest_active_reg = NO_LOWEST_ACTIVE_REG; - highest_active_reg = NO_HIGHEST_ACTIVE_REG; - } - else - highest_active_reg = r; - } - - /* If just failed to match something this time around with a - group that's operated on by a repetition operator, try to - force exit from the ``loop'', and restore the register - information for this group that we had before trying this - last match. */ - if ((!MATCHED_SOMETHING (reg_info[*p]) - || just_past_start_mem == p - 1) - && (p + 2) < pend) - { - boolean is_a_jump_n = false; - - p1 = p + 2; - mcnt = 0; - switch ((re_opcode_t) *p1++) - { - case jump_n: - is_a_jump_n = true; - case pop_failure_jump: - case maybe_pop_jump: - case jump: - case dummy_failure_jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if (is_a_jump_n) - p1 += 2; - break; - - default: - /* do nothing */ ; - } - p1 += mcnt; - - /* If the next operation is a jump backwards in the pattern - to an on_failure_jump right before the start_memory - corresponding to this stop_memory, exit from the loop - by forcing a failure after pushing on the stack the - on_failure_jump's jump in the pattern, and d. */ - if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump - && (re_opcode_t) p1[3] == start_memory && p1[4] == *p) - { - /* If this group ever matched anything, then restore - what its registers were before trying this last - failed match, e.g., with `(a*)*b' against `ab' for - regstart[1], and, e.g., with `((a*)*(b*)*)*' - against `aba' for regend[3]. - - Also restore the registers for inner groups for, - e.g., `((a*)(b*))*' against `aba' (register 3 would - otherwise get trashed). */ - - if (EVER_MATCHED_SOMETHING (reg_info[*p])) - { - unsigned r; - - EVER_MATCHED_SOMETHING (reg_info[*p]) = 0; - - /* Restore this and inner groups' (if any) registers. */ - for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1); - r++) - { - regstart[r] = old_regstart[r]; - - /* xx why this test? */ - if (old_regend[r] >= regstart[r]) - regend[r] = old_regend[r]; - } - } - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - PUSH_FAILURE_POINT (p1 + mcnt, d, -2); - - goto fail; - } - } - - /* Move past the register number and the inner group count. */ - p += 2; - break; - - - /* \<digit> has been turned into a `duplicate' command which is - followed by the numeric value of <digit> as the register number. */ - case duplicate: - { - register const char *d2, *dend2; - int regno = *p++; /* Get which register to match against. */ - DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno); - - /* Can't back reference a group which we've never matched. */ - if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno])) - goto fail; - - /* Where in input to try to start matching. */ - d2 = regstart[regno]; - - /* Where to stop matching; if both the place to start and - the place to stop matching are in the same string, then - set to the place to stop, otherwise, for now have to use - the end of the first string. */ - - dend2 = ((FIRST_STRING_P (regstart[regno]) - == FIRST_STRING_P (regend[regno])) - ? regend[regno] : end_match_1); - for (;;) - { - /* If necessary, advance to next segment in register - contents. */ - while (d2 == dend2) - { - if (dend2 == end_match_2) break; - if (dend2 == regend[regno]) break; - - /* End of string1 => advance to string2. */ - d2 = string2; - dend2 = regend[regno]; - } - /* At end of register contents => success */ - if (d2 == dend2) break; - - /* If necessary, advance to next segment in data. */ - PREFETCH (); - - /* How many characters left in this segment to match. */ - mcnt = dend - d; - - /* Want how many consecutive characters we can match in - one shot, so, if necessary, adjust the count. */ - if (mcnt > dend2 - d2) - mcnt = dend2 - d2; - - /* Compare that many; failure if mismatch, else move - past them. */ - if (translate - ? bcmp_translate (d, d2, mcnt, translate) - : memcmp (d, d2, mcnt)) - goto fail; - d += mcnt, d2 += mcnt; - - /* Do this because we've match some characters. */ - SET_REGS_MATCHED (); - } - } - break; - - - /* begline matches the empty string at the beginning of the string - (unless `not_bol' is set in `bufp'), and, if - `newline_anchor' is set, after newlines. */ - case begline: - DEBUG_PRINT1 ("EXECUTING begline.\n"); - - if (AT_STRINGS_BEG (d)) - { - if (!bufp->not_bol) break; - } - else if (d[-1] == '\n' && bufp->newline_anchor) - { - break; - } - /* In all other cases, we fail. */ - goto fail; - - - /* endline is the dual of begline. */ - case endline: - DEBUG_PRINT1 ("EXECUTING endline.\n"); - - if (AT_STRINGS_END (d)) - { - if (!bufp->not_eol) break; - } - - /* We have to ``prefetch'' the next character. */ - else if ((d == end1 ? *string2 : *d) == '\n' - && bufp->newline_anchor) - { - break; - } - goto fail; - - - /* Match at the very beginning of the data. */ - case begbuf: - DEBUG_PRINT1 ("EXECUTING begbuf.\n"); - if (AT_STRINGS_BEG (d)) - break; - goto fail; - - - /* Match at the very end of the data. */ - case endbuf: - DEBUG_PRINT1 ("EXECUTING endbuf.\n"); - if (AT_STRINGS_END (d)) - break; - goto fail; - - - /* on_failure_keep_string_jump is used to optimize `.*\n'. It - pushes NULL as the value for the string on the stack. Then - `pop_failure_point' will keep the current value for the - string, instead of restoring it. To see why, consider - matching `foo\nbar' against `.*\n'. The .* matches the foo; - then the . fails against the \n. But the next thing we want - to do is match the \n against the \n; if we restored the - string value, we would be back at the foo. - - Because this is used only in specific cases, we don't need to - check all the things that `on_failure_jump' does, to make - sure the right things get saved on the stack. Hence we don't - share its code. The only reason to push anything on the - stack at all is that otherwise we would have to change - `anychar's code to do something besides goto fail in this - case; that seems worse than this. */ - case on_failure_keep_string_jump: - DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt); -#else - DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt); -#endif - - PUSH_FAILURE_POINT (p + mcnt, NULL, -2); - break; - - - /* Uses of on_failure_jump: - - Each alternative starts with an on_failure_jump that points - to the beginning of the next alternative. Each alternative - except the last ends with a jump that in effect jumps past - the rest of the alternatives. (They really jump to the - ending jump of the following alternative, because tensioning - these jumps is a hassle.) - - Repeats start with an on_failure_jump that points past both - the repetition text and either the following jump or - pop_failure_jump back to this on_failure_jump. */ - case on_failure_jump: - on_failure: - DEBUG_PRINT1 ("EXECUTING on_failure_jump"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt); -#else - DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt); -#endif - - /* If this on_failure_jump comes right before a group (i.e., - the original * applied to a group), save the information - for that group and all inner ones, so that if we fail back - to this point, the group's information will be correct. - For example, in \(a*\)*\1, we need the preceding group, - and in \(zz\(a*\)b*\)\2, we need the inner group. */ - - /* We can't use `p' to check ahead because we push - a failure point to `p + mcnt' after we do this. */ - p1 = p; - - /* We need to skip no_op's before we look for the - start_memory in case this on_failure_jump is happening as - the result of a completed succeed_n, as in \(a\)\{1,3\}b\1 - against aba. */ - while (p1 < pend && (re_opcode_t) *p1 == no_op) - p1++; - - if (p1 < pend && (re_opcode_t) *p1 == start_memory) - { - /* We have a new highest active register now. This will - get reset at the start_memory we are about to get to, - but we will have saved all the registers relevant to - this repetition op, as described above. */ - highest_active_reg = *(p1 + 1) + *(p1 + 2); - if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) - lowest_active_reg = *(p1 + 1); - } - - DEBUG_PRINT1 (":\n"); - PUSH_FAILURE_POINT (p + mcnt, d, -2); - break; - - - /* A smart repeat ends with `maybe_pop_jump'. - We change it to either `pop_failure_jump' or `jump'. */ - case maybe_pop_jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p); - DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt); - { - register unsigned char *p2 = p; - - /* Compare the beginning of the repeat with what in the - pattern follows its end. If we can establish that there - is nothing that they would both match, i.e., that we - would have to backtrack because of (as in, e.g., `a*a') - then we can change to pop_failure_jump, because we'll - never have to backtrack. - - This is not true in the case of alternatives: in - `(a|ab)*' we do need to backtrack to the `ab' alternative - (e.g., if the string was `ab'). But instead of trying to - detect that here, the alternative has put on a dummy - failure point which is what we will end up popping. */ - - /* Skip over open/close-group commands. - If what follows this loop is a ...+ construct, - look at what begins its body, since we will have to - match at least one of that. */ - while (1) - { - if (p2 + 2 < pend - && ((re_opcode_t) *p2 == stop_memory - || (re_opcode_t) *p2 == start_memory)) - p2 += 3; - else if (p2 + 6 < pend - && (re_opcode_t) *p2 == dummy_failure_jump) - p2 += 6; - else - break; - } - - p1 = p + mcnt; - /* p1[0] ... p1[2] are the `on_failure_jump' corresponding - to the `maybe_finalize_jump' of this case. Examine what - follows. */ - - /* If we're at the end of the pattern, we can change. */ - if (p2 == pend) - { - /* Consider what happens when matching ":\(.*\)" - against ":/". I don't really understand this code - yet. */ - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 - (" End of pattern: change to `pop_failure_jump'.\n"); - } - - else if ((re_opcode_t) *p2 == exactn - || (bufp->newline_anchor && (re_opcode_t) *p2 == endline)) - { - register unsigned char c - = *p2 == (unsigned char) endline ? '\n' : p2[2]; - - if ((re_opcode_t) p1[3] == exactn && p1[5] != c) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n", - c, p1[5]); - } - - else if ((re_opcode_t) p1[3] == charset - || (re_opcode_t) p1[3] == charset_not) - { - int not = (re_opcode_t) p1[3] == charset_not; - - if (c < (unsigned char) (p1[4] * BYTEWIDTH) - && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) - not = !not; - - /* `not' is equal to 1 if c would match, which means - that we can't change to pop_failure_jump. */ - if (!not) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } - } - else if ((re_opcode_t) *p2 == charset) - { - /* We win if the first character of the loop is not part - of the charset. */ - if ((re_opcode_t) p1[3] == exactn - && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5] - && (p2[2 + p1[5] / BYTEWIDTH] - & (1 << (p1[5] % BYTEWIDTH))))) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - - else if ((re_opcode_t) p1[3] == charset_not) - { - int idx; - /* We win if the charset_not inside the loop - lists every character listed in the charset after. */ - for (idx = 0; idx < (int) p2[1]; idx++) - if (! (p2[2 + idx] == 0 - || (idx < (int) p1[4] - && ((p2[2 + idx] & ~ p1[5 + idx]) == 0)))) - break; - - if (idx == p2[1]) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } - else if ((re_opcode_t) p1[3] == charset) - { - int idx; - /* We win if the charset inside the loop - has no overlap with the one after the loop. */ - for (idx = 0; - idx < (int) p2[1] && idx < (int) p1[4]; - idx++) - if ((p2[2 + idx] & p1[5 + idx]) != 0) - break; - - if (idx == p2[1] || idx == p1[4]) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } - } - } - p -= 2; /* Point at relative address again. */ - if ((re_opcode_t) p[-1] != pop_failure_jump) - { - p[-1] = (unsigned char) jump; - DEBUG_PRINT1 (" Match => jump.\n"); - goto unconditional_jump; - } - /* Note fall through. */ - - - /* The end of a simple repeat has a pop_failure_jump back to - its matching on_failure_jump, where the latter will push a - failure point. The pop_failure_jump takes off failure - points put on by this pop_failure_jump's matching - on_failure_jump; we got through the pattern to here from the - matching on_failure_jump, so didn't fail. */ - case pop_failure_jump: - { - /* We need to pass separate storage for the lowest and - highest registers, even though we don't care about the - actual values. Otherwise, we will restore only one - register from the stack, since lowest will == highest in - `pop_failure_point'. */ - active_reg_t dummy_low_reg, dummy_high_reg; - unsigned char *pdummy; - const char *sdummy; - - DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n"); - POP_FAILURE_POINT (sdummy, pdummy, - dummy_low_reg, dummy_high_reg, - reg_dummy, reg_dummy, reg_info_dummy); - } - /* Note fall through. */ - - unconditional_jump: -#ifdef _LIBC - DEBUG_PRINT2 ("\n%p: ", p); -#else - DEBUG_PRINT2 ("\n0x%x: ", p); -#endif - /* Note fall through. */ - - /* Unconditionally jump (without popping any failure points). */ - case jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */ - DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt); - p += mcnt; /* Do the jump. */ -#ifdef _LIBC - DEBUG_PRINT2 ("(to %p).\n", p); -#else - DEBUG_PRINT2 ("(to 0x%x).\n", p); -#endif - break; - - - /* We need this opcode so we can detect where alternatives end - in `group_match_null_string_p' et al. */ - case jump_past_alt: - DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n"); - goto unconditional_jump; - - - /* Normally, the on_failure_jump pushes a failure point, which - then gets popped at pop_failure_jump. We will end up at - pop_failure_jump, also, and with a pattern of, say, `a+', we - are skipping over the on_failure_jump, so we have to push - something meaningless for pop_failure_jump to pop. */ - case dummy_failure_jump: - DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n"); - /* It doesn't matter what we push for the string here. What - the code at `fail' tests is the value for the pattern. */ - PUSH_FAILURE_POINT (NULL, NULL, -2); - goto unconditional_jump; - - - /* At the end of an alternative, we need to push a dummy failure - point in case we are followed by a `pop_failure_jump', because - we don't want the failure point for the alternative to be - popped. For example, matching `(a|ab)*' against `aab' - requires that we match the `ab' alternative. */ - case push_dummy_failure: - DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n"); - /* See comments just above at `dummy_failure_jump' about the - two zeroes. */ - PUSH_FAILURE_POINT (NULL, NULL, -2); - break; - - /* Have to succeed matching what follows at least n times. - After that, handle like `on_failure_jump'. */ - case succeed_n: - EXTRACT_NUMBER (mcnt, p + 2); - DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt); - - assert (mcnt >= 0); - /* Originally, this is how many times we HAVE to succeed. */ - if (mcnt > 0) - { - mcnt--; - p += 2; - STORE_NUMBER_AND_INCR (p, mcnt); -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p - 2, mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - 2, mcnt); -#endif - } - else if (mcnt == 0) - { -#ifdef _LIBC - DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", p+2); -#else - DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", p+2); -#endif - p[2] = (unsigned char) no_op; - p[3] = (unsigned char) no_op; - goto on_failure; - } - break; - - case jump_n: - EXTRACT_NUMBER (mcnt, p + 2); - DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt); - - /* Originally, this is how many times we CAN jump. */ - if (mcnt) - { - mcnt--; - STORE_NUMBER (p + 2, mcnt); -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p + 2, mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + 2, mcnt); -#endif - goto unconditional_jump; - } - /* If don't have to jump any more, skip over the rest of command. */ - else - p += 4; - break; - - case set_number_at: - { - DEBUG_PRINT1 ("EXECUTING set_number_at.\n"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); - p1 = p + mcnt; - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt); -#endif - STORE_NUMBER (p1, mcnt); - break; - } - -#if 0 - /* The DEC Alpha C compiler 3.x generates incorrect code for the - test WORDCHAR_P (d - 1) != WORDCHAR_P (d) in the expansion of - AT_WORD_BOUNDARY, so this code is disabled. Expanding the - macro and introducing temporary variables works around the bug. */ - - case wordbound: - DEBUG_PRINT1 ("EXECUTING wordbound.\n"); - if (AT_WORD_BOUNDARY (d)) - break; - goto fail; - - case notwordbound: - DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); - if (AT_WORD_BOUNDARY (d)) - goto fail; - break; -#else - case wordbound: - { - boolean prevchar, thischar; - - DEBUG_PRINT1 ("EXECUTING wordbound.\n"); - if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) - break; - - prevchar = WORDCHAR_P (d - 1); - thischar = WORDCHAR_P (d); - if (prevchar != thischar) - break; - goto fail; - } - - case notwordbound: - { - boolean prevchar, thischar; - - DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); - if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) - goto fail; - - prevchar = WORDCHAR_P (d - 1); - thischar = WORDCHAR_P (d); - if (prevchar != thischar) - goto fail; - break; - } -#endif - - case wordbeg: - DEBUG_PRINT1 ("EXECUTING wordbeg.\n"); - if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1))) - break; - goto fail; - - case wordend: - DEBUG_PRINT1 ("EXECUTING wordend.\n"); - if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1) - && (!WORDCHAR_P (d) || AT_STRINGS_END (d))) - break; - goto fail; - -#ifdef emacs - case before_dot: - DEBUG_PRINT1 ("EXECUTING before_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) >= point) - goto fail; - break; - - case at_dot: - DEBUG_PRINT1 ("EXECUTING at_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) != point) - goto fail; - break; - - case after_dot: - DEBUG_PRINT1 ("EXECUTING after_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) <= point) - goto fail; - break; - - case syntaxspec: - DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt); - mcnt = *p++; - goto matchsyntax; - - case wordchar: - DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n"); - mcnt = (int) Sword; - matchsyntax: - PREFETCH (); - /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ - d++; - if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt) - goto fail; - SET_REGS_MATCHED (); - break; - - case notsyntaxspec: - DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt); - mcnt = *p++; - goto matchnotsyntax; - - case notwordchar: - DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n"); - mcnt = (int) Sword; - matchnotsyntax: - PREFETCH (); - /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ - d++; - if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt) - goto fail; - SET_REGS_MATCHED (); - break; - -#else /* not emacs */ - case wordchar: - DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n"); - PREFETCH (); - if (!WORDCHAR_P (d)) - goto fail; - SET_REGS_MATCHED (); - d++; - break; - - case notwordchar: - DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n"); - PREFETCH (); - if (WORDCHAR_P (d)) - goto fail; - SET_REGS_MATCHED (); - d++; - break; -#endif /* not emacs */ - - default: - abort (); - } - continue; /* Successfully executed one pattern command; keep going. */ - - - /* We goto here if a matching operation fails. */ - fail: - if (!FAIL_STACK_EMPTY ()) - { /* A restart point is known. Restore to that state. */ - DEBUG_PRINT1 ("\nFAIL:\n"); - POP_FAILURE_POINT (d, p, - lowest_active_reg, highest_active_reg, - regstart, regend, reg_info); - - /* If this failure point is a dummy, try the next one. */ - if (!p) - goto fail; - - /* If we failed to the end of the pattern, don't examine *p. */ - assert (p <= pend); - if (p < pend) - { - boolean is_a_jump_n = false; - - /* If failed to a backwards jump that's part of a repetition - loop, need to pop this failure point and use the next one. */ - switch ((re_opcode_t) *p) - { - case jump_n: - is_a_jump_n = true; - case maybe_pop_jump: - case pop_failure_jump: - case jump: - p1 = p + 1; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - - if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n) - || (!is_a_jump_n - && (re_opcode_t) *p1 == on_failure_jump)) - goto fail; - break; - default: - /* do nothing */ ; - } - } - - if (d >= string1 && d <= end1) - dend = end_match_1; - } - else - break; /* Matching at this starting point really fails. */ - } /* for (;;) */ - - if (best_regs_set) - goto restore_best_regs; - - FREE_VARIABLES (); - - return -1; /* Failure to match. */ -} /* re_match_2 */ - -/* Subroutine definitions for re_match_2. */ - - -/* We are passed P pointing to a register number after a start_memory. - - Return true if the pattern up to the corresponding stop_memory can - match the empty string, and false otherwise. - - If we find the matching stop_memory, sets P to point to one past its number. - Otherwise, sets P to an undefined byte less than or equal to END. - - We don't handle duplicates properly (yet). */ - -static boolean -group_match_null_string_p (p, end, reg_info) - unsigned char **p, *end; - register_info_type *reg_info; -{ - int mcnt; - /* Point to after the args to the start_memory. */ - unsigned char *p1 = *p + 2; - - while (p1 < end) - { - /* Skip over opcodes that can match nothing, and return true or - false, as appropriate, when we get to one that can't, or to the - matching stop_memory. */ - - switch ((re_opcode_t) *p1) - { - /* Could be either a loop or a series of alternatives. */ - case on_failure_jump: - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - - /* If the next operation is not a jump backwards in the - pattern. */ - - if (mcnt >= 0) - { - /* Go through the on_failure_jumps of the alternatives, - seeing if any of the alternatives cannot match nothing. - The last alternative starts with only a jump, - whereas the rest start with on_failure_jump and end - with a jump, e.g., here is the pattern for `a|b|c': - - /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6 - /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3 - /exactn/1/c - - So, we have to first go through the first (n-1) - alternatives and then deal with the last one separately. */ - - - /* Deal with the first (n-1) alternatives, which start - with an on_failure_jump (see above) that jumps to right - past a jump_past_alt. */ - - while ((re_opcode_t) p1[mcnt-3] == jump_past_alt) - { - /* `mcnt' holds how many bytes long the alternative - is, including the ending `jump_past_alt' and - its number. */ - - if (!alt_match_null_string_p (p1, p1 + mcnt - 3, - reg_info)) - return false; - - /* Move to right after this alternative, including the - jump_past_alt. */ - p1 += mcnt; - - /* Break if it's the beginning of an n-th alternative - that doesn't begin with an on_failure_jump. */ - if ((re_opcode_t) *p1 != on_failure_jump) - break; - - /* Still have to check that it's not an n-th - alternative that starts with an on_failure_jump. */ - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if ((re_opcode_t) p1[mcnt-3] != jump_past_alt) - { - /* Get to the beginning of the n-th alternative. */ - p1 -= 3; - break; - } - } - - /* Deal with the last alternative: go back and get number - of the `jump_past_alt' just before it. `mcnt' contains - the length of the alternative. */ - EXTRACT_NUMBER (mcnt, p1 - 2); - - if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info)) - return false; - - p1 += mcnt; /* Get past the n-th alternative. */ - } /* if mcnt > 0 */ - break; - - - case stop_memory: - assert (p1[1] == **p); - *p = p1 + 2; - return true; - - - default: - if (!common_op_match_null_string_p (&p1, end, reg_info)) - return false; - } - } /* while p1 < end */ - - return false; -} /* group_match_null_string_p */ - - -/* Similar to group_match_null_string_p, but doesn't deal with alternatives: - It expects P to be the first byte of a single alternative and END one - byte past the last. The alternative can contain groups. */ - -static boolean -alt_match_null_string_p (p, end, reg_info) - unsigned char *p, *end; - register_info_type *reg_info; -{ - int mcnt; - unsigned char *p1 = p; - - while (p1 < end) - { - /* Skip over opcodes that can match nothing, and break when we get - to one that can't. */ - - switch ((re_opcode_t) *p1) - { - /* It's a loop. */ - case on_failure_jump: - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - break; - - default: - if (!common_op_match_null_string_p (&p1, end, reg_info)) - return false; - } - } /* while p1 < end */ - - return true; -} /* alt_match_null_string_p */ - - -/* Deals with the ops common to group_match_null_string_p and - alt_match_null_string_p. - - Sets P to one after the op and its arguments, if any. */ - -static boolean -common_op_match_null_string_p (p, end, reg_info) - unsigned char **p, *end; - register_info_type *reg_info; -{ - int mcnt; - boolean ret; - int reg_no; - unsigned char *p1 = *p; - - switch ((re_opcode_t) *p1++) - { - case no_op: - case begline: - case endline: - case begbuf: - case endbuf: - case wordbeg: - case wordend: - case wordbound: - case notwordbound: -#ifdef emacs - case before_dot: - case at_dot: - case after_dot: -#endif - break; - - case start_memory: - reg_no = *p1; - assert (reg_no > 0 && reg_no <= MAX_REGNUM); - ret = group_match_null_string_p (&p1, end, reg_info); - - /* Have to set this here in case we're checking a group which - contains a group and a back reference to it. */ - - if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE) - REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret; - - if (!ret) - return false; - break; - - /* If this is an optimized succeed_n for zero times, make the jump. */ - case jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if (mcnt >= 0) - p1 += mcnt; - else - return false; - break; - - case succeed_n: - /* Get to the number of times to succeed. */ - p1 += 2; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - - if (mcnt == 0) - { - p1 -= 4; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - } - else - return false; - break; - - case duplicate: - if (!REG_MATCH_NULL_STRING_P (reg_info[*p1])) - return false; - break; - - case set_number_at: - p1 += 4; - - default: - /* All other opcodes mean we cannot match the empty string. */ - return false; - } - - *p = p1; - return true; -} /* common_op_match_null_string_p */ - - -/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN - bytes; nonzero otherwise. */ - -static int -bcmp_translate (s1, s2, len, translate) - const char *s1, *s2; - register int len; - RE_TRANSLATE_TYPE translate; -{ - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - while (len) - { - if (translate[*p1++] != translate[*p2++]) return 1; - len--; - } - return 0; -} - -/* Entry points for GNU code. */ - -/* re_compile_pattern is the GNU regular expression compiler: it - compiles PATTERN (of length SIZE) and puts the result in BUFP. - Returns 0 if the pattern was valid, otherwise an error string. - - Assumes the `allocated' (and perhaps `buffer') and `translate' fields - are set in BUFP on entry. - - We call regex_compile to do the actual compilation. */ - -const char * -re_compile_pattern (pattern, length, bufp) - const char *pattern; - size_t length; - struct re_pattern_buffer *bufp; -{ - reg_errcode_t ret; - - /* GNU code is written to assume at least RE_NREGS registers will be set - (and at least one extra will be -1). */ - bufp->regs_allocated = REGS_UNALLOCATED; - - /* And GNU code determines whether or not to get register information - by passing null for the REGS argument to re_match, etc., not by - setting no_sub. */ - bufp->no_sub = 0; - - /* Match anchors at newline. */ - bufp->newline_anchor = 1; - - ret = regex_compile (pattern, length, re_syntax_options, bufp); - - if (!ret) - return NULL; - return gettext (re_error_msgid + re_error_msgid_idx[(int) ret]); -} -#ifdef _LIBC -weak_alias (__re_compile_pattern, re_compile_pattern) -#endif - -/* Entry points compatible with 4.2 BSD regex library. We don't define - them unless specifically requested. */ - -#if defined _REGEX_RE_COMP || defined _LIBC - -/* BSD has one and only one pattern buffer. */ -static struct re_pattern_buffer re_comp_buf; - -char * -#ifdef _LIBC -/* Make these definitions weak in libc, so POSIX programs can redefine - these names if they don't use our functions, and still use - regcomp/regexec below without link errors. */ -weak_function -#endif -re_comp (s) - const char *s; -{ - reg_errcode_t ret; - - if (!s) - { - if (!re_comp_buf.buffer) - return gettext ("No previous regular expression"); - return 0; - } - - if (!re_comp_buf.buffer) - { - re_comp_buf.buffer = (unsigned char *) malloc (200); - if (re_comp_buf.buffer == NULL) - return (char *) gettext (re_error_msgid - + re_error_msgid_idx[(int) REG_ESPACE]); - re_comp_buf.allocated = 200; - - re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH); - if (re_comp_buf.fastmap == NULL) - return (char *) gettext (re_error_msgid - + re_error_msgid_idx[(int) REG_ESPACE]); - } - - /* Since `re_exec' always passes NULL for the `regs' argument, we - don't need to initialize the pattern buffer fields which affect it. */ - - /* Match anchors at newlines. */ - re_comp_buf.newline_anchor = 1; - - ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); - - if (!ret) - return NULL; - - /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ - return (char *) gettext (re_error_msgid + re_error_msgid_idx[(int) ret]); -} - - -int -#ifdef _LIBC -weak_function -#endif -re_exec (s) - const char *s; -{ - const int len = strlen (s); - return - 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0); -} - -#endif /* _REGEX_RE_COMP */ - -/* POSIX.2 functions. Don't define these for Emacs. */ - -#ifndef emacs - -/* regcomp takes a regular expression as a string and compiles it. - - PREG is a regex_t *. We do not expect any fields to be initialized, - since POSIX says we shouldn't. Thus, we set - - `buffer' to the compiled pattern; - `used' to the length of the compiled pattern; - `syntax' to RE_SYNTAX_POSIX_EXTENDED if the - REG_EXTENDED bit in CFLAGS is set; otherwise, to - RE_SYNTAX_POSIX_BASIC; - `newline_anchor' to REG_NEWLINE being set in CFLAGS; - `fastmap' to an allocated space for the fastmap; - `fastmap_accurate' to zero; - `re_nsub' to the number of subexpressions in PATTERN. - - PATTERN is the address of the pattern string. - - CFLAGS is a series of bits which affect compilation. - - If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we - use POSIX basic syntax. - - If REG_NEWLINE is set, then . and [^...] don't match newline. - Also, regexec will try a match beginning after every newline. - - If REG_ICASE is set, then we considers upper- and lowercase - versions of letters to be equivalent when matching. - - If REG_NOSUB is set, then when PREG is passed to regexec, that - routine will report only success or failure, and nothing about the - registers. - - It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for - the return codes and their meanings.) */ - -int -regcomp (preg, pattern, cflags) - regex_t *preg; - const char *pattern; - int cflags; -{ - reg_errcode_t ret; - reg_syntax_t syntax - = (cflags & REG_EXTENDED) ? - RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC; - - /* regex_compile will allocate the space for the compiled pattern. */ - preg->buffer = 0; - preg->allocated = 0; - preg->used = 0; - - /* Try to allocate space for the fastmap. */ - preg->fastmap = (char *) malloc (1 << BYTEWIDTH); - - if (cflags & REG_ICASE) - { - unsigned i; - - preg->translate - = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE - * sizeof (*(RE_TRANSLATE_TYPE)0)); - if (preg->translate == NULL) - return (int) REG_ESPACE; - - /* Map uppercase characters to corresponding lowercase ones. */ - for (i = 0; i < CHAR_SET_SIZE; i++) - preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i; - } - else - preg->translate = NULL; - - /* If REG_NEWLINE is set, newlines are treated differently. */ - if (cflags & REG_NEWLINE) - { /* REG_NEWLINE implies neither . nor [^...] match newline. */ - syntax &= ~RE_DOT_NEWLINE; - syntax |= RE_HAT_LISTS_NOT_NEWLINE; - /* It also changes the matching behavior. */ - preg->newline_anchor = 1; - } - else - preg->newline_anchor = 0; - - preg->no_sub = !!(cflags & REG_NOSUB); - - /* POSIX says a null character in the pattern terminates it, so we - can use strlen here in compiling the pattern. */ - ret = regex_compile (pattern, strlen (pattern), syntax, preg); - - /* POSIX doesn't distinguish between an unmatched open-group and an - unmatched close-group: both are REG_EPAREN. */ - if (ret == REG_ERPAREN) ret = REG_EPAREN; - - if (ret == REG_NOERROR && preg->fastmap) - { - /* Compute the fastmap now, since regexec cannot modify the pattern - buffer. */ - if (re_compile_fastmap (preg) == -2) - { - /* Some error occured while computing the fastmap, just forget - about it. */ - free (preg->fastmap); - preg->fastmap = NULL; - } - } - - return (int) ret; -} -#ifdef _LIBC -weak_alias (__regcomp, regcomp) -#endif - - -/* regexec searches for a given pattern, specified by PREG, in the - string STRING. - - If NMATCH is zero or REG_NOSUB was set in the cflags argument to - `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at - least NMATCH elements, and we set them to the offsets of the - corresponding matched substrings. - - EFLAGS specifies `execution flags' which affect matching: if - REG_NOTBOL is set, then ^ does not match at the beginning of the - string; if REG_NOTEOL is set, then $ does not match at the end. - - We return 0 if we find a match and REG_NOMATCH if not. */ - -int -regexec (preg, string, nmatch, pmatch, eflags) - const regex_t *preg; - const char *string; - size_t nmatch; - regmatch_t pmatch[]; - int eflags; -{ - int ret; - struct re_registers regs; - regex_t private_preg; - int len = strlen (string); - boolean want_reg_info = !preg->no_sub && nmatch > 0; - - private_preg = *preg; - - private_preg.not_bol = !!(eflags & REG_NOTBOL); - private_preg.not_eol = !!(eflags & REG_NOTEOL); - - /* The user has told us exactly how many registers to return - information about, via `nmatch'. We have to pass that on to the - matching routines. */ - private_preg.regs_allocated = REGS_FIXED; - - if (want_reg_info) - { - regs.num_regs = nmatch; - regs.start = TALLOC (nmatch * 2, regoff_t); - if (regs.start == NULL) - return (int) REG_NOMATCH; - regs.end = regs.start + nmatch; - } - - /* Perform the searching operation. */ - ret = re_search (&private_preg, string, len, - /* start: */ 0, /* range: */ len, - want_reg_info ? ®s : (struct re_registers *) 0); - - /* Copy the register information to the POSIX structure. */ - if (want_reg_info) - { - if (ret >= 0) - { - unsigned r; - - for (r = 0; r < nmatch; r++) - { - pmatch[r].rm_so = regs.start[r]; - pmatch[r].rm_eo = regs.end[r]; - } - } - - /* If we needed the temporary register info, free the space now. */ - free (regs.start); - } - - /* We want zero return to mean success, unlike `re_search'. */ - return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; -} -#ifdef _LIBC -weak_alias (__regexec, regexec) -#endif - - -/* Returns a message corresponding to an error code, ERRCODE, returned - from either regcomp or regexec. We don't use PREG here. */ - -size_t -regerror (errcode, preg, errbuf, errbuf_size) - int errcode; - const regex_t *preg; - char *errbuf; - size_t errbuf_size; -{ - const char *msg; - size_t msg_size; - - if (errcode < 0 - || errcode >= (int) (sizeof (re_error_msgid_idx) - / sizeof (re_error_msgid_idx[0]))) - /* Only error codes returned by the rest of the code should be passed - to this routine. If we are given anything else, or if other regex - code generates an invalid error code, then the program has a bug. - Dump core so we can fix it. */ - abort (); - - msg = gettext (re_error_msgid + re_error_msgid_idx[errcode]); - - msg_size = strlen (msg) + 1; /* Includes the null. */ - - if (errbuf_size != 0) - { - if (msg_size > errbuf_size) - { -#if defined HAVE_MEMPCPY || defined _LIBC - *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; -#else - memcpy (errbuf, msg, errbuf_size - 1); - errbuf[errbuf_size - 1] = 0; -#endif - } - else - memcpy (errbuf, msg, msg_size); - } - - return msg_size; -} -#ifdef _LIBC -weak_alias (__regerror, regerror) -#endif - - -/* Free dynamically allocated space used by PREG. */ - -void -regfree (preg) - regex_t *preg; -{ - if (preg->buffer != NULL) - free (preg->buffer); - preg->buffer = NULL; - - preg->allocated = 0; - preg->used = 0; - - if (preg->fastmap != NULL) - free (preg->fastmap); - preg->fastmap = NULL; - preg->fastmap_accurate = 0; - - if (preg->translate != NULL) - free (preg->translate); - preg->translate = NULL; -} -#ifdef _LIBC -weak_alias (__regfree, regfree) -#endif - -#endif /* not emacs */ diff --git a/lib/m4regex.h b/lib/m4regex.h deleted file mode 100644 index d88ab92b..00000000 --- a/lib/m4regex.h +++ /dev/null @@ -1,542 +0,0 @@ -/* Definitions for data structures and routines for the regular - expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _REGEX_H -#define _REGEX_H 1 - -/* Allow the use in C++ code. */ -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX says that <sys/types.h> must be included (by the caller) before - <regex.h>. */ - -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS -/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it - should be there. */ -# include <stddef.h> -#endif - -/* The following two types have to be signed and unsigned integer type - wide enough to hold a value of a pointer. For most ANSI compilers - ptrdiff_t and size_t should be likely OK. Still size of these two - types is 2 for Microsoft C. Ugh... */ -typedef long int s_reg_t; -typedef unsigned long int active_reg_t; - -/* The following bits are used to determine the regexp syntax we - recognize. The set/not-set meanings are chosen so that Emacs syntax - remains the value 0. The bits are given in alphabetical order, and - the definitions shifted by one from the previous bit; thus, when we - add or remove a bit, only one other definition need change. */ -typedef unsigned long int reg_syntax_t; - -/* If this bit is not set, then \ inside a bracket expression is literal. - If set, then such a \ quotes the following character. */ -#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) - -/* If this bit is not set, then + and ? are operators, and \+ and \? are - literals. - If set, then \+ and \? are operators and + and ? are literals. */ -#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) - -/* If this bit is set, then character classes are supported. They are: - [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], - [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. - If not set, then character classes are not supported. */ -#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) - -/* If this bit is set, then ^ and $ are always anchors (outside bracket - expressions, of course). - If this bit is not set, then it depends: - ^ is an anchor if it is at the beginning of a regular - expression or after an open-group or an alternation operator; - $ is an anchor if it is at the end of a regular expression, or - before a close-group or an alternation operator. - - This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because - POSIX draft 11.2 says that * etc. in leading positions is undefined. - We already implemented a previous draft which made those constructs - invalid, though, so we haven't changed the code back. */ -#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) - -/* If this bit is set, then special characters are always special - regardless of where they are in the pattern. - If this bit is not set, then special characters are special only in - some contexts; otherwise they are ordinary. Specifically, - * + ? and intervals are only special when not after the beginning, - open-group, or alternation operator. */ -#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) - -/* If this bit is set, then *, +, ?, and { cannot be first in an re or - immediately after an alternation or begin-group operator. */ -#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) - -/* If this bit is set, then . matches newline. - If not set, then it doesn't. */ -#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) - -/* If this bit is set, then . doesn't match NUL. - If not set, then it does. */ -#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) - -/* If this bit is set, nonmatching lists [^...] do not match newline. - If not set, they do. */ -#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) - -/* If this bit is set, either \{...\} or {...} defines an - interval, depending on RE_NO_BK_BRACES. - If not set, \{, \}, {, and } are literals. */ -#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -/* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ -#define RE_LIMITED_OPS (RE_INTERVALS << 1) - -/* If this bit is set, newline is an alternation operator. - If not set, newline is literal. */ -#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) - -/* If this bit is set, then `{...}' defines an interval, and \{ and \} - are literals. - If not set, then `\{...\}' defines an interval. */ -#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) - -/* If this bit is set, (...) defines a group, and \( and \) are literals. - If not set, \(...\) defines a group, and ( and ) are literals. */ -#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) - -/* If this bit is set, then \<digit> matches <digit>. - If not set, then \<digit> is a back-reference. */ -#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) - -/* If this bit is set, then | is an alternation operator, and \| is literal. - If not set, then \| is an alternation operator, and | is literal. */ -#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) - -/* If this bit is set, then an ending range point collating higher - than the starting range point, as in [z-a], is invalid. - If not set, then when ending range point collates higher than the - starting range point, the range is ignored. */ -#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) - -/* If this bit is set, then an unmatched ) is ordinary. - If not set, then an unmatched ) is invalid. */ -#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) - -/* If this bit is set, succeed as soon as we match the whole pattern, - without further backtracking. */ -#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) - -/* If this bit is set, do not process the GNU regex operators. - If not set, then the GNU regex operators are recognized. */ -#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) - -/* If this bit is set, turn on internal regex debugging. - If not set, and debugging was on, turn it off. - This only works if regex.c is compiled -DDEBUG. - We define this bit always, so that all that's needed to turn on - debugging is to recompile regex.c; the calling code can always have - this bit set, and it won't affect anything in the normal case. */ -#define RE_DEBUG (RE_NO_GNU_OPS << 1) - -/* This global variable defines the particular regexp syntax to use (for - some interfaces). When a regexp is compiled, the syntax used is - stored in the pattern buffer, so changing this does not affect - already-compiled regexps. */ -extern reg_syntax_t re_syntax_options; - -/* Define combinations of the above bits for the standard possibilities. - (The [[[ comments delimit what gets put into the Texinfo file, so - don't delete them!) */ -/* [[[begin syntaxes]]] */ -#define RE_SYNTAX_EMACS 0 - -#define RE_SYNTAX_AWK \ - (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ - | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ - | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GNU_AWK \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ - & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS)) - -#define RE_SYNTAX_POSIX_AWK \ - (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ - | RE_INTERVALS | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GREP \ - (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ - | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ - | RE_NEWLINE_ALT) - -#define RE_SYNTAX_EGREP \ - (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ - | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ - | RE_NO_BK_VBAR) - -#define RE_SYNTAX_POSIX_EGREP \ - (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES) - -/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ -#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC - -#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC - -/* Syntax bits common to both basic and extended POSIX regex syntax. */ -#define _RE_SYNTAX_POSIX_COMMON \ - (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ - | RE_INTERVALS | RE_NO_EMPTY_RANGES) - -#define RE_SYNTAX_POSIX_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) - -/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes - RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this - isn't minimal, since other operators, such as \`, aren't disabled. */ -#define RE_SYNTAX_POSIX_MINIMAL_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) - -#define RE_SYNTAX_POSIX_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ - | RE_UNMATCHED_RIGHT_PAREN_ORD) - -/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS - replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */ -#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) -/* [[[end syntaxes]]] */ - -/* Maximum number of duplicates an interval can allow. Some systems - (erroneously) define this in other header files, but we want our - value, so remove any previous define. */ -#ifdef RE_DUP_MAX -# undef RE_DUP_MAX -#endif -/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ -#define RE_DUP_MAX (0x7fff) - - -/* POSIX `cflags' bits (i.e., information for `regcomp'). */ - -/* If this bit is set, then use extended regular expression syntax. - If not set, then use basic regular expression syntax. */ -#define REG_EXTENDED 1 - -/* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ -#define REG_ICASE (REG_EXTENDED << 1) - -/* If this bit is set, then anchors do not match at newline - characters in the string. - If not set, then anchors do match at newlines. */ -#define REG_NEWLINE (REG_ICASE << 1) - -/* If this bit is set, then report only success or fail in regexec. - If not set, then returns differ between not matching and errors. */ -#define REG_NOSUB (REG_NEWLINE << 1) - - -/* POSIX `eflags' bits (i.e., information for regexec). */ - -/* If this bit is set, then the beginning-of-line operator doesn't match - the beginning of the string (presumably because it's not the - beginning of a line). - If not set, then the beginning-of-line operator does match the - beginning of the string. */ -#define REG_NOTBOL 1 - -/* Like REG_NOTBOL, except for the end-of-line. */ -#define REG_NOTEOL (1 << 1) - - -/* If any error codes are removed, changed, or added, update the - `re_error_msg' table in regex.c. */ -typedef enum -{ -#ifdef _XOPEN_SOURCE - REG_ENOSYS = -1, /* This will never happen for this implementation. */ -#endif - - REG_NOERROR = 0, /* Success. */ - REG_NOMATCH, /* Didn't find a match (for regexec). */ - - /* POSIX regcomp return error codes. (In the order listed in the - standard.) */ - REG_BADPAT, /* Invalid pattern. */ - REG_ECOLLATE, /* Not implemented. */ - REG_ECTYPE, /* Invalid character class name. */ - REG_EESCAPE, /* Trailing backslash. */ - REG_ESUBREG, /* Invalid back reference. */ - REG_EBRACK, /* Unmatched left bracket. */ - REG_EPAREN, /* Parenthesis imbalance. */ - REG_EBRACE, /* Unmatched \{. */ - REG_BADBR, /* Invalid contents of \{\}. */ - REG_ERANGE, /* Invalid range end. */ - REG_ESPACE, /* Ran out of memory. */ - REG_BADRPT, /* No preceding re for repetition op. */ - - /* Error codes we've added. */ - REG_EEND, /* Premature end. */ - REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ - REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ -} reg_errcode_t; - -/* This data structure represents a compiled pattern. Before calling - the pattern compiler, the fields `buffer', `allocated', `fastmap', - `translate', and `no_sub' can be set. After the pattern has been - compiled, the `re_nsub' field is available. All other fields are - private to the regex routines. */ - -#ifndef RE_TRANSLATE_TYPE -# define RE_TRANSLATE_TYPE char * -#endif - -struct re_pattern_buffer -{ -/* [[[begin pattern_buffer]]] */ - /* Space that holds the compiled pattern. It is declared as - `unsigned char *' because its elements are - sometimes used as array indexes. */ - unsigned char *buffer; - - /* Number of bytes to which `buffer' points. */ - unsigned long int allocated; - - /* Number of bytes actually used in `buffer'. */ - unsigned long int used; - - /* Syntax setting with which the pattern was compiled. */ - reg_syntax_t syntax; - - /* Pointer to a fastmap, if any, otherwise zero. re_search uses - the fastmap, if there is one, to skip over impossible - starting points for matches. */ - char *fastmap; - - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation - is applied to a pattern when it is compiled and to a string - when it is matched. */ - RE_TRANSLATE_TYPE translate; - - /* Number of subexpressions found by the compiler. */ - size_t re_nsub; - - /* Zero if this pattern cannot match the empty string, one else. - Well, in truth it's used only in `re_search_2', to see - whether or not we should use the fastmap, so we don't set - this absolutely perfectly; see `re_compile_fastmap' (the - `duplicate' case). */ - unsigned can_be_null : 1; - - /* If REGS_UNALLOCATED, allocate space in the `regs' structure - for `max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ -#define REGS_UNALLOCATED 0 -#define REGS_REALLOCATE 1 -#define REGS_FIXED 2 - unsigned regs_allocated : 2; - - /* Set to zero when `regex_compile' compiles a pattern; set to one - by `re_compile_fastmap' if it updates the fastmap. */ - unsigned fastmap_accurate : 1; - - /* If set, `re_match_2' does not return information about - subexpressions. */ - unsigned no_sub : 1; - - /* If set, a beginning-of-line anchor doesn't match at the - beginning of the string. */ - unsigned not_bol : 1; - - /* Similarly for an end-of-line anchor. */ - unsigned not_eol : 1; - - /* If true, an anchor at a newline matches. */ - unsigned newline_anchor : 1; - -/* [[[end pattern_buffer]]] */ -}; - -typedef struct re_pattern_buffer regex_t; - -/* Type for byte offsets within the string. POSIX mandates this. */ -typedef int regoff_t; - - -/* This is the structure we store register match data in. See - regex.texinfo for a full description of what registers match. */ -struct re_registers -{ - unsigned num_regs; - regoff_t *start; - regoff_t *end; -}; - - -/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, - `re_match_2' returns information about at least this many registers - the first time a `regs' structure is passed. */ -#ifndef RE_NREGS -# define RE_NREGS 30 -#endif - - -/* POSIX specification for registers. Aside from the different names than - `re_registers', POSIX uses an array of structures, instead of a - structure of arrays. */ -typedef struct -{ - regoff_t rm_so; /* Byte offset from string's start to substring's start. */ - regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ -} regmatch_t; - -/* Declarations for routines. */ - -/* To avoid duplicating every routine declaration -- once with a - prototype (if we are ANSI), and once without (if we aren't) -- we - use the following macro to declare argument types. This - unfortunately clutters up the declarations a bit, but I think it's - worth it. */ - -#if __STDC__ - -# define _RE_ARGS(args) args - -#else /* not __STDC__ */ - -# define _RE_ARGS(args) () - -#endif /* not __STDC__ */ - -/* Sets the current default syntax to SYNTAX, and return the old syntax. - You can also simply assign to the `re_syntax_options' variable. */ -extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax)); - -/* Compile the regular expression PATTERN, with length LENGTH - and syntax given by the global `re_syntax_options', into the buffer - BUFFER. Return NULL if successful, and an error string if not. */ -extern const char *re_compile_pattern - _RE_ARGS ((const char *pattern, size_t length, - struct re_pattern_buffer *buffer)); - - -/* Compile a fastmap for the compiled pattern in BUFFER; used to - accelerate searches. Return 0 if successful and -2 if was an - internal error. */ -extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer)); - - -/* Search in the string STRING (with length LENGTH) for the pattern - compiled into BUFFER. Start searching at position START, for RANGE - characters. Return the starting position of the match, -1 for no - match, or -2 for an internal error. Also return register - information in REGS (if REGS and BUFFER->no_sub are nonzero). */ -extern int re_search - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, int range, struct re_registers *regs)); - - -/* Like `re_search', but search in the concatenation of STRING1 and - STRING2. Also, stop searching at index START + STOP. */ -extern int re_search_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, int range, struct re_registers *regs, int stop)); - - -/* Like `re_search', but return how many characters in STRING the regexp - in BUFFER matched, starting at position START. */ -extern int re_match - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, struct re_registers *regs)); - - -/* Relates to `re_match' as `re_search_2' relates to `re_search'. */ -extern int re_match_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, struct re_registers *regs, int stop)); - - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using BUFFER and REGS will use this memory - for recording register information. STARTS and ENDS must be - allocated with malloc, and must each be at least `NUM_REGS * sizeof - (regoff_t)' bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ -extern void re_set_registers - _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs, - unsigned num_regs, regoff_t *starts, regoff_t *ends)); - -#if defined _REGEX_RE_COMP || defined _LIBC -# ifndef _CRAY -/* 4.2 bsd compatibility. */ -extern char *re_comp _RE_ARGS ((const char *)); -extern int re_exec _RE_ARGS ((const char *)); -# endif -#endif - -/* POSIX compatibility. */ -extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern, - int __cflags)); - -extern int regexec _RE_ARGS ((const regex_t *__preg, - const char *__string, size_t __nmatch, - regmatch_t __pmatch[], int __eflags)); - -extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg, - char *__errbuf, size_t __errbuf_size)); - -extern void regfree _RE_ARGS ((regex_t *__preg)); - - -#ifdef __cplusplus -} -#endif /* C++ */ - -#endif /* regex.h */ - -/* -Local variables: -make-backup-files: t -version-control: t -trim-versions-without-asking: nil -End: -*/ diff --git a/libltdl/COPYING.LIB b/libltdl/COPYING.LIB deleted file mode 100644 index eb685a5e..00000000 --- a/libltdl/COPYING.LIB +++ /dev/null @@ -1,481 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am deleted file mode 100644 index 12bdcbbf..00000000 --- a/libltdl/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = no-dependencies foreign - -if INSTALL_LTDL -include_HEADERS = ltdl.h -lib_LTLIBRARIES = libltdl.la -else -noinst_HEADERS = ltdl.h -endif - -if CONVENIENCE_LTDL -noinst_LTLIBRARIES = libltdlc.la -endif - -libltdl_la_SOURCES = ltdl.c -libltdl_la_LDFLAGS = -version-info 1:1:1 -libltdl_la_LIBADD = $(LIBADD_DL) - -libltdlc_la_SOURCES = ltdl.c -libltdlc_la_LIBADD = $(LIBADD_DL) - -## Because we do not have automatic dependency tracking: -ltdl.lo: ltdl.h config.h - -$(OBJECTS): libtool -libtool: $(LIBTOOL_DEPS) - $(SHELL) ./config.status --recheck - -## This allows us to install libltdl without using ln and without creating -## a world writeable directory. -## FIXME: Removed this rule once automake can do this properly by itself. -local-install-files: $(DISTFILES) - -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl - $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \ - else \ - test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \ - || cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \ - fi; \ - done diff --git a/libltdl/Makefile.in b/libltdl/Makefile.in deleted file mode 100644 index 6d4c93b2..00000000 --- a/libltdl/Makefile.in +++ /dev/null @@ -1,454 +0,0 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DLLTOOL = @DLLTOOL@ -LD = @LD@ -LIBADD_DL = @LIBADD_DL@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_DEPS = @LIBTOOL_DEPS@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -NM = @NM@ -OBJDUMP = @OBJDUMP@ -PACKAGE = @PACKAGE@ -RANLIB = @RANLIB@ -VERSION = @VERSION@ - -AUTOMAKE_OPTIONS = no-dependencies foreign - -@INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h -@INSTALL_LTDL_TRUE@lib_LTLIBRARIES = libltdl.la -@INSTALL_LTDL_FALSE@noinst_HEADERS = ltdl.h - -@CONVENIENCE_LTDL_TRUE@noinst_LTLIBRARIES = libltdlc.la - -libltdl_la_SOURCES = ltdl.c -libltdl_la_LDFLAGS = -version-info 1:1:1 -libltdl_la_LIBADD = $(LIBADD_DL) - -libltdlc_la_SOURCES = ltdl.c -libltdlc_la_LIBADD = $(LIBADD_DL) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -libltdl_la_DEPENDENCIES = -libltdl_la_OBJECTS = ltdl.lo -libltdlc_la_LDFLAGS = -libltdlc_la_DEPENDENCIES = -libltdlc_la_OBJECTS = ltdl.lo -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -HEADERS = $(include_HEADERS) $(noinst_HEADERS) - -DIST_COMMON = README ./stamp-h.in COPYING.LIB Makefile.am Makefile.in \ -acconfig.h acinclude.m4 aclocal.m4 config.h.in configure configure.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES) -OBJECTS = $(libltdl_la_OBJECTS) $(libltdlc_la_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 - cd $(srcdir) && $(ACLOCAL) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -config.h: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=config.h \ - $(SHELL) ./config.status - @echo timestamp > stamp-h 2> /dev/null -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/stamp-h.in; \ - $(MAKE) $(srcdir)/stamp-h.in; \ - else :; fi -$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null - -mostlyclean-hdr: - -clean-hdr: - -distclean-hdr: - -rm -f config.h - -maintainer-clean-hdr: - -mostlyclean-libLTLIBRARIES: - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - -distclean-libLTLIBRARIES: - -maintainer-clean-libLTLIBRARIES: - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -mostlyclean-noinstLTLIBRARIES: - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - -distclean-noinstLTLIBRARIES: - -maintainer-clean-noinstLTLIBRARIES: - -.c.o: - $(COMPILE) -c $< - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libltdl_la_LDFLAGS) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) - -libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) - $(LINK) $(libltdlc_la_LDFLAGS) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) - -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(includedir) - @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ - echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ - $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - list='$(include_HEADERS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(includedir)/$$p; \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -all-recursive-am: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -install-exec-am: install-libLTLIBRARIES -install-exec: install-exec-am - -install-data-am: install-includeHEADERS -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS -uninstall: uninstall-am -all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \ - mostlyclean-noinstLTLIBRARIES mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-hdr clean-libLTLIBRARIES clean-noinstLTLIBRARIES \ - clean-compile clean-libtool clean-tags clean-generic \ - mostlyclean-am - -clean: clean-am - -distclean-am: distclean-hdr distclean-libLTLIBRARIES \ - distclean-noinstLTLIBRARIES distclean-compile \ - distclean-libtool distclean-tags distclean-generic \ - clean-am - -rm -f libtool - -distclean: distclean-am - -rm -f config.status - -maintainer-clean-am: maintainer-clean-hdr \ - maintainer-clean-libLTLIBRARIES \ - maintainer-clean-noinstLTLIBRARIES \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -rm -f config.status - -.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ -mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ -clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ -uninstall-libLTLIBRARIES install-libLTLIBRARIES \ -mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \ -clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile mostlyclean-libtool distclean-libtool \ -clean-libtool maintainer-clean-libtool uninstall-includeHEADERS \ -install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \ -maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck all-recursive-am install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -ltdl.lo: ltdl.h config.h - -$(OBJECTS): libtool -libtool: $(LIBTOOL_DEPS) - $(SHELL) ./config.status --recheck - -local-install-files: $(DISTFILES) - -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl - $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \ - else \ - test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \ - || cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \ - fi; \ - done - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libltdl/README b/libltdl/README deleted file mode 100644 index 0b08ae28..00000000 --- a/libltdl/README +++ /dev/null @@ -1 +0,0 @@ -This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. diff --git a/libltdl/acconfig.h b/libltdl/acconfig.h deleted file mode 100644 index 15f115c7..00000000 --- a/libltdl/acconfig.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Some of these are defined here, not in configure.in, because - they're AC_DEFINEd in two different places, which causes two - defines to appear. Some C compilers might now appreciate it... */ - -/* Define if you have the libdl library or equivalent. */ -#undef HAVE_LIBDL - -/* Define if you have the GNU dld library. */ -#undef HAVE_DLD - -/* Define if you have the shl_load function. */ -#undef HAVE_SHL_LOAD diff --git a/libltdl/acinclude.m4 b/libltdl/acinclude.m4 deleted file mode 100644 index 2ad32064..00000000 --- a/libltdl/acinclude.m4 +++ /dev/null @@ -1,427 +0,0 @@ -## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- -## Copyright (C) 1996-1999 Free Software Foundation, Inc. -## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -## -## 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -## -## As a special exception to the GNU General Public License, if you -## distribute this file as part of a program that contains a -## configuration script generated by Autoconf, you may include it under -## the same distribution terms that you use for the rest of that program. - -# serial 40 AC_PROG_LIBTOOL -AC_DEFUN(AC_PROG_LIBTOOL, -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl - -# Save cache, so that ltconfig can load it -AC_CACHE_SAVE - -# Actually configure libtool. ac_aux_dir is where install-sh is found. -CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ -DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ -${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]) - -# Reload cache, that may have been modified by ltconfig -AC_CACHE_LOAD - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log -]) - -AC_DEFUN(AC_LIBTOOL_SETUP, -[AC_PREREQ(2.13)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_RANLIB])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_NM])dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -dnl - -# Check for any special flags to pass to ltconfig. -libtool_flags="--cache-file=$cache_file" -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" -test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" -ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], -[libtool_flags="$libtool_flags --enable-dlopen"]) -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -[libtool_flags="$libtool_flags --enable-win32-dll"]) -AC_ARG_ENABLE(libtool-lock, - [ --disable-libtool-lock avoid locking (might break parallel builds)]) -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case "$host" in -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -]) -esac -]) - -# AC_LIBTOOL_DLOPEN - enable checks for dlopen support -AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) - -# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's -AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) - -# AC_ENABLE_SHARED - implement the --enable-shared flag -# Usage: AC_ENABLE_SHARED[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_SHARED, [dnl -define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(shared, -changequote(<<, >>)dnl -<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_shared=yes ;; -no) enable_shared=no ;; -*) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl -]) - -# AC_DISABLE_SHARED - set the default shared flag to --disable-shared -AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no)]) - -# AC_ENABLE_STATIC - implement the --enable-static flag -# Usage: AC_ENABLE_STATIC[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_STATIC, [dnl -define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(static, -changequote(<<, >>)dnl -<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_static=yes ;; -no) enable_static=no ;; -*) - enable_static=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_static=AC_ENABLE_STATIC_DEFAULT)dnl -]) - -# AC_DISABLE_STATIC - set the default static flag to --disable-static -AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no)]) - - -# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag -# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl -define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(fast-install, -changequote(<<, >>)dnl -<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_fast_install=yes ;; -no) enable_fast_install=no ;; -*) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl -]) - -# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install -AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no)]) - -# AC_PROG_LD - find the path to the GNU or non-GNU linker -AC_DEFUN(AC_PROG_LD, -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$ac_cv_prog_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. -changequote(,)dnl - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' -changequote([,])dnl - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(ac_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - ac_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - ac_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$ac_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_SUBST(LD) -AC_PROG_LD_GNU -]) - -AC_DEFUN(AC_PROG_LD_GNU, -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then - ac_cv_prog_gnu_ld=yes -else - ac_cv_prog_gnu_ld=no -fi]) -]) - -# AC_PROG_NM - find the path to a BSD-compatible name lister -AC_DEFUN(AC_PROG_NM, -[AC_MSG_CHECKING([for BSD-compatible nm]) -AC_CACHE_VAL(ac_cv_path_NM, -[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}${PATH_SEPARATOR-:}" - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -p" - break - else - ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm -fi]) -NM="$ac_cv_path_NM" -AC_MSG_RESULT([$NM]) -AC_SUBST(NM) -]) - -# AC_CHECK_LIBM - check for math library -AC_DEFUN(AC_CHECK_LIBM, -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case "$host" in -*-*-beos* | *-*-cygwin*) - # These system don't have libm - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, main, LIBM="-lm") - ;; -esac -]) - -# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl convenience library, adds --enable-ltdl-convenience to -# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor -# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed -# to be `${top_builddir}/libltdl'. Make sure you start DIR with -# '${top_builddir}/' (note the single quotes!) if your package is not -# flat, and, if you're not using automake, define top_builddir as -# appropriate in the Makefiles. -AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case "$enable_ltdl_convenience" in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la - INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) -]) - -# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl installable library, and adds --enable-ltdl-install to -# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor -# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed -# to be `${top_builddir}/libltdl'. Make sure you start DIR with -# '${top_builddir}/' (note the single quotes!) if your package is not -# flat, and, if you're not using automake, define top_builddir as -# appropriate in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, main, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la - INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - INCLTDL= - fi -]) - -dnl old names -AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl -AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl -AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl -AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl -AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl -AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl -AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl - -dnl This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL])dnl diff --git a/libltdl/aclocal.m4 b/libltdl/aclocal.m4 deleted file mode 100644 index 7ade1e6e..00000000 --- a/libltdl/aclocal.m4 +++ /dev/null @@ -1,566 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4 - -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - - -# serial 40 AC_PROG_LIBTOOL -AC_DEFUN(AC_PROG_LIBTOOL, -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl - -# Save cache, so that ltconfig can load it -AC_CACHE_SAVE - -# Actually configure libtool. ac_aux_dir is where install-sh is found. -CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ -DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ -${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]) - -# Reload cache, that may have been modified by ltconfig -AC_CACHE_LOAD - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log -]) - -AC_DEFUN(AC_LIBTOOL_SETUP, -[AC_PREREQ(2.13)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_RANLIB])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_NM])dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -dnl - -# Check for any special flags to pass to ltconfig. -libtool_flags="--cache-file=$cache_file" -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" -test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" -ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], -[libtool_flags="$libtool_flags --enable-dlopen"]) -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -[libtool_flags="$libtool_flags --enable-win32-dll"]) -AC_ARG_ENABLE(libtool-lock, - [ --disable-libtool-lock avoid locking (might break parallel builds)]) -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case "$host" in -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -]) -esac -]) - -# AC_LIBTOOL_DLOPEN - enable checks for dlopen support -AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) - -# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's -AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) - -# AC_ENABLE_SHARED - implement the --enable-shared flag -# Usage: AC_ENABLE_SHARED[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_SHARED, [dnl -define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(shared, -changequote(<<, >>)dnl -<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_shared=yes ;; -no) enable_shared=no ;; -*) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl -]) - -# AC_DISABLE_SHARED - set the default shared flag to --disable-shared -AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no)]) - -# AC_ENABLE_STATIC - implement the --enable-static flag -# Usage: AC_ENABLE_STATIC[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_STATIC, [dnl -define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(static, -changequote(<<, >>)dnl -<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_static=yes ;; -no) enable_static=no ;; -*) - enable_static=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_static=AC_ENABLE_STATIC_DEFAULT)dnl -]) - -# AC_DISABLE_STATIC - set the default static flag to --disable-static -AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no)]) - - -# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag -# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl -define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(fast-install, -changequote(<<, >>)dnl -<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_fast_install=yes ;; -no) enable_fast_install=no ;; -*) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl -]) - -# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install -AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no)]) - -# AC_PROG_LD - find the path to the GNU or non-GNU linker -AC_DEFUN(AC_PROG_LD, -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$ac_cv_prog_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. -changequote(,)dnl - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' -changequote([,])dnl - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(ac_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - ac_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - ac_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$ac_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_SUBST(LD) -AC_PROG_LD_GNU -]) - -AC_DEFUN(AC_PROG_LD_GNU, -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then - ac_cv_prog_gnu_ld=yes -else - ac_cv_prog_gnu_ld=no -fi]) -]) - -# AC_PROG_NM - find the path to a BSD-compatible name lister -AC_DEFUN(AC_PROG_NM, -[AC_MSG_CHECKING([for BSD-compatible nm]) -AC_CACHE_VAL(ac_cv_path_NM, -[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}${PATH_SEPARATOR-:}" - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -p" - break - else - ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm -fi]) -NM="$ac_cv_path_NM" -AC_MSG_RESULT([$NM]) -AC_SUBST(NM) -]) - -# AC_CHECK_LIBM - check for math library -AC_DEFUN(AC_CHECK_LIBM, -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case "$host" in -*-*-beos* | *-*-cygwin*) - # These system don't have libm - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, main, LIBM="-lm") - ;; -esac -]) - -# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl convenience library, adds --enable-ltdl-convenience to -# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor -# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed -# to be `${top_builddir}/libltdl'. Make sure you start DIR with -# '${top_builddir}/' (note the single quotes!) if your package is not -# flat, and, if you're not using automake, define top_builddir as -# appropriate in the Makefiles. -AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case "$enable_ltdl_convenience" in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la - INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) -]) - -# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl installable library, and adds --enable-ltdl-install to -# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor -# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed -# to be `${top_builddir}/libltdl'. Make sure you start DIR with -# '${top_builddir}/' (note the single quotes!) if your package is not -# flat, and, if you're not using automake, define top_builddir as -# appropriate in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, main, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la - INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - INCLTDL= - fi -]) - -dnl old names -AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl -AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl -AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl -AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl -AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl -AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl -AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl - -dnl This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL])dnl - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN(AM_INIT_AUTOMAKE, -[AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN(AM_SANITY_CHECK, -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN(AM_MISSING_PROG, -[AC_MSG_CHECKING(for working $2) -# 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. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - -# Like AC_CONFIG_HEADER, but automatically create stamp file. - -AC_DEFUN(AM_CONFIG_HEADER, -[AC_PREREQ([2.12]) -AC_CONFIG_HEADER([$1]) -dnl When config.status generates a header, we must update the stamp-h file. -dnl This file resides in the same directory as the config header -dnl that is generated. We must strip everything past the first ":", -dnl and everything past the last "/". -AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl -ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, -<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, -<<am_indx=1 -for am_file in <<$1>>; do - case " <<$>>CONFIG_HEADERS " in - *" <<$>>am_file "*<<)>> - echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx - ;; - esac - am_indx=`expr "<<$>>am_indx" + 1` -done<<>>dnl>>) -changequote([,]))]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# serial 1 - -AC_DEFUN(AM_MAINTAINER_MODE, -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT($USE_MAINTAINER_MODE) - AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -# Define a conditional. - -AC_DEFUN(AM_CONDITIONAL, -[AC_SUBST($1_TRUE) -AC_SUBST($1_FALSE) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - diff --git a/libltdl/config.h.in b/libltdl/config.h.in deleted file mode 100644 index 1e7613ef..00000000 --- a/libltdl/config.h.in +++ /dev/null @@ -1,80 +0,0 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define as __inline if that's what the C compiler calls it. */ -#undef inline - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define if you have the libdl library or equivalent. */ -#undef HAVE_LIBDL - -/* Define if you have the GNU dld library. */ -#undef HAVE_DLD - -/* Define if you have the shl_load function. */ -#undef HAVE_SHL_LOAD - -/* Define if you have the dlerror function. */ -#undef HAVE_DLERROR - -/* Define if you have the index function. */ -#undef HAVE_INDEX - -/* Define if you have the rindex function. */ -#undef HAVE_RINDEX - -/* Define if you have the strchr function. */ -#undef HAVE_STRCHR - -/* Define if you have the strrchr function. */ -#undef HAVE_STRRCHR - -/* Define if you have the <ctype.h> header file. */ -#undef HAVE_CTYPE_H - -/* Define if you have the <dl.h> header file. */ -#undef HAVE_DL_H - -/* Define if you have the <dld.h> header file. */ -#undef HAVE_DLD_H - -/* Define if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define if you have the <malloc.h> header file. */ -#undef HAVE_MALLOC_H - -/* Define if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define if you have the <stdio.h> header file. */ -#undef HAVE_STDIO_H - -/* Define if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to the extension used for shared libraries, say, .so. */ -#undef LTDL_SHLIB_EXT - -/* Define to the name of the environment variable that determines the dynamic library search path. */ -#undef LTDL_SHLIBPATH_VAR - -/* Define to the sub-directory in which libtool stores uninstalled libraries. */ -#undef LTDL_OBJDIR - -/* Define if libtool can extract symbol lists from object files. */ -#undef HAVE_PRELOADED_SYMBOLS - -/* Define if dlsym() requires a leading underscode in symbol names. */ -#undef NEED_USCORE - diff --git a/libltdl/configure b/libltdl/configure deleted file mode 100755 index 91329a88..00000000 --- a/libltdl/configure +++ /dev/null @@ -1,3077 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer" -ac_help="$ac_help - --enable-shared[=PKGS] build shared libraries [default=yes]" -ac_help="$ac_help - --enable-static[=PKGS] build static libraries [default=yes]" -ac_help="$ac_help - --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" -ac_help="$ac_help - --with-gnu-ld assume the C compiler uses GNU ld [default=no]" -ac_help="$ac_help - --disable-libtool-lock avoid locking (might break parallel builds)" -ac_help="$ac_help - --enable-ltdl-install install libltdl" - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=ltdl.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then - if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then - # if libltdl is libtoolized, it is assumed to be stand-alone and - # installed unless the command line overrides it (tested above) - enable_ltdl_install=yes - else - echo "configure: warning: *** The top-level configure must select either" 1>&2 - echo "configure: warning: *** A""C_LIBLTDL_INSTALLABLE or A""C_LIBLTDL_CONVENIENCE." 1>&2 - { echo "configure: error: *** Maybe you want to --enable-ltdl-install?" 1>&2; exit 1; } - fi -fi - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# 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:584: 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 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:637: checking whether build environment is sane" >&5 -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { echo "configure: error: newly created file is older than distributed files! -Check your system clock" 1>&2; exit 1; } -fi -rm -f conftest* -echo "$ac_t""yes" 1>&6 -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - -echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:694: 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 -else - cat > conftestmake <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftestmake -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= -else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -PACKAGE=libltdl - -VERSION=1.0 - -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; } -fi - - - -missing_dir=`cd $ac_aux_dir && pwd` -echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:733: 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. -if (aclocal --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal - echo "$ac_t""found" 1>&6 -else - ACLOCAL="$missing_dir/missing aclocal" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:746: 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. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:759: 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. -if (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - echo "$ac_t""found" 1>&6 -else - AUTOMAKE="$missing_dir/missing automake" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:772: 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. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:785: 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. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 -fi - - - - - -echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:802: checking whether to enable maintainer-specific portions of Makefiles" >&5 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - MAINT=$MAINTAINER_MODE_TRUE - - - -# 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:828: 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 - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -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:858: 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 - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -z "$CC"; then - case "`uname -s`" in - *win32* | *WIN32*) - # Extract the first word of "cl", so it can be a program name with args. -set dummy cl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:909: 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 - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="cl" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - ;; - esac - fi - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:941: 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. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext << EOF - -#line 952 "configure" -#include "confdefs.h" - -main(){return(0);} -EOF -if { (eval echo configure:957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -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:983: 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:988: 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 - cat > conftest.c <<EOF -#ifdef __GNUC__ - yes; -#endif -EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:997: \"$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 -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -else - GCC= -fi - -ac_test_CFLAGS="${CFLAGS+set}" -ac_save_CFLAGS="$CFLAGS" -CFLAGS= -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1016: 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 - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi - -echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1048: 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 1053 "configure" -#include "confdefs.h" - -int main() { - -/* Ultrix mips cc rejects this. */ -typedef int charset[2]; const charset x; -/* SunOS 4.1.1 cc rejects this. */ -char const *const *ccp; -char **p; -/* NEC SVR4.0.2 mips cc rejects this. */ -struct point {int x, y;}; -static struct point const zero = {0,0}; -/* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in an arm - of an if-expression whose if-part is not a constant expression */ -const char *g = "string"; -ccp = &g + (g ? g-g : 0); -/* HPUX 7.0 cc rejects these. */ -++ccp; -p = (char**) ccp; -ccp = (char const *const *) p; -{ /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; -} -{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; -} -{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; -} -{ /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; -} -{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; -} - -; return 0; } -EOF -if { (eval echo configure:1102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_c_const=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_c_const=no -fi -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_c_const" 1>&6 -if test $ac_cv_c_const = no; then - cat >> confdefs.h <<\EOF -#define const -EOF - -fi - -echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1123: 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 1130 "configure" -#include "confdefs.h" - -int main() { -} $ac_kw foo() { -; return 0; } -EOF -if { (eval echo configure:1137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_c_inline=$ac_kw; break -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 -fi -rm -f conftest* -done - -fi - -echo "$ac_t""$ac_cv_c_inline" 1>&6 -case "$ac_cv_c_inline" in - inline | yes) ;; - no) cat >> confdefs.h <<\EOF -#define inline -EOF - ;; - *) cat >> confdefs.h <<EOF -#define inline $ac_cv_c_inline -EOF - ;; -esac - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} -case "$enableval" in -yes) enable_shared=yes ;; -no) enable_shared=no ;; -*) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_shared=yes -fi - -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} -case "$enableval" in -yes) enable_static=yes ;; -no) enable_static=no ;; -*) - enable_static=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_static=yes -fi - -# Check whether --enable-fast-install or --disable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} -case "$enableval" in -yes) enable_fast_install=yes ;; -no) enable_fast_install=no ;; -*) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_fast_install=yes -fi - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -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:1238: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1259: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 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:1279: 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=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; 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" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -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:1318: 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]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1342: checking for GNU ld" >&5 -else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1345: 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 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - ac_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - ac_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$ac_cv_path_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 -else - echo "$ac_t""no" 1>&6 -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:1381: 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 - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then - ac_cv_prog_gnu_ld=yes -else - ac_cv_prog_gnu_ld=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 - - -echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1397: 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 - 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}${PATH_SEPARATOR-:}" - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -p" - break - else - ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm -fi -fi - -NM="$ac_cv_path_NM" -echo "$ac_t""$NM" 1>&6 - - -echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1434: 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 - rm -f conftestdata -if ln -s X conftestdata 2>/dev/null -then - rm -f conftestdata - ac_cv_prog_LN_S="ln -s" -else - ac_cv_prog_LN_S=ln -fi -fi -LN_S="$ac_cv_prog_LN_S" -if test "$ac_cv_prog_LN_S" = "ln -s"; then - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -# Check for any special flags to pass to ltconfig. -libtool_flags="--cache-file=$cache_file" -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" -test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" - - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - : -fi - -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case "$host" in -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 1478 "configure"' > conftest.$ac_ext - if { (eval echo configure:1479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:1500: checking whether the C compiler needs -belf" >&5 -if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 1505 "configure" -#include "confdefs.h" - -int main() { - -; return 0; } -EOF -if { (eval echo configure:1512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - lt_cv_cc_needs_belf=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - lt_cv_cc_needs_belf=no -fi -rm -f conftest* -fi - -echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - - -esac - - -# Save cache, so that ltconfig can load it -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - - -# Actually configure libtool. ac_aux_dir is where install-sh is found. -CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ -DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ -${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; } - -# Reload cache, that may have been modified by ltconfig -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log - - - -# Check whether --enable-ltdl-install or --disable-ltdl-install was given. -if test "${enable_ltdl_install+set}" = set; then - enableval="$enable_ltdl_install" - : -fi - - - - -if test x"${enable_ltdl_install-no}" != xno; then - INSTALL_LTDL_TRUE= - INSTALL_LTDL_FALSE='#' -else - INSTALL_LTDL_TRUE='#' - INSTALL_LTDL_FALSE= -fi - - -if test x"${enable_ltdl_convenience-no}" != xno; then - CONVENIENCE_LTDL_TRUE= - CONVENIENCE_LTDL_FALSE='#' -else - CONVENIENCE_LTDL_TRUE='#' - CONVENIENCE_LTDL_FALSE= -fi - -rm -f conftest -./libtool --config > conftest -. ./conftest -rm -f conftest - -echo $ac_n "checking which extension is used for shared libraries""... $ac_c" 1>&6 -echo "configure:1647: checking which extension is used for shared libraries" >&5 -if eval "test \"`echo '$''{'libltdl_cv_shlibext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ( - last= - for spec in $library_names_spec; do - last="$spec" - done - - echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest - -) -libltdl_cv_shlibext=`cat conftest` -rm -f conftest - -fi - -echo "$ac_t""$libltdl_cv_shlibext" 1>&6 -if test -n "$libltdl_cv_shlibext"; then - cat >> confdefs.h <<EOF -#define LTDL_SHLIB_EXT "$libltdl_cv_shlibext" -EOF - -fi - -echo $ac_n "checking which variable specifies run-time library path""... $ac_c" 1>&6 -echo "configure:1674: checking which variable specifies run-time library path" >&5 -if eval "test \"`echo '$''{'libltdl_cv_shlibpath_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - libltdl_cv_shlibpath_var="$shlibpath_var" -fi - -echo "$ac_t""$libltdl_cv_shlibpath_var" 1>&6 -if test -n "$libltdl_cv_shlibpath_var"; then - cat >> confdefs.h <<EOF -#define LTDL_SHLIBPATH_VAR "$libltdl_cv_shlibpath_var" -EOF - -fi - -echo $ac_n "checking for objdir""... $ac_c" 1>&6 -echo "configure:1690: checking for objdir" >&5 -if eval "test \"`echo '$''{'libltdl_cv_objdir'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - libltdl_cv_objdir="$objdir" -fi - -echo "$ac_t""$libltdl_cv_objdir" 1>&6 -test -z "$libltdl_cv_objdir" && libltdl_cv_objdir=".libs" -cat >> confdefs.h <<EOF -#define LTDL_OBJDIR "$libltdl_cv_objdir/" -EOF - - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1705: checking how to run the C preprocessor" >&5 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext <<EOF -#line 1720 "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:1726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext <<EOF -#line 1737 "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:1743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext <<EOF -#line 1754 "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:1760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1785: 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 1790 "configure" -#include "confdefs.h" -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1798: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -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 1815 "configure" -#include "confdefs.h" -#include <string.h> -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -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 1833 "configure" -#include "confdefs.h" -#include <stdlib.h> -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -if test "$cross_compiling" = yes; then - : -else - cat > conftest.$ac_ext <<EOF -#line 1854 "configure" -#include "confdefs.h" -#include <ctype.h> -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } - -EOF -if { (eval echo configure:1865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - : -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_header_stdc=no -fi -rm -fr conftest* -fi - -fi -fi - -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -for ac_hdr in malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h -do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1892: 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 1897 "configure" -#include "confdefs.h" -#include <$ac_hdr> -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <<EOF -#define $ac_tr_hdr 1 -EOF - -else - echo "$ac_t""no" 1>&6 -fi -done - -for ac_hdr in string.h strings.h -do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1932: 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 1937 "configure" -#include "confdefs.h" -#include <$ac_hdr> -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1942: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <<EOF -#define $ac_tr_hdr 1 -EOF - break -else - echo "$ac_t""no" 1>&6 -fi -done - -for ac_func in strchr index -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1971: 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 1976 "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:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 - break -else - echo "$ac_t""no" 1>&6 -fi -done - -for ac_func in strrchr rindex -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2026: 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 2031 "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:2054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 - break -else - echo "$ac_t""no" 1>&6 -fi -done - - -echo $ac_n "checking whether libtool supports -dlopen/-dlpreopen""... $ac_c" 1>&6 -echo "configure:2080: checking whether libtool supports -dlopen/-dlpreopen" >&5 -if eval "test \"`echo '$''{'libltdl_cv_preloaded_symbols'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$global_symbol_pipe"; then - libltdl_cv_preloaded_symbols=yes - else - libltdl_cv_preloaded_symbols=no - fi - -fi - -echo "$ac_t""$libltdl_cv_preloaded_symbols" 1>&6 -if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then - cat >> confdefs.h <<\EOF -#define HAVE_PRELOADED_SYMBOLS 1 -EOF - -fi - -LIBADD_DL= -echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:2102: 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 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2110 "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 dlopen(); - -int main() { -dlopen() -; return 0; } -EOF -if { (eval echo configure:2121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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_LIBDL 1 -EOF - LIBADD_DL="-ldl" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "configure:2143: checking for dlopen" >&5 -if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 2148 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen(); 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 dlopen(); - -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_dlopen) || defined (__stub___dlopen) -choke me -#else -dlopen(); -#endif - -; return 0; } -EOF -if { (eval echo configure:2171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_dlopen=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_dlopen=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_LIBDL 1 -EOF - -else - echo "$ac_t""no" 1>&6 -fi - -fi - -echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "configure:2196: checking for shl_load" >&5 -if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 2201 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load(); 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 shl_load(); - -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_shl_load) || defined (__stub___shl_load) -choke me -#else -shl_load(); -#endif - -; return 0; } -EOF -if { (eval echo configure:2224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_shl_load=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_shl_load=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_SHL_LOAD 1 -EOF - -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:2245: 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 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2253 "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 shl_load(); - -int main() { -shl_load() -; return 0; } -EOF -if { (eval echo configure:2264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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_SHL_LOAD 1 -EOF - LIBADD_DL="$LIBADD_DL -ldld" -else - echo "$ac_t""no" 1>&6 -fi - -fi - -echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "configure:2290: checking for dld_link in -ldld" >&5 -ac_lib_var=`echo dld'_'dld_link | 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="-ldld $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2298 "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 dld_link(); - -int main() { -dld_link() -; return 0; } -EOF -if { (eval echo configure:2309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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_DLD 1 -EOF -test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld" -else - echo "$ac_t""no" 1>&6 -fi - - - -if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then - LIBS_SAVE="$LIBS" - LIBS="$LIBS $LIBADD_DL" - for ac_func in dlerror -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2340: 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 2345 "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:2368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 - - LIBS="$LIBS_SAVE" -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 -echo "configure:2397: checking command to parse $NM output" >&5 -if eval "test \"`echo '$''{'ac_cv_sys_global_symbol_pipe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # These are sane defaults that work on at least a few old systems. -# {They come from Ultrix. What could be older than Ultrix?!! ;)} - -# Character class describing NM global symbol codes. -ac_symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -ac_symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - ac_symcode='[BCDT]' - ;; -cygwin* | mingw*) - ac_symcode='[ABCDGISTW]' - ;; -hpux*) - ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - ac_symcode='[BCDEGRST]' - ;; -solaris*) - ac_symcode='[BDT]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - ac_symcode='[ABCDGISTW]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* \($ac_symcode\) *\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'" - - # Check to see that the pipe works correctly. - ac_pipe_works=no - rm -f conftest.$ac_ext - cat > conftest.$ac_ext <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func;return 0;} -EOF - - if { (eval echo configure:2460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - # Now try to grab the symbols. - ac_nlist=conftest.nm - - if { (eval echo configure:2464: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then - - # Try sorting and uniquifying the output. - if sort "$ac_nlist" | uniq > "$ac_nlist"T; then - mv -f "$ac_nlist"T "$ac_nlist" - else - rm -f "$ac_nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then - if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then - cat <<EOF > conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c' - - cat <<EOF >> conftest.c -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - ac_save_LIBS="$LIBS" - ac_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo configure:2516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - ac_pipe_works=yes - else - echo "configure: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$ac_save_LIBS" - CFLAGS="$ac_save_CFLAGS" - else - echo "cannot find nm_test_func in $ac_nlist" >&5 - fi - else - echo "cannot find nm_test_var in $ac_nlist" >&5 - fi - else - echo "cannot run $ac_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$ac_pipe_works" = yes; then - if test x"$ac_symprfx" = x"_"; then - ac_cv_sys_symbol_underscore=yes - else - ac_cv_sys_symbol_underscore=no - fi - break - else - ac_cv_sys_global_symbol_pipe= - fi -done - -fi - - -ac_result=yes -if test -z "$ac_cv_sys_global_symbol_pipe"; then - ac_result=no -fi -echo "$ac_t""$ac_result" 1>&6 - -echo $ac_n "checking for _ prefix in compiled symbols""... $ac_c" 1>&6 -echo "configure:2562: checking for _ prefix in compiled symbols" >&5 -if eval "test \"`echo '$''{'ac_cv_sys_symbol_underscore'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_cv_sys_symbol_underscore=no -cat > conftest.$ac_ext <<EOF -void nm_test_func(){} -int main(){nm_test_func;return 0;} -EOF -if { (eval echo configure:2571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - # Now try to grab the symbols. - ac_nlist=conftest.nm - if { (eval echo configure:2574: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then - # See whether the symbols have a leading underscore. - if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then - ac_cv_sys_symbol_underscore=yes - else - if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then - : - else - echo "configure: cannot find nm_test_func in $ac_nlist" >&5 - fi - fi - else - echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&5 - fi -else - echo "configure: failed program was:" >&5 - cat conftest.c >&5 -fi -rm -rf conftest* - -fi - -echo "$ac_t""$ac_cv_sys_symbol_underscore" 1>&6 - -if test x"$ac_cv_sys_symbol_underscore" = xyes; then - if test x"$ac_cv_func_dlopen" = xyes || - test x"$ac_cv_lib_dl_dlopen" = xyes ; then - echo $ac_n "checking whether we have to add an underscore for dlsym""... $ac_c" 1>&6 -echo "configure:2602: checking whether we have to add an underscore for dlsym" >&5 -if eval "test \"`echo '$''{'libltdl_cv_need_uscore'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - libltdl_cv_need_uscore=cross - -else - cat > conftest.$ac_ext <<EOF -#line 2611 "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 && !ptr2) exit(0); } exit(1); } - -EOF -if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - libltdl_cv_need_uscore=no -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - libltdl_cv_need_uscore=yes -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$libltdl_cv_need_uscore" 1>&6 - fi -fi - -if test x"$libltdl_cv_need_uscore" = xyes; then - cat >> confdefs.h <<\EOF -#define NEED_USCORE 1 -EOF - -fi - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -DEFS=-DHAVE_CONFIG_H - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS <<EOF -#! /bin/sh -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# This directory was configured as follows, -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS <<EOF - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@PACKAGE@%$PACKAGE%g -s%@VERSION@%$VERSION%g -s%@ACLOCAL@%$ACLOCAL%g -s%@AUTOCONF@%$AUTOCONF%g -s%@AUTOMAKE@%$AUTOMAKE%g -s%@AUTOHEADER@%$AUTOHEADER%g -s%@MAKEINFO@%$MAKEINFO%g -s%@SET_MAKE@%$SET_MAKE%g -s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g -s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g -s%@MAINT@%$MAINT%g -s%@CC@%$CC%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%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@RANLIB@%$RANLIB%g -s%@LD@%$LD%g -s%@NM@%$NM%g -s%@LN_S@%$LN_S%g -s%@LIBTOOL@%$LIBTOOL%g -s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g -s%@INSTALL_LTDL_TRUE@%$INSTALL_LTDL_TRUE%g -s%@INSTALL_LTDL_FALSE@%$INSTALL_LTDL_FALSE%g -s%@CONVENIENCE_LTDL_TRUE@%$CONVENIENCE_LTDL_TRUE%g -s%@CONVENIENCE_LTDL_FALSE@%$CONVENIENCE_LTDL_FALSE%g -s%@CPP@%$CPP%g -s%@LIBADD_DL@%$LIBADD_DL%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <<EOF - -CONFIG_FILES=\${CONFIG_FILES-"Makefile"} -EOF -cat >> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' -ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' - -if test "${CONFIG_HEADERS+set}" != set; then -EOF -cat >> $CONFIG_STATUS <<EOF - CONFIG_HEADERS="config.h" -EOF -cat >> $CONFIG_STATUS <<\EOF -fi -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - echo creating $ac_file - - rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - cat $ac_file_inputs > conftest.in - -EOF - -# Transform confdefs.h into a sed script conftest.vals that substitutes -# the proper values into config.h.in to produce config.h. And first: -# Protect against being on the right side of a sed subst in config.status. -# Protect against being in an unquoted here document in config.status. -rm -f conftest.vals -cat > conftest.hdr <<\EOF -s/[\\&%]/\\&/g -s%[\\$`]%\\&%g -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp -s%ac_d%ac_u%gp -s%ac_u%ac_e%gp -EOF -sed -n -f conftest.hdr confdefs.h > conftest.vals -rm -f conftest.hdr - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >> conftest.vals <<\EOF -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% -EOF - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. - -rm -f conftest.tail -while : -do - ac_lines=`grep -c . conftest.vals` - # grep -c gives empty output for an empty file on some AIX systems. - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi - # Write a limited-size here document to conftest.frag. - echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS - echo 'CEOF - sed -f conftest.frag conftest.in > conftest.out - rm -f conftest.in - mv conftest.out conftest.in -' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -cat >> $CONFIG_STATUS <<\EOF - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h - else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - -EOF -cat >> $CONFIG_STATUS <<EOF - - -EOF -cat >> $CONFIG_STATUS <<\EOF -test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/libltdl/configure.in b/libltdl/configure.in deleted file mode 100644 index 10233c6c..00000000 --- a/libltdl/configure.in +++ /dev/null @@ -1,373 +0,0 @@ -dnl Process this file with autoconf to create configure. - -AC_INIT(ltdl.c) - -if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then - if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then - # if libltdl is libtoolized, it is assumed to be stand-alone and - # installed unless the command line overrides it (tested above) - enable_ltdl_install=yes - else - AC_MSG_WARN([*** The top-level configure must select either]) - AC_MSG_WARN([*** [A""C_LIBLTDL_INSTALLABLE] or [A""C_LIBLTDL_CONVENIENCE].]) - AC_MSG_ERROR([*** Maybe you want to --enable-ltdl-install?]) - fi -fi - -AM_INIT_AUTOMAKE(libltdl,1.0,-) -AM_CONFIG_HEADER(config.h) -AM_MAINTAINER_MODE - -AC_PROG_CC -AC_C_CONST -AC_C_INLINE -AM_PROG_LIBTOOL -AC_SUBST(LIBTOOL_DEPS) - -AC_ARG_ENABLE(ltdl-install, -[ --enable-ltdl-install install libltdl]) - -AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno) -AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno) - -dnl Read the libtool configuration -rm -f conftest -./libtool --config > conftest -. ./conftest -rm -f conftest - -AC_CACHE_CHECK([which extension is used for shared libraries], - libltdl_cv_shlibext, [dnl -( - last= - for spec in $library_names_spec; do - last="$spec" - done -changequote(, ) - echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest -changequote([, ]) -) -libltdl_cv_shlibext=`cat conftest` -rm -f conftest -]) -if test -n "$libltdl_cv_shlibext"; then - AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext", - [Define to the extension used for shared libraries, say, ".so". ]) -fi - -AC_CACHE_CHECK([which variable specifies run-time library path], - libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"]) -if test -n "$libltdl_cv_shlibpath_var"; then - AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var", - [Define to the name of the environment variable that determines the dynamic library search path. ]) -fi - -AC_CACHE_CHECK([for objdir], - libltdl_cv_objdir, [libltdl_cv_objdir="$objdir"]) -test -z "$libltdl_cv_objdir" && libltdl_cv_objdir=".libs" -AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries. ]) - -AC_HEADER_STDC -AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h) -AC_CHECK_HEADERS(string.h strings.h, break) -AC_CHECK_FUNCS(strchr index, break) -AC_CHECK_FUNCS(strrchr rindex, break) - -AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen], - libltdl_cv_preloaded_symbols, [dnl - if test -n "$global_symbol_pipe"; then - libltdl_cv_preloaded_symbols=yes - else - libltdl_cv_preloaded_symbols=no - fi -]) -if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then - AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1, - [Define if libtool can extract symbol lists from object files. ]) -fi - -LIBADD_DL= -AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"], -[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])]) -AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1)], -[AC_CHECK_LIB(dld, shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])]) -AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1)dnl -test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"]) -AC_SUBST(LIBADD_DL) - -if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then - LIBS_SAVE="$LIBS" - LIBS="$LIBS $LIBADD_DL" - AC_CHECK_FUNCS(dlerror) - LIBS="$LIBS_SAVE" -fi - -dnl Check for command to grab the raw symbol name followed -dnl by C symbol name from nm. -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_NM])dnl -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output]) -AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe, -[# These are sane defaults that work on at least a few old systems. -# {They come from Ultrix. What could be older than Ultrix?!! ;)} - -changequote(,)dnl -# Character class describing NM global symbol codes. -ac_symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -ac_symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - ac_symcode='[BCDT]' - ;; -cygwin* | mingw*) - ac_symcode='[ABCDGISTW]' - ;; -hpux*) - ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - ac_symcode='[BCDEGRST]' - ;; -solaris*) - ac_symcode='[BDT]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - ac_symcode='[ABCDGISTW]' -fi -changequote([,])dnl - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'" - - # Check to see that the pipe works correctly. - ac_pipe_works=no - rm -f conftest.$ac_ext - cat > conftest.$ac_ext <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func;return 0;} -EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - ac_nlist=conftest.nm - - if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then - - # Try sorting and uniquifying the output. - if sort "$ac_nlist" | uniq > "$ac_nlist"T; then - mv -f "$ac_nlist"T "$ac_nlist" - else - rm -f "$ac_nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then - if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then - cat <<EOF > conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c' - - cat <<EOF >> conftest.c -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -changequote(,)dnl -lt_preloaded_symbols[] = -changequote([,])dnl -{ -EOF - sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - ac_save_LIBS="$LIBS" - ac_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if AC_TRY_EVAL(ac_link) && test -s conftest; then - ac_pipe_works=yes - else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC - fi - LIBS="$ac_save_LIBS" - CFLAGS="$ac_save_CFLAGS" - else - echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi - else - echo "$progname: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$ac_pipe_works" = yes; then - if test x"$ac_symprfx" = x"_"; then - ac_cv_sys_symbol_underscore=yes - else - ac_cv_sys_symbol_underscore=no - fi - break - else - ac_cv_sys_global_symbol_pipe= - fi -done -]) - -ac_result=yes -if test -z "$ac_cv_sys_global_symbol_pipe"; then - ac_result=no -fi -AC_MSG_RESULT($ac_result) - -dnl does the compiler prefix global symbols with an underscore? -AC_MSG_CHECKING([for _ prefix in compiled symbols]) -AC_CACHE_VAL(ac_cv_sys_symbol_underscore, -[ac_cv_sys_symbol_underscore=no -cat > conftest.$ac_ext <<EOF -void nm_test_func(){} -int main(){nm_test_func;return 0;} -EOF -if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - ac_nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then - # See whether the symbols have a leading underscore. - if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then - ac_cv_sys_symbol_underscore=yes - else - if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then - : - else - echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - fi - else - echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi -else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC -fi -rm -rf conftest* -]) -AC_MSG_RESULT($ac_cv_sys_symbol_underscore) - -if test x"$ac_cv_sys_symbol_underscore" = xyes; then - if test x"$ac_cv_func_dlopen" = xyes || - test x"$ac_cv_lib_dl_dlopen" = xyes ; then - AC_CACHE_CHECK([whether we have to add an underscore for dlsym], - libltdl_cv_need_uscore, [dnl - AC_TRY_RUN([ -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 && !ptr2) exit(0); } exit(1); } -], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes, - libltdl_cv_need_uscore=cross -)]) - fi -fi - -if test x"$libltdl_cv_need_uscore" = xyes; then - AC_DEFINE(NEED_USCORE, 1, - [Define if dlsym() requires a leading underscode in symbol names. ]) -fi - -dnl Output the makefile -AC_OUTPUT(Makefile) - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c deleted file mode 100644 index ce37e27e..00000000 --- a/libltdl/ltdl.c +++ /dev/null @@ -1,1577 +0,0 @@ -/* ltdl.c -- system independent dlopen wrapper - Copyright (C) 1998-1999 Free Software Foundation, Inc. - Originally by Thomas Tanner <tanner@gmx.de> - This file is part of GNU Libtool. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same -distribution terms that you use for the rest of that program. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#define _LTDL_COMPILE_ - -#if HAVE_CONFIG_H -#include <config.h> -#endif - -#if HAVE_STRING_H -#include <string.h> -#endif - -#if HAVE_STRINGS_H -#include <strings.h> -#endif - -#if HAVE_CTYPE_H -#include <ctype.h> -#endif - -#if HAVE_MALLOC_H -#include <malloc.h> -#endif - -#if HAVE_MEMORY_H -#include <memory.h> -#endif - -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif - -#if HAVE_STDIO_H -#include <stdio.h> -#endif - -#include "ltdl.h" - -/* max. filename length */ -#ifndef LTDL_FILENAME_MAX -#define LTDL_FILENAME_MAX 1024 -#endif - -#undef LTDL_READTEXT_MODE -/* fopen() mode flags for reading a text file */ -#ifdef _WIN32 -#define LTDL_READTEXT_MODE "rt" -#else -#define LTDL_READTEXT_MODE "r" -#endif - -#undef LTDL_SYMBOL_LENGTH -/* This is the maximum symbol size that won't require malloc/free */ -#define LTDL_SYMBOL_LENGTH 128 - -#undef LTDL_SYMBOL_OVERHEAD -/* This accounts for the _LTX_ separator */ -#define LTDL_SYMBOL_OVERHEAD 5 - -static const char objdir[] = LTDL_OBJDIR; -#ifdef LTDL_SHLIB_EXT -static const char shlib_ext[] = LTDL_SHLIB_EXT; -#endif - -static const char unknown_error[] = "unknown error"; -static const char dlopen_not_supported_error[] = "dlopen support not available"; -static const char file_not_found_error[] = "file not found"; -static const char no_symbols_error[] = "no symbols defined"; -static const char cannot_open_error[] = "can't open the module"; -static const char cannot_close_error[] = "can't close the module"; -static const char symbol_error[] = "symbol not found"; -static const char memory_error[] = "not enough memory"; -static const char invalid_handle_error[] = "invalid handle"; -static const char buffer_overflow_error[] = "internal buffer overflow"; -static const char shutdown_error[] = "library already shutdown"; - -#ifndef HAVE_PRELOADED_SYMBOLS -/* If libtool won't define it, we'd better do */ -const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } }; -#endif - -static const char *last_error = 0; - -lt_ptr_t (*lt_dlmalloc) LTDL_PARAMS((size_t size)) = (lt_ptr_t(*)LTDL_PARAMS((size_t)))malloc; -void (*lt_dlfree) LTDL_PARAMS((lt_ptr_t ptr)) = (void(*)LTDL_PARAMS((lt_ptr_t)))free; - -typedef struct lt_dltype_t { - struct lt_dltype_t *next; - const char *sym_prefix; /* prefix for symbols */ - int (*mod_init) LTDL_PARAMS((void)); - int (*mod_exit) LTDL_PARAMS((void)); - int (*lib_open) LTDL_PARAMS((lt_dlhandle handle, const char *filename)); - int (*lib_close) LTDL_PARAMS((lt_dlhandle handle)); - lt_ptr_t (*find_sym) LTDL_PARAMS((lt_dlhandle handle, const char *symbol)); -} lt_dltype_t; - -#define LTDL_TYPE_TOP 0 - -typedef struct lt_dlhandle_t { - struct lt_dlhandle_t *next; - lt_dltype_t *type; /* dlopening interface */ - char *filename; /* file name */ - char *name; /* module name */ - int usage; /* usage */ - int depcount; /* number of dependencies */ - lt_dlhandle *deplibs; /* dependencies */ - lt_ptr_t handle; /* system handle */ - lt_ptr_t system; /* system specific data */ -} lt_dlhandle_t; - -#undef strdup -#define strdup xstrdup - -static inline char * -strdup(str) - const char *str; -{ - char *tmp; - - if (!str) - return 0; - tmp = (char*) lt_dlmalloc(strlen(str)+1); - if (tmp) - strcpy(tmp, str); - return tmp; -} - -#if ! HAVE_STRCHR - -# if HAVE_INDEX - -# define strchr index - -# else - -# define strchr xstrchr - -static inline const char* -strchr(str, ch) - const char *str; - int ch; -{ - const char *p; - - for (p = str; *p != (char)ch && p != '\0'; p++) - /*NOWORK*/; - - return (*p == (char)ch) ? p : 0; -} - -# endif - -#endif - -#if ! HAVE_STRRCHR - -# if HAVE_RINDEX - -# define strrchr rindex - -# else - -# define strrchr xstrrchr - -static inline const char* -strrchr(str, ch) - const char *str; - int ch; -{ - const char *p; - - for (p = str; p != '\0'; p++) - /*NOWORK*/; - - while (*p != (char)ch && p >= str) - p--; - - return (*p == (char)ch) ? p : 0; -} - -# endif - -#endif - -#if HAVE_LIBDL - -/* dynamic linking with dlopen/dlsym */ - -#if HAVE_DLFCN_H -# include <dlfcn.h> -#endif - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -static int -sys_dl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = dlopen(filename, LTDL_GLOBAL | LTDL_LAZY_OR_NOW); - if (!handle->handle) { -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = cannot_open_error; -#endif - return 1; - } - return 0; -} - -static int -sys_dl_close (handle) - lt_dlhandle handle; -{ - if (dlclose(handle->handle) != 0) { -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = cannot_close_error; -#endif - return 1; - } - return 0; -} - -static lt_ptr_t -sys_dl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = dlsym(handle->handle, symbol); - - if (!address) -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = symbol_error; -#endif - return address; -} - -static -lt_dltype_t -#ifdef NEED_USCORE -sys_dl = { LTDL_TYPE_TOP, "_", sys_dl_init, sys_dl_exit, - sys_dl_open, sys_dl_close, sys_dl_sym }; -#else -sys_dl = { LTDL_TYPE_TOP, 0, sys_dl_init, sys_dl_exit, - sys_dl_open, sys_dl_close, sys_dl_sym }; -#endif - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_dl - -#endif - -#if HAVE_SHL_LOAD - -/* dynamic linking with shl_load (HP-UX) (comments from gmodule) */ - -#ifdef HAVE_DL_H -#include <dl.h> -#endif - -/* some flags are missing on some systems, so we provide - * harmless defaults. - * - * Mandatory: - * BIND_IMMEDIATE - Resolve symbol references when the library is loaded. - * BIND_DEFERRED - Delay code symbol resolution until actual reference. - * - * Optionally: - * BIND_FIRST - Place the library at the head of the symbol search order. - * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all unsatisfied - * symbols as fatal. This flag allows binding of unsatisfied code - * symbols to be deferred until use. - * [Perl: For certain libraries, like DCE, deferred binding often - * causes run time problems. Adding BIND_NONFATAL to BIND_IMMEDIATE - * still allows unresolved references in situations like this.] - * BIND_NOSTART - Do not call the initializer for the shared library when the - * library is loaded, nor on a future call to shl_unload(). - * BIND_VERBOSE - Print verbose messages concerning possible unsatisfied symbols. - * - * hp9000s700/hp9000s800: - * BIND_RESTRICTED - Restrict symbols visible by the library to those present at - * library load time. - * DYNAMIC_PATH - Allow the loader to dynamically search for the library specified - * by the path argument. - */ - -#ifndef DYNAMIC_PATH -#define DYNAMIC_PATH 0 -#endif /* DYNAMIC_PATH */ -#ifndef BIND_RESTRICTED -#define BIND_RESTRICTED 0 -#endif /* BIND_RESTRICTED */ - -#define LTDL_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | BIND_VERBOSE | DYNAMIC_PATH) - -static int -sys_shl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_shl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_shl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = shl_load(filename, LTDL_BIND_FLAGS, 0L); - if (!handle->handle) { - last_error = cannot_open_error; - return 1; - } - return 0; -} - -static int -sys_shl_close (handle) - lt_dlhandle handle; -{ - if (shl_unload((shl_t) (handle->handle)) != 0) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_shl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address; - - if (handle->handle && shl_findsym((shl_t*) &(handle->handle), - symbol, TYPE_UNDEFINED, &address) == 0) - if (address) - return address; - last_error = symbol_error; - return 0; -} - -static -lt_dltype_t -sys_shl = { LTDL_TYPE_TOP, 0, sys_shl_init, sys_shl_exit, - sys_shl_open, sys_shl_close, sys_shl_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_shl - -#endif - -#if HAVE_DLD - -/* dynamic linking with dld */ - -#if HAVE_DLD_H -#include <dld.h> -#endif - -static int -sys_dld_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dld_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dld_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = strdup(filename); - if (!handle->handle) { - last_error = memory_error; - return 1; - } - if (dld_link(filename) != 0) { - last_error = cannot_open_error; - lt_dlfree(handle->handle); - return 1; - } - return 0; -} - -static int -sys_dld_close (handle) - lt_dlhandle handle; -{ - if (dld_unlink_by_file((char*)(handle->handle), 1) != 0) { - last_error = cannot_close_error; - return 1; - } - lt_dlfree(handle->filename); - return 0; -} - -static lt_ptr_t -sys_dld_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = dld_get_func(symbol); - - if (!address) - last_error = symbol_error; - return address; -} - -static -lt_dltype_t -sys_dld = { LTDL_TYPE_TOP, 0, sys_dld_init, sys_dld_exit, - sys_dld_open, sys_dld_close, sys_dld_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_dld - -#endif - -#ifdef _WIN32 - -/* dynamic linking for Win32 */ - -#include <windows.h> - -static int -sys_wll_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_wll_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_wll_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = LoadLibrary(filename); - if (!handle->handle) { - last_error = cannot_open_error; - return 1; - } - return 0; -} - -static int -sys_wll_close (handle) - lt_dlhandle handle; -{ - if (FreeLibrary(handle->handle) != 0) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_wll_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = GetProcAddress(handle->handle, symbol); - - if (!address) - last_error = symbol_error; - return address; -} - -static -lt_dltype_t -sys_wll = { LTDL_TYPE_TOP, 0, sys_wll_init, sys_wll_exit, - sys_wll_open, sys_wll_close, sys_wll_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_wll - -#endif - -#ifdef __BEOS__ - -/* dynamic linking for BeOS */ - -#include <kernel/image.h> - -static int -sys_bedl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_bedl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_bedl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - image_id image = 0; - - if (filename) { - image = load_add_on(filename); - } else { - image_info info; - int32 cookie = 0; - if (get_next_image_info(0, &cookie, &info) == B_OK) - image = load_add_on(info.name); - } - if (image <= 0) { - last_error = cannot_open_error; - return 1; - } - handle->handle = (void*) image; - return 0; -} - -static int -sys_bedl_close (handle) - lt_dlhandle handle; -{ - if (unload_add_on((image_id)handle->handle) != B_OK) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_bedl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = 0; - image_id image = (image_id)handle->handle; - - if (get_image_symbol(image, symbol, B_SYMBOL_TYPE_ANY, - &address) != B_OK) { - last_error = symbol_error; - return 0; - } - return address; -} - -static -lt_dltype_t -sys_bedl = { LTDL_TYPE_TOP, 0, sys_bedl_init, sys_bedl_exit, - sys_bedl_open, sys_bedl_close, sys_bedl_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_bedl - -#endif - -/* emulate dynamic linking using preloaded_symbols */ - -typedef struct lt_dlsymlists_t { - struct lt_dlsymlists_t *next; - const lt_dlsymlist *syms; -} lt_dlsymlists_t; - -static const lt_dlsymlist *default_preloaded_symbols = 0; -static lt_dlsymlists_t *preloaded_symbols = 0; - -static int -presym_init LTDL_PARAMS((void)) -{ - preloaded_symbols = 0; - if (default_preloaded_symbols) - return lt_dlpreload(default_preloaded_symbols); - return 0; -} - -static int -presym_free_symlists LTDL_PARAMS((void)) -{ - lt_dlsymlists_t *lists = preloaded_symbols; - - while (lists) { - lt_dlsymlists_t *tmp = lists; - - lists = lists->next; - lt_dlfree(tmp); - } - preloaded_symbols = 0; - return 0; -} - -static int -presym_exit LTDL_PARAMS((void)) -{ - presym_free_symlists(); - return 0; -} - -static int -presym_add_symlist (preloaded) - const lt_dlsymlist *preloaded; -{ - lt_dlsymlists_t *tmp; - lt_dlsymlists_t *lists = preloaded_symbols; - - while (lists) { - if (lists->syms == preloaded) - return 0; - lists = lists->next; - } - - tmp = (lt_dlsymlists_t*) lt_dlmalloc(sizeof(lt_dlsymlists_t)); - if (!tmp) { - last_error = memory_error; - return 1; - } - tmp->syms = preloaded; - tmp->next = 0; - if (!preloaded_symbols) - preloaded_symbols = tmp; - else { - /* append to the end */ - lists = preloaded_symbols; - while (lists->next) - lists = lists->next; - lists->next = tmp; - } - return 0; -} - -static int -presym_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - lt_dlsymlists_t *lists = preloaded_symbols; - - if (!lists) { - last_error = no_symbols_error; - return 1; - } - if (!filename) - filename = "@PROGRAM@"; - while (lists) { - const lt_dlsymlist *syms = lists->syms; - - while (syms->name) { - if (!syms->address && - strcmp(syms->name, filename) == 0) { - handle->handle = (lt_ptr_t) syms; - return 0; - } - syms++; - } - lists = lists->next; - } - last_error = file_not_found_error; - return 1; -} - -static int -presym_close (handle) - lt_dlhandle handle; -{ - /* Just to silence gcc -Wall */ - handle = 0; - return 0; -} - -static lt_ptr_t -presym_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_dlsymlist *syms = (lt_dlsymlist*)(handle->handle); - - syms++; - while (syms->address) { - if (strcmp(syms->name, symbol) == 0) - return syms->address; - syms++; - } - last_error = symbol_error; - return 0; -} - -static -lt_dltype_t -presym = { LTDL_TYPE_TOP, 0, presym_init, presym_exit, - presym_open, presym_close, presym_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &presym - -static char *user_search_path = 0; -static lt_dlhandle handles = 0; -static int initialized = 0; - -static lt_dltype_t *types = LTDL_TYPE_TOP; -#undef LTDL_TYPE_TOP - -int -lt_dlinit LTDL_PARAMS((void)) -{ - /* initialize libltdl */ - lt_dltype_t **type = &types; - int typecount = 0; - - if (initialized) { /* Initialize only at first call. */ - initialized++; - return 0; - } - handles = 0; - user_search_path = 0; /* empty search path */ - - while (*type) { - if ((*type)->mod_init()) - *type = (*type)->next; /* Remove it from the list */ - else { - type = &(*type)->next; /* Keep it */ - typecount++; - } - } - if (typecount == 0) { - last_error = dlopen_not_supported_error; - return 1; - } - last_error = 0; - initialized = 1; - return 0; -} - -int -lt_dlpreload (preloaded) - const lt_dlsymlist *preloaded; -{ - if (preloaded) - return presym_add_symlist(preloaded); - presym_free_symlists(); - if (default_preloaded_symbols) - return lt_dlpreload(default_preloaded_symbols); - return 0; -} - -int -lt_dlpreload_default (preloaded) - const lt_dlsymlist *preloaded; -{ - default_preloaded_symbols = preloaded; - return 0; -} - -int -lt_dlexit LTDL_PARAMS((void)) -{ - /* shut down libltdl */ - lt_dltype_t *type = types; - int errors; - - if (!initialized) { - last_error = shutdown_error; - return 1; - } - if (initialized != 1) { /* shut down only at last call. */ - initialized--; - return 0; - } - /* close all modules */ - errors = 0; - while (handles) { - /* FIXME: what if a module depends on another one? */ - if (lt_dlclose(handles)) - errors++; - } - initialized = 0; - while (type) { - if (type->mod_exit()) - errors++; - type = type->next; - } - return errors; -} - -static int -tryall_dlopen (handle, filename) - lt_dlhandle *handle; - const char *filename; -{ - lt_dlhandle cur; - lt_dltype_t *type = types; - const char *saved_error = last_error; - - /* check whether the module was already opened */ - cur = handles; - while (cur) { - if (!cur->filename && !filename) - break; - if (cur->filename && filename && - strcmp(cur->filename, filename) == 0) - break; - cur = cur->next; - } - if (cur) { - cur->usage++; - *handle = cur; - return 0; - } - - cur = *handle; - if (filename) { - cur->filename = strdup(filename); - if (!cur->filename) { - last_error = memory_error; - return 1; - } - } else - cur->filename = 0; - while (type) { - if (type->lib_open(cur, filename) == 0) - break; - type = type->next; - } - if (!type) { - if (cur->filename) - lt_dlfree(cur->filename); - return 1; - } - cur->type = type; - last_error = saved_error; - return 0; -} - -static int -find_module (handle, dir, libdir, dlname, old_name, installed) - lt_dlhandle *handle; - const char *dir; - const char *libdir; - const char *dlname; - const char *old_name; - int installed; -{ - int error; - char *filename; - /* try to open the old library first; if it was dlpreopened, - we want the preopened version of it, even if a dlopenable - module is available */ - if (old_name && tryall_dlopen(handle, old_name) == 0) - return 0; - /* try to open the dynamic library */ - if (dlname) { - /* try to open the installed module */ - if (installed && libdir) { - filename = (char*) - lt_dlmalloc(strlen(libdir)+1+strlen(dlname)+1); - if (!filename) { - last_error = memory_error; - return 1; - } - strcpy(filename, libdir); - strcat(filename, "/"); - strcat(filename, dlname); - error = tryall_dlopen(handle, filename) == 0; - lt_dlfree(filename); - if (error) - return 0; - } - /* try to open the not-installed module */ - if (!installed) { - filename = (char*) - lt_dlmalloc((dir ? strlen(dir) : 0) - + strlen(objdir) + strlen(dlname) + 1); - if (!filename) { - last_error = memory_error; - return 1; - } - if (dir) - strcpy(filename, dir); - else - *filename = 0; - strcat(filename, objdir); - strcat(filename, dlname); - - error = tryall_dlopen(handle, filename) == 0; - lt_dlfree(filename); - if (error) - return 0; - } - /* hmm, maybe it was moved to another directory */ - { - filename = (char*) - lt_dlmalloc((dir ? strlen(dir) : 0) - + strlen(dlname) + 1); - if (dir) - strcpy(filename, dir); - else - *filename = 0; - strcat(filename, dlname); - error = tryall_dlopen(handle, filename) == 0; - lt_dlfree(filename); - if (error) - return 0; - } - } - last_error = file_not_found_error; - return 1; -} - -static lt_ptr_t -find_file (basename, search_path, pdir, handle) - const char *basename; - const char *search_path; - char **pdir; - lt_dlhandle *handle; -{ - /* when handle != NULL search a library, otherwise a file */ - /* return NULL on failure, otherwise the file/handle */ - - char *filename = 0; - int filenamesize = 0; - const char *next = search_path; - int lenbase = strlen(basename); - - if (!next || !*next) { - last_error = file_not_found_error; - return 0; - } - while (next) { - int lendir; - const char *cur = next; - - next = strchr(cur, ':'); - if (!next) - next = cur + strlen(cur); - lendir = next - cur; - if (*next == ':') - ++next; - else - next = 0; - if (lendir == 0) - continue; - if (lendir + 1 + lenbase >= filenamesize) { - if (filename) - lt_dlfree(filename); - filenamesize = lendir + 1 + lenbase + 1; - filename = (char*) lt_dlmalloc(filenamesize); - if (!filename) { - last_error = memory_error; - return 0; - } - } - strncpy(filename, cur, lendir); - if (filename[lendir-1] != '/') - filename[lendir++] = '/'; - strcpy(filename+lendir, basename); - if (handle) { - if (tryall_dlopen(handle, filename) == 0) { - lt_dlfree(filename); - return (lt_ptr_t) handle; - } - } else { - FILE *file = fopen(filename, LTDL_READTEXT_MODE); - if (file) { - if (*pdir) - lt_dlfree(*pdir); - filename[lendir] = '\0'; - *pdir = strdup(filename); - if (!*pdir) { - /* We could have even avoided the - strdup, but there would be some - memory overhead. */ - *pdir = filename; - } else - lt_dlfree(filename); - return (lt_ptr_t) file; - } - } - } - if (filename) - lt_dlfree(filename); - last_error = file_not_found_error; - return 0; -} - -static int -load_deplibs(handle, deplibs) - lt_dlhandle handle; - const char *deplibs; -{ - /* FIXME: load deplibs */ - handle->depcount = 0; - handle->deplibs = 0; - /* Just to silence gcc -Wall */ - deplibs = 0; - return 0; -} - -static int -unload_deplibs(handle) - lt_dlhandle handle; -{ - /* FIXME: unload deplibs */ - /* Just to silence gcc -Wall */ - handle = 0; - return 0; -} - -static inline int -trim (dest, str) - char **dest; - const char *str; -{ - /* remove the leading and trailing "'" from str - and store the result in dest */ - char *tmp; - char *end = strrchr(str, '\''); - int len = strlen(str); - - if (*dest) - lt_dlfree(*dest); - if (len > 3 && str[0] == '\'') { - tmp = (char*) lt_dlmalloc(end - str); - if (!tmp) { - last_error = memory_error; - return 1; - } - strncpy(tmp, &str[1], (end - str) - 1); - tmp[len-3] = '\0'; - *dest = tmp; - } else - *dest = 0; - return 0; -} - -static inline int -free_vars(dir, name, dlname, oldname, libdir, deplibs) - char *dir; - char *name; - char *dlname; - char *oldname; - char *libdir; - char *deplibs; -{ - if (dir) - lt_dlfree(dir); - if (name) - lt_dlfree(name); - if (dlname) - lt_dlfree(dlname); - if (oldname) - lt_dlfree(oldname); - if (libdir) - lt_dlfree(libdir); - if (deplibs) - lt_dlfree(deplibs); - return 0; -} - -lt_dlhandle -lt_dlopen (filename) - const char *filename; -{ - lt_dlhandle handle, newhandle; - const char *basename, *ext; - const char *saved_error = last_error; - char *dir = 0, *name = 0; - - if (!filename) { - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle) { - last_error = memory_error; - return 0; - } - handle->usage = 0; - handle->depcount = 0; - handle->deplibs = 0; - newhandle = handle; - if (tryall_dlopen(&newhandle, 0) != 0) { - lt_dlfree(handle); - return 0; - } - goto register_handle; - } - basename = strrchr(filename, '/'); - if (basename) { - basename++; - dir = (char*) lt_dlmalloc(basename - filename + 1); - if (!dir) { - last_error = memory_error; - return 0; - } - strncpy(dir, filename, basename - filename); - dir[basename - filename] = '\0'; - } else - basename = filename; - /* check whether we open a libtool module (.la extension) */ - ext = strrchr(basename, '.'); - if (ext && strcmp(ext, ".la") == 0) { - /* this seems to be a libtool module */ - FILE *file; - int i; - char *dlname = 0, *old_name = 0; - char *libdir = 0, *deplibs = 0; - char *line; - int error = 0; - /* if we can't find the installed flag, it is probably an - installed libtool archive, produced with an old version - of libtool */ - int installed = 1; - - /* extract the module name from the file name */ - name = (char*) lt_dlmalloc(ext - basename + 1); - if (!name) { - last_error = memory_error; - if (dir) - lt_dlfree(dir); - return 0; - } - /* canonicalize the module name */ - for (i = 0; i < ext - basename; i++) - if (isalnum((int)(basename[i]))) - name[i] = basename[i]; - else - name[i] = '_'; - name[ext - basename] = '\0'; - /* now try to open the .la file */ - file = fopen(filename, LTDL_READTEXT_MODE); - if (!file) - last_error = file_not_found_error; - if (!file && !dir) { - /* try other directories */ - file = (FILE*) find_file(basename, - user_search_path, - &dir, 0); - if (!file) - file = (FILE*) find_file(basename, - getenv("LTDL_LIBRARY_PATH"), - &dir, 0); -#ifdef LTDL_SHLIBPATH_VAR - if (!file) - file = (FILE*) find_file(basename, - getenv(LTDL_SHLIBPATH_VAR), - &dir, 0); -#endif - } - if (!file) { - if (name) - lt_dlfree(name); - if (dir) - lt_dlfree(dir); - return 0; - } - line = (char*) lt_dlmalloc(LTDL_FILENAME_MAX); - if (!line) { - fclose(file); - last_error = memory_error; - return 0; - } - /* read the .la file */ - while (!feof(file)) { - if (!fgets(line, LTDL_FILENAME_MAX, file)) - break; - if (line[0] == '\n' || line[0] == '#') - continue; -# undef STR_DLNAME -# define STR_DLNAME "dlname=" - if (strncmp(line, STR_DLNAME, - sizeof(STR_DLNAME) - 1) == 0) - error = trim(&dlname, - &line[sizeof(STR_DLNAME) - 1]); - else -# undef STR_OLD_LIBRARY -# define STR_OLD_LIBRARY "old_library=" - if (strncmp(line, STR_OLD_LIBRARY, - sizeof(STR_OLD_LIBRARY) - 1) == 0) - error = trim(&old_name, - &line[sizeof(STR_OLD_LIBRARY) - 1]); - else -# undef STR_LIBDIR -# define STR_LIBDIR "libdir=" - if (strncmp(line, STR_LIBDIR, - sizeof(STR_LIBDIR) - 1) == 0) - error = trim(&libdir, - &line[sizeof(STR_LIBDIR) - 1]); - else -# undef STR_DL_DEPLIBS -# define STR_DL_DEPLIBS "dl_dependency_libs=" - if (strncmp(line, STR_DL_DEPLIBS, - sizeof(STR_DL_DEPLIBS) - 1) == 0) - error = trim(&deplibs, - &line[sizeof(STR_DL_DEPLIBS) - 1]); - else - if (strcmp(line, "installed=yes\n") == 0) - installed = 1; - else - if (strcmp(line, "installed=no\n") == 0) - installed = 0; - if (error) - break; - } - fclose(file); - lt_dlfree(line); - /* allocate the handle */ - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle || error) { - if (handle) - lt_dlfree(handle); - if (!error) - last_error = memory_error; - free_vars(name, dir, dlname, old_name, libdir, deplibs); - return 0; - } - handle->usage = 0; - if (load_deplibs(handle, deplibs) == 0) { - newhandle = handle; - /* find_module may replace newhandle */ - if (find_module(&newhandle, dir, libdir, - dlname, old_name, installed)) { - unload_deplibs(handle); - error = 1; - } - } else - error = 1; - if (error) { - lt_dlfree(handle); - free_vars(name, dir, dlname, old_name, libdir, deplibs); - return 0; - } - if (handle != newhandle) { - unload_deplibs(handle); - } - } else { - /* not a libtool module */ - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle) { - last_error = memory_error; - if (dir) - lt_dlfree(dir); - return 0; - } - handle->usage = 0; - /* non-libtool modules don't have dependencies */ - handle->depcount = 0; - handle->deplibs = 0; - newhandle = handle; - if (tryall_dlopen(&newhandle, filename) - && (!dir - || (!find_file(basename, user_search_path, - 0, &newhandle) - && !find_file(basename, - getenv("LTDL_LIBRARY_PATH"), - 0, &newhandle) -#ifdef LTDL_SHLIBPATH_VAR - && !find_file(basename, - getenv(LTDL_SHLIBPATH_VAR), - 0, &newhandle) -#endif - ))) { - lt_dlfree(handle); - if (dir) - lt_dlfree(dir); - return 0; - } - } -register_handle: - if (newhandle != handle) { - lt_dlfree(handle); - handle = newhandle; - } - if (!handle->usage) { - handle->usage = 1; - handle->name = name; - handle->next = handles; - handles = handle; - } else if (name) - lt_dlfree(name); - if (dir) - lt_dlfree(dir); - last_error = saved_error; - return handle; -} - -lt_dlhandle -lt_dlopenext (filename) - const char *filename; -{ - lt_dlhandle handle; - char *tmp; - int len; - const char *saved_error = last_error; - - if (!filename) - return lt_dlopen(filename); - len = strlen(filename); - if (!len) { - last_error = file_not_found_error; - return 0; - } - /* try the normal file name */ - handle = lt_dlopen(filename); - if (handle) - return handle; - /* try "filename.la" */ - tmp = (char*) lt_dlmalloc(len+4); - if (!tmp) { - last_error = memory_error; - return 0; - } - strcpy(tmp, filename); - strcat(tmp, ".la"); - handle = lt_dlopen(tmp); - if (handle) { - last_error = saved_error; - lt_dlfree(tmp); - return handle; - } -#ifdef LTDL_SHLIB_EXT - /* try "filename.EXT" */ - if (strlen(shlib_ext) > 3) { - lt_dlfree(tmp); - tmp = (char*) lt_dlmalloc(len + strlen(shlib_ext) + 1); - if (!tmp) { - last_error = memory_error; - return 0; - } - strcpy(tmp, filename); - } else - tmp[len] = '\0'; - strcat(tmp, shlib_ext); - handle = lt_dlopen(tmp); - if (handle) { - last_error = saved_error; - lt_dlfree(tmp); - return handle; - } -#endif - last_error = file_not_found_error; - lt_dlfree(tmp); - return 0; -} - -int -lt_dlclose (handle) - lt_dlhandle handle; -{ - lt_dlhandle cur, last; - - /* check whether the handle is valid */ - last = cur = handles; - while (cur && handle != cur) { - last = cur; - cur = cur->next; - } - if (!cur) { - last_error = invalid_handle_error; - return 1; - } - handle->usage--; - if (!handle->usage) { - int error; - - if (handle != handles) - last->next = handle->next; - else - handles = handle->next; - error = handle->type->lib_close(handle); - error += unload_deplibs(handle); - if (handle->filename) - lt_dlfree(handle->filename); - if (handle->name) - lt_dlfree(handle->name); - lt_dlfree(handle); - return error; - } - return 0; -} - -lt_ptr_t -lt_dlsym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - int lensym; - char lsym[LTDL_SYMBOL_LENGTH]; - char *sym; - lt_ptr_t address; - - if (!handle) { - last_error = invalid_handle_error; - return 0; - } - if (!symbol) { - last_error = symbol_error; - return 0; - } - lensym = strlen(symbol); - if (handle->type->sym_prefix) - lensym += strlen(handle->type->sym_prefix); - if (handle->name) - lensym += strlen(handle->name); - if (lensym + LTDL_SYMBOL_OVERHEAD < LTDL_SYMBOL_LENGTH) - sym = lsym; - else - sym = (char*) lt_dlmalloc(lensym + LTDL_SYMBOL_OVERHEAD + 1); - if (!sym) { - last_error = buffer_overflow_error; - return 0; - } - if (handle->name) { - /* this is a libtool module */ - if (handle->type->sym_prefix) { - strcpy(sym, handle->type->sym_prefix); - strcat(sym, handle->name); - } else - strcpy(sym, handle->name); - strcat(sym, "_LTX_"); - strcat(sym, symbol); - /* try "modulename_LTX_symbol" */ - address = handle->type->find_sym(handle, sym); - if (address) { - if (sym != lsym) - lt_dlfree(sym); - return address; - } - } - /* otherwise try "symbol" */ - if (handle->type->sym_prefix) { - strcpy(sym, handle->type->sym_prefix); - strcat(sym, symbol); - } else - strcpy(sym, symbol); - address = handle->type->find_sym(handle, sym); - if (sym != lsym) - lt_dlfree(sym); - return address; -} - -const char * -lt_dlerror LTDL_PARAMS((void)) -{ - const char *error = last_error; - - last_error = 0; - return error; -} - -int -lt_dladdsearchdir (search_dir) - const char *search_dir; -{ - if (!search_dir || !strlen(search_dir)) - return 0; - if (!user_search_path) { - user_search_path = strdup(search_dir); - if (!user_search_path) { - last_error = memory_error; - return 1; - } - } else { - char *new_search_path = (char*) - lt_dlmalloc(strlen(user_search_path) + - strlen(search_dir) + 2); /* ':' + '\0' == 2 */ - if (!new_search_path) { - last_error = memory_error; - return 1; - } - strcpy(new_search_path, user_search_path); - strcat(new_search_path, ":"); - strcat(new_search_path, search_dir); - lt_dlfree(user_search_path); - user_search_path = new_search_path; - } - return 0; -} - -int -lt_dlsetsearchpath (search_path) - const char *search_path; -{ - if (user_search_path) - lt_dlfree(user_search_path); - user_search_path = 0; /* reset the search path */ - if (!search_path || !strlen(search_path)) - return 0; - user_search_path = strdup(search_path); - if (!user_search_path) - return 1; - return 0; -} - -const char * -lt_dlgetsearchpath LTDL_PARAMS((void)) -{ - return user_search_path; -} diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h deleted file mode 100644 index bebbc6d2..00000000 --- a/libltdl/ltdl.h +++ /dev/null @@ -1,91 +0,0 @@ -/* ltdl.h -- generic dlopen functions - Copyright (C) 1998-1999 Free Software Foundation, Inc. - Originally by Thomas Tanner <tanner@gmx.de> - This file is part of GNU Libtool. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same -distribution terms that you use for the rest of that program. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* Only include this header file once. */ -#ifndef _LTDL_H_ -#define _LTDL_H_ 1 - -/* __BEGIN_DECLS should be used at the beginning of your declarations, - so that C++ compilers don't mangle their names. Use __END_DECLS at - the end of C declarations. */ -#undef __BEGIN_DECLS -#undef __END_DECLS -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS /* empty */ -# define __END_DECLS /* empty */ -#endif - -/* LTDL_PARAMS is a macro used to wrap function prototypes, so that compilers - that don't understand ANSI C prototypes still work, and ANSI C - compilers can issue warnings about type mismatches. */ -#undef LTDL_PARAMS -#undef lt_ptr_t -#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus) -# define LTDL_PARAMS(protos) protos -# define lt_ptr_t void* -#else -# define LTDL_PARAMS(protos) () -# define lt_ptr_t char* -#endif - -#include <stdlib.h> - -#ifdef _LTDL_COMPILE_ -typedef struct lt_dlhandle_t *lt_dlhandle; -#else -typedef lt_ptr_t lt_dlhandle; -#endif - -typedef struct { - const char *name; - lt_ptr_t address; -} lt_dlsymlist; - -__BEGIN_DECLS -extern int lt_dlinit LTDL_PARAMS((void)); -extern int lt_dlpreload LTDL_PARAMS((const lt_dlsymlist *preloaded)); -extern int lt_dlpreload_default LTDL_PARAMS((const lt_dlsymlist *preloaded)); -extern int lt_dlexit LTDL_PARAMS((void)); -extern lt_dlhandle lt_dlopen LTDL_PARAMS((const char *filename)); -extern lt_dlhandle lt_dlopenext LTDL_PARAMS((const char *filename)); -extern int lt_dlclose LTDL_PARAMS((lt_dlhandle handle)); -extern lt_ptr_t lt_dlsym LTDL_PARAMS((lt_dlhandle handle, const char *name)); -extern const char *lt_dlerror LTDL_PARAMS((void)); -extern int lt_dladdsearchdir LTDL_PARAMS((const char *search_dir)); -extern int lt_dlsetsearchpath LTDL_PARAMS((const char *search_path)); -extern const char *lt_dlgetsearchpath LTDL_PARAMS((void)); - -extern const lt_dlsymlist lt_preloaded_symbols[]; -#define LTDL_SET_PRELOADED_SYMBOLS() lt_dlpreload_default(lt_preloaded_symbols) - -extern lt_ptr_t (*lt_dlmalloc)LTDL_PARAMS((size_t size)); -extern void (*lt_dlfree)LTDL_PARAMS((lt_ptr_t ptr)); - -__END_DECLS - -#endif /* !_LTDL_H_ */ diff --git a/libltdl/stamp-h.in b/libltdl/stamp-h.in deleted file mode 100644 index 9788f702..00000000 --- a/libltdl/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/ltconfig b/ltconfig deleted file mode 100755 index 2347e694..00000000 --- a/ltconfig +++ /dev/null @@ -1,1512 +0,0 @@ -#! /bin/sh - -# ltconfig - Create a system-specific libtool. -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This file 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A lot of this script is taken from autoconf-2.10. - -# 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 - # 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 - fi - done - IFS="$save_ifs" - fi -fi - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# The name of this program. -progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` - -# Constants: -PROGRAM=ltconfig -PACKAGE=libtool -VERSION=1.2 -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" - -help="Try \`$progname --help' for more information." - -# Global variables: -can_build_shared=yes -enable_shared=yes -# All known linkers require a `.a' archive for static linking. -enable_static=yes -ltmain= -silent= -srcdir= -ac_config_guess= -ac_config_sub= -host= -nonopt= -verify_host=yes -with_gcc=no -with_gnu_ld=no - -old_AR="$AR" -old_CC="$CC" -old_CFLAGS="$CFLAGS" -old_CPPFLAGS="$CPPFLAGS" -old_LD="$LD" -old_LN_S="$LN_S" -old_NM="$NM" -old_RANLIB="$RANLIB" - -# Parse the command line options. -args= -prev= -for option -do - case "$option" in - -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - eval "$prev=\$option" - prev= - continue - fi - - case "$option" in - --help) cat <<EOM -Usage: $progname [OPTION]... LTMAIN [HOST] - -Generate a system-specific libtool script. - - --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 - --quiet same as \`--silent' - --silent do not print informational messages - --srcdir=DIR find \`config.guess' in DIR - --version output version information and exit - --with-gcc assume that the GNU C compiler will be used - --with-gnu-ld assume that the C compiler uses the GNU linker - -LTMAIN is the \`ltmain.sh' shell script fragment that provides basic libtool -functionality. - -HOST is the canonical host system name [default=guessed]. -EOM - exit 0 - ;; - - --disable-shared) enable_shared=no ;; - - --disable-static) enable_static=no ;; - - --quiet | --silent) silent=yes ;; - - --srcdir) prev=srcdir ;; - --srcdir=*) srcdir="$optarg" ;; - - --no-verify) verify_host=no ;; - - --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;; - - --with-gcc) with_gcc=yes ;; - --with-gnu-ld) with_gnu_ld=yes ;; - - -*) - echo "$progname: unrecognized option \`$option'" 1>&2 - echo "$help" 1>&2 - exit 1 - ;; - - *) - if test -z "$ltmain"; then - ltmain="$option" - elif test -z "$host"; then -# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 -# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then -# echo "$progname: warning \`$option' is not a valid host type" 1>&2 -# fi - host="$option" - else - echo "$progname: too many arguments" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac -done - -if test -z "$ltmain"; then - echo "$progname: you must specify a LTMAIN file" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -if test -f "$ltmain"; then : -else - echo "$progname: \`$ltmain' does not exist" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -# Quote any args containing shell metacharacters. -ltconfig_args= -for arg -do - case "$arg" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ltconfig_args="$ltconfig_args '$arg'" ;; - *) ltconfig_args="$ltconfig_args $arg" ;; - esac -done - -# A relevant subset of AC_INIT. - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 compiler messages saved in config.log -# 6 checking for... messages and results -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>>./config.log - -# NLS nuisances. -# 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 - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - -if test -z "$srcdir"; then - # Assume the source directory is the same one as the path to ltmain.sh. - srcdir=`$echo "$ltmain" | $Xsed -e 's%/[^/]*$%%'` - test "$srcdir" = "$ltmain" && srcdir=. -fi - -trap "$rm conftest*; exit 1" 1 2 15 -if test "$verify_host" = yes; then - # Check for config.guess and config.sub. - ac_aux_dir= - for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/config.guess; then - ac_aux_dir=$ac_dir - break - fi - done - if test -z "$ac_aux_dir"; then - echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 - echo "$help" 1>&2 - exit 1 - fi - ac_config_guess=$ac_aux_dir/config.guess - 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 : - else - echo "$progname: cannot run $ac_config_sub" 1>&2 - echo "$help" 1>&2 - exit 1 - fi - - echo $ac_n "checking host system type""... $ac_c" 1>&6 - - host_alias=$host - case "$host_alias" in - "") - if host_alias=`$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` - echo "$ac_t$host" 1>&6 - - # Make sure the host verified. - test -z "$host" && exit 1 - -elif test -z "$host"; then - echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 - echo "$help" 1>&2 - exit 1 -else - host_alias=$host -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host_os" in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -case "$host_os" in -aix3*) - # 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. - if test "${COLLECT_NAMES+set}" != set; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR cru $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -# Set a sane default for `AR'. -test -z "$AR" && AR=ar - -# If RANLIB is not set, then run the test. -if test "${RANLIB+set}" != "set"; then - result=no - - echo $ac_n "checking for ranlib... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/ranlib; then - RANLIB="ranlib" - result="ranlib" - break - fi - done - IFS="$save_ifs" - - echo "$ac_t$result" 1>&6 -fi - -if test -n "$RANLIB"; then - old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib" - old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds" -fi - -# Check to see if we are using GCC. -if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. - if test -z "$CC"; then - echo $ac_n "checking for gcc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - IFS="$save_ifs" - test -z "$dir" && dir=. - if test -f $dir/gcc; then - CC="gcc" - break - fi - done - IFS="$save_ifs" - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - fi - - # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". - if test -z "$CC"; then - echo $ac_n "checking for cc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - cc_rejected=no - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/cc; then - if test "$dir/cc" = "/usr/ucb/cc"; then - cc_rejected=yes - continue - fi - CC="cc" - break - fi - done - IFS="$save_ifs" - if test $cc_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same name, so the bogon will be chosen - # first if we set CC to just the name; use the full file name. - shift - set dummy "$dir/cc" "$@" - shift - CC="$@" - fi - fi - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$CC"; then - echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 - exit 1 - fi - fi - - # 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 - - $rm conftest.c - cat > conftest.c <<EOF -#ifdef __GNUC__ - 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 - with_gcc=yes - fi - $rm conftest.c - echo "$ac_t$with_gcc" 1>&6 -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 -pic_flag= -special_shlib_compile_flags= -wl= -link_static_flag= -no_builtin_flag= - -if test "$with_gcc" = yes; then - wl='-Wl,' - link_static_flag='-static' - no_builtin_flag=' -fno-builtin' - - case "$host_os" in - aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) - # PIC is the default for these OSes. - ;; - os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - pic_flag='-m68020 -resident32 -malways-restore-a4' - ;; - *) - pic_flag='-fPIC' - ;; - esac -else - # PORTME Check for PIC flags for the system compiler. - case "$host_os" in - aix3* | aix4*) - # All AIX code is PIC. - link_static_flag='-bnso -bI:/lib/syscalls.exp' - ;; - - hpux9* | hpux10*) - # Is there a better link_static_flag that works with the bundled CC? - wl='-Wl,' - link_static_flag="${wl}-a ${wl}archive" - pic_flag='+Z' - ;; - - irix5* | irix6*) - wl='-Wl,' - link_static_flag='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - os2*) - # We can build DLLs from non-PIC. - ;; - - osf3* | osf4*) - # All OSF/1 code is PIC. - wl='-Wl,' - link_static_flag='-non_shared' - ;; - - sco3.2v5*) - pic_flag='-Kpic' - link_static_flag='-dn' - special_shlib_compile_flags='-belf' - ;; - - solaris2*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - sunos4*) - pic_flag='-PIC' - link_static_flag='-Bstatic' - wl='-Qoption ld ' - ;; - - sysv4.2uw2*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - uts4*) - pic_flag='-pic' - link_static_flag='-Bstatic' - ;; - - *) - can_build_shared=no - ;; - esac -fi - -if test -n "$pic_flag"; then - echo "$ac_t$pic_flag" 1>&6 - - # 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 - 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 - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - # On HP-UX, both CC and GCC only warn that PIC is supported... then they - # create non-PIC objects. So, if there were any warnings, we assume that - # PIC is not supported. - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - can_build_shared=no - pic_flag= - else - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - can_build_shared=no - pic_flag= - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - echo "$ac_t"none 1>&6 -fi - -# Check for any special shared library compilation flags. -if test -n "$special_shlib_compile_flags"; then - echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : - else - echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 - can_build_shared=no - fi -fi - -echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 -$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 "$ac_t$link_static_flag" 1>&6 -else - echo "$ac_t"none 1>&6 - link_static_flag= -fi -LDFLAGS="$save_LDFLAGS" -$rm conftest* - -if test -z "$LN_S"; then - # Check to see if we can use ln -s, or we need hard links. - echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 - $rm conftestdata - if ln -s X conftestdata 2>/dev/null; then - $rm conftestdata - LN_S="ln -s" - else - LN_S=ln - fi - if test "$LN_S" = "ln -s"; then - echo "$ac_t"yes 1>&6 - else - echo "$ac_t"no 1>&6 - fi -fi - -# Make sure LD is an absolute path. -if test -z "$LD"; then - ac_prog=ld - 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 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - /* | [A-Za-z]:\\*) - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we are not using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - 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 - else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:645: checking for non-GNU ld" >&5 - fi - - if test -z "$LD"; then - 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_prog"; then - LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - fi - - if test -n "$LD"; then - echo "$ac_t$LD" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$LD"; then - echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 - exit 1 - fi -fi - -# Check to see if it really is or is not GNU ld. -echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 -# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then - with_gnu_ld=yes -else - with_gnu_ld=no -fi -echo "$ac_t$with_gnu_ld" 1>&6 - -# See if the linker supports building shared libraries. -echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 - -allow_undefined_flag= -no_undefined_flag= -archive_cmds= -old_archive_from_new_cmds= -export_dynamic_flag_spec= -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -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 - - # 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 - - if test "$ld_shlibs" = yes; then - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - fi -else - # PORTME fill in a description of your system's linker (not GNU ld) - case "$host_os" in - aix3*) - allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$with_gcc" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4*) - allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - - 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 - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3, at last, uses gcc -shared to do shared libraries. - freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - ;; - - netbsd*) - # Tested with NetBSD 1.2 ld - archive_cmds='$LD -Bshareable -o $lib$libobjs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - openbsd*) - archive_cmds='$LD -Bshareable -o $lib$libobjs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' - ;; - - osf3* | osf4*) - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs' - hardcode_direct=yes - ;; - - solaris2*) - no_undefined_flag=' -z text' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - - # Solaris 2 before 2.5 hardcodes -L paths. - case "$host_os" in - solaris2.[0-4]*) - hardcode_minus_L=yes - ;; - esac - ;; - - 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 - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - can_build_shared=no - ;; - esac -fi -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. - *) - 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=. - if test -f $ac_dir/nm; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -p" - else - NM="$ac_dir/nm" - fi - break - fi - done - IFS="$ac_save_ifs" - test -z "$NM" && NM=nm - ;; - esac - echo "$ac_t$NM" 1>&6 -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRSTU]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \1' - -# Define system-specific variables. -case "$host_os" in -aix*) - symcode='[BCDTU]' - ;; -irix*) - # Cannot use undefined symbols on IRIX because inlined functions mess us up. - symcode='[BCDEGRST]' - ;; -solaris2*) - symcode='[BDTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTUW]' -fi - -# Write the raw and C identifiers. -global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'" - -# Check to see that the pipe works correctly. -pipe_works=no -$rm conftest* -cat > conftest.c <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -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 - # 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 - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - (test "$count" -ge 0) 2>/dev/null || count=-1 - else - rm -f "$nlist"T - count=-1 - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat <<EOF > conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c - - cat <<EOF >> conftest.c -#if defined (__STDC__) && __STDC__ -# define __ptr_t void * -#else -# define __ptr_t char * -#endif - -/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ -int dld_preloaded_symbol_count = $count; - -/* The mapping between symbol names and symbols. */ -struct { - char *name; - __ptr_t address; -} -dld_preloaded_symbols[] = -{ -EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (__ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.o conftestm.o - save_LIBS="$LIBS" - 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 - pipe_works=yes - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$save_LIBS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $global_symbol_pipe" >&5 - fi -else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* - -# Do not use the global_symbol_pipe unless it works. -echo "$ac_t$pipe_works" 1>&6 -test "$pipe_works" = yes || global_symbol_pipe= - -# Check hardcoding attributes. -echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && \ - test "$hardcode_minus_L" != no && \ - test "$hardcode_shlibpath_var" != no; then - - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # 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 -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. -reload_flag='-r' -echo "$ac_t$reload_flag" -test -n "$reload_flag" && reload_flag=" $reload_flag" - -# PORTME Fill in your ld.so characteristics -library_names_spec= -libname_spec='lib$name' -soname_spec= -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -version_type=none -dynamic_linker="$host_os ld.so" - -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' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so.$major' - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; - -freebsd2* | freebsd3*) - version_type=sunos - 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' - shlibpath_var=LD_LIBRARY_PATH - ;; - -hpux9* | hpux10*) - # 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' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6*) - version_type=osf - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so.$versuffix $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# 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' - shlibpath_var=LD_LIBRARY_PATH - - if test -f /lib/ld.so.1; then - dynamic_linker='GNU ld.so' - else - # Only the GNU ld.so supports shared libraries on MkLinux. - case "$host_cpu" in - powerpc*) dynamic_linker=no ;; - *) dynamic_linker='Linux ld.so' ;; - esac - fi - ;; - -netbsd* | openbsd*) - version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix' - finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4*) - version_type=osf - soname_spec='${libname}${release}.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' - 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' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sunos4*) - version_type=sunos - 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' - 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' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$ac_t$dynamic_linker" -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 - -echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds;\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -esac - -echo "$ac_t$enable_shared" 1>&6 - -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes - -echo "checking whether to build static libraries... $enable_static" 1>&6 - -echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$ac_t$objdir" 1>&6 - -# Copy echo and quote the copy, instead of the original, because it is -# used later. -ltecho="$echo" - -# Now quote all the things that may contain metacharacters. -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 \ - 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 \ - finish_cmds finish_eval global_symbol_pipe \ - hardcode_libdir_flag_spec hardcode_libdir_separator; do - - case "$var" in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ - postinstall_cmds | postuninstall_cmds | finish_cmds) - # Double-quote double-evaled strings. - eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" - ;; - *) - eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`" - ;; - esac -done - -ofile=libtool -trap "$rm $ofile; exit 1" 1 2 15 -echo creating $ofile -$rm $ofile -cat <<EOF > $ofile -#! /bin/sh - -# libtool - 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. -# -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# 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//" - -# 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 - -# An echo program that does not interpret backslashes. -echo="$ltecho" - -# The version of $progname that generated this script. -LTCONFIG_VERSION="$VERSION" - -# Shell to use when invoking shell scripts. -SHELL=${CONFIG_SHELL-/bin/sh} - -# Whether or not to build libtool libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build old-style libraries. -build_old_libs=$enable_static - -# The host system. -host_alias="$host_alias" -host="$host" - -# The archiver. -AR="$AR" - -# The default C compiler. -CC="$CC" - -# The linker used to build libraries. -LD="$LD" - -# Whether we need hard or soft links. -LN_S="$LN_S" - -# A BSD-compatible nm program. -NM="$NM" - -# The name of the directory that contains temporary libtool files. -objdir="$objdir" - -# How to create reloadable object files. -reload_flag="$reload_flag" -reload_cmds="$reload_cmds" - -# How to pass a linker flag through the compiler. -wl="$wl" - -# Additional compiler flags for building library objects. -pic_flag="$pic_flag" - -# Compiler flag to prevent dynamic linking. -link_static_flag="$link_static_flag" - -# Compiler flag to turn off builtin functions. -no_builtin_flag="$no_builtin_flag" - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec="$export_dynamic_flag_spec" - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec="$libname_spec" - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec="$library_names_spec" - -# The coded name of the library, if different from the real name. -soname_spec="$soname_spec" - -# Commands used to build and install an old-style archive. -RANLIB="$RANLIB" -old_archive_cmds="$old_archive_cmds" -old_postinstall_cmds="$old_postinstall_cmds" -old_postuninstall_cmds="$old_postuninstall_cmds" - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds="$old_archive_from_new_cmds" - -# Commands used to build and install a shared archive. -archive_cmds="$archive_cmds" -postinstall_cmds="$postinstall_cmds" -postuninstall_cmds="$postuninstall_cmds" - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag="$allow_undefined_flag" - -# Flag that forces no undefined symbols. -no_undefined_flag="$no_undefined_flag" - -# Commands used to finish a libtool library installation in a directory. -finish_cmds="$finish_cmds" - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval="$finish_eval" - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe="$global_symbol_pipe" - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec="$hardcode_libdir_flag_spec" - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator="$hardcode_libdir_separator" - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -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 -# 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. -if test "${COLLECT_NAMES+set}" != set; then - COLLECT_NAMES= - export COLLECT_NAMES -fi - -EOF - ;; -esac - -# Append the ltmain.sh script. -cat "$ltmain" >> $ofile || (rm -f $ofile; exit 1) - -chmod +x $ofile -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/ltmain.sh b/ltmain.sh deleted file mode 100644 index e9350b3f..00000000 --- a/ltmain.sh +++ /dev/null @@ -1,2453 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun ltconfig. -# -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# The name of this program. -progname=`$echo "$0" | sed 's%^.*/%%'` -modename="$progname" - -# Constants. -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.2 - -default_mode= -help="Try \`$progname --help' for more information." -magic="%%%MAGIC variable%%%" -mkdir="mkdir" -mv="mv -f" -rm="rm -f" - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' - -# NLS nuisances. -# 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 - -if test "$LTCONFIG_VERSION" != "$VERSION"; then - echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - echo "$modename: not configured to build any kind of library" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= - -# Parse our command line options once, thoroughly. -while test $# -gt 0 -do - arg="$1" - shift - - case "$arg" in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case "$prev" in - execute_dlfiles) - eval "$prev=\"\$$prev \$arg\"" - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case "$arg" in - --help) - show_help=yes - ;; - - --version) - echo "$PROGRAM (GNU $PACKAGE) $VERSION" - exit 0 - ;; - - --dry-run | -n) - run=: - ;; - - --features) - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - exit 0 - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --quiet | --silent) - show=: - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - case "$nonopt" in - *cc | *++ | gcc* | *-gcc*) - mode=link - for arg - do - case "$arg" in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case "$mode" in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - lastarg= - srcfile="$nonopt" - suppress_output= - - for arg - do - # Accept any command-line options. - case "$arg" in - -o) - $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - esac - - # Accept the current argument as the source file. - lastarg="$srcfile" - srcfile="$arg" - - # Aesthetically quote the previous argument. - - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly in scan - # sets, so we specify it separately. - case "$lastarg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - lastarg="\"$lastarg\"" - ;; - esac - - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - done - - # Get the name of the library object. - libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - - # Recognize several different file suffixes. - xform='[cCFSfms]' - case "$libobj" in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case "$libobj" in - *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; - *) - $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 - exit 1 - ;; - esac - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - $run $rm $obj $libobj - trap "$run $rm $obj $libobj; exit 1" 1 2 15 - else - $run $rm $libobj - trap "$run $rm $libobj; exit 1" 1 2 15 - fi - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - # All platforms use -DPIC, to notify preprocessed assembler code. - $show "$base_compile$pic_flag -DPIC $srcfile" - if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : - else - test -n "$obj" && $run $rm $obj - exit 1 - fi - - # If we have no pic_flag, then copy the object into place and finish. - if test -z "$pic_flag"; then - $show "$LN_S $obj $libobj" - $run $LN_S $obj $libobj - exit $? - fi - - # Just move the object, then go on to compile the next one - $show "$mv $obj $libobj" - $run $mv $obj $libobj || exit 1 - - # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - # Suppress compiler output if we already did a PIC compilation. - $show "$base_compile $srcfile$suppress_output" - if $run eval "$base_compile \$srcfile$suppress_output"; then : - else - $run $rm $obj $libobj - exit 1 - fi - fi - - # Create an invalid libtool object if no PIC, so that we do not - # accidentally link it into a program. - if test "$build_libtool_libs" != yes; then - $show "echo timestamp > $libobj" - $run eval "echo timestamp > \$libobj" || exit $? - fi - - exit 0 - ;; - - # libtool link mode - link) - modename="$modename: link" - CC="$nonopt" - allow_undefined=yes - compile_command="$CC" - finalize_command="$CC" - - compile_shlibpath= - finalize_shlibpath= - deplibs= - dlfiles= - dlprefiles= - export_dynamic=no - hardcode_libdirs= - libobjs= - link_against_libtool_libs= - ltlibs= - objs= - prev= - prevarg= - release= - rpath= - perm_rpath= - temp_rpath= - vinfo= - - # We need to know -static, to get the right output filenames. - for arg - do - case "$arg" in - -all-static | -static) - if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 - fi - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - for arg - do - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case "$prev" in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case "$prev" in - dlfiles|dlprefiles) - case "$arg" in - *.la | *.lo) ;; # We handle these cases below. - *) - dlprefiles="$dlprefiles $arg" - test "$prev" = dlfiles && dlfiles="$dlfiles $arg" - prev= - ;; - esac - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath) - rpath="$rpath $arg" - prev= - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi - - prevarg="$arg" - - case "$arg" in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - if test "$export_dynamic" != yes; then - export_dynamic=yes - if test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - else - arg= - fi - - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - fi - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` - case "$dir" in - /* | [A-Za-z]:\\*) - # Add the corresponding hardcode_libdir_flag, if it is not identical. - ;; - *) - $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 - exit 1 - ;; - esac - deplibs="$deplibs $arg" - ;; - - -l*) deplibs="$deplibs $arg" ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -o) prev=output ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -static) - # If we have no pic_flag, then this is the same as -all-static. - if test -z "$pic_flag" && test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - ;; - - *.o | *.a) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A library object. - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - if test "$build_libtool_libs" = yes; then - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` - prev= - fi - libobjs="$libobjs $arg" - ;; - - *.la) - # A libtool-controlled library. - - dlname= - libdir= - library_names= - 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 : - else - $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 - exit 1 - fi - - # If there is no directory component, then add one. - case "$arg" in - */* | *\\*) . $arg ;; - *) . ./$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 - linklib="$l" - done - - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 - exit 1 - fi - - # Find the relevant object directory and library name. - name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` - dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$arg"; then - dir="$objdir" - else - dir="$dir/$objdir" - fi - - # This library was specified with -dlopen. - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - if test -z "$dlname"; then - # If there is no dlname, we need to preload. - prev=dlprefiles - else - # We should not create a dependency on this library, but we - # may need any libraries it requires. - compile_command="$compile_command$dependency_libs" - finalize_command="$finalize_command$dependency_libs" - prev= - continue - fi - fi - - # The library was specified with -dlpreopen. - if test "$prev" = dlprefiles; then - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - dlprefiles="$dlprefiles $dir/$old_library" - else - dlprefiles="$dlprefiles $dir/$linklib" - fi - prev= - fi - - if test "$build_libtool_libs" = yes && test -n "$library_names"; then - link_against_libtool_libs="$link_against_libtool_libs $arg" - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - - # This is the magic to use -rpath. - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - # Put the magic libdir with the hardcode flag. - hardcode_libdirs="$libdir" - libdir="@HARDCODE_LIBDIRS@" - else - # Just accumulate the unique libdirs. - case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - libdir= - fi - fi - - if test -n "$libdir"; then - eval flag=\"$hardcode_libdir_flag_spec\" - - compile_command="$compile_command $flag" - finalize_command="$finalize_command $flag" - fi - elif test -n "$runpath_var"; then - # Do the same for the permanent run path. - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - - - case "$hardcode_action" in - immediate) - if test "$hardcode_direct" = no; then - compile_command="$compile_command $dir/$linklib" - elif test "$hardcode_minus_L" = no; then - compile_command="$compile_command -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = no; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" - fi - ;; - - relink) - # We need an absolute path. - case "$dir" in - /* | [A-Za-z]:\\*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi - dir="$absdir" - ;; - esac - - if test "$hardcode_direct" = yes; then - compile_command="$compile_command $dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - compile_command="$compile_command -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = yes; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" - fi - ;; - - *) - $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 - exit 1 - ;; - esac - - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - finalize_command="$finalize_command $libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - finalize_command="$finalize_command -L$libdir -l$name" - elif test "$hardcode_shlibpath_var" = yes; then - finalize_shlibpath="$finalize_shlibpath$libdir:" - finalize_command="$finalize_command -l$name" - else - # We cannot seem to hardcode it, guess we'll fake it. - finalize_command="$finalize_command -L$libdir -l$name" - fi - else - # Transform directly to old archives if we don't build new libraries. - if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$modename: cannot find static library for \`$arg'" 1>&2 - exit 1 - fi - - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_command="$compile_command $dir/$linklib" - finalize_command="$finalize_command $dir/$linklib" - else - compile_command="$compile_command -L$dir -l$name" - finalize_command="$finalize_command -L$dir -l$name" - fi - fi - - # Add in any libraries that this one depends upon. - compile_command="$compile_command$dependency_libs" - finalize_command="$finalize_command$dependency_libs" - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - ;; - esac - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - 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= - case "$output" in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - */* | *\\*) - $echo "$modename: output file \`$output' must have no directory components" 1>&2 - exit 1 - ;; - - *.a) - # Now set the variables for building old libraries. - build_libtool_libs=no - build_old_libs=yes - oldlib="$output" - $show "$rm $oldlib" - $run $rm $oldlib - ;; - - *.la) - # Make sure we only generate libraries of the form `libNAME.la'. - case "$output" in - lib*) ;; - *) - $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval libname=\"$libname_spec\" - - # All the library-specific variables (install_libdir is set above). - 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 - exit 1 - fi - - # 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 - 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 - fi - - set dummy $rpath - if test $# -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - # Parse the version information argument. - IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' - set dummy $vinfo - IFS="$save_ifs" - - if test -n "$5"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - test -n "$2" && current="$2" - test -n "$3" && revision="$3" - test -n "$4" && age="$4" - - # 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 - - 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 - - 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 - - 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 - - # Calculate the version variables. - version_vars="version_type current age revision" - case "$version_type" in - none) ;; - - linux) - version_vars="$version_vars major versuffix" - major=`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - 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 - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - version_vars="$version_vars major versuffix" - 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 - - # 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}.* - 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 - 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 - - 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'` - - # 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 - $show "(cd $objdir && $LN_S $realname $linkname)" - $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? - 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 - - # Now set the variables for building old libraries. - oldlib="$objdir/$libname.a" - ;; - - *.lo | *.o) - if test -n "$link_against_libtool_libs"; then - $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 - exit 1 - fi - - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored while creating 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@%%"` - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 - fi - - case "$output" in - *.lo) - if test -n "$objs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Create the old-style object. - reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` - - output="$obj" - eval cmds=\"$reload_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" - - # Exit if we aren't doing a library object file. - test -z "$libobj" && exit 0 - - if test "$build_libtool_libs" != yes; then - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - $show "echo timestamp > $libobj" - $run eval "echo timestamp > $libobj" || exit $? - exit 0 - fi - - if test -n "$pic_flag"; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs" - output="$libobj" - eval cmds=\"$reload_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" - else - # Just create a symlink. - $show "$LN_S $obj $libobj" - $run $LN_S $obj $libobj || exit 1 - fi - - exit 0 - ;; - - *) - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 - fi - - if test -n "$rpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - # Put the magic libdir with the hardcode flag. - hardcode_libdirs="$libdir" - libdir="@HARDCODE_LIBDIRS@" - else - # Just accumulate the unique libdirs. - case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - libdir= - fi - fi - - if test -n "$libdir"; then - eval flag=\"$hardcode_libdir_flag_spec\" - - compile_command="$compile_command $flag" - finalize_command="$finalize_command $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - fi - - # Substitute the hardcoded libdirs into the compile commands. - if test -n "$hardcode_libdir_separator"; then - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - fi - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` - finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` - fi - - if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${output}S.c" - else - dlsyms= - fi - - if test -n "$dlsyms"; then - # Add our own program objects to the preloaded list. - dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` - - # Discover the nlist of each of the dlfiles. - nlist="$objdir/${output}.nm" - - if test -d $objdir; then - $show "$rm $nlist ${nlist}T" - $run $rm "$nlist" "${nlist}T" - else - $show "$mkdir $objdir" - $run $mkdir $objdir - status=$? - if test $status -eq 0 || test -d $objdir; then : - else - exit $status - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - # Parse the name list into a source file. - $show "creating $objdir/$dlsyms" - if test -z "$run"; then - # Make sure we at least have an empty file. - test -f "$nlist" || : > "$nlist" - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - wcout=`wc "$nlist" 2>/dev/null` - count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - (test "$count" -ge 0) 2>/dev/null || count=-1 - else - $rm "$nlist"T - count=-1 - fi - - case "$dlsyms" in - "") ;; - *.c) - $echo > "$objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define dld_preloaded_symbol_count some_other_symbol -#define dld_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test -f "$nlist"; then - sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" - else - echo '/* NONE */' >> "$objdir/$dlsyms" - fi - - $echo >> "$objdir/$dlsyms" "\ - -#undef dld_preloaded_symbol_count -#undef dld_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define __ptr_t void * -#else -# define __ptr_t char * -#endif - -/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ -int dld_preloaded_symbol_count = $count; - -/* The mapping between symbol names and symbols. */ -struct { - char *name; - __ptr_t address; -} -dld_preloaded_symbols[] = -{\ -" - - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" - fi - - $echo >> "$objdir/$dlsyms" "\ - {0, (__ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif\ -" - ;; - - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - esac - fi - - # Now compile the dynamic symbol file. - $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" - $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` - elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 - else - # We keep going just in case the user didn't refer to - # dld_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - $echo "$modename: not configured to extract global symbols from dlpreopened files" 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 "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - - # We have no uninstalled library dependencies, so finalize right now. - $show "$compile_command" - $run eval "$compile_command" - exit $? - fi - - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` - 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 - $show "$mkdir $objdir" - $run $mkdir $objdir - status=$? - if test $status -eq 0 || test -d $objdir; then : - else - exit $status - fi - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case "$dir" in - /* | [A-Za-z]:\\*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - # Delete the old output file. - $run $rm $output - - if test -n "$compile_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" - finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" - fi - - case "$hardcode_action" in - relink) - # 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 - - $show "$compile_command" - $run eval "$compile_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the finalize command for shipping. - finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` - - # Quote $echo for shipping. - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - $rm $output - trap "$rm $output; exit 1" 1 2 15 - - $echo > $output "\ -#! /bin/sh - -# $output - temporary wrapper script for $objdir/$output -# Generated by ltmain.sh - GNU $PACKAGE $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of \``pwd`'. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='$sed_quote_subst' - -# 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 - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - link_against_libtool_libs='$link_against_libtool_libs' - 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 - echo=\"$qecho\" - file=\"\$0\" - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" - - progdir=\"\$thisdir/$objdir\" - program='$output' - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` - - export $shlibpath_var -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - - # Export the path to the program. - PATH=\"\$progdir:\$PATH\" - export PATH - - exec \$program \${1+\"\$@\"} - - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" - chmod +x $output - fi - exit 0 - ;; - 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'` - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" - else - eval cmds=\"$old_archive_cmds\" - fi - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Now create the libtool archive. - case "$output" in - *.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 - -# The name that we can dlopen(3). -dlname='$dlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Directory that this library needs to be installed in: -libdir='$install_libdir'\ -" - fi - - # 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 - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional /bin/sh argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL"; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir= - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case "$arg" in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test -n "$isdir"; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test $# -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case "$destdir" in - /* | [A-Za-z]:\\*) ;; - *) - for file in $files; do - case "$file" in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case "$file" in - *.a) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.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 : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$realname $destdir/$realname" - $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? - test "X$dlname" = "X$realname" && dlname= - - if test $# -gt 0; then - # Delete the old symlinks. - rmcmd="$rm" - for linkname - do - rmcmd="$rmcmd $destdir/$linkname" - done - $show "$rmcmd" - $run $rmcmd - - # ... and create new ones. - for linkname - do - test "X$dlname" = "X$linkname" && dlname= - $show "(cd $destdir && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $LN_S $realname $linkname)" - done - fi - - if test -n "$dlname"; then - # Install the dynamically-loadable library. - $show "$install_prog $dir/$dlname $destdir/$dlname" - $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_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" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - $show "$install_prog $file $destdir/$name" - $run eval "$install_prog $file $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # 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 - - # Deduce the name of the destination old-style object file. - case "$destfile" in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` - ;; - *.o) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # 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/'` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # 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 - link_against_libtool_libs= - finalize_command= - - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Check the variables that should have been set. - if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $link_against_libtool_libs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case "$lib" in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - 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 - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - if test "$hardcode_action" = relink; then - if test "$finalize" = yes; then - $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 - $show "$finalize_command" - if $run eval "$finalize_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - continue - fi - file="$objdir/$file"T - else - $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - $show "$install_prog$stripme $file $dest" - $run eval "$install_prog\$stripme \$file \$dest" || exit $? - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_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" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec $SHELL $0 --finish$current_libdirs - exit 1 - fi - - exit 0 - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" - fi - done - fi - - echo "------------------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - echo " $libdir" - done - echo - 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:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - echo " - use the \`$flag' linker flag" - 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 "------------------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test -f "$file"; then : - else - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - 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 : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case "$file" in - -*) ;; - *) - # 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 there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - - # Now actually exec the command. - eval "exec \$cmd$args" - - $echo "$modename: cannot exec \$cmd$args" - exit 1 - else - # Display what would be done. - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - $echo "$cmd$args" - exit 0 - fi - ;; - - # libtool uninstall mode - uninstall) - modename="$modename: uninstall" - rm="$nonopt" - files= - - for arg - do - case "$arg" in - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - rmfiles="$file" - - 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 - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $dir/$n" - test "X$n" = "X$dlname" && dlname= - done - test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" - test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" - - $show "$rm $rmfiles" - $run $rm $rmfiles - - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" - fi - - # FIXME: should reinstall the best remaining shared library. - fi - ;; - - *.lo) - if test "$build_old_libs" = yes; then - oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` - rmfiles="$rmfiles $dir/$oldobj" - fi - $show "$rm $rmfiles" - $run $rm $rmfiles - ;; - - *) - $show "$rm $rmfiles" - $run $rm $rmfiles - ;; - esac - done - exit 0 - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac - - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 -fi # test -z "$show_help" - -# We need to display help for each of the modes. -case "$mode" in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - --n, --dry-run display commands without modifying any files - --features display 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] - --quiet same as \`--silent' - --silent don't print informational messages - --version print version information - -MODE must be one of the following: - - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE." - exit 0 - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only -library objects (\`.lo' files) may be specified, and \`-rpath' is required. - -If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar' -and \`ranlib'. - -If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is -created, otherwise an executable program is created." - ;; - -uninstall) - $echo -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/missing b/missing deleted file mode 100755 index e4b838ca..00000000 --- a/missing +++ /dev/null @@ -1,134 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. -# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996. - -# 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., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison touch file \`y.tab.c' - makeinfo touch the output file - yacc touch file \`y.tab.c'" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - you modified \`acinclude.m4' or \`configure.in'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - you modified \`configure.in'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - you modified \`acconfig.h' or \`configure.in'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - touch config.h.in - ;; - - automake) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print \ - | sed 's/^\(.*\).am$/touch \1.in/' \ - | sh - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - your modified any \`.y' file. For being effective, your - modifications might require the \`Bison' package. Grab it from - any GNU archive site." - touch y.tab.c - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. It should be needed only if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/modules/Makefile.am b/modules/Makefile.am deleted file mode 100644 index 01ef5c23..00000000 --- a/modules/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -noinst_PROGRAMS = test.so time.so - -test_so_SOURCES = test.c -time_so_SOURCES = time.c - -EXTRA_DIST = test.m4 time.m4 - -INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib -LDFLAGS = -shared diff --git a/modules/Makefile.in b/modules/Makefile.in deleted file mode 100644 index 06248f02..00000000 --- a/modules/Makefile.in +++ /dev/null @@ -1,300 +0,0 @@ -# Makefile.in generated automatically by automake 1.3b from Makefile.am - -# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -GENCAT = @GENCAT@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GT_NO = @GT_NO@ -GT_YES = @GT_YES@ -INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ -INSTOBJEXT = @INSTOBJEXT@ -INTLDEPS = @INTLDEPS@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -PACKAGE = @PACKAGE@ -PERL = @PERL@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -STACKOVF = @STACKOVF@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -l = @l@ - -noinst_PROGRAMS = test.so time.so - -test_so_SOURCES = test.c -time_so_SOURCES = time.c - -EXTRA_DIST = test.m4 time.m4 - -INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib -LDFLAGS = -shared -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -PROGRAMS = $(noinst_PROGRAMS) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I.. -CPPFLAGS = @CPPFLAGS@ -LIBS = @LIBS@ -test_so_OBJECTS = test.o -test_so_LDADD = $(LDADD) -test_so_DEPENDENCIES = -test_so_LDFLAGS = -time_so_OBJECTS = time.o -time_so_LDADD = $(LDADD) -time_so_DEPENDENCIES = -time_so_LDFLAGS = -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = README Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP = --best -DEP_FILES = .deps/test.P .deps/time.P -SOURCES = $(test_so_SOURCES) $(time_so_SOURCES) -OBJECTS = $(test_so_OBJECTS) $(time_so_OBJECTS) - -all: Makefile $(PROGRAMS) - -.SUFFIXES: -.SUFFIXES: .S .c .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-noinstPROGRAMS: - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -distclean-noinstPROGRAMS: - -maintainer-clean-noinstPROGRAMS: - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -test.so: $(test_so_OBJECTS) $(test_so_DEPENDENCIES) - @rm -f test.so - $(LINK) $(test_so_LDFLAGS) $(test_so_OBJECTS) $(test_so_LDADD) $(LIBS) - -time.so: $(time_so_OBJECTS) $(time_so_DEPENDENCIES) - @rm -f time.so - $(LINK) $(time_so_LDFLAGS) $(time_so_OBJECTS) $(time_so_LDADD) $(LIBS) - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = modules - -distdir: $(DISTFILES) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(top_distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu modules/Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file; \ - done - -DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) - --include $(DEP_FILES) - -mostlyclean-depend: - -clean-depend: - -distclean-depend: - -maintainer-clean-depend: - -rm -rf .deps - -%.o: %.c - @echo '$(COMPILE) -c $<'; \ - $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< - -%.lo: %.c - @echo '$(LTCOMPILE) -c $<'; \ - $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< - @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ - < .deps/$(*F).p > .deps/$(*F).P - @-rm -f .deps/$(*F).p -info: -dvi: -check: all -installcheck: -install-exec: - @$(NORMAL_INSTALL) - -install-data: - @$(NORMAL_INSTALL) - -install: install-exec install-data all - @: - -uninstall: - -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean: mostlyclean-noinstPROGRAMS mostlyclean-compile \ - mostlyclean-tags mostlyclean-depend mostlyclean-generic - -clean: clean-noinstPROGRAMS clean-compile clean-tags clean-depend \ - clean-generic mostlyclean - -distclean: distclean-noinstPROGRAMS distclean-compile distclean-tags \ - distclean-depend distclean-generic clean - -rm -f config.status - -maintainer-clean: maintainer-clean-noinstPROGRAMS \ - maintainer-clean-compile maintainer-clean-tags \ - maintainer-clean-depend maintainer-clean-generic \ - distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ -clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile tags mostlyclean-tags distclean-tags \ -clean-tags maintainer-clean-tags distdir mostlyclean-depend \ -distclean-depend clean-depend maintainer-clean-depend info dvi \ -installcheck install-exec install-data install uninstall all \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/modules/README b/modules/README deleted file mode 100644 index 93e7bbb1..00000000 --- a/modules/README +++ /dev/null @@ -1,62 +0,0 @@ -This directory contains demonstration modules for GNU m4. - -Nothing in this directory is built by default. - -Dynamic modules is a experimental feature of GNU m4, and might change or -disappear altogether in future versions. Currently it has only been -certified to work under Linux 2.0. - -Dynamic modules are only available if GNU m4 was configured with ---with-modules and if the dlopen(3) interface is available in the -operating system. - -Implementation details are in ../src/module.c - -A module is a compiled shared object, i.e., modules are written in C and -then compiled. The compiled file can then be loaded into a running m4 -process by calling the builtin "loadmodule". This will give GNU m4 -access to any system feature with a C interface. - -A module extends GNU m4 by defining new builtins, It can define builtins -with the same names as existing builtins, which will then be -unavailable. A module cannot redefine internal functions of GNU m4, -such as the input parser or argument handling. - -The infrastructure for writing and compiling modules is still a bit -wanting, quasi non-existent. - -Each module should include the two header files ../src/m4.h and -../src/builtin.h. These will include <ctype.h>, <stdio.h>, -../lib/obstack.h and ../config.h. - -Each module *must* define the symbol "m4_macro_table" as a pointer to a -table of "struct builtin" (defined in m4.h). The table ends with an -entry with name == NULL. The builtins described in the table will be -defined by GNU m4 as were they normal builtins. - -If a module defines the symbol "m4_init_module", it is supposed to be a -function with a prototype of "void m4_init_module(struct obstack *obs)", -and it will be called as soon as the module is loaded. Any non-finished -object left on the obstack will be the expansion of the call of the -builtin "loadmodule". The obstack pointer might be NULL (in the future). - -If a module defines the symbol "m4_finish_module", it is supposed to be -a function with a prototype of "void m4_finish_module(void)", and it -will be called just before GNU m4 exits. This will allow a module to -clean up before exit. There is no way of communicating information to -the user, as GNU m4 exits immeidately afterwards. - -No other symbols will be used by GNU m4. Other external symbols within -the module are private and will not be accessible to GNU m4 or to other -modules. - -Modules are allowed to call external functions already defined within -the GNU m4 sources. Some of these have prototypes in builtin.h. - - -A complete, though silly, example is found in test.c. A more -interesting example is in time.c. - -To try the demos, compile with `make' and run them with the commands as: - - M4MODPATH=`pwd` ../src/m4 time.m4 diff --git a/modules/TODO b/modules/TODO deleted file mode 100644 index c5d7ec4d..00000000 --- a/modules/TODO +++ /dev/null @@ -1,3 +0,0 @@ -The file src/m4.h will have to be split to have an installable m4defs.h -suitable for modules. Modules should be compilable without have the m4 -source available. diff --git a/modules/defs b/modules/defs deleted file mode 100644 index 403eabbe..00000000 --- a/modules/defs +++ /dev/null @@ -1,58 +0,0 @@ -# -*- ksh -*- -# Defines for GNU m4 testing environment. -# Erick Branderhorst <Erick.Branderhorst@asml.nl> - -# Ensure $srcdir set correctly. -test -f ${srcdir}/defs || { - echo "defs: installation error" 1>&2 - exit 1 -} - -# If srcdir is relative, we need to modify it. -case "$srcdir" in - /*) - ;; - - .) - srcdir=".." - ;; - - *) - srcdir="../$srcdir" - ;; -esac - -rm -rf testSubDir > /dev/null 2>&1 -mkdir testSubDir -cd testSubDir - -# Build appropriate environment in test directory. Eg create -# configure.in, touch all necessary files, etc. - -# nothing yet - -# See how redirections should work. User can set VERBOSE to see all -# output. -test -z "$VERBOSE" && { - exec > /dev/null 2>&1 -} - -# User can set MAKE to choose which make to use. Must use GNU make. -test -z "$MAKE" && MAKE=make - -echo "=== Running test $0" - -# See how GNU m4 should be run. No options as default. -test -z "$M4" && M4="${SHELL-/bin/sh} ../../libtool --mode=execute ../../src/m4" - -# See how cmp should be run. -test -z "$CMP" && CMP=cmp - -# Setting nls related vars. Override them in the test when needed. -LANGUAGE=C -export LANGUAGE -LC_ALL=C -export LC_ALL -LANG=C -export LANG - diff --git a/modules/modpath1.test b/modules/modpath1.test deleted file mode 100755 index 2722ed43..00000000 --- a/modules/modpath1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -# cannot perform test without --with-modules -#test -z "$WITH_MODULES" && exit 77 - -cat ${srcdir}/test.m4 >in - -cat <<'EOF' >ok -Test module loaded. -Test module called. -Dumpdef: -EOF - -cat <<'EOF' >okerr -test: <test> -EOF - - -M4PATH=$srcdir:$srcdir/../tests $M4 -M `cd $srcdir; pwd` -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/modpath2.test b/modules/modpath2.test deleted file mode 100755 index 06af519a..00000000 --- a/modules/modpath2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -# cannot perform test without --with-modules -#test -z "$WITH_MODULES" && exit 77 - -cat ${srcdir}/test.m4 >in - -cat <<'EOF' >ok -Test module loaded. -Test module called. -Dumpdef: -EOF - -cat <<'EOF' >okerr -test: <test> -EOF - -LTDL_LIBRARY_PATH=`cd $srcdir; pwd` M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/modpath3.test b/modules/modpath3.test deleted file mode 100755 index 6064265b..00000000 --- a/modules/modpath3.test +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -# cannot perform test without --with-modules -#test -z "$WITH_MODULES" && exit 77 - - - -cat <<'EOF' >in -test -Dumpdef: dumpdef(`test') -EOF - -cat <<'EOF' >ok -Test module called. -Dumpdef: -EOF - -cat <<'EOF' >okerr -test: <test> -EOF - - -M4PATH=$srcdir:$srcdir/../tests $M4 -m test -M `cd $srcdir; pwd` -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/modpath4.test b/modules/modpath4.test deleted file mode 100755 index 780cdbeb..00000000 --- a/modules/modpath4.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -cat ${srcdir}/test.m4 >in - - -cat <<'EOF' >ok -Test module loaded. -Test module called. -Dumpdef: -EOF - -cat <<'EOF' >okerr -test: <test> -EOF - - -M4MODPATH=`cd $srcdir; pwd` M4PATH=$srcdir:$srcdir/../tests $M4 -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/shadow.c b/modules/shadow.c deleted file mode 100644 index 5955828b..00000000 --- a/modules/shadow.c +++ /dev/null @@ -1,75 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <m4module.h> /* This is obligatory */ - -#define LTDL_MODULE_NAME shadow - -module_init_t m4_init_module; /* initialisation function */ -module_finish_t m4_finish_module; /* cleanup function */ - -/* declare builtins */ -M4BUILTIN(shadow); -M4BUILTIN(test); -#undef M4BUILTIN - -#define m4_macro_table shadow_LTX_m4_macro_table -#define m4_init_module shadow_LTX_m4_init_module -#define m4_finish_module shadow_LTX_m4_finish_module - -/* The table of builtins defined by this module - just one */ - -builtin m4_macro_table[] = -{ - /* name GNUext macros blind function */ - { "shadow", FALSE, FALSE, FALSE, shadow }, - { "test", FALSE, FALSE, FALSE, test }, - { 0, FALSE, FALSE, FALSE, 0 }, -}; - -void -m4_init_module(struct obstack *obs) -{ - char *s = "Shadow module loaded."; - if (obs != 0) - obstack_grow (obs, s, strlen(s)); -} - -void -m4_finish_module(void) -{ - return; -} - -/* The functions for builtins can be static */ -static void -shadow (struct obstack *obs, int argc, token_data **argv) -{ - char *s = "Shadow::`shadow' called."; - obstack_grow (obs, s, strlen(s)); -} - -static void -test (struct obstack *obs, int argc, token_data **argv) -{ - char *s = "Shadow::`test' called."; - obstack_grow (obs, s, strlen(s)); -} - - - diff --git a/modules/shadow.m4 b/modules/shadow.m4 deleted file mode 100644 index b55adbcb..00000000 --- a/modules/shadow.m4 +++ /dev/null @@ -1,59 +0,0 @@ -# no modules loaded yet -test -shadow - -# define our own macros for `test' and `shadow' -define(`test', `local::`test'') -define(`shadow', `local::`shadow'') -test -shadow - -# save our local `shadow' macro until the Shadow module is unloaded -pushdef(`shadow') - -# module Shadow defines `shadow' and `test' macros -loadmodule(`shadow') -dumpdef(`test') -dumpdef(`shadow') -test -shadow - -# save the definition of `test' from the Shadow module -define(`Shadow::test', defn(`test')) - -# module Test also defines a `test' macro -loadmodule(`test') -dumpdef(`test') -dumpdef(`shadow') -test -shadow - -# Reloading Shadow shouldn't affect anything -loadmodule(`shadow') -dumpdef(`test') -dumpdef(`shadow') -test -shadow - -# Unloading Test will not unshadow the test definition in Shadow without -# some macro magic -unloadmodule(`test') -define(`test', defn(`Shadow::test')) -undefine(`Shadow::test') -dumpdef(`test') -dumpdef(`shadow') -test -shadow - -# Unloading Shadow once has no effect (we loaded it twice) -unloadmodule(`shadow') -dumpdef(`test') -dumpdef(`shadow') -test -shadow - -# Unloading Shadow again will revert to copying `test' and the locally -# pushed `shadow' macro. -unloadmodule(`shadow') -test -shadow diff --git a/modules/shadow.test b/modules/shadow.test deleted file mode 100755 index c8952b59..00000000 --- a/modules/shadow.test +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -# shadow.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -# cannot perform test without --with-modules -# test -z "$WITH_MODULES" && exit 77 - -cat ${srcdir}/shadow.m4 >in - -cat <<'EOF' >ok -# no modules loaded yet -test -shadow - -# define our own macros for `test' and `shadow' - - -local::test -local::shadow - -# save our local `shadow' macro until the Shadow module is unloaded - - -# module Shadow defines `shadow' and `test' macros -Shadow module loaded. - - -Shadow::test called. -Shadow::shadow called. - -# save the definition of `test' from the Shadow module - - -# module Test also defines a `test' macro -Test module loaded. - - -Test module called. -Shadow::shadow called. - -# Reloading Shadow shouldn't affect anything - - - -Test module called. -Shadow::shadow called. - -# Unloading Test will not unshadow the test definition in Shadow without -# some macro magic - - - - - -Shadow::test called. -Shadow::shadow called. - -# Unloading Shadow once has no effect (we loaded it twice) - - - -Shadow::test called. -Shadow::shadow called. - -# Unloading Shadow again will revert to copying `test' and the locally -# pushed `shadow' macro. - -test -local::shadow -EOF - -cat <<'EOF' >okerr -test: <test> -shadow: <shadow> -test: <test> -shadow: <shadow> -test: <test> -shadow: <shadow> -test: <test> -shadow: <shadow> -test: <test> -shadow: <shadow> -EOF - - -M4PATH=$srcdir:$srcdir/../tests $M4 -M `cd $srcdir; pwd` -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/stdlib.c b/modules/stdlib.c deleted file mode 100644 index 6ba8556d..00000000 --- a/modules/stdlib.c +++ /dev/null @@ -1,293 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <m4.h> -#include <builtin.h> - -#include <pwd.h> -#include <stdlib.h> -#include <unistd.h> -#include <time.h> -#include <sys/utsname.h> -#include <sys/types.h> - -DECLARE(m4_getcwd); -DECLARE(m4_getlogin); -DECLARE(m4_getpid); -DECLARE(m4_getppid); -DECLARE(m4_getuid); -DECLARE(m4_getpwnam); -DECLARE(m4_getpwuid); -DECLARE(m4_hostname); -DECLARE(m4_rand); -DECLARE(m4_srand); -DECLARE(m4_getenv); -DECLARE(m4_setenv); -DECLARE(m4_unsetenv); -DECLARE(m4_uname); - -#undef DECLARE - -builtin m4_macro_table[] = -{ - /* name GNUext macros blind function */ - { "getcwd", TRUE, FALSE, FALSE, m4_getcwd }, - { "getenv", TRUE, FALSE, TRUE, m4_getenv }, - { "setenv", TRUE, FALSE, TRUE, m4_setenv }, - { "unsetenv", TRUE, FALSE, TRUE, m4_unsetenv }, - { "getlogin", TRUE, FALSE, FALSE, m4_getlogin }, - { "getpid", TRUE, FALSE, FALSE, m4_getpid }, - { "getppid", TRUE, FALSE, FALSE, m4_getppid }, - { "getpwnam", TRUE, FALSE, TRUE, m4_getpwnam }, - { "getpwuid", TRUE, FALSE, TRUE, m4_getpwuid }, - { "getuid", TRUE, FALSE, FALSE, m4_getuid }, - { "hostname", TRUE, FALSE, FALSE, m4_hostname }, - { "rand", TRUE, FALSE, FALSE, m4_rand }, - { "srand", TRUE, FALSE, FALSE, m4_srand }, - { "uname", TRUE, FALSE, FALSE, m4_uname }, - { 0, FALSE, FALSE, FALSE, 0 }, -}; - - - -static void -m4_getcwd (struct obstack *obs, int argc, token_data **argv) -{ - char buf[1024]; - char *bp; - int l; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - bp = getcwd(buf, sizeof buf); - - if (bp != NULL) /* in case of error return null string */ - shipout_string (obs, buf, 0 , FALSE); -} - -static void -m4_getenv (struct obstack *obs, int argc, token_data **argv) -{ - char *env; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - env = getenv(ARG(1)); - - if (env != NULL) - shipout_string (obs, env, 0, FALSE); -} - -static void -m4_setenv (struct obstack *obs, int argc, token_data **argv) -{ - char *env; - int overwrite = 1; - - if (bad_argc (argv[0], argc, 3, 4)) - return; - - if (argc == 4) - if (!numeric_arg(argv[0], ARG(3), &overwrite)) - return; - - setenv(ARG(1), ARG(2), overwrite); -} - -static void -m4_unsetenv (struct obstack *obs, int argc, token_data **argv) -{ - char *env; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - unsetenv(ARG(1)); -} - -static void -m4_getlogin (struct obstack *obs, int argc, token_data **argv) -{ - char *login; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - login = getlogin(); - - if (login != NULL) - shipout_string (obs, login, 0, FALSE); -} - -static void -m4_getpid (struct obstack *obs, int argc, token_data **argv) -{ - if (bad_argc (argv[0], argc, 1, 1)) - return; - - shipout_int(obs, getpid()); -} - -static void -m4_getppid (struct obstack *obs, int argc, token_data **argv) -{ - if (bad_argc (argv[0], argc, 1, 1)) - return; - - shipout_int(obs, getppid()); -} - -static void -m4_getpwnam (struct obstack *obs, int argc, token_data **argv) -{ - struct passwd *pw; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - pw = getpwnam(ARG(1)); - - if (pw != NULL) - { - shipout_string (obs, pw->pw_name, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_passwd, 0, TRUE); - obstack_1grow (obs, ','); - shipout_int(obs, pw->pw_uid); - obstack_1grow (obs, ','); - shipout_int(obs, pw->pw_gid); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_gecos, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_dir, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_shell, 0, TRUE); - } -} - -static void -m4_getpwuid (struct obstack *obs, int argc, token_data **argv) -{ - struct passwd *pw; - int uid; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - if (!numeric_arg(argv[0], ARG(1), &uid)) - return; - - pw = getpwuid(uid); - - if (pw != NULL) - { - shipout_string (obs, pw->pw_name, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_passwd, 0, TRUE); - obstack_1grow (obs, ','); - shipout_int(obs, pw->pw_uid); - obstack_1grow (obs, ','); - shipout_int(obs, pw->pw_gid); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_gecos, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_dir, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, pw->pw_shell, 0, TRUE); - } -} - -static void -m4_hostname (struct obstack *obs, int argc, token_data **argv) -{ - char buf[1024]; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - if (gethostname(buf, sizeof buf) < 0) - return; - - shipout_string (obs, buf, 0, FALSE); -} - -static void -m4_rand (struct obstack *obs, int argc, token_data **argv) -{ - int i; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - shipout_int(obs, rand()); -} - -static void -m4_srand (struct obstack *obs, int argc, token_data **argv) -{ - char buf[64]; - int seed; - - if (bad_argc (argv[0], argc, 1, 2)) - return; - - if (argc == 1) - seed = time(0L) * getpid(); - else - { - if (!numeric_arg(argv[0], ARG(1), &seed)) - return; - } - - srand(seed); -} - -static void -m4_uname (struct obstack *obs, int argc, token_data **argv) -{ - struct utsname ut; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - if (uname(&ut) == 0) - { - shipout_string (obs, ut.sysname, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, ut.nodename, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, ut.release, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, ut.machine, 0, TRUE); - obstack_1grow (obs, ','); - shipout_string (obs, ut.domainname, 0, TRUE); - } -} - -static void -m4_getuid (struct obstack *obs, int argc, token_data **argv) -{ - int i; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - shipout_int(obs, getuid()); -} diff --git a/modules/stdlib.m4 b/modules/stdlib.m4 deleted file mode 100644 index a023643d..00000000 --- a/modules/stdlib.m4 +++ /dev/null @@ -1,41 +0,0 @@ -loadmodule(`stdlib') - -`getenv - 'getenv(PATH) - -setenv TEST=??? setenv(`TEST', `???') -getenv TEST - getenv(`TEST') - -setenv TEST=Second test setenv(`TEST', `Second test') -getenv TEST - getenv(`TEST') - -unsetenv TEST unsetenv(`TEST') -getenv TEST - getenv(`TEST') - - - -`getlogin - 'getlogin -`getcwd = 'getcwd -`getpid - 'getpid -`getppid - 'getppid - -syscmd(`ps ajx|grep m4') - -`getuid - 'getuid - -user root - getpwnam(`root') -user sync - getpwnam(`sync') -user rene - getpwnam(`rene') - -uid 5 - getpwuid(5) -me - getpwuid(getuid) - -`hostname = 'hostname - -`rand' - rand,rand,rand,rand -`srand' srand -`rand' - rand,rand,rand,rand -`srand' srand -`rand' - rand,rand,rand,rand - -`uname - ' uname - diff --git a/modules/test.c b/modules/test.c deleted file mode 100644 index 1a8a8092..00000000 --- a/modules/test.c +++ /dev/null @@ -1,58 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <m4.h> /* These are obligatory */ -#include <builtin.h> - -module_init_t m4_init_module; /* initialisation function */ -module_finish_t m4_finish_module; /* cleanup function */ - -DECLARE(test); /* declare test as implementing - a builtin */ - -#undef DECLARE - -/* The table of builtins defined by this module - just one */ - -builtin m4_macro_table[] = -{ - /* name GNUext macros blind function */ - { "test", FALSE, FALSE, FALSE, test }, - { 0, FALSE, FALSE, FALSE, 0 }, -}; - -void -m4_init_module(struct obstack *obs) -{ - char *s = "Test module loaded."; - obstack_grow (obs, s, strlen(s)); -} - -void -m4_finish_module(void) -{ - return; -} - -/* The functions for builtins can be static */ -static void -test (struct obstack *obs, int argc, token_data **argv) -{ - char *s = "Test module called"; - obstack_grow (obs, s, strlen(s)); -} diff --git a/modules/test.m4 b/modules/test.m4 deleted file mode 100644 index f8486578..00000000 --- a/modules/test.m4 +++ /dev/null @@ -1,3 +0,0 @@ -loadmodule(`test.so') -test -Dumpdef: dumpdef(`test') diff --git a/modules/test.test b/modules/test.test deleted file mode 100755 index 6f0c335f..00000000 --- a/modules/test.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -cat ${srcdir}/test.m4 >in - - -cat <<'EOF' >ok -Test module loaded. -Test module called. -Dumpdef: -EOF - -cat <<'EOF' >okerr -test: <test> -EOF - - -M4PATH=$srcdir:$srcdir/../tests $M4 -M `cd $srcdir; pwd` -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/time.c b/modules/time.c deleted file mode 100644 index 5f98e8a7..00000000 --- a/modules/time.c +++ /dev/null @@ -1,193 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <m4.h> -#include <builtin.h> - -#include <time.h> - -DECLARE(m4_currenttime); -DECLARE(m4_ctime); -DECLARE(m4_gmtime); -DECLARE(m4_localtime); -DECLARE(m4_mktime); -DECLARE(m4_strftime); - -#undef DECLARE - -builtin m4_macro_table[] = -{ - /* name GNUext macros blind function */ - { "currenttime", TRUE, FALSE, FALSE, m4_currenttime }, - { "ctime", TRUE, FALSE, FALSE, m4_ctime }, - { "gmtime", TRUE, FALSE, TRUE, m4_gmtime }, - { "localtime", TRUE, FALSE, TRUE, m4_localtime }, - { "mktime", TRUE, FALSE, TRUE, m4_mktime }, - { "strftime", TRUE, FALSE, TRUE, m4_strftime }, - { 0, FALSE, FALSE, FALSE, 0 }, -}; - - - -static void -m4_currenttime (struct obstack *obs, int argc, token_data **argv) -{ - char buf[64]; - time_t now; - int l; - - if (bad_argc (argv[0], argc, 1, 1)) - return; - - now = time(0L); - l = sprintf(buf, "%ld", now); - - obstack_grow (obs, buf, l); -} - -static void -m4_ctime (struct obstack *obs, int argc, token_data **argv) -{ - char buf[64]; - time_t t; - int l; - - if (bad_argc (argv[0], argc, 1, 2)) - return; - - if (argc == 2) - numeric_arg(argv[0], ARG(1), (int *)&t); - else - t = time(0L); - - obstack_grow (obs, ctime(&t), 24); -} - -static void -format_tm(struct obstack *obs, struct tm *tm) -{ - shipout_int(obs, tm->tm_sec); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_min); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_hour); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_mday); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_mon); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_year); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_wday); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_yday); - obstack_1grow(obs, ','); - - shipout_int(obs, tm->tm_isdst); -} - -static void -m4_gmtime (struct obstack *obs, int argc, token_data **argv) -{ - time_t t; - struct tm *tm; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - if (!numeric_arg (argv[0], ARG (1), (int *)&t)) - return; - - format_tm(obs, gmtime(&t)); -} - -static void -m4_localtime (struct obstack *obs, int argc, token_data **argv) -{ - time_t t; - struct tm *tm; - - if (bad_argc (argv[0], argc, 2, 2)) - return; - - if (!numeric_arg (argv[0], ARG (1), (int *)&t)) - return; - - format_tm(obs, localtime(&t)); -} - -/*-------------------------------------------. -| mktime(sec,min,hour,mday,month,year,isdst) | -`-------------------------------------------*/ - -static void -m4_mktime (struct obstack *obs, int argc, token_data **argv) -{ - struct tm tm; - time_t t; - - if (bad_argc (argv[0], argc, 7, 8)) - return; - - if (!numeric_arg (argv[0], ARG (1), &tm.tm_sec)) - return; - if (!numeric_arg (argv[0], ARG (2), &tm.tm_min)) - return; - if (!numeric_arg (argv[0], ARG (3), &tm.tm_hour)) - return; - if (!numeric_arg (argv[0], ARG (4), &tm.tm_mday)) - return; - if (!numeric_arg (argv[0], ARG (5), &tm.tm_mon)) - return; - if (!numeric_arg (argv[0], ARG (6), &tm.tm_year)) - return; - if (ARG(7) && !numeric_arg (argv[0], ARG (7), &tm.tm_isdst)) - return; - - t = mktime(&tm); - - shipout_int(obs, t); -} - -static void -m4_strftime (struct obstack *obs, int argc, token_data **argv) -{ - struct tm *tm; - time_t t; - char *buf; - int l; - - if (bad_argc (argv[0], argc, 3, 3)) - return; - - if (!numeric_arg (argv[0], ARG (2), (int *)&t)) - return; - - tm = localtime(&t); - - buf = (char *) obstack_alloc(obs, 1024); - l = strftime(buf, 1024, ARG(1), tm); - obstack_grow(obs, buf, l); -} diff --git a/modules/time.m4 b/modules/time.m4 deleted file mode 100644 index e87f6bdf..00000000 --- a/modules/time.m4 +++ /dev/null @@ -1,16 +0,0 @@ -loadmodule(`time.so') - -`currenttime' = currenttime -`ctime' = ctime != ctime(eval(currenttime+60*60*24)) -gmtime = gmtime(currenttime) -localtime = localtime(currenttime) -define(`q', `$1,$2,$3,$4,$5,$6,$9')dnl - -currenttime -eval(currenttime+60*60*24) -localtime(eval(currenttime+60*60*24)) -q(localtime(eval(currenttime+60*60*24))) -mktime = mktime(q(localtime(eval(currenttime+60*60*24)))) - -%A %B %d, %Y = strftime(`%A %B %d, %Y', currenttime) -%X on %x = strftime(`%X on %x', currenttime) diff --git a/modules/time.test b/modules/time.test deleted file mode 100755 index a2155e69..00000000 --- a/modules/time.test +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh - -# test.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ../../tests/config.sh - -cat <<'EOF' >in -ifelse(regexp(currenttime, `^[1-9][0-9]*$'), 0, NUMERIC, NON NUMERIC) - -define(`sometime', 1890962700)dnl someones 65th birthday, hopefully -`ctime' = ctime(sometime) != ctime(eval(sometime+60*60*24)) -gmtime = gmtime(sometime) -localtime = localtime(sometime) -define(`q', `$1,$2,$3,$4,$5,$6,$9')dnl - -sometime -eval(sometime+60*60*24) -localtime(eval(sometime+60*60*24)) -q(localtime(eval(sometime+60*60*24))) -mktime = mktime(q(localtime(eval(sometime+60*60*24)))) - -%A %B %d, %Y = strftime(`%A %B %d, %Y', sometime) -%X on %x = strftime(`%X on %x', sometime) -EOF - -cat <<'EOF' >ok -NUMERIC - -ctime = Mon Dec 3 04:25:00 2029 != Tue Dec 4 04:25:00 2029 -gmtime = 0,25,3,3,11,129,1,336,0 -localtime = 0,25,4,3,11,129,1,336,0 - -1890962700 -1891049100 -0,25,4,4,11,129,2,337,0 -0,25,4,4,11,129,0 -mktime = 1891049100 - -%A %B %d, %Y = Monday December 03, 2029 -%X on %x = 04:25:00 on 12/03/29 -EOF - -cat <<'EOF' >okerr -EOF - - -M4PATH=$srcdir:$srcdir/../tests $M4 -m time -M `cd $srcdir; pwd` -d in >out 2>err -sed -e "s,^[^:]*[lt-]*m4[.ex]*:,m4:," err >sederr && mv sederr err -$CMP -s out ok && $CMP -s err okerr diff --git a/modules/time2.m4 b/modules/time2.m4 deleted file mode 100644 index 286f8bfd..00000000 --- a/modules/time2.m4 +++ /dev/null @@ -1,14 +0,0 @@ -`currenttime' = currenttime -`ctime' = ctime != ctime(eval(currenttime+60*60*24)) -gmtime = gmtime(currenttime) -localtime = localtime(currenttime) -define(`q', `$1,$2,$3,$4,$5,$6,$9')dnl - -currenttime -eval(currenttime+60*60*24) -localtime(eval(currenttime+60*60*24)) -q(localtime(eval(currenttime+60*60*24))) -mktime = mktime(q(localtime(eval(currenttime+60*60*24)))) - -%A %B %d, %Y = strftime(`%A %B %d, %Y', currenttime) -%X on %x = strftime(`%X on %x', currenttime) diff --git a/po/ChangeLog b/po/ChangeLog deleted file mode 100644 index e69de29b..00000000 --- a/po/ChangeLog +++ /dev/null diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index 85b34636..00000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,254 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = $(prefix)/@DATADIRNAME@ -localedir = $(datadir)/locale -gnulocaledir = $(prefix)/share/locale -gettextsrcdir = $(prefix)/share/gettext/po -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ - -CC = @CC@ -GENCAT = @GENCAT@ -GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ -MSGMERGE = PATH=../src:$$PATH msgmerge - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -SOURCES = cat-id-tbl.c -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ -stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) - -POTFILES = \ - -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && $(GENCAT) $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: cat-id-tbl.c $(CATALOGS) -all-no: - -$(PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ - --add-comments --keyword=_ --keyword=N_ \ - --files-from=$(srcdir)/POTFILES.in - if [ ! -s $(PACKAGE).po ] \ - || cmp -s $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; then \ - rm -f $(PACKAGE).po; \ - else \ - rm -f $(srcdir)/$(PACKAGE).pot \ - && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; \ - fi - -cat-id-tbl.c: stamp-cat-id -stamp-cat-id: $(PACKAGE).pot - rm -f cat-id-tbl.tmp - sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ - | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp - if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ - rm cat-id-tbl.tmp; \ - else \ - echo cat-id-tbl.c changed; \ - rm -f $(srcdir)/cat-id-tbl.c; \ - mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ - fi - cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(datadir); \ - else \ - $(top_srcdir)/mkinstalldirs $(datadir); \ - fi - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ - if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $$dir; \ - else \ - $(top_srcdir)/mkinstalldirs $$dir; \ - fi; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - if test "$(PACKAGE)" = "gettext"; then \ - if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(gettextsrcdir); \ - else \ - $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ - fi; \ - cd $(srcdir) && \ - $(INSTALL_DATA) Makefile.in.in $(gettextsrcdir)/Makefile.in.in; \ - else \ - : ; \ - fi - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - done - rm -f $(gettextsrcdir)/po-Makefile.in.in - -check: all - -cat-id-tbl.o: ../intl/libgettext.h - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: update-po $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(PACKAGE).pot - PATH=`pwd`/../src:$$PATH; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - mv $$lang.po $$lang.old.po; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ - rm -f $$lang.old.po; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.po; \ - mv $$lang.old.po $$lang.po; \ - fi; \ - done - -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" \ - -e '$$s/\(.*\) \\/\1/' < $(srcdir)/POTFILES.in > POTFILES ) - -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po/POTFILES.in b/po/POTFILES.in deleted file mode 100644 index 2b770796..00000000 --- a/po/POTFILES.in +++ /dev/null @@ -1 +0,0 @@ -src/m4.c
\ No newline at end of file diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c deleted file mode 100644 index 45dec044..00000000 --- a/po/cat-id-tbl.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Automatically generated by po2tbl.sed from m4.pot. */ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include "libgettext.h" - -const struct _msg_ent _msg_tbl[] = { - {"", 1}, - {"ERROR: Stack overflow. (Infinite define recursion?)", 2}, - {"Try `%s --help' for more information.\n", 3}, - {"Usage: %s [OPTION]... [FILE]...\n", 4}, - {"\ -Mandatory or optional arguments to long options are mandatory or optional\n\ -for short options too.\n\ -\n\ -Operation modes:\n\ - --help display this help and exit\n\ - --version output version information and exit\n\ - -e, --interactive unbuffer output, ignore interrupts\n\ - -E, --fatal-warnings stop execution after first warning\n\ - -Q, --quiet, --silent suppress some warnings for builtins\n\ - -P, --prefix-builtins force a `m4_' prefix to all builtins\n", 5}, - {" -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n", 6}, - {"\ -\n\ -Preprocessor features:\n\ - -I, --include=DIRECTORY search this directory second for includes\n\ - -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n\ - -U, --undefine=NAME delete builtin NAME\n\ - -s, --synclines generate `#line NO \"FILE\"' lines\n", 7}, - {"\ -\n\ -Limits control:\n\ - -G, --traditional suppress all GNU extensions\n\ - -H, --hashsize=PRIME set symbol lookup hash table size\n\ - -L, --nesting-limit=NUMBER change artificial nesting limit\n", 8}, - {"\ -\n\ -Frozen state files:\n\ - -F, --freeze-state=FILE produce a frozen state on FILE at end\n\ - -R, --reload-state=FILE reload a frozen state from FILE at start\n", 9}, - {"\ -\n\ -Debugging:\n\ - -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n\ - -t, --trace=NAME trace NAME when it will be defined\n\ - -l, --arglength=NUM restrict macro tracing size\n\ - -o, --error-output=FILE redirect debug and trace output\n", 10}, - {"\ -\n\ -FLAGS is any of:\n\ - t trace for all macro calls, not only traceon'ed\n\ - a show actual arguments\n\ - e show expansion\n\ - q quote values as necessary, with a or e flag\n\ - c show before collect, after collect and after call\n\ - x add a unique macro call id, useful with c flag\n\ - f say current input file name\n\ - l say current input line number\n\ - p show results of path searches\n\ - i show changes in input files\n\ - V shorthand for all of the above flags\n", 11}, - {"\ -\n\ -If no FILE or if FILE is `-', standard input is read.\n", 12}, - {"Bad debug flags: `%s'", 13}, - {"INTERNAL ERROR: Bad code in deferred arguments", 14}, -}; - -int _msg_tbl_length = 14; diff --git a/po/cs.gmo b/po/cs.gmo Binary files differdeleted file mode 100644 index 69918181..00000000 --- a/po/cs.gmo +++ /dev/null diff --git a/po/cs.po b/po/cs.po deleted file mode 100644 index 5e355a64..00000000 --- a/po/cs.po +++ /dev/null @@ -1,725 +0,0 @@ -# Czech translation of the GNU m4. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Jiøí Pavlovskư <pavlovsk@ff.cuni.cz>, 1998. -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4n\n" -"POT-Creation-Date: 2000-01-10 05:27+0100\n" -"PO-Revision-Date: 1998-12-07 22:02+01:00\n" -"Last-Translator: Jiøí Pavlovskư <pavlovsk@ff.cuni.cz>\n" -"Language-Team: Czech <cs@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/getopt.c:677 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:702 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:707 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:725 lib/getopt.c:898 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "" - -#. --option -#: lib/getopt.c:754 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" - -#. +option or -option -#: lib/getopt.c:758 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "" - -#. 1003.2 specifies the format of this message. -#: lib/getopt.c:784 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: lib/getopt.c:787 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" - -#. 1003.2 specifies the format of this message. -#: lib/getopt.c:817 lib/getopt.c:947 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: lib/getopt.c:864 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:882 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" - -#: lib/obstack.c:471 -msgid "memory exhausted" -msgstr "" - -#: lib/regex.c:1019 -msgid "Success" -msgstr "" - -#: lib/regex.c:1022 -msgid "No match" -msgstr "" - -# , c-format -#: lib/regex.c:1025 -#, fuzzy -msgid "Invalid regular expression" -msgstr "©patnư regulární vưraz `%s': %s" - -#: lib/regex.c:1028 -msgid "Invalid collation character" -msgstr "" - -#: lib/regex.c:1031 -msgid "Invalid character class name" -msgstr "" - -#: lib/regex.c:1034 -msgid "Trailing backslash" -msgstr "" - -#: lib/regex.c:1037 -msgid "Invalid back reference" -msgstr "" - -#: lib/regex.c:1040 -msgid "Unmatched [ or [^" -msgstr "" - -#: lib/regex.c:1043 -msgid "Unmatched ( or \\(" -msgstr "" - -#: lib/regex.c:1046 -msgid "Unmatched \\{" -msgstr "" - -#: lib/regex.c:1049 -msgid "Invalid content of \\{\\}" -msgstr "" - -#: lib/regex.c:1052 -msgid "Invalid range end" -msgstr "" - -#: lib/regex.c:1055 lib/xmalloc.c:82 -msgid "Memory exhausted" -msgstr "" - -# , c-format -#: lib/regex.c:1058 -#, fuzzy -msgid "Invalid preceding regular expression" -msgstr "Chyba pøi porovnávání regulárního vưrazu `%s'" - -#: lib/regex.c:1061 -#, fuzzy -msgid "Premature end of regular expression" -msgstr "Pøedèasnư konec zmrazeného souboru" - -# , c-format -#: lib/regex.c:1064 -#, fuzzy -msgid "Regular expression too big" -msgstr "©patnư regulární vưraz `%s': %s" - -#: lib/regex.c:1067 -msgid "Unmatched ) or \\)" -msgstr "" - -# , c-format -#: lib/regex.c:5564 -#, fuzzy -msgid "No previous regular expression" -msgstr "Chyba pøi porovnávání regulárního vưrazu `%s'" - -# , c-format -#: src/builtin.c:349 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Varování: pøíli¹ málo argumentù pro vestav́né makro `%s'" - -# , c-format -#: src/builtin.c:355 -#, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "" -"Varování: pøíli¹ mnoho argumentù pro vestav́né makro `%s' - budou ignorovány" - -# , c-format -#: src/builtin.c:383 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Neèíselnư argument pro vestav́né makro `%s'" - -#: src/builtin.c:494 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu v define_macro ()" - -# , c-format -#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447 -#, c-format -msgid "Undefined name %s" -msgstr "Jméno %s není definováno" - -#: src/builtin.c:721 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "VNITØNÍ CHYBA: Vestav́né makro nenalezeno v tabulce vestav́nưch maker!" - -#: src/builtin.c:729 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu v m4_dumpdef ()" - -# , c-format -#: src/builtin.c:804 -#, fuzzy, c-format -msgid "Undefined name `%s'" -msgstr "Jméno %s není definováno" - -#: src/builtin.c:842 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ symbolu v m4_defn ()" - -# , c-format -#: src/builtin.c:908 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Rouru do pøíkazu `%s' nelze otevøít" - -# , c-format -#: src/builtin.c:948 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Základ v makru eval je mimo rozsah (základ = %d)" - -#: src/builtin.c:957 -msgid "Negative width to eval" -msgstr "Záporná ¹íøka v makru eval" - -# , c-format -#: src/builtin.c:1063 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Neèíselnư argument pro %s" - -# , c-format -#: src/builtin.c:1075 -#, c-format -msgid "Cannot undivert %s" -msgstr "Chyba pøi volání makra undivert pro %s" - -# , c-format -#: src/builtin.c:1223 -#, c-format -msgid "Undefined syntax code %c" -msgstr "Syntaktickư kód %c není definován" - -# , c-format -#: src/builtin.c:1274 src/freeze.c:211 -#, c-format -msgid "Cannot open %s" -msgstr "%s nelze otevøít" - -# , c-format -#: src/builtin.c:1483 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Ladící mód: ¹patné ladící volby: `%s'" - -# , c-format -#: src/builtin.c:1519 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Chybovư soubor %s nelze pou¾ít" - -#: src/builtin.c:1740 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "VAROVÁNÍ: \\0 zmizí, pøi nahrazování pou¾ijte \\&" - -# , c-format -#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "©patnư regulární vưraz `%s': %s" - -# , c-format -#: src/builtin.c:1812 src/builtin.c:1885 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Chyba pøi porovnávání regulárního vưrazu `%s'" - -#: src/debug.c:380 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"VNITØNÍ CHYBA: vestav́né makro nenalezeno v tabulce vestav́nưch maker\n" -"(trace_pre ())!" - -#: src/debug.c:388 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu (trace_pre ())" - -# , c-format -#: src/eval.c:309 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "©patnư vưraz v makru eval (chybí pravá závorka): %s" - -# , c-format -#: src/eval.c:315 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "©patnư vưraz v makru eval: %s" - -# , c-format -#: src/eval.c:320 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "©patnư vưraz v makru eval (¹patnư vstup): %s" - -# , c-format -#: src/eval.c:325 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "©patnư vưraz v makru eval (nadbyteènư vstup): %s" - -# , c-format -#: src/eval.c:330 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "D́lení nulou v makru eval: %s" - -# , c-format -#: src/eval.c:335 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo nulou v makru eval: %s" - -#: src/eval.c:340 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "VNITØNÍ CHYBA: ¹patnư chybovư kód v evaluate ()" - -#: src/eval.c:594 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "VNITØNÍ CHYBA: ¹patnư operátor porovnání v cmp_term ()" - -#: src/eval.c:639 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "VNITØNÍ CHYBA: ¹patnư operátor posunu v shift_term ()" - -#: src/eval.c:738 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "VNITØNÍ CHYBA: ¹patnư operátor v mult_term ()" - -#: src/freeze.c:119 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "VNITØNÍ CHYBA: Vestav́né makro nenalezeno v tabulce vestav́nưch maker!" - -#: src/freeze.c:132 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu ve freeze_one_symbol ()" - -#: src/freeze.c:163 -msgid "Expecting line feed in frozen file" -msgstr "Ve zmrazeném souboru oèekáván LF" - -# , c-format -#: src/freeze.c:165 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Ve zmrazeném souboru oèekáván znak `%c'" - -#: src/freeze.c:222 -msgid "Ill-formated frozen file" -msgstr "©patnư formát zmrazeného souboru" - -#: src/freeze.c:277 src/freeze.c:293 -msgid "Premature end of frozen file" -msgstr "Pøedèasnư konec zmrazeného souboru" - -# , c-format -#: src/freeze.c:327 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "`%s' ze zmrazeného souboru nenalezeno v tabulce vestav́nưch maker!" - -# , c-format -#: src/input.c:318 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Vstup èten z %s, øádku %d" - -# , c-format -#: src/input.c:346 -#, c-format -msgid "Input read from %s" -msgstr "Vstup èten z %s" - -#: src/input.c:506 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "VNITØNÍ CHYBA: rekurzivní push_string!" - -#: src/input.c:623 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "VNITØNÍ CHYBA: ¹patné volání init_macro_token ()" - -#: src/input.c:663 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "VNITØNÍ CHYBA: chyba vstupního zásobníku v next_char ()" - -#: src/input.c:700 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "VNITØNÍ CHYBA: chyba vstupního zásobníku v peek_input ()" - -#: src/input.c:805 -msgid "NONE" -msgstr "®ÁDNƯ" - -#: src/input.c:1199 src/input.c:1226 -msgid "ERROR: EOF in string" -msgstr "CHYBA: EOF v øet́zci" - -#: src/m4.c:119 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "CHYBA: Pøeteèení zásobníku. (nekoneèná rekurze makra define?)" - -# , c-format -#: src/m4.c:146 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Více informací získáte pøíkazem `%s --help'.\n" - -# , c-format -#: src/m4.c:150 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Pou¾ití: %s [PØEPÍNAÈ]... [SOUBOR]...\n" - -#: src/m4.c:151 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Povinné èi volitelné argumenty pro dlouhé pøepínaèe jsou povinné respektive\n" -"volitelné i pro odpovídající pøepínaèe krátké.\n" -"\n" -"Chování programu:\n" -" --help vypí¹e tuto nápov́du a skonèí\n" -" --version vypí¹e oznaèení verze a skonèí\n" -" -e, --interactive nebufferovanư vưstup, ignoruje pøeru¹ení\n" -" -E, --fatal-warnings skonèí po prvním varování\n" -" -Q, --quiet, --silent potlaèí ńkterá varování tưkající se\n" -" vestav́nưch maker\n" -" -P, --prefix-builtins v¹echna vestav́ná makra budou mít prefix " -"`m4_'\n" - -#: src/m4.c:164 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" -" -W, --word-regexp=REGVƯR syntaxe jmen maker bude urèena pomocí REGVƯR\n" - -#: src/m4.c:169 -msgid "" -"\n" -"Dynamic loading features:\n" -" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n" -" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n" -msgstr "" - -#: src/m4.c:176 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"Nastavení preprocesoru:\n" -" -I, --include=ADRESÁØ ADRESÁØ bude druhư v poøadí pøi hledání\n" -" vlo¾enưch souborù\n" -" -D, --define=MAKRO[=HODNOTA] definuje MAKRO mající HODNOTU, mù¾e bưt\n" -" i prázdné\n" -" -U, --undefine=MAKRO sma¾e vestav́né MAKRO\n" -" -s, --synclines vlo¾í øádky tvaru `#line ÈÍSLO \"SOUBOR\"'\n" - -#: src/m4.c:184 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Nastavení limitù:\n" -" -G, --traditional vypne roz¹íøení GNU\n" -" -H, --hashsize=PRVOÈÍSLO velikost hash tabulky pro vyhledávání " -"symbolù\n" -" -L, --nesting-limit=ÈÍSLO nastaví limit pro vnoøená volání maker\n" - -#: src/m4.c:191 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Zmrazené soubory:\n" -" -F, --freeze-state=SOUBOR pøi ukonèení ulo¾í zmrazenư stav do SOUBORU\n" -" -R, --reload-state=SOUBOR pøi startu naète zmrazenư stav ze SOUBORU\n" - -#: src/m4.c:197 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Lad́ní:\n" -" -d, --debug=[VOLBY] nastaví úrovẹ lad́ní (pokud nejsou VOLBY\n" -" zadány, pak implicitń `aeq')\n" -" -t, --trace=MAKRO sleduje MAKRO, kdy¾ je definováno\n" -" -l, --arglength=POÈET reguluje poèet vưstupních informací\n" -" ze sledování maker\n" -" -o, --error-output=SOUBOR pøesḿruje vưstup lad́ní a sledování do " -"SOUBORU\n" - -#: src/m4.c:205 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"VOLBOU mù¾e bưt cokoliv z:\n" -" t sleduje v¹echna makra, nejenom ta urèená pomocí traceon\n" -" a vypí¹e aktuální argumenty\n" -" e vypí¹e expanzi\n" -" q dle potøeby uzavøe hodnoty mezi apostrofy, s volbami a nebo e\n" -" c vypí¹e hodnoty pøed a po vyhodnocení argumentù a po volání makra\n" -" x bude vypisovat jedineèné ID volání makra, u¾iteèné s volbou c\n" -" f bude vypisovat jméno vstupního souboru\n" -" l bude vypisovat èíslo vstupního øádku\n" -" p vypí¹e informace o nalezení zadaného souboru\n" -" i vypí¹e informace o ka¾dé zḿń vstupního souboru\n" -" V zkratka pro v¹echny vư¹e uvedené volby\n" - -#: src/m4.c:220 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Jestli¾e SOUBOR není zadán, nebo je SOUBOR `-', pak je èten standardní " -"vstup.\n" - -#: src/m4.c:225 -msgid "" -"\n" -"Report bugs to <bug-m4@gnu.org>.\n" -msgstr "" -"\n" -"Chyby v programu oznamujte na adrese <bug-m4@gnu.org> (anglicky).\n" -"Pøipomínky k pøekladu zasílejte na adresu <cs@li.org> (èesky).\n" - -# , c-format -#: src/m4.c:414 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "©patné ladící volby: `%s'" - -#: src/m4.c:436 -#, c-format -msgid "ERROR: failed to add search directory `%s'" -msgstr "" - -#: src/m4.c:440 -#, c-format -msgid "ERROR: failed to add search directory `%s': %s" -msgstr "" - -#: src/m4.c:460 -msgid " (options:" -msgstr " (pøelo¾eno s volbami:" - -#: src/m4.c:542 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "VNITØNÍ CHYBA: ¹patnư kód v odlo¾enưch argumentech" - -#: src/macro.c:97 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu v expand_token ()" - -#: src/macro.c:163 -msgid "ERROR: EOF in argument list" -msgstr "CHYBA: EOF v seznamu argumentù" - -#: src/macro.c:182 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ tokenu v expand_argument ()" - -#: src/macro.c:259 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "VNITØNÍ CHYBA: ¹patnư typ symbolu v call_macro ()" - -# , c-format -#: src/macro.c:288 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "CHYBA: pøekroèen limit pro rekurzi (%d), zṃ́te jej pomocí -L<N>" - -# , c-format -#: src/module.c:123 -#, fuzzy, c-format -msgid "ERROR: failed to initialise modules: %s" -msgstr "CHYBA: modul `%s' nelze nalézt: %s" - -# , c-format -#: src/module.c:221 -#, fuzzy, c-format -msgid "ERROR: cannot find module: `%s'" -msgstr "CHYBA: modul `%s' nelze nalézt" - -# , c-format -#: src/module.c:224 -#, fuzzy, c-format -msgid "ERROR: cannot find module: `%s': %s" -msgstr "CHYBA: modul `%s' nelze nalézt: %s" - -# , c-format -#: src/module.c:274 -#, fuzzy -msgid "ERROR: cannot close modules" -msgstr "CHYBA: modul `%s' nelze nalézt" - -# , c-format -#: src/module.c:277 -#, fuzzy, c-format -msgid "ERROR: cannot cannot close modules: %s" -msgstr "CHYBA: modul `%s' nelze nalézt: %s" - -# , c-format -#: src/module.c:284 -#, fuzzy, c-format -msgid "ERROR: cannot close module: `%s'" -msgstr "CHYBA: modul `%s' nelze nalézt" - -# , c-format -#: src/module.c:288 -#, fuzzy, c-format -msgid "ERROR: cannot cannot close module: `%s': %s" -msgstr "CHYBA: modul `%s' nelze nalézt: %s" - -#: src/output.c:262 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "CHYBA: doèasnư soubor pro ulo¾ení odlo¾eného vưstupu nelze vytvoøit" - -#: src/output.c:272 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "CHYBA: odlo¾enư vưstup nelze zapsat do doèasného souboru" - -#: src/output.c:356 -msgid "ERROR: Copying inserted file" -msgstr "CHYBA: pøi zapisování vlo¾eného souboru" - -#: src/output.c:537 -msgid "ERROR: Reading inserted file" -msgstr "CHYBA: pøi ètení vlo¾eného souboru" - -#: src/output.c:636 -msgid "Cannot stat diversion" -msgstr "Chyba pøi volání funkce stat pro soubor obsahující odlo¾enư vưstup" - -#: src/output.c:639 -msgid "Diversion too large" -msgstr "" - -# , c-format -#: src/path.c:157 -#, c-format -msgid "Path search for `%s' found `%s'" -msgstr "Hledán soubor `%s', nalezen soubor `%s'" - -#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even -#. if the stack limit has not been reached. -#: src/stackovf.c:175 -msgid "VMEM limit exceeded?\n" -msgstr "Pøekroèen VMEM limit?\n" - -#: src/stackovf.c:197 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Neoprávńnư pøístup do paḿti (SIGSEGV). Jedná se buï o pøeteèení " -"zásobníku,\n" -"nebo o chybu " - -#: src/stackovf.c:202 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Prov́øte, zda se nejedná o nekoneènou rekurzi.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "VNITØNÍ CHYBA: ¹patnư mód pro symbol_lookup ()" - -# , c-format -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Jméno `%s' není známo\n" - -# , c-format -#~ msgid "Undefined macro `%s'" -#~ msgstr "Makro `%s' není definováno" - -# , c-format -#~ msgid "Module search for `%s' found `%s'" -#~ msgstr "Hledán modul `%s', nalezen modul `%s'" diff --git a/po/de.gmo b/po/de.gmo Binary files differdeleted file mode 100644 index d61f7983..00000000 --- a/po/de.gmo +++ /dev/null diff --git a/po/de.po b/po/de.po deleted file mode 100644 index f6c51f48..00000000 --- a/po/de.po +++ /dev/null @@ -1,507 +0,0 @@ -# German translation for the GNU m4 messages -# Copyright (C) 1995, 1996 Free Software Foundation, Inc. -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995 -# Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>, 1996 -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-08-03 17:14+0200\n" -"PO-Revision-Date: 1996-09-30 10:38 GMT+0100\n" -"Last-Translator: Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>\n" -"Language-Team: German <de@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Warnung: Zu wenig Argumente für eingebaute Funktion `%s'" - -#: src/builtin.c:278 -#, 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:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Nicht-numerisches Argument in eingebauter Funktion `%s'" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "Name %s nicht definiert" - -#: src/builtin.c:636 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!" - -#: src/builtin.c:644 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in m4_dumpdef ()" - -#: src/builtin.c:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "Makro `%s' nicht definiert" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "INTERNER FEHLER: Falscher Symboltyp in m4_defn ()" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Kann keine `pipe' für Kommando `%s' öffnen" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Basis in `eval' nicht in den Grenzen (Basis = %d)" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "Negative Breite in `eval'" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Nicht-numerisches Argument in %s" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "Kann Umleitung %s nicht aufheben" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "Kann %s nicht öffnen" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Debug Modus: falsche Debug Flags: `%s'" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Kann Fehlerdatei nicht vorbereiten: %s" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "WARNUNG: \\0 wird wegfallen, benutze \\& stattdessen" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "Falscher regulärer Ausdruck `%s': %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Fehler beim Erkennen des regulären Ausdrucks `%s'" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden! (trace_pre " -"())" - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens (trace_pre ())" - -#: src/eval.c:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "Falscher Ausdruck in `eval' (fehlende rechte Klammer): %s" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "Falscher Ausdruck in `eval': %s" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "Falscher Ausdruck in `eval' (falsche Eingabe): %s" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "Falscher Ausdruck in `eval' (zu große Eingabe): %s" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Division durch Null in `eval': %s" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo Null in `eval': %s" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "INTERNER FEHLER: Falscher Fehlerkode in evaluate ()" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "INTERNER FEHLER: Falscher Vergleichsoperator in cmp_term ()" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "INTERNER FEHLER: Falscher Shift-Operator in shift_term ()" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "INTERNER FEHLER: Falscher Operator in mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in freeze_one_symbol ()" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Erwarte Zeilenumbruch in eingefrorener Datei" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Erwarte Zeichen `%c' in eingefrorener Datei" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "Fehlerhafte eingefrorene Datei" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Vorzeitiges Ende der eingefrorenen Datei" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "" -"`%s' aus eingefrorener Datei nicht in Tabelle der eingebauten Funktionen " -"gefunden!" - -#: src/input.c:174 -#, c-format -msgid "Input read from %s" -msgstr "Eingabe gelesen von %s" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "INTERNER FEHLER: Rekursives push_string!" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Eingabe zurückgenommen zu %s, Zeile %d" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "" -"INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in pop_input ()" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "INTERNER FEHLER: Falscher Aufruf von init_macro_token ()" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "" -"INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in peek_input ()" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "" -"INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in next_char ()" - -# 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:550 -msgid "NONE" -msgstr "NONE" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "FEHLER: Dateiende in Zeichenkette" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "FEHLER: Keller voll. (Unendliche `define' Rekursion?)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "`%s --help' zeigt weitere Informationen.\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Aufruf: %s [OPTION]... [DATEI]...\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Notwendige bzw. optionale Argumente für Optionen der Langform sind auch \n" -"für die Kurform notwendig bzw. optional.\n" -"\n" -"Operationsmodi:\n" -" --help zeige diese Hilfe an und beende\n" -" --version zeige Versionsinformation an und beende\n" -" -e, --interactive keine Ausgabepufferung, ignoriere Interrupts\n" -" -E, --fatal-warnings beende Ausführung nach erster Warnung\n" -" -Q, --quiet, --silent unterdrücke Warnungen bei eingebauten " -"Funktionen\n" -" -P, --prefix-builtins erzwinge `m4_' Präfix für eingebaute " -"Funktionen\n" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr " -W, --word-regexp=REGEXP benutze REGEXP für Makronamensyntax\n" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"Präprozessoreigenschaften:\n" -" -I, --include=VERZEICHNIS durchsuche VERZEICHNIS als zweites bei " -"`include'\n" -" -D, --define=NAME[=WERT] füge NAME mit WERT (oder leer) ein\n" -" -U, --undefine=NAME lösche eingebaute Funktion NAME\n" -" -s, --synclines erzeuge `#line NR \"DATEI\"' Zeilen\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Setze Grenzen:\n" -" -G, --traditional schalte alle GNU Erweiterungen aus\n" -" -H, --hashsize=PRIMZAHL setze Größe der Symbol-Hashtabelle\n" -" -L, --nesting-limit=NUMMER setze künstliche Grenze für " -"Schachtelungstiefe\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Eingefrorene Dateien:\n" -" -F, --freeze-state=DATEI erzeuge am Ende eine eingefrorene Form in " -"DATEI\n" -" -R, --reload-state=DATEI lade zu Beginn Zustand von eingefrorener " -"DATEI\n" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] setze Debuglevel (keine FLAGS bedeutet " -"`aeq')\\\n" -" -t, --trace=NAME verfolge NAME, wenn er definiert wird\n" -" -l, --arglength=NUMMER beschränke Größe bei Macroverfolgung\n" -" -o, --error-output=DATEI leite Debug- und Verfolgungsausgaben nach " -"DATEI\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAGS ist Kombination aus folgendem:\n" -" t verfolge alle Makroaufrufe, nicht nur die von `traceon'\n" -" a zeige aktuelle Argumente\n" -" e zeige Ausdehnung\n" -" q setze Werte in Anführungszeichen, wenn nötig, mit a- oder e-Flag\n" -" c zeige vor und nach `collect' und nach Aufruf an\n" -" x zeige für jeden Aufruf eindeutige Nummer an, hilfreich bei -c\n" -" f gebe Namen der aktuellen Eingabedatei aus\n" -" l gebe aktuelle Zeilennummer der Eingabezeile aus\n" -" p gebe Ergebnis der Pfadsuche aus\n" -" i gebe Veränderungen der Eingabedatei aus\n" -" V Kurzform für alle Flags oben zusammen\n" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Ohne DATEI oder wenn DATEI `-' ist, wird die Standardeingabe gelesen\n" - -#: src/m4.c:358 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "Falsche Debug Flags: `%s'" - -#: src/m4.c:437 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "INTERNER FEHLER: Falscher Kode in zurückgestellten Argumenten" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in expands_token ()" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "FEHLER: Dateiende in Argumentliste" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "INTERNER FEHLER: Falscher Typ des Tokens in expand_argument ()" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "INTERNER FEHLER: Falsche Symboltyp in call_macro ()" - -#: src/macro.c:282 -#, c-format -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/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "FEHLER: Kann keine temporäre Datei für Umleitung erzeugen" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "FEHLER: Kann Umleitung nicht in temporäre Datei ausgeben" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "FEHLER: Während Kopieren einer eingefügten Datei" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "FEHLER: Während Lesen einer eingefügten Datei" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "Kann `stat' nicht auf Umleitung anwenden" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "VMEM Beschränkung überschritten?\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Verletzung der Speichergrenzen festgestellt (SIGSEGV). Entweder ist ein\n" -"Stacküberlauf aufgetreten, oder es gibt einen Fehler in " - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Untersuche auf mögliche unendliche Rekursion.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "INTERNER FEHLER: Illegaler Modus bei symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Name `%s' ist unbekannt\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Falscher regulärer Ausdruck: `%s': %s" - -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "%s: Option `%s' ist mehrdeutig\n" - -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: Option `--%s' erlaubt kein Argument\n" - -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "%s: Option `%c%s' erlaubt kein Argument\n" - -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "%s: Option `%s' verlangt ein Argument\n" - -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: nicht erkannte Option `--%s'\n" - -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "%s: nicht erkannte Option `%c%s'\n" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: illegale Option -- %c\n" - -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "%s: ungültige Options -- %c\n" - -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "%s: Option verlangt ein Argument -- %c\n" - -# Der aktuelle Ausdruck ist NULL und vorher gab es auch noch keinen. -#~ msgid "No previous regular expression" -#~ msgstr "Regulärer Ausdruck fehlt" - -#~ msgid "Memory exhausted" -#~ msgstr "Speicher voll" diff --git a/po/el.gmo b/po/el.gmo Binary files differdeleted file mode 100644 index 479d0010..00000000 --- a/po/el.gmo +++ /dev/null diff --git a/po/el.po b/po/el.po deleted file mode 100644 index 4dd6ed1d..00000000 --- a/po/el.po +++ /dev/null @@ -1,690 +0,0 @@ -# Greek messages for GNU m4. -# Copyright (C) 1999 Free Software Foundation, Inc. -# Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>, 1999. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU m4 1.4n\n" -"POT-Creation-Date: 2000-01-10 05:27+0100\n" -"PO-Revision-Date: 1999-06-24 00:25+0000\n" -"Last-Translator: Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>\n" -"Language-Team: Greek <nls@tux.hellug.gr>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-7\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/getopt.c:677 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:702 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:707 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:725 lib/getopt.c:898 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "" - -#. --option -#: lib/getopt.c:754 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" - -#. +option or -option -#: lib/getopt.c:758 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "" - -#. 1003.2 specifies the format of this message. -#: lib/getopt.c:784 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: lib/getopt.c:787 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" - -#. 1003.2 specifies the format of this message. -#: lib/getopt.c:817 lib/getopt.c:947 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: lib/getopt.c:864 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:882 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" - -#: lib/obstack.c:471 -msgid "memory exhausted" -msgstr "" - -#: lib/regex.c:1019 -msgid "Success" -msgstr "" - -#: lib/regex.c:1022 -msgid "No match" -msgstr "" - -#: lib/regex.c:1025 -#, fuzzy -msgid "Invalid regular expression" -msgstr "ËÜèị̈ êáíïíéễ Ưêöñáóç `%s': %s" - -#: lib/regex.c:1028 -msgid "Invalid collation character" -msgstr "" - -#: lib/regex.c:1031 -msgid "Invalid character class name" -msgstr "" - -#: lib/regex.c:1034 -msgid "Trailing backslash" -msgstr "" - -#: lib/regex.c:1037 -msgid "Invalid back reference" -msgstr "" - -#: lib/regex.c:1040 -msgid "Unmatched [ or [^" -msgstr "" - -#: lib/regex.c:1043 -msgid "Unmatched ( or \\(" -msgstr "" - -#: lib/regex.c:1046 -msgid "Unmatched \\{" -msgstr "" - -#: lib/regex.c:1049 -msgid "Invalid content of \\{\\}" -msgstr "" - -#: lib/regex.c:1052 -msgid "Invalid range end" -msgstr "" - -#: lib/regex.c:1055 lib/xmalloc.c:82 -msgid "Memory exhausted" -msgstr "" - -#: lib/regex.c:1058 -#, fuzzy -msgid "Invalid preceding regular expression" -msgstr "ÓöÜë́á óôï ôáßñéáó́á óôçí êáíïíéễ Ưêöñáóç `%s'" - -#: lib/regex.c:1061 -#, fuzzy -msgid "Premature end of regular expression" -msgstr "Đñüùñï ôƯëị̈ đáăù́Ưíïơ áñ÷åßïơ" - -#: lib/regex.c:1064 -#, fuzzy -msgid "Regular expression too big" -msgstr "ËÜèị̈ êáíïíéễ Ưêöñáóç `%s': %s" - -#: lib/regex.c:1067 -msgid "Unmatched ) or \\)" -msgstr "" - -#: lib/regex.c:5564 -#, fuzzy -msgid "No previous regular expression" -msgstr "ÓöÜë́á óôï ôáßñéáó́á óôçí êáíïíéễ Ưêöñáóç `%s'" - -#: src/builtin.c:349 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Đñïåéäïđïßçóç: Đïëư ëßăá ïñßó́áôá óôï åóùäḯḉƯíï `%s'" - -#: src/builtin.c:355 -#, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "Đñïåéäïđïßçóç: ÅđéđëƯïí ïñßó́áôá óôï åóùäḯḉƯíï `%s' áăíï̃èçêáí" - -#: src/builtin.c:383 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "̀ç-áñè́çôéêü üñéó́á óôï åóùäḯḉƯíï `%s'" - -#: src/builtin.c:494 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "" -"ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôưđị̈ äåäḯƯíïơ áíôéêåé́Ưíïơ óôï define_macro ()" - -#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447 -#, c-format -msgid "Undefined name %s" -msgstr "̀ç ïñéó́Ưíï üíḯá %s" - -#: src/builtin.c:721 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ÅóùäḯḉƯíï äå âñƯèçêå óôï đßíáêá åóùäḯḉƯíùí!" - -#: src/builtin.c:729 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôưđị̈ äåäḯƯíïơ áíôéêåé́Ưíïơ óôï m4_dumpdef ()" - -#: src/builtin.c:804 -#, fuzzy, c-format -msgid "Undefined name `%s'" -msgstr "̀ç ïñéó́Ưíï üíḯá %s" - -#: src/builtin.c:842 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôưđị̈ óớâüëïơ óôï m4_defn ()" - -#: src/builtin.c:908 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Áäơíá́ßá áíïßắáôị̈ óùë̃íùóç̣ óôçí åíôïë̃ `%s'" - -#: src/builtin.c:948 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Ç âÜóç óôçí áđïôß́çóç åßíáé åêôụ̈ ïñßïơ (âÜóç = %d)" - -#: src/builtin.c:957 -msgid "Negative width to eval" -msgstr "Áñíçôéêü đëÜôị̈ óôçí áđïôß́çóç" - -#: src/builtin.c:1063 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "̀ç áñéè́çôéêü üñéó́á óôï %s" - -#: src/builtin.c:1075 -#, c-format -msgid "Cannot undivert %s" -msgstr "Áäơíá́ßá åđáíáöïñỤ̈ ôïơ %s" - -#: src/builtin.c:1223 -#, c-format -msgid "Undefined syntax code %c" -msgstr "̀ç ïñéó́Ưíị̈ ê₫äéêạ́ óưíôáîç̣ %c" - -#: src/builtin.c:1274 src/freeze.c:211 -#, c-format -msgid "Cannot open %s" -msgstr "Áäơíá́ßá áíïßắáôị̈ ôïơ %s" - -#: src/builtin.c:1483 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "ÊáôÜóôáóç áđïóöáë́Üôùóç̣: ëÜèị̈ óḉáßạ̊ áđïóöáë́Üôùóç̣: `%s'" - -#: src/builtin.c:1519 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Áäơíá́ßá ñưè́éóç̣ ôïơ áñ÷åßïơ óöáë́Üôùí: %s" - -#: src/builtin.c:1740 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "" -"ĐÑÏÅÉÄÏĐÏÉÇÓÇ: Ôï \\0 èá åîáöáíéóôåß, êÜíåôå ÷ñ̃óç ôïơ \\& áíôßèåôá óôẹ́ " -"áíôéêáôáóôÜóåẹ́" - -#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "ËÜèị̈ êáíïíéễ Ưêöñáóç `%s': %s" - -#: src/builtin.c:1812 src/builtin.c:1885 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "ÓöÜë́á óôï ôáßñéáó́á óôçí êáíïíéễ Ưêöñáóç `%s'" - -#: src/debug.c:380 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ÅóùäḯḉƯíï äåí âñƯèçêå óôï đßíáêá åóùäḯḉƯíùí! " -"(trace_pre ())" - -#: src/debug.c:388 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôưđị̈ äåäḯƯíïơ áíôéêåé́Ưíïơ (trace_pre ())" - -#: src/eval.c:309 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "ËÜèị̈ Ưêöñáóç óôçí áđïôß́çóç (ëåßđåé äåîéÜ đáñƯíèåóç): %s" - -#: src/eval.c:315 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "ËÜèị̈ Ưêöñáóç óôçí áđïôß́çóç: %s" - -#: src/eval.c:320 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "ËÜèị̈ Ưêöñáóç óôçí áđïôß́çóç (ëÜèị̈ åßóïäị̈): %s" - -#: src/eval.c:325 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "ËÜèị̈ Ưêöñáóç óôçí áđïôß́çóç (ơđåñâïëéễ åßóïäị̈): %s" - -#: src/eval.c:330 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Äéáßñåóç ́å ́çäƯí óôçí áđïôß́çóç: %s" - -#: src/eval.c:335 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Ơđüëïéđï ́å ́çäƯí óôçí áđïôß́çóç: %s" - -#: src/eval.c:340 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ê₫äéêạ́ óöÜë́áôị̈ óôçí evaluate ()" - -#: src/eval.c:594 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôåëåóộ̃ óưăêñéóç̣ óôï cmp_term ()" - -#: src/eval.c:639 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôåëåóộ̃ ïëßóèçóç̣ óôï shift_term ()" - -#: src/eval.c:738 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôåëåóộ̃ óôï mult_term ()" - -#: src/freeze.c:119 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ÅóùäḯḉƯíï äå âñƯèçêå óôï đßíáêá åóùäḯḉƯíùí!" - -#: src/freeze.c:132 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "" -"ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ ôưđị̈ äåäḯƯíïơ áíôéêåé́Ưíïơ óôï freeze_one_symbol ()" - -#: src/freeze.c:163 -msgid "Expecting line feed in frozen file" -msgstr "Áíá́åíüôáí `line feed' óôï đáăù́Ưíï áñ÷åßï" - -#: src/freeze.c:165 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Áíá́åíüôáí ÷áñáêỗñạ́ `%c' óôï đáăù́Ưíï áñ÷åßï" - -#: src/freeze.c:222 -msgid "Ill-formated frozen file" -msgstr "Êáêü-́ïñöïđïéḉƯíï đáăù́Ưíï áñ÷åßï" - -#: src/freeze.c:277 src/freeze.c:293 -msgid "Premature end of frozen file" -msgstr "Đñüùñï ôƯëị̈ đáăù́Ưíïơ áñ÷åßïơ" - -#: src/freeze.c:327 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "ôï `%s' áđü đáăù́Ưíï áñ÷åßï äå âñƯèçêå óôïí đßíáêá åóùäḯḉƯíùí" - -#: src/input.c:318 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Ç åßóïäị̈ åđáíáöƯñèçêå óôï %s, ăñá́́̃ %d" - -#: src/input.c:346 -#, c-format -msgid "Input read from %s" -msgstr "Ç åßóïäị̈ áíáăí₫óôçêå áđü ôï %s" - -#: src/input.c:506 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: Áíáäñḯéêü push_string!" - -#: src/input.c:623 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: Êáễ êë̃óç óôï init_macro_token ()" - -#: src/input.c:663 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: Áëëïßùóç óôïßâạ́ åéóüäïơ óôï next_char ()" - -#: src/input.c:700 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: Áëëïßùóç óôïßâạ́ åéóüäïơ óôï peek_input ()" - -#: src/input.c:805 -msgid "NONE" -msgstr "ÊÁÍÅÍÁ" - -#: src/input.c:1199 src/input.c:1226 -msgid "ERROR: EOF in string" -msgstr "ÓÖÁË̀Á: EOF óôï áëöáñéè́çôéêü" - -#: src/m4.c:119 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "ÓÖÁË̀Á: Ơđåñ÷åßëçóç óôïßâạ́. (Áíáäñḯ̃ áđåßñïơ âÜèïợ;)" - -#: src/m4.c:146 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Äïêé́Üóôå `%s --help' ăéá đåñéóóüôåñç âï̃èåéá.\n" - -#: src/m4.c:150 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "×ñ̃óç: %s [ÅĐÉËÏĂÇ]... [ÁÑ×ÅÉÏ]...\n" - -#: src/m4.c:151 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Ơđï÷ñåùôéêÜ ̃ đñïáéñåôéêÜ ïñßó́áôá óå ́áêñỰ åđéëïăỰ åßíáé ơđï÷ñåùôéêÜ ̃ " -"đñïáéñåôéêÜ\n" -"êáé ăéá ôç̣ óưíôḯạ̊ åđéëïăỰ åđßóåẹ́.\n" -"\n" -"ÊáôáóôÜóåẹ́ ëåéôïơñăßạ́:\n" -" --help ǻöÜíéóç áơộ̃ ôç̣ âï̃èåéạ́ êáé Ưîïäị̈\n" -" --version ǻöÜíéóç đëçñïöïñé₫í Ưêäïóç̣ êáé Ưîïäị̈\n" -" -e, --interactive Ưîïäị̈ ÷ùñß̣ åíôá́éåơỗ, áăíüçóç äéáêïđ₫í\n" -" -E, --fatal-warnings äéáêïđ̃ åêôƯëåóç̣ ́åôÜ áđü ôç đñ₫ôç " -"đñïåéäïđïßçóç\n" -" -Q, --quiet, --silent áđüêñơøç ́åñéê₫í đñïåéäïđïé̃óåùí óôá " -"åóùäḯḉƯíá\n" -" -P, --prefix-builtins åđéâïë̃ đñïèỨáôị̈ `m4_' óå üëá ôá " -"åóùäḯḉƯíá\n" - -#: src/m4.c:164 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" -" -W --word-regexp=ÊÁÍÅÊÖ ÷ñ̃óç ÊÁÍïíéệ̃ ¸ÊÖñáóç̣ óôï óơíôáêôéêü ôç̣ " -"́áêñïåíôïẹ̈̃\n" - -#: src/m4.c:169 -msgid "" -"\n" -"Dynamic loading features:\n" -" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n" -" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n" -msgstr "" - -#: src/m4.c:176 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"×áñáêôçñéóôéêÜ đñïåđåîåñăáóỗ:\n" -" -I, --include=ÊÁÔÁËÏĂÏÓ øÜîé́ï ́åôÜ êáé óôï êáôÜëïăï áơôü ăéá " -"đåñéëá́âáíǘåíá\n" -" -D, --define=ÏÍÏ̀Á[=ÔÉ̀Ç] åéóáăùẵ Ïͼ́áôị̈ ́å ÔÉ̀Ç, ̃ êåíü\n" -" -U, --undefine=ÏÍÏ̀Á äéáăñáö̃ åóùäḯḉƯíïơ Ïͼ̀Áôị̈\n" -" -s, --synclines äḉéïơñăßá ăñá́́₫í `#line ÁÑÉÈ̀ÏÓ " -"\"ÁÑ×ÅÉÏ\"'\n" - -#: src/m4.c:184 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"¸ëåă÷ị̈ đåñéïñéó́₫í:\n" -" -G, --traditional áđüêñơøç üëùí ôùí åđåêôÜóåùí GNU\n" -" -H, --hashsize=ĐÑÙÔÏÓ ïñéó́ụ̈ ́åăƯèïợ đßíáêá áíáæ̃ôçóç̣ óớâüëïơ\n" -" -L, --nesting-limit=ÁÑÉÈ̀ÏÓ áëëáẵ ôå÷íçôïư ïñßïơ öùëéáó́₫í\n" - -#: src/m4.c:191 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Áñ÷åßá đáăù́Ưíç̣ êáôÜóôáóç̣:\n" -" -F, --freeze-state=ARXEIO äḉéïơñăßá đáăù́Ưíç̣ êáôÜóôáóç̣ óôï ÁÑ×ÅÉÏ " -"óôï ôƯëị̈\n" -" -R, --reload-state=ARXEIO öüñôù́á îáíÜ đáăù́Ưíç̣ êáôÜóôáóç̣ áđü ÁÑ×ÅÉÏ " -"óôçí åêêßíçóç\n" - -#: src/m4.c:197 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Åêóöáë́Üôùóç:\n" -" -d, --debug=[ÓÇ̀ÁÉÅÓ] ïñéó́ụ̈ åđéđƯäïơ åêóöáë́Üôùóç̣ (÷ùñß̣ ÓÇ̀ÁÉÅÓ " -"ơđïíïåß `aeq')\n" -" -t, --trace=ONOMA áíß÷íåơóç Ïͼ̀Áôị̈ üôáí áơôü èá ïñéóôåß\n" -" -l, --arglength=ÁÑÉÈ̀ đåñéïñéó́ụ̈ ́åăƯèïợ áíß÷íåơóç̣ ́áêñïåíôïẹ̈̃\n" -" -o, --error-output=ÁÑ×ÅÉÏ åđáíáêáôåưèơíóç åîüäïơ åêóöáë́Üôùóç̣ êáé " -"áíß÷íåơóç̣\n" - -#: src/m4.c:205 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"ÓÇ̀ÁÉÅÓ ́đïñåß íá åßíáé ïđïéä̃đïôå áđü:\n" -" t áíß÷íåơóç üëùí ôùí êë̃óåùí ôùí ́áêñïåíôïë₫í, ü÷é ́üíï áơôỰ đïơ Ư÷ïơí " -"ïñéóôåß\n" -" a ǻöÜíéóç đñáắáôéê₫í ïñéó́Üôùí\n" -" e ǻöÜíéóç áíÜđôơîç̣\n" -" q đáñÜèåóå ôé́Ự üđụ̀ ÷ñåéÜæåôáé, ́å ôẹ́ óḉáßạ̊ a ̃ e\n" -" c ǻöÜíéóç đñéí ôç óơëëïẵ, ́åôÜ ôç óơëëïẵ êáé ́åôÜ ôç êë̃óç\n" -" x đñüóèåóç ́ïíáäéệ̃ ôáơôüôçôạ́ êë̃óç̣ ́áêñïåíôïẹ̈̃, ÷ñ̃óé́ï ́å ôç " -"óḉáßá c\n" -" f ǻöÜíéóç ôñƯ÷ïíôị̈ ïíǘáôị̈ áñ÷åßïơ åéóüäïơ\n" -" l ǻöÜíéóç áñéè́ü ôñå÷ïưóç̣ ăñạ́́́̃ åéóüäïơ\n" -" p ǻöÜíéóç áđïôåëåó́Üôùí áđü Ưñåơíạ̊ óôï ́ïíïđÜôé\n" -" i ǻöÜíéóç áëëáă₫í óôá áñ÷åßá åéóüäïơ\n" -" V óơíôḯïăñáößá ăéá üëạ̊ ôẹ́ đáñáđÜíù óḉáßạ̊\n" - -#: src/m4.c:220 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"×ùñß̣ ÁÑ×ÅÉÏ, ̃ üôáí ôï áñ÷åßï åßíáé ôï -, áíÜăíùóç áđü ôçí êáíïíéễ " -"åßóïäï.\n" - -#: src/m4.c:225 -msgid "" -"\n" -"Report bugs to <bug-m4@gnu.org>.\n" -msgstr "" -"\n" -"ÁíáöƯñáôå óöÜë́áôá óôï <bug-m4@gnu.org>.\n" - -#: src/m4.c:414 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "ËÜèị̈ óḉáßạ̊ åêóöáë́Üôùóç̣: `%s'" - -#: src/m4.c:436 -#, c-format -msgid "ERROR: failed to add search directory `%s'" -msgstr "" - -#: src/m4.c:440 -#, c-format -msgid "ERROR: failed to add search directory `%s': %s" -msgstr "" - -#: src/m4.c:460 -msgid " (options:" -msgstr " (åđéëïăỰ:" - -#: src/m4.c:542 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ êùäéêụ̈ óôá áíáöåñǘåíá ïñßó́áôá" - -#: src/macro.c:97 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ åßäị̈ áíôéêåé́Ưíïơ óôï expand_token ()" - -#: src/macro.c:163 -msgid "ERROR: EOF in argument list" -msgstr "ÓÖÁË̀Á: EOF óôç ëßóôá ïñéó́Üôùí" - -#: src/macro.c:182 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ åßäị̈ áíôéêåé́Ưíïơ óôï expand_argument ()" - -#: src/macro.c:259 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: ËÜèị̈ åßäị̈ óớâüëïơ óôï call_macro ()" - -#: src/macro.c:288 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "" -"ÓÖÁË̀Á: Ôï üñéï áíáäñị̈́̃ %d îåđåñÜóôçêå, êÜíôå ÷ñ̃óç ôïơ -L<N> ăéá íá ôï " -"áëëÜîåôå" - -#: src/module.c:123 -#, fuzzy, c-format -msgid "ERROR: failed to initialise modules: %s" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s': %s" - -#: src/module.c:221 -#, fuzzy, c-format -msgid "ERROR: cannot find module: `%s'" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s'" - -#: src/module.c:224 -#, fuzzy, c-format -msgid "ERROR: cannot find module: `%s': %s" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s': %s" - -#: src/module.c:274 -#, fuzzy -msgid "ERROR: cannot close modules" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s'" - -#: src/module.c:277 -#, fuzzy, c-format -msgid "ERROR: cannot cannot close modules: %s" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s': %s" - -#: src/module.c:284 -#, fuzzy, c-format -msgid "ERROR: cannot close module: `%s'" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s'" - -#: src/module.c:288 -#, fuzzy, c-format -msgid "ERROR: cannot cannot close module: `%s': %s" -msgstr "ÓÖÁË̀Á: áäơíá́ßá åưñåóç̣ Üñèñùóç̣ `%s': %s" - -#: src/output.c:262 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "ÓÖÁË̀Á: Áäơíá́ßá äḉéïơñăßạ́ đñïóùñéíïư áñ÷åßïơ ăéá áëëáẵ" - -#: src/output.c:272 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "ÓÖÁË̀Á: Áäơíá́ßá áđïóôïẹ̈̃ áëëáặ̃ óôï đñïóùñéíü áñ÷åßï" - -#: src/output.c:356 -msgid "ERROR: Copying inserted file" -msgstr "ÓÖÁË̀Á: Áíôéăñáẵ åéóåñ÷ḯƯíïơ áñ÷åßïơ" - -#: src/output.c:537 -msgid "ERROR: Reading inserted file" -msgstr "ÓÖÁË̀Á: ÁíÜăíùóç åéóåñ÷ḯƯíïơ áñ÷åßïơ" - -#: src/output.c:636 -msgid "Cannot stat diversion" -msgstr "Áäơíá́ßá đñïóđƯëáóç̣ ôïơ áñ÷åßïơ ôç̣ áëëáặ̃" - -#: src/output.c:639 -msgid "Diversion too large" -msgstr "" - -#: src/path.c:157 -#, c-format -msgid "Path 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:175 -msgid "VMEM limit exceeded?\n" -msgstr "Ôï üñéï ôç̣ åéêïíéễ ́í̃́ç̣ åîáíôë̃èçêå;\n" - -#: src/stackovf.c:197 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Åíôïđßóôçêå đáñÜâáóç ôùí ïñßùí ́í̃́ç̣ (SIGSEGV). Åßôå Ưăéíå ơđƯñâáóç " -"óôïßâạ́\n" -"åßôå ơđÜñ÷åé óöÜë́á đñïăñǗ́áôị̈ óôï " - -#: src/stackovf.c:202 -msgid ". Check for possible infinite recursion.\n" -msgstr ". ÅëƯăîáôå ăéá đéèáí̃ åđ'Üđåéñï áíáäñḯ̃.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁË̀Á: Áíôéêáíïíéễ êáôÜóôáóç óôï symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Ôï üíḯá `%s' åßíáé Üăíùóôï\n" - -#~ msgid "Undefined macro `%s'" -#~ msgstr "̀ç ïñéó́Ưíç ́áêñïåíôïë̃ `%s'" - -#~ msgid "Module search for `%s' found `%s'" -#~ msgstr "Ç Ưñåơíá Üñèñùóç̣ ăéá `%s' âñ̃êå `%s'" diff --git a/po/fr.gmo b/po/fr.gmo Binary files differdeleted file mode 100644 index 8707d3ea..00000000 --- a/po/fr.gmo +++ /dev/null diff --git a/po/fr.po b/po/fr.po deleted file mode 100644 index 85b66092..00000000 --- a/po/fr.po +++ /dev/null @@ -1,468 +0,0 @@ -# French messages for GNU m4. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Erick Branderhorst <Erick.Branderhorst@asml.nl>, 1998, -# created this file based on fr.msg, which was created by: -# Franc,ois Pinard <pinard@iro.umontreal.ca> 199(4-7). -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4d\n" -"POT-Creation-Date: 1998-05-25 12:26+0200\n" -"PO-Revision-Date: 1998-05-23 11:53+02:00\n" -"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n" -"Language-Team: dutch <nl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, 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:278 -#, 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:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Argument non-numérique pour «%s» prédéfini" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "ERREUR INTERNE: Mauvais type de lexème dans define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "Nom «%s» non-défini" - -#: src/builtin.c:636 -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:644 -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:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "Macro «%s» non-défini" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "ERREUR INTERNE: Mauvais type de symbole dans m4_defn ()" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Incapable d'ouvrir un «pipe» pour la commande «%s»" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Base hors intervalle dans «eval» (base = %d)" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "Largeur négative dans «eval»" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Argument non-numérique pour %s" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "Incapble de ramener la diversion %s" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "Incapable d'ouvrir %s" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Debugmode: mauvais indicateurs de mise-au-point: «%s»" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Incapable de préparer le fichier d'erreurs: %s" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "" -"ATTENTION: \\\\0 disparaîtra, utiliser \\\\& plutôt pour les remplacements" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "Mauvaise expression régulière «%s»: %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Erreur d'appariement pour l'expressio régulière «%s»" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis! " -"(trace_pre ())" - -#: src/debug.c:387 -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:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "Mauvaise expression dans «eval» (parenthèse droite manquante): %s" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "Mauvaise expression dans «eval»: %s" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "Mauvaise expression dans «eval» (mauvaise entrée): %s" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "Mauvaise expression dans «eval» (entrée superflue): %s" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Division par zéro dans «eval»: %s" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Module par zéro dans «eval»: %s" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "ERREUR INTERNE: Mauvais code d'erreur dans evaluate ()" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "ERREUR INTERNE: Mauvais opérateur de comparaison dans cmp_term ()" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "ERREUR INTERNE: Mauvais opérateur de décalage dans shift_term ()" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "ERREUR INTERNE: Mauvais opérateur dans mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis!" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "" -"ERREUR INTERNE: Mauvais type de donnée pour lexème dans freeze_one_symbol ()" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Fin-de-ligne attendue du fichier figé" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Caractère «%c» attendu du fichier figé" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "Fichier figé difforme" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Fin prématurée de fichier figé" - -#: src/freeze.c:323 -#, c-format -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:174 -#, c-format -msgid "Input read from %s" -msgstr "Entrée lue de %s" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "ERREUR INTERNE: Utilisation récursive de push_string!" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Entrée reprise de %s, ligne %d" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans pop_input ()" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "ERREUR INTERNE: Mauvais appel à init_macro_token ()" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans peek_input ()" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans next_char ()" - -#: src/input.c:550 -msgid "NONE" -msgstr "AUCUN" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "ERREUR: Fin-de-fichier dans la chaîne" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "ERREUR INTERNE: Mauvais type de lexème dans expand_token ()" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Pour plus d'information, essayez «%s --help».\\n\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Usage: %s [OPTION]... [FICHIER]...\\n\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Les arguments obligatoires ou optionnels pour la forme longue des\n" -"options sont aussi obligatoires ou optionnels pour les formes courtes\n" -"qui leur correspondent.\n" -"\n" -"Modes d'opération:\n" -" --help fournir ce message d'aide, puis terminer\n" -" --version identifier le programme, puis terminer\n" -" -e, --interactive ne pas tamponner, ignorer les interruptions\n" -" -E, --fatal-warnings terminer l'exécution après le moindre " -"message\n" -" -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 -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 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"Capacités de préprocesseur:\n" -" -I, --include=REPERTOIRE ensuite fouiller ce répertoire d'inclusions\n" -" -D, --define=NOM[=VALEUR] définir NOM comme ayant VALEUR (ou vide)\n" -" -U, --undefine=NOM éliminer le NOM prédéfini\n" -" -s, --synclines engendrer des lignes «#line NNN " -"\\\"FICHIER\\\"»\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Contrôle des limites:\n" -" -G, --traditional inhiber toutes les extensions GNU\n" -" -H, --hashsize=PREMIER choisir la grandeur de la table de symboles\n" -" -L, --nesting-limit=NOMBRE modifier la limite artificielle " -"d'imbrication\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Fichiers d'état figé:\n" -" -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 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Mise-au-point:\n" -" -d, --debug=[INDICS] niveau de mise-au-point (implicitement " -"«aeq»)\n" -" -t, --trace=NOM tracer NOM lorsqu'il sera défini\n" -" -l, --arglength=NOMBRE restreindre la grandeur de trace des macros\n" -" -o, --error-output=FICHIER rediriger la sortie de trace et " -"mise-au-point\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"INDICS est une combinaison de:\n" -" t tracer tous les appels de macro, pas uniquement les «traceon»\n" -" a afficher les arguments véritables\n" -" e afficher le résultat de l'expension\n" -" q mettre entre guillemets lorsque necessaire, avec indics «a» ou «e»\n" -" c afficher avant et après la collecte, puis après l'appel\n" -" x ajouter une identification unique, utile avec l'indicateur «c»\n" -" f donner le nom courant du fichier d'entrée\n" -" l donner le numéro de la ligne d'entrée\n" -" p afficher les résultats des fouilles de chemin\n" -" 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 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Si aucun FICHIER ou si FICHIER vaut «-», lit l'entrée standard.\n" - -#: src/m4.c:355 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "Mauvais indicateurs de mise-au-point: «%s»" - -#: src/m4.c:434 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "ERREUR INTERNE: Mauvais code dans les arguments différés" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "ERREUR: Débordement de pile. (Récursion hors contrôle sur «define»?)" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "ERREUR: Fin-de-fichier dans la liste d'arguments" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "" -"ERREUR INTERNE: Mauvais type de données pour lexème dans expand_argument ()" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "ERREUR INTERNE: Mauvais type de symbole dans call_macro ()" - -#: src/macro.c:282 -#, c-format -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/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "ERREUR: Incapable de créer un fichier temporaire pour la diversion" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "ERREUR: Incapable de vider la diversion sur un fichier temporaire" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "ERREUR: Pendant la copie du fichier inséré" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "ERREUR: Pendant la lecture d'un fichier inséré" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "Incapable d'opérer «stat» pour la diversion" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "Limit VMEM outrepassée?\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Les violations de mémoire sont détectées (SIGSEGV). Ou bien la pile a\n" -"débordé, ou bien il y a un problème dans " - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Vérifier une récursion hors contrôle.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "ERREUR INTERNE: Mode illégal dans symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Le nom «%s» est inconnu\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Mauvaise expression régulière: «%s»: %s" diff --git a/po/it.gmo b/po/it.gmo Binary files differdeleted file mode 100644 index 106f8cc8..00000000 --- a/po/it.gmo +++ /dev/null diff --git a/po/it.po b/po/it.po deleted file mode 100644 index cbc04699..00000000 --- a/po/it.po +++ /dev/null @@ -1,406 +0,0 @@ -msgid "" -msgstr "" -"POT-Creation-Date: 1998-08-03 17:14+0200\n" -"Version: \n" -"Date: 1995-06-30 21:00:12+0200\n" -"From: Ulrich Drepper <drepper@myware>\n" -"Xgettext-Options: --default-domain=m4 --output-dir=. --add-comments " -"--keyword=_\n" -"Files: ../src/builtin.c ../src/debug.c ../src/eval.c ../src/freeze.c\n" -"Files: ../src/input.c ../src/m4.c ../src/macro.c ../src/output.c\n" -"Files: ../src/path.c ../src/stackovf.c ../src/symtab.c ../lib/getopt.c\n" -"Files: ../lib/regex.c ../lib/xmalloc.c\n" -"Update on Fri Jun 30 21:00:27 MET 1995 \n" - -#: src/builtin.c:272 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Attenzione: Troppo pochi argomenti per la funzione predefinita `%s'" - -#: src/builtin.c:278 -#, 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:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Argumento non numerico a funzione predefinita `%s'" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "ERRORE INTERNO: Tipo dato `token' errato in define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "Nome `%s' non definito" - -#: src/builtin.c:636 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "" - -#: src/builtin.c:644 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "" - -#: src/builtin.c:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "Macro `%s' non definita" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "ERRORE INTERNO: Tipo simbolo errato in m4_defn ()" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Impossibile aprire una `pipe' per il comando `%s'" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Base fuori intervallo in `eval' (base = %d)" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "Larghezza negativa in `eval'" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Argumento non numerico a %s" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "Impossibile ripristinare la deviazione %s" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "Impossibile aprire %s" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Modalità di debug: indicatori di debug errati: `%s'" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Impossibile aprire l' archivio di errore: %s" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "Espressione regolare errata `%s': %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Errore nel confronto dell' espressione regolare `%s'" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "" - -#: src/eval.c:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "Espressione errata in `eval' (manca la parentesi destra): %s" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "Espressione errata in `eval': %s" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "Espressione errata in `eval' (testo errato): %s" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "Espressione errata in `eval' (testo in eccesso): %s" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Divisione per zero in `eval': %s" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo zero in `eval': %s" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "ERRORE INTERNO: Code di errore errato in evaluate ()" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "ERRORE INTERNO: Operatore errato in mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Atteso il carattere di fine linea in archivio congelato" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Atteso il carattere `%c' in archivio congelato" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "Archivio congelato malformato" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Fine prematura dell' archivio congelato" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "" - -#: src/input.c:174 -#, c-format -msgid "Input read from %s" -msgstr "Errore di lettura da %s" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "ERRORE INTERNO: Utilizzo ricorsivo di push_string!" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Ingresso ripristinato su %s, linea %d" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "ERRORE INTERNO: Stack di ingresso corrotto in pop_input ()" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "ERRORE INTERNO: Chiamata errata a init_macro_token ()" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "ERRORE INTERNO: Stack di ingresso corrotto in peek_input ()" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "ERRORE INTERNO: Stack di ingresso corrotto in next_char ()" - -#: src/input.c:550 -msgid "NONE" -msgstr "NESSUNO" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "ERRORE: Fine prematura di una stringa" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "ERRORE: Stack overflow. (Ricorsione infinita in `define'?)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Per ulteriori informazioni provare `%s --help'.\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Usage: %s [OPZIONE]... [ARCHIVIO]...\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" - -#: src/m4.c:358 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "Indicatori di debug errati: `%s'" - -#: src/m4.c:437 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "ERRORE INTERNO: Codice errato in argomenti differiti" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "ERRORE INTERNO: Tipo `token' errato in expand_token ()" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "ERRORE: Fine prematura della lista di argomenti" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "ERRORE INTERNO: Tipo simbolo errato in call_macro ()" - -#: src/macro.c:282 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "" - -#: src/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "ERRORE: Impossibile creare un archivio temporaneo per la deviazione" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "ERRORE: Impossibile terminare la deviazione su file temporaneo" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "ERRORE: Copiando archivio inserito" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "ERRORE: Leggendo archivio inserito" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "Impossibile effettuare la `stat' per la deviazione" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "Limite di VMEM superato?\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Controllare una possibile ricorsione infinita.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "ERRORE INTERNO: Modo illegale in symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Il nome `%s' è sconosciuto\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Espressione regolare errata: `%s': %s" diff --git a/po/ja.gmo b/po/ja.gmo Binary files differdeleted file mode 100644 index da665805..00000000 --- a/po/ja.gmo +++ /dev/null diff --git a/po/ja.po b/po/ja.po deleted file mode 100644 index f5bf54dd..00000000 --- a/po/ja.po +++ /dev/null @@ -1,515 +0,0 @@ -# Japanese messages for GNU m4. -# Copyright (C) 1996 Free Software Foundation, Inc. -# Akiko Matsushita <matusita@sra.co.jp>, 1996. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU m4 1.4.3\n" -"POT-Creation-Date: 1998-08-03 17:14+0200\n" -"PO-Revision-Date: 1996-03-28 11:52 EST\n" -"Last-Translator: Akiko Matsushita <matusita@sra.co.jp>\n" -"Language-Team: Japanese <ja@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "·Ù¹đ¡§%s ¤Ø¤Î°ú¿ô¤¬ÉÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/builtin.c:278 -#, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "·Ù¹đ¡§%s ¤Ø¤Î°ú¿ô¤¬Â¿²á¤®¤̃¤¹ (Ķ¤¨¤¿Ê¬¤Ï̀µ»ë¤µ¤́¤̃¤¹)¡£" - -#: src/builtin.c:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤́¤Æ¤¤¤̃¤¹¡£" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô define_macro () Æâ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "`%s' ¤ÏÄêµÁ¤µ¤́¤Æ¤¤¤̃¤»¤ó¡£" - -#: src/builtin.c:636 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "ÆâÉô¥¨¥é¡¼¡§`Built-in' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥̃¥¯¥í¤Ï¤¢¤ê¤̃¤»¤ó¡£" - -#: src/builtin.c:644 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_dumpdef () ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/builtin.c:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "¥̃¥¯¥í `%s' ¤ÏÄêµÁ¤µ¤́¤Æ¤¤¤̃¤»¤ó¡£" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_defn () Æâ¤Î¥·¥ó¥Ü¥ë¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "¥³¥̃¥ó¥É `%s' ¤Ø¤Î¥Ñ¥¤¥×¤¬¥ª¡¼¥×¥ó¤Ç¤¤̃¤»¤ó¡£" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "eval ¤Î´đ¿ô ( %d ¿ÊË¡) ¤Î·å¿ô¤¬µöÍÆÈϰϳ°¤Ë¤¢¤ê¤̃¤¹¡£" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "eval ¤Î½ĐÎÏ·å¿ô¤¬Éé¿ô¤Ë¤Ê¤Ă¤Æ¤¤¤̃¤¹¡£" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤́¤Æ¤¤¤̃¤¹¡£" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "`%s' ¤̣ undivert ¤Ç¤¤̃¤»¤ó¡£" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "`%s' ¤̣¥ª¡¼¥×¥ó¤Ç¤¤̃¤»¤ó¡£" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "debugmode ¥̃¥¯¥í¤Ë¤ª¤¤¤Æ %s ¤ÏÉÔÀµ¤Ê¥Ç¥Đ¥Ă¥°¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "`%s' ¤̣¥¨¥é¡¼¥í¥°¥Ơ¥¡¥¤¥ë¤È¤·¤Æ¥»¥Ă¥È¤Ç¤¤̃¤»¤ó¡£" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "·Ù¹đ¡§\\0 ¤Ïµ́¼°¤ÎÍÑË¡¤Ç¤¹¡£\\& ¤̣Âå¤ï¤ê¤Ë»È¤Ă¤Æ²¼¤µ¤¤¡£" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Àµµ¬É½¸½ %s ¤Î¥̃¥Ă¥Á¥ó¥°¤Ë¼ºÇÔ¤·¤̃¤·¤¿¡£" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"ÆâÉô¥¨¥é¡¼¡§`Builtin' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥̃¥¯¥í¤Ï¤¢¤ê¤̃¤»¤ó¡£\n" -" (´Ø¿ô trace_pre () ¤¬¤³¤Î¥¨¥é¡¼¥á¥Ă¥»¡¼¥¸¤̣½Đ¤·¤Æ¤¤¤̃¤¹¡£) " - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "" -"ÆâÉô¥¨¥é¡¼¡§¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£\n" -" (´Ø¿ô trace_pre () ¤¬¤³¤Î¥¨¥é¡¼¥á¥Ă¥»¡¼¥¸¤̣½Đ¤·¤Æ¤¤¤̃¤¹¡£)" - -#: src/eval.c:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Êɽ¸½¤¬ÍѤ¤¤é¤́¤Æ¤¤¤̃¤¹ (ÊĤ¸³ç¸̀¤¬¤¢¤ê¤̃¤»¤ó)¡£" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Ê¼°¤¬ÍѤ¤¤é¤́¤Æ¤¤¤̃¤¹¡£" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "" -"eval ¤Ç `%s' ¤È¤¤¤¦ÉÔÀµ¤Êɽ¸½¤¬ÍѤ¤¤é¤́¤Æ¤¤¤̃¤¹ \n" -" (Æ₫Îϥǡ¼¥¿¤¬Àµ¤·¤¯¤¢¤ê¤̃¤»¤ó)¡£" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "eval ¤Ç %s ¤È¤¤¤¦ÉÔÀµ¤Ê¼°¤¬ÍѤ¤¤é¤́¤Æ¤¤¤̃¤¹ (Æ₫Îϥǡ¼¥¿¤¬Â¿²á¤®¤̃¤¹)¡£" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "`%s' ¤È¤¤¤¦É½¸½¤Ç¡¢0 ¤Ë¤è¤ë³ä»»¤¬¹Ô¤ï¤́¤Æ¤¤¤̃¤¹¡£" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "`%s' ¤È¤¤¤¦ eval ¤Ç¡¢´đ¿ô¤¬ 0 ¤Ë¤Ê¤Ă¤Æ¤¤¤̃¤¹¡£" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô evaluate () Æâ¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô cmp_term () ¤ÎÈæ³Ó±é»»»̉¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§shift_term () ¤Î¥·¥Ơ¥È±é»»»̉¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô mult_term () Æâ¤Î±é»»»̉¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "ÆâÉô¥¨¥é¡¼¡§`Built-in' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥̃¥¯¥í¤Ï¤¢¤ê¤̃¤»¤ó¡£" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "" -"ÆâÉô¥¨¥é¡¼¡§´Ø¿ô freeze_one_symbol () ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Åà·ë¥Ơ¥¡¥¤¥ëÆâ¤Ç²₫¹Ô¥³¡¼¥É¤̣´üÂÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Åà·ë¥Ơ¥¡¥¤¥ëÆâ¤Çʸ»ú `%c' ¤̣´üÂÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "ÆâÉô¥¨¥é¡¼¡§Åà·ë¥Ơ¥¡¥¤¥ë¤Î¥Ơ¥©¡¼¥̃¥Ă¥È¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Åà·ë¥Ơ¥¡¥¤¥ë¤Î EOF ¤¬Á᤯Íè²á¤®¤Æ¤¤¤̃¤¹¡£" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "Åà·ë¥Ơ¥¡¥¤¥ë¤Î %s ¤Ï¥Ó¥ë¥È¥¤¥ó¥³¥̃¥ó¥É¤Î¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¢¤ê¤̃¤»¤ó¡£" - -#: src/input.c:174 -#, c-format -msgid "Input read from %s" -msgstr "%s ¤«¤é¤ÎÆ₫ÎϤ̣Æɤ߹₫¤ß¤̃¤¹¡£" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "ÆâÉô¥¨¥é¡¼¡§ºÆµ¢Åª¤Ëʸ»úÎó¤̣ push ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "¥Ơ¥¡¥¤¥ë %s, %d ¹Ồܤ«¤éÆ₫ÎϤ·Ä¾¤·¤̃¤¹¡£" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô pop_input () Æâ¤Ç¥¹¥¿¥Ă¥¯¤ÎÆ₫ÎϤ˼ºÇÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô init_macro_token () ¤¬ÉÔÀµ¤Ë¸Æ¤Đ¤́¤Æ¤¤¤̃¤¹¡£" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô peek_input () Æâ¤Ç¥¹¥¿¥Ă¥¯¤ÎÆ₫ÎϤ˼ºÇÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô next_char () Æâ¤Ç¥¹¥¿¥Ă¥¯¤ÎÆ₫ÎϤ˼ºÇÔ¤·¤Æ¤¤¤̃¤¹¡£" - -#: src/input.c:550 -msgid "NONE" -msgstr "¤Ê¤·" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "¥¨¥é¡¼: ʸ»úÎóÆâ¤Ë¥Ơ¥¡¥¤¥ë¤Î½ªĂ¼µ¹æ¤¬¤¢¤ê¤̃¤¹¡£" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "" -"¥¨¥é¡¼: ¥¹¥¿¥Ă¥¯¤¬¥ª¡¼¥Đ¡¼¥Ơ¥í¡¼¤̣µ¯¤³¤·¤Æ¤¤¤̃¤¹¡£\n" -" (̀µ¸Â¤ËºÆµ¢ÅªÄêµÁ¤̣¤·¤Æ¤¤¤̃¤»¤ó¤«¡©)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "¾Ü¤·¤¯¤Ï `%s --help' ¤Î½ĐÎϤ̣¸æÍ÷²¼¤µ¤¤¡£\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "»ÈÍÑÊưË¡: %s [¥ª¥×¥·¥ç¥ó]...[¥Ơ¥¡¥¤¥ë̀¾]\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Ť¤¥ª¥×¥·¥ç¥ó¤¬¼è¤ëɬ¿Ü°ú¿ô¤ª¤è¤ÓÁªẬ²Äǽ¤Ê°ú¿ô¤Ï\n" -"Ă»¤¤¥ª¥×¥·¥ç¥ó¤Î¾́¹ç¤Ë¤âɬÍפǤ¹¡£\n" -"Operation modes:\n" -" --help ¥ª¥×¥·¥ç¥ó¤Î°́Í÷¤̣½ĐÎϤ·¡¢½ªÎ»¤·¤̃¤¹¡£\n" -" --version ¥Đ¡¼¥¸¥ç¥ó¾đÊó¤̣½ĐÎϤ·¡¢½ªÎ»¤·¤̃¤¹¡£\n" -" -e, --interactive " -"½ĐÎϤ̣¥Đ¥Ă¥Ơ¥¡¥ê¥ó¥°¤»¤º¡¢³ä¤ê¹₫¤ß¤̣̀µ»ë¤·¤̃¤¹¡£\n" -" -E, --fatal-warnings ·Ù¹đ¤¬½Đ¤µ¤́¤ë¤È¼Â¹Ô¤̣Ăæ»ß¤·¤̃¤¹¡£\n" -" -Q, --quiet, --silent " -"¤¤¤¯¤Ä¤«¤Î¥Ó¥ë¥È¥¤¥ó¥³¥̃¥ó¥É¤Î·Ù¹đ¤̣Í̃À©¤·¤̃¤¹¡£\n" -" -P, --prefix-builtins Á´¤Æ¤Î¥Ó¥ë¥È¥¤¥ó¥̃¥¯¥í¤Ë `m4_' ¤È¤¤¤¦ÀÜƬ¼¤̣ " -" ¶¯À©Åª¤ËÄÉ²Ă¤·¤̃¤¹¡£\n" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" -"-W, --word-regexp=REGEXP ¥̃¥¯¥í̀¾¤Î¥·¥ó¥¿¥Ă¥¯¥¹¤Ë REGEXP ¤̣ " -" Àµµ¬É½¸½¤È¤·¤ÆÍѤ¤¤̃¤¹¡£\n" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"¥×¥ê¥×¥í¥»¥Ă¥µµ¡Ç½:\n" -" -I, --include=DIRECTORY ¥«¥́¥ó¥È¥Ç¥£¥́¥¯¥È¥ê¤Î¼¡¤Ë¤³¤Î¥Ç¥£¥́¥¯¥È¥ê\n" -" ¤«¤é¥¤¥ó¥¯¥ë¡¼¥É¥Ơ¥¡¥¤¥ë¤̣¥µ¡¼¥Á¤·¤̃¤¹¡£\n" -" -D, --define=NAME[=VALUE] NAME ¤̣ VALUE ¤ËÄêµÁ¤·¤̃¤¹¡£\n" -" (VALUE ¤Ï¾Êά²Äǽ¤Ç¡¢¤³¤Î¾́¹ç¤Ï NAME ¤Ï " -" ¶ơ¤Îʸ»úÎó¤ËÄêµÁ¤µ¤́¤̃¤¹¡£)\n" -" -U, --undefine=NAME NAME ¤ÎÄêµÁ¤̣¼è¤ê¾Ă¤·¤̃¤¹¡£\n" -" -s, --synclines ¹ÔÈÖ¹æ¤È¥Ơ¥¡¥¤¥ë̀¾¤Î¹Ô¤̣À¸À®¤·¤̃¤¹¡£\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"¸Â³¦ĂͤΥ³¥ó¥È¥í¡¼¥ë:\n" -" -G, --traditional GNU ÈǤËÆĂͤγÈÄ¥¤̣Í̃À©¤·¤̃¤¹¡£\n" -" -H, --hashsize=PRIME ¥·¥ó¥Ü¥ë¸¡º÷¥Ï¥Ă¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º¤̣\n" -" ¥»¥Ă¥È¤·¤̃¤¹¡£\n" -" -L, --nesting-limit=NUNBER " -"¥̃¥¯¥í¤Î¥Í¥¹¥È²ó¿ô¤Î¾å¸ÂẶͤ¿Í°ÙŪ¤ËÊѹ¹¤·¤̃¤¹¡£\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Åà·ë¾ơÂ֤ΥƠ¥¡¥¤¥ë: -F, --freeze-state=FILE ºÇ¸å¤Ë»ØÄꤵ¤́¤¿ FILE " -"¤̣Åà·ë¾ơÂ֤ˤ·¤̃¤¹¡£\n" -" -R, --reload-state=FILE ºÇ½é¤Ë»ØÄꤵ¤́¤¿ FILE ¤«¤é\n" -" Åà·ë¤µ¤́¤¿ÄêµÁ¤̣¥í¡¼¥É¤·¤̃¤¹\n" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -" ¥Ç¥Đ¥Ă¥®¥ó¥°:\n" -" -d, --debug=[FLAGS] ¥Ç¥Đ¥Ă¥°¥́¥Ù¥ë¤̣¥»¥Ă¥È¤·¤̃¤¹¡£\n" -" (`aeq' ¤Ï FLAGS ¤Ë´̃¤̃¤́¤̃¤»¤ó¡£)\n" -" -t, --trace=NAME NAME ¤¬ÄêµÁ¤µ¤́¤ë¤È¤½¤́¤̣¥È¥́¡¼¥¹¤·¤̃¤¹¡£\n" -" -l, --arglength=NUM ¥̃¥¯¥í¥È¥́¡¼¥¹¤Î¥µ¥¤¥º¤̣ NUM ¤ËÀ©¸Â¤·¤̃¤¹¡£\n" -" -o, --error-output=FILE ¥Ç¥Đ¥Ă¥°¤È¥È¥́¡¼¥¹¤Î½ĐÎϤ̣ FILE ¤Ë\n" -" ¥ê¥À¥¤¥́¥¯¥È¤·¤̃¤¹¡£\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAG ¤Ï°Ê²¼¤Î¤¤¤º¤́¤«¤Ç¤¹:\n" -" t Á´¤Æ¤Î¥̃¥¯¥í¸Æ¤Ó¤À¤·¤̣¥È¥́¡¼¥¹¤·¤̃¤¹\n" -" (traceon ¤Ë¤è¤ë¤â¤Î¤Ë¸ÂÄꤷ¤̃¤»¤ó)\n" -" a ¸½ºß¤Î°ú¿ô¤̣ɽ¼¨¤·¤̃¤¹\n" -" e Ÿ³«¤µ¤́¤¿¤â¤Î¤̣ɽ¼¨¤·¤̃¤¹\n" -" q `a' ¤̃¤¿¤Ï `e' ¤È¶¦¤ËÍѤ¤¡¢É¬Íפ˱₫¤¸¤ÆẶͤ°úÍÑÉä¤Ç°Ï¤ß¤̃¤¹¡£\n" -" c ÄûÀµÁ°¤ÈÄûÀµ¸å¡¢¸Æ½Đ¸å¤Ëɽ¼¨¤·¤̃¤¹\n" -" x ¤½¤Î¥̃¥¯¥í¥³¡¼¥ë¤Ë¸ÇͤΠID ¤̣ÄÉ²Ă¤·¤̃¤¹¡£\n" -" `c' ¤ÈÁȤ߹ç¤ï¤»¤ë¤ÈÊØÍø¤Ç¤¹¡£\n" -" f ¤½¤Î»₫ÅÀ¤ÇÆ₫ÎϤ·¤Æ¤¤¤ë¥Ơ¥¡¥¤¥ë̀¾¤̣ɽ¼¨¤·¤̃¤¹¡£\n" -" l ¤½¤Î»₫ÅÀ¤ÇÆ₫ÎϤ·¤Æ¤¤¤ë¹ÔÈÖ¹æ¤̣ɽ¼¨¤·¤̃¤¹¡£\n" -" p ¥Ñ¥¹¤̣¸¡º÷¤·¤¿·ë²̀¤̣ɽ¼¨¤·¤̃¤¹¡£\n" -" i Æ₫ÎÏ¥Ơ¥¡¥¤¥ë¤ËÀ¸¤¸¤¿ÊѲ½¤̣ɽ¼¨¤·¤̃¤¹¡£\n" -" V ¾åµ¤ÎÁ´¤Æ¤Î FLAG ¤̣»ØÄꤹ¤ë¤³¤È¤̣°Ờ£¤·¤̃¤¹¡£\n" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"FILE ¤¬»ØÄꤵ¤́¤Æ¤¤¤Ê¤¤¾́¹ç¤ª¤è¤Ó»ØÄꤵ¤́¤¿¥Ơ¥¡¥¤¥ë¤¬ `-' ¤Î¾́¹ç¤Ï\n" -" ɸ½àÆ₫ÎϤ¬Æɤ߹₫¤̃¤́¤̃¤¹¡£\n" - -#: src/m4.c:358 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "`%s' ¤ÏÉÔÀµ¤Ê¥Ç¥Đ¥Ă¥°¥ª¥×¥·¥ç¥ó°ú¿ô¤Ç¤¹¡£" - -#: src/m4.c:437 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "ÆâÉô¥¨¥é¡¼¡§¥ª¥×¥·¥ç¥ó¤Î¸å½èÍư¤Ç¡¢ÉÔÀµ¥³¡¼¥É¤¬¸¡½Đ¤µ¤́¤̃¤·¤¿¡£" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô expand_token () Æâ¤Î¥È¡¼¥¯¥ó¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "¥¨¥é¡¼: °ú¿ô¥ê¥¹¥ÈÆâ¤Ë¥Ơ¥¡¥¤¥ë¤Î½ªĂ¼µ¹æ¤¬¤¢¤ê¤̃¤¹¡£" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô expand_argument () ¤Î¥È¡¼¥¯¥ó¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô call_macro () Æâ¤Î¥·¥ó¥Ü¥ë¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£" - -#: src/macro.c:282 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "" -"¥¨¥é¡¼¡§ºÆµ¢ÅªÄêµÁ¤Î¥Í¥¹¥È¤¬»ØÄꤵ¤́¤¿ĂÍ %d ¤̣Ķ¤¨¤Æ¤¤¤̃¤¹¡£\n" -" -L<¿ô»ú> ¥ª¥×¥·¥ç¥ó¤̣ÍѤ¤¤Æ¥Í¥¹¥È¿ô¤Î¾å¸Â¤̣Áư¤ä¤·¤Æ²¼¤µ¤¤¡£" - -#: src/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "¥¨¥é¡¼: divert ¤Î¤¿¤á¤Î¥Æ¥ó¥Ư¥é¥ê¥Ơ¥¡¥¤¥ë¤¬ºîÀ®¤Ç¤¤̃¤»¤ó¡£" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "¥¨¥é¡¼: ¥Æ¥ó¥Ư¥é¥ê¥Ơ¥¡¥¤¥ë¤Ë divert ¤¹¤Ù¤ÆâÍƤ̣ write ¤Ç¤¤̃¤»¤ó¡£" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "¥¨¥é¡¼: Á̃Æ₫¤µ¤́¤ë¤Ù¤¥Ơ¥¡¥¤¥ë¤̣¥³¥Ô¡¼Ăæ¤Ç¤¹¡£" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "¥¨¥é¡¼: Á̃Æ₫¤µ¤́¤ë¤Ù¤¥Ơ¥¡¥¤¥ë¤̣¥ê¡¼¥ÉĂæ¤Ç¤¹¡£" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "" -"divert ¤Î¤¿¤á¤Î¥Ơ¥¡¥¤¥ë¤Î¥¹¥Æ¡¼¥¿¥¹¤̣ÆÀ¤ë¤³¤È¤¬¤Ç¤¤̃¤»¤ó¡£\n" -" (stat ¤Ç¤¤̃¤»¤ó¡£)" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "¥ê¥½¡¼¥¹ĂÍ RLIMIT_VMEM ¤̣Ķ¤¨¤Æ¤¤¤̃¤»¤ó¤«¡©\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"¥á¥â¥ê (¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ăÈ¿) ¤¬¸¡½Đ¤µ¤́¤̃¤·¤¿¡£\n" -" ¥¹¥¿¥Ă¥¯¤¬¥ª¡¼¥Đ¡¼¥Ơ¥í¡¼¤·¤Æ¤¤¤ë¡¢¤¢¤ë¤¤¤Ï¥Đ¥°¤¬Â¸ºß¤¹¤ë\n" -" ²ÄǽÀ¤¬¤¢¤ê¤̃¤¹¡£" - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". ̀µ¸Â¤ÎºÆµ¢¸Æ¤Ó½Đ¤·¤¬¹Ô¤ï¤́¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¥Á¥§¥Ă¥¯¤·¤Æ²¼¤µ¤¤¡£\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô symbol_lookup () ¤Ø¤Î°ú¿ô mode ¤¬ÉÔÀµ¤Ç¤¹¡£" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "`%s' ¤ÏÄêµÁ¤µ¤́¤Æ¤¤¤̃¤»¤ó¡£\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£" - -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "%s: `%s' ¤ÏÉỒÀÎƤʥª¥×¥·¥ç¥ó̀¾¤Ç¤¹¡£\n" - -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤̣¼è¤ë¤³¤È¤¬¤Ç¤¤̃¤»¤ó¡£\n" - -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤̣¼è¤ë¤³¤È¤¬¤Ç¤¤̃¤»¤ó¡£\n" - -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï°ú¿ô¤̣ɬÍפȤ·¤̃¤¹¡£\n" - -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: --%s ¤Ïǧ¼±¤µ¤́¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n" - -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "%s: %c%s ¤Ïǧ¼±¤µ¤́¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: %c ¤ÏÉÔÀµ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n" - -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "%s: %c ¤Ï̀µ¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n" - -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "%s: %c ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹¡£\n" - -#~ msgid "No previous regular expression" -#~ msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤́¤Æ¤¤¤̃¤»¤ó¡£" - -#~ msgid "Memory exhausted" -#~ msgstr "¥á¥â¥ê¤¬»Ä¤Ă¤Æ¤¤¤̃¤»¤ó¡£" diff --git a/po/m4.pot b/po/m4.pot deleted file mode 100644 index 75077ee6..00000000 --- a/po/m4.pot +++ /dev/null @@ -1,116 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1997-10-06 07:30+0159\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" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" - -#: src/m4.c:355 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "" - -#: src/m4.c:434 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "" diff --git a/po/nl.gmo b/po/nl.gmo Binary files differdeleted file mode 100644 index 1452272f..00000000 --- a/po/nl.gmo +++ /dev/null diff --git a/po/nl.po b/po/nl.po deleted file mode 100644 index fd69a4ff..00000000 --- a/po/nl.po +++ /dev/null @@ -1,464 +0,0 @@ -# Dutch messages for GNU m4. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Erick Branderhorst <Erick.Branderhorst@asml.nl>, 1998. -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4d\n" -"POT-Creation-Date: 1998-05-25 12:26+0200\n" -"PO-Revision-Date: 1998-05-23 09:27+02:00\n" -"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n" -"Language-Team: dutch <nl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Let op: Te weinig argument voor ingebouwde functie `%s'" - -#: src/builtin.c:278 -#, 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:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Niet numeriek argument voor ingebouwde functie `%s'" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "INTERNE FOUT: Onjuist teken data type in define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "Ongedefinieerde naam %s" - -#: src/builtin.c:636 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!" - -#: src/builtin.c:644 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "INTERNE FOUT: Onjuist teken data type in m4_dumpdef ()" - -#: src/builtin.c:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "Ongedefinieerde macro `%s'" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "INTERNE FOUT: Onjuist symbool type in m4_defn ()" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Kan geen pijp openen voor commando `%s'" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Radix in evaluatie buiten bereik (radix = %d)" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "Negatieve breedte te evalueren" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Niet numeriek argument voor %s" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "Cannot undivert %s" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "Kan %s niet openen" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Debugmode: onjuiste debug vlaggen: `%s'" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Kan fout bestand niet instellen: %s" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "LET OP: \\0 zal verdwijnen, gebruik hiervoor \\& als vervanging" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "Onjuiste reguliere expressie `%s': %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "Fout overeenkomen reguliere expressies `%s'" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel! (trace_pre " -"())" - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "INTERNE FOUT: Onjuiste teken data type (trace_pre ())" - -#: src/eval.c:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "Onjuiste expressie in evaluatie (ontbrekend rechter haakje): %s" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "Onjuist expressie in evaluatie: %s" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "Onjuist expressie in evaluatie (onjuiste invoer): %s" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "Onjuist expressie in evaluatie (te veel invoer): %s" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Delen door nul in evaluatie: %s" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo door nul in evaluatie: %s" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "INTERNE FOUT: Onjuiste fout code in evaluate ()" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "INTERNE FOUT: Onjuiste vergelijkings operator in cmp_term ()" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "INTERNE FOUT: Onjuiste schuif operator in shift_term ()" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "INTERNE FOUT: Onjuiste operator in mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "INTERNE FOUT: Onjuist teken data type in freeze_one_symbol ()" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Verwacht nieuwe regel in gefixeerd bestand" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Verwacht karakter `%c' in gefixeerd bestand" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "Slecht geformateerd gefixeerd bestand" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Voorbarig einde van gefixeerd bestand" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "`%s' van gefixeerd bestand niet gevonden in functie tabel!" - -#: src/input.c:174 -#, c-format -msgid "Input read from %s" -msgstr "Invoer gelezen vanuit %s" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "INTERNE FOUT: Recursieve push_string!" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Invoer reverted naar %s, lijn %d" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "INTERNE FOUT: Invoer stapel botch in pop_input ()" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "INTERNE FOUT: Onjuiste aanroep naar init_macro_token ()" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "INTERNE FOUT: Invoer stapel botch in peek_input ()" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "INTERNE FOUT: Invoer stapel botch in next_char ()" - -#: src/input.c:550 -msgid "NONE" -msgstr "GEEN" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "FOUT: Einde van bestand teken in string" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "FOUT: Stapel overflow. (Infinite define recursion?)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Probeer `%s --help' voor meer informatie.\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Gebruik: %s [OPTIE]... [BESTAND]...\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Verplichte of optionele argumenten voor lange opties zijn ook verplicht of\n" -"optioneel voor korte opties.\n" -"\n" -"Operatie modi:\n" -" --help toon help tekst en beëindig programma\n" -" --version toon versie informatie en beeindig programma\n" -" -e, --interactive unbuffer output, negeer interrupts\n" -" -E, --fatal-warnings stop uitvoering na eerste waarschuwing\n" -" -Q, --quiet, --silent onderdruk sommige waarschuwingen voor\n" -" ingebouwde functies\n" -" -P, --prefix-builtins forceer een `m4_' voorvoegsel voor alle \n" -" ingebouwde functies\n" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr " -W, --word-regexp=REGEXP gebruik REGEXP voor macro naam syntax\n" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"Voorbewerkings features:\n" -" -I, --include=DIRECTORY zoek in tweede instantie in deze directory " -"voor\n" -" inclusies\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME verwijder ingebouwde functie NAME\n" -" -s, --synclines genereer `#line NO \"FILE\"' regel\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Limieten controlle:\n" -" -G, --traditional onderdruk alle GNU uitbreidingen\n" -" -H, --hashsize=PRIME stel symbolen opzoek hash tabel grootte\n" -" -L, --nesting-limit=NUMBER verander kunstmatige nesting limiet\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Gefixeerd staat bestanden:\n" -" -F, --freeze-state=FILE produceerd een gefixeerd staat van BESTAND\n" -" aan het einde\n" -" -R, --reload-state=FILE herlaad een gefixeerde staat van BESTAND\n" -" aan het begin\n" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Debugging:\n" -" -d, --debug=[VLAGGEN] stel debug nivo in (geen VLAGGEN \n" -" impliceert `aeq')\n" -" -t, --trace=NAAM traceer NAAM wanneer het wordt gedefinieerd\n" -" -l, --arglength=NUM restrict macro traceer grootte\n" -" -o, --error-output=FILE redirect debug en traceer uitvoer\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Als geen BESTAND of als BESTAND `-' is, standaard invoer wordt gelezen.\n" - -#: src/m4.c:355 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "Onjuiste debug vlaggen: `%s'" - -#: src/m4.c:434 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "INTERNE FOUT: Onjuiste code in afgeleide argumenten" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "INTERNE FOUT: Onjuist teken type in expand_token ()" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "FOUT: Einde van bestand teken in argumentenlijst" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "INTERNE FOUT: Onjuist teken type in expand_argument ()" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "INTERNE FOUT: Onjuist symbool type in call_macro ()" - -#: src/macro.c:282 -#, c-format -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/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "FOUT: Kan geen tijdelijk bestand aanmaken voor diversion" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "FOUT: Kan diversion niet flushen naar tijdelijk bestand" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "FOUT: Kopieren ingevoegde bestanden" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "FOUT: Lezen ingevoegd bestand" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "Cannot stat diversion" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "VMEM limiet overschreden?\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Geheugen bounds violation gedetecteerd (SIGSEGV). Een stack overflow \n" -"is opgetreden, of er is een fout in " - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Kontroleer voor mogelijk oneindige recusie.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "INTERNE FOUT: Ongeldige mode voor symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Naam `%s' is niet bekend\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Onjuiste reguliere expressie: `%s': %s" diff --git a/po/pl.gmo b/po/pl.gmo Binary files differdeleted file mode 100644 index 4bb38992..00000000 --- a/po/pl.gmo +++ /dev/null diff --git a/po/pl.po b/po/pl.po deleted file mode 100644 index 8cdf9481..00000000 --- a/po/pl.po +++ /dev/null @@ -1,500 +0,0 @@ -# Polish translations for the GNU m4 messages. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Rafa³ Maszkowski <rzm@icm.edu.pl>, 1998. -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-10-04 01:31+0200\n" -"PO-Revision-Date: 1998-08-05 17:30+0200\n" -"Last-Translator: Rafa³ Maszkowski <rzm@icm.edu.pl>\n" -"Language-Team: Polish <pl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:317 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "Uwaga: Za ma³o argumentów dla wbodowanego `%s'" - -#: src/builtin.c:323 -#, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "Uwaga: Nadmiarowe argumenty do built-in `%s' zosta³y zignorowane" - -#: src/builtin.c:351 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Nienumeryczny argument do built-in `%s'" - -#: src/builtin.c:450 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu w define_macro ()" - -#: src/builtin.c:645 src/builtin.c:708 src/builtin.c:1331 src/builtin.c:1355 -#, c-format -msgid "Undefined name %s" -msgstr "Niezdefiniowana nazwa %s" - -#: src/builtin.c:673 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!" - -#: src/builtin.c:681 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu w m4_dumpref ()" - -#: src/builtin.c:732 -#, c-format -msgid "Undefined macro `%s'" -msgstr "Niezdefiniowane makro `%s'" - -#: src/builtin.c:772 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "B£¡D WEWNETRZNY: Z³y typ symbolu w m4_defn ()" - -#: src/builtin.c:838 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Nie mogê otworzyæ potoku do komendy `%s'" - -#: src/builtin.c:875 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Baza w eval poza zakresem (radix = %d)" - -#: src/builtin.c:884 -msgid "Negative width to eval" -msgstr "Ujemna d³ugo¶æ w eval" - -#: src/builtin.c:976 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "Nienumeryczny argument dla %s" - -#: src/builtin.c:988 -#, c-format -msgid "Cannot undivert %s" -msgstr "Nie mogê przetowrzyæ z powrotem %s" - -#: src/builtin.c:1132 -#, fuzzy, c-format -msgid "Undefined syntax code %c" -msgstr "Niezdefiniowana nazwa %s" - -#: src/builtin.c:1182 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "Nie mogê otworzyæ %s" - -#: src/builtin.c:1391 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Tryb debugowania: z³e flagi debugowania: `%s'" - -#: src/builtin.c:1427 -#, c-format -msgid "Cannot set error file: %s" -msgstr "Nie mogê ustawiæ pliku b³êdów: %s" - -#: src/builtin.c:1644 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "UWAGA: \\0 zniknie, w podstawieniach u¿yj zamiast tego \\&" - -#: src/builtin.c:1705 src/builtin.c:1765 src/input.c:979 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "B³êdne wyra¿enie regularne `%s': %s" - -#: src/builtin.c:1716 src/builtin.c:1789 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "" -"B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych! (trace_pre " -"())" - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu (trace_pre ())" - -#: src/eval.c:297 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "B³êdne wyra¿enie w eval (brakuj±cy prawy nawias): %s" - -#: src/eval.c:303 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "B³êdne wyra¿enie w eval: %s" - -#: src/eval.c:308 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "B³êdne wyra¿enie w eval (z³e dane wej¶ciowe): %s" - -#: src/eval.c:313 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "B³êdne wyra¿enie w eval (nadmiarowe dane): %s" - -#: src/eval.c:318 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "Dzielenie przez zero w eval: %s" - -#: src/eval.c:323 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo zero w eval: %s" - -#: src/eval.c:328 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny kod b³êdu w evaluate ()" - -#: src/eval.c:582 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny operator porównania w cmp_term ()" - -#: src/eval.c:627 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny operator przesuniêcia w shift_term ()" - -#: src/eval.c:726 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny opertaotr w mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny typ danych tokenu w freeze_one_symbol ()" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "Oczekiwany line fedd w pliku zamro¿onym" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Oczekiwany znak `%c' w pliku zamro¿onym" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "¬le sformatowy plik zamro¿ony" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "Przedwczesny koniec pliku zamro¿onego" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "`%s' z pliku zamro¿onego nie znalezione w tablicy wbudowanych!" - -#: src/input.c:306 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "Dane wej¶ciowe wycofane do %s, linia %d" - -#: src/input.c:334 -#, c-format -msgid "Input read from %s" -msgstr "Dane wej¶ciowe przeczytane z %s" - -#: src/input.c:494 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "B£¡D WEWNÊTRZNY: Rekursywny push_string!" - -#: src/input.c:611 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdne wywo³anie init_macro_token ()" - -#: src/input.c:651 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w next_char ()" - -#: src/input.c:688 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w peek_input ()" - -#: src/input.c:791 -msgid "NONE" -msgstr "¯ADEN" - -#: src/input.c:1130 src/input.c:1157 -msgid "ERROR: EOF in string" -msgstr "B£¡D: EOF w ³añcuchu" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "B£¡D: Przepe³nienie stosu. (Nieskoñczona rekursja definicji?)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Spróbuj `%s --help' ¿eby dowiedzieæ siê wiêcej.\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "U¿ycie: %s [OPCJA]... [PLIK]...\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Argumenty obowi±zkowe lub opcjonalne dla opcji d³ugich s± obowi±zkowe lub\n" -"opcjonalne równie¿ dla krótkich.\n" -"\n" -"Tryby pracy:\n" -" --help wy¶wietl ten opis i zakoñcz\n" -" --version wy¶wietl informacjê o wersji i zakoñcz\n" -" -e, --intercative nie buforuj wyj¶cia, ignoruj przerwania\n" -" -E, --fatal-warnings zatrzymaj siê po pierwszym ostrz¿eniu\n" -" -Q, --quiet, --silent nie pokazuj niektórych ostrze¿eñ dla " -"wbudowanych\n" -" -P, --prefix-builtins dodaj zawsze `m4_' przez wszystkimi " -"wbudowanymi\n" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr " -W, --word-regexp=WYR_REGUL u¿yj WYR_REGUL w sk³adni nazw makr\n" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"W³a¶ciwo¶ci preprocesora:\n" -" -I, --include=KATALOG szukaj includes w tym KATALOGu\n" -" -D, --define=NAZWA[=WARTO¦Æ] wprowad¼ NAZWÊ z WARTO¦CI¡ lub pust±\n" -" -U, --undefine=NAZWA skasuj wbudowan± NAZWÊ\n" -" -s, --synclines generuj linie `#line NR \"PLIK\"\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Sterowanie ograniczeniami:\n" -" -G, --traditional wy³±cz wszystkie rozszrzenia GNU\n" -" -H, --hashzize=PIERWSZA ustaw rozmiar tablicy mieszaj±cej dla " -"symboli\n" -" -L, --nesting-limit=LICZBA zmieñ sztuczny limit zag³ebieñ\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Zamro¿one pliki stanu:\n" -" -F, --freeze-state=PLIK zapisz zamro¿ony PLIK stanu na koñcu\n" -" -R, --reload-state=PLIK za³aduj zamro¿ony PLIK stanu na pocz±tku\n" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Debugowanie:\n" -" -d, --debug=[FLAGI] ustaw poziom debugowania (bez FLAG: `aeg')\n" -" -t, --trace=NAZWA ¶led¼ NAZWÊ, kiedy bêdzie zdefiniowana\n" -" -l, --arglength=ILE ogranicz rozmiar ¶ledzenia makr\n" -" -o, --error-output=PLIK przekieruj wyniki debugowania i ¶ledzenia\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAGI mog± byæ nastêpuj±ce:\n" -" t ¶led¼ wszystkie wywo³ania makr, nie tylko te z traceon\n" -" a poka¿ w³a¶ciwe argumenty\n" -" e poka¿ rozwiniêcie\n" -" q zabezpiecz znaki specjalne, z flag± a lub e\n" -" c poka¿ przez zebraniem, po zebraniu i po wywo³aniu\n" -" x dodaj unikalny identfikator wywo³ania makra, po¿yteczne z flag± c\n" -" f podaj nazwê bie¿±cego pliku wej¶ciowego\n" -" l podaj numer bie¿±cej linii\n" -" p poka¿ wyniki przeszukiwañ ¶cie¿ek\n" -" i poka¿ zmiany plików wej¶ciowych\n" -" V skrót do wszystkich powy¿szych flag\n" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Je¿eli brak PLIKu lub PLIK to `-', czytane jest std. wej¶cie.\n" - -#: src/m4.c:365 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "B³êdne flagi debugowania: `%s'" - -#: src/m4.c:444 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "B£¡D WEWNÊTRZNY: B³êdny kod w od³o¿onych argumentach" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny typ tokena w expand_token ()" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "B£¡D: EOF w li¶cie argumentów" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny typ tokena w expand_argument ()" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "B£¡D WEWNÊTRZNY: B³êdny symbol w call_macro ()" - -#: src/macro.c:282 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "B£¡D: Osi±gniêty limit rekursji %d, u¿yj -L<N> ¿eby go zmieniæ" - -#: src/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "B£¡D: Nie mogê utworzyæ plików tymczasowych dla przetwarzania" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "B£¡D: Nie mogê zapisac zmian przetwarzania do pliku tymczasowego" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "B£¡D: Kopiowanie w³o¿onego pliku" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "B£¡D: Czytanie w³o¿onego pliku" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "Nie mogê zrobiæ stat na danych przetwarzanych" - -#: src/path.c:162 -#, c-format -msgid "Path search for `%s' found `%s'" -msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'" - -#: src/path.c:239 -#, fuzzy, c-format -msgid "Module search for `%s' found `%s'" -msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'" - -#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even -#. if the stack limit has not been reached. -#: src/stackovf.c:168 -msgid "VMEM limit exceeded?\n" -msgstr "przekroczony limit VMEM\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Wykryto pogwa³cenie ograniczeñ adresów pamiêci (SIGSEGV). Albo dosz³o do\n" -"przepe³nienia stosu albo jest b³±d w " - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". Sprawd¼ czy nie dosz³o do nieskoñczonej rekursji.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "B£¡D WEWNÊTRZNY: Nielegalny tryb w symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "Nazwa `%s' jest nieznana\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Z³e wyra¿enie regularne: `%s': %s" - -#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -#~ msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w pop_input ()" - -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "%s: opcja `%s' jest niejednoznaczna\n" - -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: opcja `--%s' nie mo¿e mieæ argumentu\n" - -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "%s: opcja `%c%s' nie mo¿e mieæ argumentu\n" - -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "%s: opcja `%s' wymaga argumentu\n" - -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: nierozpoznana opcja --%s'\n" - -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "%s: nierozpoznana opcja %c%s'\n" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: nielegalna opcja -- %c\n" - -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "%s: b³êdna opcja -- %c\n" - -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "%s: opcja wymaga argumentu -- %c\n" - -#~ msgid "No previous regular expression" -#~ msgstr "Brak uprzedniego wyra¿enia regularnego" - -#~ msgid "Memory exhausted" -#~ msgstr "Pamiêæ wyczerpana" diff --git a/po/ru.gmo b/po/ru.gmo Binary files differdeleted file mode 100644 index bd27331a..00000000 --- a/po/ru.gmo +++ /dev/null diff --git a/po/ru.po b/po/ru.po deleted file mode 100644 index 1f847158..00000000 --- a/po/ru.po +++ /dev/null @@ -1,498 +0,0 @@ -# ́ÏËÁ̀ÉÚÁĂÉÑ m4-1.4.3 -# Copyright (C) 1997 Free Software Foundation, Inc. -# Denis Y. Pershin <dyp@siblug.org>, 1997. -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-08-03 17:14+0200\n" -"PO-Revision-Date: 1997-07-12 20:58\n" -"Last-Translator: Denis Y. Pershin <dyp@siblug.org>\n" -"Language-Team: Russian <ru@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, c-format -msgid "Warning: Too few arguments to built-in `%s'" -msgstr "đ̉ÅÄƠĐ̉ÅÖÄÅÎÉÅ: ó̀ÉÛËÏÍ ÍÁ̀Ï Á̉ÇƠÍÅÎÔÏ× Ä̀Ñ ×ÓỔÏÅÎÎÏÊ ̀ÅËÓÅÍÙ '%s'" - -#: src/builtin.c:278 -#, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "" -"đ̉ÅÄƠĐ̉ÅÖÄÅÎÉÅ: éÚÂÙÔÏ̃ÎÙÅ Á̉ÇƠÍÅÎÔÙ Ä̀Ñ ×ÓỔÏÅÎÎÏÊ ̀ÅËÓÅÍÙ '%s' " -"Đ̉ÏÉÇÎÏ̉É̉Ï×ÁÎÙ" - -#: src/builtin.c:298 -#, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "îÅ ̃ÉÓ̀Ï×ÏÊ Á̉ÇƠÍÅÎÔ Ä̀Ñ ×ÓỔÏÅÎÎÏÊ ̀ÅËÓÅÍÙ '%s'" - -#: src/builtin.c:438 -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ × define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, c-format -msgid "Undefined name %s" -msgstr "éÍÑ %s ÎÅÏĐ̉ÅÄÅ̀ÅÎÏ" - -#: src/builtin.c:636 -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "÷îơộåîîññ ïûéâëá: ÷ÓỔÏÅÎÎÁÑ ̀ÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ!" - -#: src/builtin.c:644 -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ × m4_dumpdef ()" - -#: src/builtin.c:695 -#, c-format -msgid "Undefined macro `%s'" -msgstr "îÅÏĐ̉ÅÄÅ̀ÅÎÎÙÊ ÍÁË̉ÏÓ '%s'" - -#: src/builtin.c:735 -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ÓÉÍ×Ï̀Á × m4_defn ()" - -#: src/builtin.c:772 -#, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔË̉ÙÔØ ËÁÎÁ̀ Ä̀Ñ ËÏÍÍÁÎÄÙ '%s'" - -#: src/builtin.c:811 -#, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "̣ÁÄÉËÓ × ×Ù̉ÁÖÅÎÉÉ ×ÙÈÏÄÉÔ ÚÁ Đ̉ÅÄÅ̀Ù (radix = %d)" - -#: src/builtin.c:820 -msgid "Negative width to eval" -msgstr "ïỔÉĂÁÔÅ̀ØÎÁÑ ÛÉ̉ÉÎÁ" - -#: src/builtin.c:925 -#, c-format -msgid "Non-numeric argument to %s" -msgstr "îÅ ̃ÉÓ̀Ï×ÏÊ Á̉ÇƠÍÅÎÔ Ä̀Ñ %s" - -#: src/builtin.c:937 -#, c-format -msgid "Cannot undivert %s" -msgstr "îÅ×ÏÚÍÏÖÎÏ ×Å̉ÎƠÔØ ×Ù×ÏÄ ÉÚ %s" - -#: src/builtin.c:1043 src/freeze.c:207 -#, c-format -msgid "Cannot open %s" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔË̉ÙÔØ %s" - -#: src/builtin.c:1248 -#, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "̣ÅÖÉÍ ÏỒÁÄËÉ: ÎÅ×Å̉ÎÙÊ Æ̀ÁÇ ÏỒÁÄËÉ: '%s'" - -#: src/builtin.c:1284 -#, c-format -msgid "Cannot set error file: %s" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÚÎÁ̃ÉÔØ ÆÁỀ ÏÛÉÂÏË %s" - -#: src/builtin.c:1501 -msgid "WARNING: \\0 will disappear, use \\& instead in replacements" -msgstr "đ̣åäơđ̣åöäåîéå: \\0 ÉÓ̃ÅÚÎÅÔ, ÉÓĐÏ̀ØÚƠÊÔÅ \\& × ÚÁÍÅÎÁÈ" - -#: src/builtin.c:1562 src/builtin.c:1622 src/input.c:637 -#, c-format -msgid "Bad regular expression `%s': %s" -msgstr "îÅ×Å̉ÎÏÅ ̉ÅÇỜÑ̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ: '%s': %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, c-format -msgid "Error matching regular expression `%s'" -msgstr "ïÛÉÂËÁ ÓÏĐÏÓÔÁ×̀ÅÎÉÑ ̉ÅÇỜÑ̉ÎÏÇÏ ×Ù̉ÁÖÅÎÉÑ '%s'" - -#: src/debug.c:379 -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "÷îơộåîîññ ïûéâëá: ÷ÓỔÏÅÎÎÁÑ ̀ÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ! (trace_pre ())" - -#: src/debug.c:387 -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ (trace_pre ())" - -#: src/eval.c:277 -#, c-format -msgid "Bad expression in eval (missing right parenthesis): %s" -msgstr "îÅ×Å̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ (ÏÔÓƠÔÓÔ×ƠÅÔ Đ̉Á×ÙÅ ÓËÏÂËÉ): %s" - -#: src/eval.c:283 -#, c-format -msgid "Bad expression in eval: %s" -msgstr "îÅ×Å̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ: %s" - -#: src/eval.c:288 -#, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "îÅ×Å̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ (bad input): %s" - -#: src/eval.c:293 -#, c-format -msgid "Bad expression in eval (excess input): %s" -msgstr "îÅ×Å̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ (excess input): %s" - -#: src/eval.c:298 -#, c-format -msgid "Divide by zero in eval: %s" -msgstr "äÅ̀ÅÎÉÅ ÎÁ ÎÏ̀Ø × ×Ù̉ÁÖÅÎÉÉ: %s" - -#: src/eval.c:303 -#, c-format -msgid "Modulo by zero in eval: %s" -msgstr "íÏÄỜØÎÏÅ ÄÅ̀ÅÎÉÅ ÎÁ ÎÏ̀Ø × ×Ù̉ÁÖÅÎÉÉ: %s" - -#: src/eval.c:308 -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ËÏÄ ÏÛÉÂËÉ × evaluate ()" - -#: src/eval.c:547 -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÏÅ Ó̉Á×ÎÅÎÉÅ × cmp_term ()" - -#: src/eval.c:590 -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÏĐÅ̉ÁÔÏ̉ ÓÄ×ÉÇÁ × shift_term ()" - -#: src/eval.c:674 -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÏĐÅ̉ÁÔÏ̉ × mult_term ()" - -#: src/freeze.c:115 -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "÷îơộåîîññ ïûéâëá: ÷ÓỔÏÅÎÎÁÑ ̀ÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ!" - -#: src/freeze.c:128 -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ × freeze_one_symbol ()" - -#: src/freeze.c:159 -msgid "Expecting line feed in frozen file" -msgstr "ïÖÉÄÁÅÔÓÑ ĐÅ̉Å×ÏÄ ÓỔÏËÉ × ÆÁỀÅ-ÏẨÁÚÅ ĐÁÍÑÔÉ" - -#: src/freeze.c:161 -#, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "ïÖÉÄÁÅÔÓÑ ÓÉÍ×Ï̀ '%c' × ÆÁỀÅ-ÏẨÁÚÅ ĐÁÍÑÔÉ" - -#: src/freeze.c:218 -msgid "Ill-formated frozen file" -msgstr "îÅ×Å̉ÎÙÊ ÆÏ̉ÍÁÔ ÆÁỀÁ-ÏẨÁÚÁ ĐÁÍÑÔÉ" - -#: src/freeze.c:273 src/freeze.c:289 -msgid "Premature end of frozen file" -msgstr "đ̉ÅÖÄÅ×̉ÅÍÅÎÎÙÊ ËÏÎÅĂ ÆÁỀÁ-ÏẨÁÚÁ ĐÁÍÑÔÉ" - -#: src/freeze.c:323 -#, c-format -msgid "`%s' from frozen file not found in builtin table!" -msgstr "'%s' ÉÚ ÆÁỀÁ-ÏẨÁÚÁ ĐÁÍÑÔÉ ÎÅ ÎÁÊÄÅÎÁ ×Ï ×ÓỔÏÅÎÎÏÊ ÔÁẦÉĂÅ!" - -#: src/input.c:174 -#, c-format -msgid "Input read from %s" -msgstr "÷×ÏÄ ÉÚ %s" - -#: src/input.c:231 -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "÷îơộåîîññ ïûéâëá: ̣ÅËỞÓÉ×ÎÁÑ push_string!" - -#: src/input.c:311 -#, c-format -msgid "Input reverted to %s, line %d" -msgstr "÷×ÏÄ ĐÅ̉ÅÎÁĐ̉Á×̀ÅÎ × %s , ÓỔÏËÁ %d" - -#: src/input.c:325 -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "÷îơộåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × pop_input ()" - -#: src/input.c:364 -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ×ÙÚÏ× init_macro_token ()" - -#: src/input.c:413 -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "÷îơộåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × peek_input ()" - -#: src/input.c:470 -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "÷îơộåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × next_char ()" - -#: src/input.c:550 -msgid "NONE" -msgstr "îé₫åçï" - -#: src/input.c:777 -msgid "ERROR: EOF in string" -msgstr "ïûéâëá: ëÏÎÅĂ ÆÁỀÁ × ÓỔÏËÅ" - -#: src/m4.c:106 -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "ïûéâëá: đÅ̉ÅĐÏ̀ÎÅÎÉÅ ÓÔÅËÁ. (âÅÓËÏÎÅ̃ÎÏÅ ̉ÅËỞÓÉ×ÎÏÅ ÏĐ̉ÅÄÅ̀ÅÎÉÅ?)" - -#: src/m4.c:133 -#, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "đÏĐ̉ÏÂƠÊÔÅ '%s --help' Ä̀Ñ ÉÎÆÏ̉ÍÁĂÉÉ.\n" - -#: src/m4.c:137 -#, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "éÓĐÏ̀ØÚÏ×ÁÎÉÅ: %s [OPTION]... [FILE]...\n" - -#: src/m4.c:138 -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"ïÂÑÚÁÔÅ̀ØÎÙÅ É̀É ÎÅÏÂÑÚÁÔÅ̀ØÎÙÅ Á̉ÇƠÍÅÎÔÙ Ä̀Ñ Ä̀ÉÎÎÙÈ ÏĐĂÉÉ ÔÁËÏ×Ù É Ä̀Ñ " -"ËÏ̉ÏÔËÉÈ\n" -"\n" -"̣ÅÖÉÍÙ ̉ÁÂÏÔÙ:\n" -" --help ĐÏËÁÚÁÔØ ĐÏÍÏƯØ É ×ÙÊÔÉ\n" -" --version ×Ù×ÅÓÔÉ ÉÎÆÏ̉ÍÁĂÉÀ Ï ×Å̉ÓÉÉ É ×ÙÊÔÉ\n" -" -e, --interactive ÎÅÂƠÆÅ̉ÉÚÏ×ÁÎÎÙÊ ×Ù×ÏÄ, ÉÇÎÏ̉É̉Ï×ÁÔØ " -"Đ̉Å̉Ù×ÁÎÉÑ\n" -" -E, --fatal-warnings ÏÓÔÁÎÏ×ÉÔØÓÑ ĐÏÓ̀Å ĐÅ̉×ÏÇÏ Đ̉ÅÄƠĐ̉ÅÖÄÅÎÉÑ\n" -" -Q, --quiet, --silent ĐÏÄÁ×̀ÑÔØ Đ̉ÅÄƠĐ̉ÅÖÄÅÎÉÑ Ä̀Ñ ×ÓỔÏÅÎÎÙÈ " -"ÆƠÎËĂÉÊ\n" -" -P, --prefix-builtins ÄÏÂÁ×̀ÑÔØ Đ̉ÅÆÉËÓ `m4_' Ä̀Ñ ×ÓÅÈ ×ÓỔÏÅÎÎÙÈ " -"ÆƠÎËĂÉÊ\n" - -#: src/m4.c:151 -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr "" -" -W, --word-regexp=REGEXP ÉÓĐÏ̀ØÚÏ×ÁÔØ REGEXP Ä̀Ñ ÓÉÎÔÁËÓÉÓÁ ÉÍÅÎ " -"ÍÁË̉ÏÓÏ×\n" - -#: src/m4.c:155 -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"ïĐĂÉÉ Đ̉ÅĐ̉ÏĂÅÓÓÏ̉Á:\n" -" -I, --include=DIRECTORY ÉÓËÁÔØ × ĐÏÄËÁÔÁ̀ÏÇÅ ×Ë̀À̃ÁÅÍÙÅ ÆÁỀÙ\n" -" -D, --define=NAME[=VALUE] ÏĐ̉ÅÄÅ̀ÉÔØ, ̃ÔÏ NAME ÉÍÅÅÔ VALUE, É̀É ĐƠÓÔ\n" -" -U, --undefine=NAME ƠÄÁ̀ÉÔØ ×ÓỔÏÅÎÎƠÀ ÆƠÎËĂÉÀ NAME\n" -" -s, --synclines ÇÅÎÅ̉É̉Ï×ÁÔØ ÓỔÏËÉ `#line NO \"FILE\"'\n" - -#: src/m4.c:163 -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"ïÇ̉ÁÎÉ̃ÅÎÉÑ:\n" -" -G, --traditional ĐÏÄÁ×̀ÑÔØ ×ÓÅ GNU ̉ÁÓÛÉ̉ÅÎÉÑ\n" -" -H, --hashsize=PRIME ƠÓÔÁÎÏ×ÉÔØ ̉ÁÚÍÅ̉ ÈÜÛ-ÔÁẦÉĂÙ Ä̀Ñ ĐÏÉÓËÁ " -"ÓÉÍ×Ï̀Ï×\n" -" -L, --nesting-limit=NUMBER ÉÚÍÅÎÉÔØ Đ̉ÅÄÅ̀ Ç̀ƠÂÉÎÙ ÉÎÔÅ̀ÅËÔƠÁ̀ØÎÏÇÏ " -"ĐÏÉÓËÁ\n" - -#: src/m4.c:170 -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"ầÏËÉ̉Ï×ÁÎÎÙÅ ÆÁỀÙ:\n" -" -F, --freeze-state=FILE × ËÏÎĂÅ ÓÏÚÄÁÔØ ÏẨÁÚ ĐÁÍÑÔÉ Ä̀Ñ FILE\n" -" -R, --reload-state=FILE × ÎÁ̃Á̀Å ÚÁÇ̉ƠÖÁÔØ ÏẨÁÚ ĐÁÍÑÔÉ Ä̀Ñ FILE\n" - -#: src/m4.c:176 -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"ïỒÁÄËÁ:\n" -" -d, --debug=[FLAGS] ƠÓÔÁÎÏ×ÉÔØ ỞÏ×ÅÎØ ÏỒÁÄËÉ (ĐÏ ƠÍÏ̀̃ÁÎÉÀ " -"FLAGS=`aeq')\n" -" -t, --trace=NAME ỔÁÓÓÉ̉Ï×ÁÔØ NAME ËÏÇÄÁ ÏÎÏ ÂƠÄÅÔ ÏĐ̉ÅÄÅ̀ÅÎÏ\n" -" -l, --arglength=NUM ƠÓÔÁÎÏ×ÉÔØ ̉ÁÚÍÅ̉ ỔÁÓÓÉ̉Ï×ËÉ Ä̀Ñ ÍÁË̉ÏÓÁ\n" -" -o, --error-output=FILE ĐÅ̉ÅÎÁĐ̉Á×ÉÔØ ÏỒÁÄÏ̃ÎÙÊ É ỔÁÓÓÉ̉Ï×Ï̃ÎÙÊ " -"×Ù×ÏÄ × ÆÁỀ FILE\n" - -#: src/m4.c:184 -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAGS is any of:\n" -" t ỔÁÓÓÉ̉Ï×ÁÔØ ×ÓÅ ×ÙÚÏ×Ù ÍÁË̉ÏÓÏ×\n" -" a ĐÏËÁÚÁÔØ ÔÅËƠƯÉÅ Á̉ÇƠÍÅÎÔÙ\n" -" e ĐÏËÁÚÙ×ÁÔØ ÍÁË̉Ï̉ÁÓÛÉ̉ÅÎÉÅ\n" -" q ÚÁË̀À̃ÁÔØ ÚÎÁ̃ÅÎÉÑ × ËÁ×Ù̃ËÉ ĐÏ ÎÅÏÂÈÏÄÉÍÏÓÔÉ, Ó a É̀É e Æ̀ÁÇÁÍÉ\n" -" c ĐÏËÁÚÙ×ÁÔØ ĐÅ̉ÅÄ ÓÂÏ̉ÏÍ , ĐÏÓ̀Å ÓÂÏ̉Á É ĐÏÓ̀Å ×ÙÚÏ×Á\n" -" x ÄÏÂÁ×̀ÑÔØ ƠÎÉËÁ̀ØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏ̉ ×ÙÚÏ×Á ÍÁË̉ÏÓÁ, ÉÓĐÏ̀ØÚƠÅÔÓÑ ×ÍÅÓÔÅ " -"Ó Æ̀ÁÇÏÍ c\n" -" f ×Ù×ÏÄÉÔØ ÔÅËƠƯÅÅ ÉÍÑ ×ÈÏÄÎÏÇÏ ÆÁỀÁ\n" -" l ×Ù×ÏÄÉÔØ ÎÏÍÅ̉ ÔÅËƠƯÅÊ ÓỔÏ̃ËÉ\n" -" p ĐÏËÁÚÙ×ÁÔØ ̉ÅÚỜØÔÁÔÙ ĐÏÉÓËÁ ĐÏ ĐƠÔÑÍ\n" -" i ĐÏËÁÚÙ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ×Ï ×ÈÏÄÎÙÈ ÆÁỀÁÈ\n" -" V ÓÏË̉ÁƯÅÎÉÅ Ä̀Ñ ×ÓÅÈ Æ̀ÁÇÏ× ×ÍÅÓÔÅ\n" - -#: src/m4.c:199 -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"åÓ̀É FILE ÎÅ ÓƠƯÅÓÔ×ƠÅÔ É̀É FILE ÜÔÏ `-', ÉÓĐÏ̀ØÚƠÅÔÓÑ ÓÔÁÎÄÁ̉ÔÎÙÊ ×ÈÏÄ.\n" - -#: src/m4.c:358 -#, c-format -msgid "Bad debug flags: `%s'" -msgstr "îÅ×Å̉ÎÙÊ Æ̀ÁÇ ÏỒÁÄËÉ: '%s'" - -#: src/m4.c:437 -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ËÏÄ × ËÏÓ×ÅÎÎÙÈ Á̉ÇƠÍÅÎÔÁÈ" - -#: src/macro.c:92 -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ × expand_token ()" - -#: src/macro.c:158 -msgid "ERROR: EOF in argument list" -msgstr "ïûéâëá: ëÏÎÅĂ ÆÁỀÁ × ÓĐÉÓËÅ Á̉ÇƠÍÅÎÔÏ×" - -#: src/macro.c:176 -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ̀ÅËÓÅÍÙ × expand_argument ()" - -#: src/macro.c:253 -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "÷îơộåîîññ ïûéâëá: îÅ×Å̉ÎÙÊ ÔÉĐ ÓÉÍ×Ï̀Á × call_macro ()" - -#: src/macro.c:282 -#, c-format -msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it" -msgstr "" -"ïûéâëá: ́ÉÍÉÔ ̉ÅËỞÓÉÉ %d ÉÓ̃Å̉ĐÁÎ, ÉÓĐÏ̀ØÚƠÊÔÅ -L<N> ̃ÔÏÂÙ ÉÚÍÅÎÉÔØ ÅÇÏ" - -#: src/output.c:198 -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "ïûéâëá: îÅ ÍÏÇƠ ÓÏÚÄÁÔØ ×̉ÅÍÅÎÎÙÊ ÆÁỀ Ä̀Ñ ̉ÁÚ×ÅÔ×̀ÅÎÉÑ ÍÁË̉ÏÏẨÁÂÏÔËÉ" - -#: src/output.c:208 -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "ïûéâëá: îÅ ÍÏÇƠ ÚÁĐÉÓÁÔØ ̉ÁÚ×ÅÔ×̀ÅÎÉÅ ×Ï ×̉ÅÍÅÎÎÙÊ ÆÁỀ" - -#: src/output.c:292 -msgid "ERROR: Copying inserted file" -msgstr "ïûéâëá: ëÏĐÉ̉ƠÀ ×ÓÔÁ×̀ÅÎÎÙÊ ÆÁỀ" - -#: src/output.c:473 -msgid "ERROR: Reading inserted file" -msgstr "ïûéâëá: ₫ÉÔÁÀ ×ÓÔÁ×̀ÅÎÎÙÊ ÆÁỀ" - -#: src/output.c:572 -msgid "Cannot stat diversion" -msgstr "îÅ×ÏÚÍÏÖÎÏ ĐÏÄÓ̃ÉÔÁÔØ ̉ÁÚ×ÅÔ×̀ÅÎÉÅ" - -#: src/path.c:131 -#, c-format -msgid "Path 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 -msgid "VMEM limit exceeded?\n" -msgstr "ëÏÎ̃É̀ÁÓØ ×É̉ÔƠÁ̀ØÎÁÑ ĐÁÍÑÔØ?\n" - -#: src/stackovf.c:190 -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"ïÂÎÁ̉ƠÖÅÎ ×ÙÈÏÄ ÚÁ Ç̉ÁÎÉĂƠ ĐÁÍÑÔÉ (SIGSEGV). üÔÏ ̀ÉÂÏ ĐÅ̉ÅĐÏ̀ÎÅÎÉÅ ÓÔÅËÁ\n" -"É̀É ÏÛÉÂËÁ × " - -#: src/stackovf.c:195 -msgid ". Check for possible infinite recursion.\n" -msgstr ". đ̉Ï×Å̉ËÁ ÎÁ ×ÏÚÍÏÖÎƠÀ ÂÅÓËÏÎÅ̃ÎƠÀ ̉ÅËỞÓÉÀ.\n" - -#: src/symtab.c:190 -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "÷îơộåîîññ ïûéâëá: ÎÅ×Å̉ÎÙÊ ̉ÅÖÉÍ Ä̀Ñ symbol_lookup ()" - -#: src/symtab.c:243 -#, c-format -msgid "Name `%s' is unknown\n" -msgstr "éÍÑ `%s' ÎÅÉÚ×ÅÓÔÎÏ\n" - -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "îÅ×Å̉ÎÏÅ ̉ÅÇỜÑ̉ÎÏÅ ×Ù̉ÁÖÅÎÉÅ: '%s': %s" - -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "%s: ÏĐĂÉÑ `%s' ÎÅÏÄÎÏÚÎÁ̃ÎÁ\n" - -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: Ơ ÏĐĂÉÉ `--%s' ÎÅ ÄÏ̀ÖÎÏ ÂÙÔØ Á̉ÇƠÍÅÎÔÏ×\n" - -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "%s: Ơ ÏĐĂÉÉ `%c%s' ÎÅ ÄÏ̀ÖÎÏ ÂÙÔØ Á̉ÇƠÍÅÎÔÏ×\n" - -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "%s: Ơ ÏĐĂÉÉ `%s' ÄÏ̀ÖÅÎ ÂÙÔØ Á̉ÇƠÍÅÎÔ\n" - -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏĐĂÉÑ `--%s'\n" - -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏĐĂÉÑ '%c%s'\n" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: ÚÁĐ̉ÅƯÅÎÎÁÑ ÏĐĂÉÑ -- %c\n" - -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "%s: ÎÅ×Å̉ÎÁÑ ÏĐĂÉÑ -- %c\n" - -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "%s: ÏĐĂÉÉ ÎÅÏÂÈÏÄÉÍ Á̉ÇƠÍÅÎÔ -- %c\n" - -#~ msgid "No previous regular expression" -#~ msgstr "îÅÔ Đ̉ÅÄÛÅÄÓÔ×ƠÀƯÅÇÏ ̉ÅÇỜÑ̉ÎÏÇÏ ×Ù̉ÁÖÅÎÉÑ" - -#~ msgid "Memory exhausted" -#~ msgstr "đÁÍÑÔØ ÉÓ̃Å̉ĐÁÎÁ" diff --git a/po/stamp-cat-id b/po/stamp-cat-id deleted file mode 100644 index 9788f702..00000000 --- a/po/stamp-cat-id +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/po/sv.gmo b/po/sv.gmo Binary files differdeleted file mode 100644 index 2cebf070..00000000 --- a/po/sv.gmo +++ /dev/null diff --git a/po/sv.po b/po/sv.po deleted file mode 100644 index 73ef692a..00000000 --- a/po/sv.po +++ /dev/null @@ -1,549 +0,0 @@ -# Swedish messages for m4 -# Copyright (C) 1996 Free Software Foundation, Inc. -# <Jan.Djarv@mbox200.swipnet.se>, 1996. -# $Revision$ -# -msgid "" -msgstr "" -"Project-Id-Version: m4 1.4.3\n" -"POT-Creation-Date: 1998-08-03 17:14+0200\n" -"PO-Revision-Date: $Date$\n" -"Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n" -"Language-Team: Swedish <sv@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/builtin.c:272 -#, 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:278 -#, fuzzy, c-format -msgid "Warning: Excess arguments to built-in `%s' ignored" -msgstr "Varning: Överskottsargument till inbyggt makro \"%s\" ignorerade" - -#: src/builtin.c:298 -#, fuzzy, c-format -msgid "Non-numeric argument to built-in `%s'" -msgstr "Ickenumeriskt argument till inbyggt makro \"%s\"" - -#: src/builtin.c:438 -#, fuzzy -msgid "INTERNAL ERROR: Bad token data type in define_macro ()" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i define_macro ()" - -#: src/builtin.c:608 src/builtin.c:671 src/builtin.c:1188 src/builtin.c:1212 -#, fuzzy, c-format -msgid "Undefined name %s" -msgstr "Odefinierat namn \"%s\"" - -#: src/builtin.c:636 -#, fuzzy -msgid "INTERNAL ERROR: Builtin not found in builtin table!" -msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!" - -#: src/builtin.c:644 -#, fuzzy -msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i m4_dumpdef ()" - -#: src/builtin.c:695 -#, fuzzy, c-format -msgid "Undefined macro `%s'" -msgstr "Odefinierat makro \"%s\"" - -#: src/builtin.c:735 -#, fuzzy -msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()" -msgstr "INTERNT FEL: Otillåten symboltyp i m4_defn ()" - -#: src/builtin.c:772 -#, fuzzy, c-format -msgid "Cannot open pipe to command `%s'" -msgstr "Kan inte skapa rör till kommandot \"%s\"" - -#: src/builtin.c:811 -#, fuzzy, c-format -msgid "Radix in eval out of range (radix = %d)" -msgstr "Otillåten bas i \"eval\" (bas = %d)" - -#: src/builtin.c:820 -#, fuzzy -msgid "Negative width to eval" -msgstr "Negativ bredd till \"eval\"" - -#: src/builtin.c:925 -#, fuzzy, c-format -msgid "Non-numeric argument to %s" -msgstr "Ickenumeriskt argument till %s" - -#: src/builtin.c:937 -#, fuzzy, c-format -msgid "Cannot undivert %s" -msgstr "Kan inte återleda %s" - -#: src/builtin.c:1043 src/freeze.c:207 -#, fuzzy, c-format -msgid "Cannot open %s" -msgstr "Kan inte öppna %s" - -#: src/builtin.c:1248 -#, fuzzy, c-format -msgid "Debugmode: bad debug flags: `%s'" -msgstr "Felsökningsläge: okänd flagga: \"%s\"" - -#: src/builtin.c:1284 -#, fuzzy, c-format -msgid "Cannot set error file: %s" -msgstr "Kan inte sätta felutskriftsfil: %s" - -#: src/builtin.c:1501 -#, 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:1562 src/builtin.c:1622 src/input.c:637 -#, fuzzy, c-format -msgid "Bad regular expression `%s': %s" -msgstr "Otillåtet reguljäruttryck \"%s\": %s" - -#: src/builtin.c:1573 src/builtin.c:1646 -#, fuzzy, c-format -msgid "Error matching regular expression `%s'" -msgstr "Reguljäruttrycket \"%s\" matchar inte" - -#: src/debug.c:379 -#, fuzzy -msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())" -msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen (trace_pre ())" - -#: src/debug.c:387 -#, fuzzy -msgid "INTERNAL ERROR: Bad token data type (trace_pre ())" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp (trace_pre ())" - -#: src/eval.c:277 -#, 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:283 -#, fuzzy, c-format -msgid "Bad expression in eval: %s" -msgstr "Otillåtet uttryck i \"eval\": %s" - -#: src/eval.c:288 -#, fuzzy, c-format -msgid "Bad expression in eval (bad input): %s" -msgstr "Otillåtet uttryck i \"eval\" (otillåtet indata): %s" - -#: src/eval.c:293 -#, 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:298 -#, fuzzy, c-format -msgid "Divide by zero in eval: %s" -msgstr "Division med noll i \"eval\": %s" - -#: src/eval.c:303 -#, fuzzy, c-format -msgid "Modulo by zero in eval: %s" -msgstr "Modulo med noll i \"eval\": %s" - -#: src/eval.c:308 -#, fuzzy -msgid "INTERNAL ERROR: Bad error code in evaluate ()" -msgstr "INTERNT FEL: Otillåten felkod i evaluate ()" - -#: src/eval.c:547 -#, fuzzy -msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()" -msgstr "INTERNT FEL: Otillåten jämförelseoperator i cmp_term ()" - -#: src/eval.c:590 -#, fuzzy -msgid "INTERNAL ERROR: Bad shift operator in shift_term ()" -msgstr "INTERNT FEL: Otillåten skiftoperator i shift_term ()" - -#: src/eval.c:674 -#, fuzzy -msgid "INTERNAL ERROR: Bad operator in mult_term ()" -msgstr "INTERNT FEL: Otillåten operator i mult_term ()" - -#: src/freeze.c:115 -#, fuzzy -msgid "INTERNAL ERROR: Built-in not found in builtin table!" -msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!" - -#: src/freeze.c:128 -#, fuzzy -msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i freeze_one_symbol ()" - -#: src/freeze.c:159 -#, fuzzy -msgid "Expecting line feed in frozen file" -msgstr "Förväntar nyrad i fryst fil" - -#: src/freeze.c:161 -#, fuzzy, c-format -msgid "Expecting character `%c' in frozen file" -msgstr "Förväntar tecknet \"%c\" i fryst fil" - -#: src/freeze.c:218 -#, fuzzy -msgid "Ill-formated frozen file" -msgstr "Korrupt fryst fil" - -#: src/freeze.c:273 src/freeze.c:289 -#, fuzzy -msgid "Premature end of frozen file" -msgstr "För tidigt filslut i fryst fil" - -#: src/freeze.c:323 -#, fuzzy, c-format -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:174 -#, fuzzy, c-format -msgid "Input read from %s" -msgstr "Indata läses från %s" - -#: src/input.c:231 -#, fuzzy -msgid "INTERNAL ERROR: Recursive push_string!" -msgstr "INTERNT FEL: Rekursiv push_string!" - -#: src/input.c:311 -#, fuzzy, c-format -msgid "Input reverted to %s, line %d" -msgstr "Indata återgår till %s, rad %d" - -#: src/input.c:325 -#, fuzzy -msgid "INTERNAL ERROR: Input stack botch in pop_input ()" -msgstr "INTERNT FEL: Instacken havererade i pop_input ()" - -#: src/input.c:364 -#, fuzzy -msgid "INTERNAL ERROR: Bad call to init_macro_token ()" -msgstr "INTERNT FEL: Otillåtet anrop till init_macro_token ()" - -#: src/input.c:413 -#, fuzzy -msgid "INTERNAL ERROR: Input stack botch in peek_input ()" -msgstr "INTERNT FEL: Instacken havererade i peek_input ()" - -#: src/input.c:470 -#, fuzzy -msgid "INTERNAL ERROR: Input stack botch in next_char ()" -msgstr "INTERNT FEL: Instacken havererade i next_char ()" - -#: src/input.c:550 -#, fuzzy -msgid "NONE" -msgstr "INGET" - -#: src/input.c:777 -#, fuzzy -msgid "ERROR: EOF in string" -msgstr "FEL: Filslut i sträng" - -#: src/m4.c:106 -#, fuzzy -msgid "ERROR: Stack overflow. (Infinite define recursion?)" -msgstr "FEL: Stacken flödar över. (Oändlig rekursion?)" - -#: src/m4.c:133 -#, fuzzy, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Försök med \"%s --help\" för mer information.\n" - -#: src/m4.c:137 -#, fuzzy, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" -msgstr "Användning: %s [FLAGGA]... [FIL]...\n" - -#: src/m4.c:138 -#, fuzzy -msgid "" -"Mandatory or optional arguments to long options are mandatory or optional\n" -"for short options too.\n" -"\n" -"Operation modes:\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -" -e, --interactive unbuffer output, ignore interrupts\n" -" -E, --fatal-warnings stop execution after first warning\n" -" -Q, --quiet, --silent suppress some warnings for builtins\n" -" -P, --prefix-builtins force a `m4_' prefix to all builtins\n" -msgstr "" -"Obligatoriska respektive valfria argument för långa flaggor är\n" -"obligatoriska respektive valfria även för korta flaggor.\n" -"\n" -"Körlägen:\n" -" --help visa denna hjälptext och avsluta\n" -" --version visa versionsinformation och avsluta\n" -" -e, --interactive obuffrad utskrift, ignorera avbrott\n" -" -E, --fatal-warnings avsluta exekvering efter första varningen\n" -" -Q, --quiet, --silent undertryck vissa varningar för inbyggda " -"makron\n" -" -P, --prefix-builtins alla inbyggda makron börjar med `m4_'\n" - -#: src/m4.c:151 -#, fuzzy -msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n" -msgstr " -W, --word-regexp=REGEXP använd REGEXP som makronamnsyntax\n" - -#: src/m4.c:155 -#, fuzzy -msgid "" -"\n" -"Preprocessor features:\n" -" -I, --include=DIRECTORY search this directory second for includes\n" -" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n" -" -U, --undefine=NAME delete builtin NAME\n" -" -s, --synclines generate `#line NO \"FILE\"' lines\n" -msgstr "" -"\n" -"Förprocessorstyrning:\n" -" -I, --include=KATALOG sök i katalog efter inkluderade filer\n" -" -D, --define=NAMN[=VÄRDE] definiera NAMN som VÄRDE, eller tomt\n" -" -U, --undefine=NAMN ta bort inbyggt makro\n" -" -s, --synclines generera `#line NNN \"FIL\"' rader\n" - -#: src/m4.c:163 -#, fuzzy -msgid "" -"\n" -"Limits control:\n" -" -G, --traditional suppress all GNU extensions\n" -" -H, --hashsize=PRIME set symbol lookup hash table size\n" -" -L, --nesting-limit=NUMBER change artificial nesting limit\n" -msgstr "" -"\n" -"Begränsningskontroll:\n" -" -G, --traditional undertryck alla extra GNU tillägg\n" -" -H, --hashsize=PRIMTAL sätt storlek på symboltabellen\n" -" -L, --nesting-limit=NUMMER ändra artificiell nästningsnivå\n" - -#: src/m4.c:170 -#, fuzzy -msgid "" -"\n" -"Frozen state files:\n" -" -F, --freeze-state=FILE produce a frozen state on FILE at end\n" -" -R, --reload-state=FILE reload a frozen state from FILE at start\n" -msgstr "" -"\n" -"Frysta tillståndsfiler:\n" -" -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 -#, fuzzy -msgid "" -"\n" -"Debugging:\n" -" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n" -" -t, --trace=NAME trace NAME when it will be defined\n" -" -l, --arglength=NUM restrict macro tracing size\n" -" -o, --error-output=FILE redirect debug and trace output\n" -msgstr "" -"\n" -"Felsökning:\n" -" -d, --debug=[FLAGGOR] sätt felsökningsnivå\n" -" (inga FLAGGOR tolkas som \"aeq\")\n" -" -t, --trace=NAMN spåra NAMN när den blir definierad\n" -" -l, --arglength=NUMMER begränsa makrospårningsstorleken\n" -" -o, --error-output=FIL avled felsöknings och spårutskrifter till " -"FIL\n" - -#: src/m4.c:184 -#, fuzzy -msgid "" -"\n" -"FLAGS is any of:\n" -" t trace for all macro calls, not only traceon'ed\n" -" a show actual arguments\n" -" e show expansion\n" -" q quote values as necessary, with a or e flag\n" -" c show before collect, after collect and after call\n" -" x add a unique macro call id, useful with c flag\n" -" f say current input file name\n" -" l say current input line number\n" -" p show results of path searches\n" -" i show changes in input files\n" -" V shorthand for all of the above flags\n" -msgstr "" -"\n" -"FLAGGOR kan vara en eller flera av:\n" -" t spåra alla makroanrop, inte bara de som spåras med \"traceon\"\n" -" a visa aktuella argument\n" -" e visa expansioner\n" -" q sätt citationstecken där det behövs, gäller \"a\" och \"e\"\n" -" c visa före insamling, efter insamling och efter anrop\n" -" x lägg till en unik identifierare för makroanrop, användbart med \"c\"\n" -" f visa namnet på aktuell infil\n" -" l visa raden i aktuell infil\n" -" p visa resultatet av sökvägssökningar\n" -" i visa byten av infil\n" -" V förkortning för alla ovanstående flaggor\n" - -#: src/m4.c:199 -#, fuzzy -msgid "" -"\n" -"If no FILE or if FILE is `-', standard input is read.\n" -msgstr "" -"\n" -"Om ingen FIL anges eller om FIL är `-', så läses standard in.\n" - -#: src/m4.c:358 -#, fuzzy, c-format -msgid "Bad debug flags: `%s'" -msgstr "Okänd felsökningsflagga \"%s\"" - -#: src/m4.c:437 -#, fuzzy -msgid "INTERNAL ERROR: Bad code in deferred arguments" -msgstr "INTERNT FEL: Otillåten kod i argument" - -#: src/macro.c:92 -#, fuzzy -msgid "INTERNAL ERROR: Bad token type in expand_token ()" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i expand_token ()" - -#: src/macro.c:158 -#, fuzzy -msgid "ERROR: EOF in argument list" -msgstr "FEL: Filslut i argumentlistan" - -#: src/macro.c:176 -#, fuzzy -msgid "INTERNAL ERROR: Bad token type in expand_argument ()" -msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i expand_argument ()" - -#: src/macro.c:253 -#, fuzzy -msgid "INTERNAL ERROR: Bad symbol type in call_macro ()" -msgstr "INTERNT FEL: Otillåten symboltyp i call_macro ()" - -#: src/macro.c:282 -#, fuzzy, c-format -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/output.c:198 -#, fuzzy -msgid "ERROR: Cannot create temporary file for diversion" -msgstr "FEL: Kan inte skapa temporär fil för avledning" - -#: src/output.c:208 -#, fuzzy -msgid "ERROR: Cannot flush diversion to temporary file" -msgstr "FEL: Kan inte skriva avledningen till temporär fil" - -#: src/output.c:292 -#, fuzzy -msgid "ERROR: Copying inserted file" -msgstr "FEL: Kopiering av insatt fil" - -#: src/output.c:473 -#, fuzzy -msgid "ERROR: Reading inserted file" -msgstr "FEL: Läsning av insatt fil" - -#: src/output.c:572 -#, fuzzy -msgid "Cannot stat diversion" -msgstr "Kan inte ta status på avledningen" - -#: src/path.c:131 -#, fuzzy, c-format -msgid "Path 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 -#, fuzzy -msgid "VMEM limit exceeded?\n" -msgstr "VMEM begränsning överskriden?\n" - -#: src/stackovf.c:190 -#, fuzzy -msgid "" -"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n" -"occurred, or there is a bug in " -msgstr "" -"Otillåten referens utanför minnesgränserna har upptäckts (SIGSEGV).\n" -"Antingen flödade stacken över eller så är det ett fel i " - -#: src/stackovf.c:195 -#, fuzzy -msgid ". Check for possible infinite recursion.\n" -msgstr ". Kontrollera om oändlig rekursion förekommer.\n" - -#: src/symtab.c:190 -#, fuzzy -msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()" -msgstr "INTERNT FEL: Otillåtet läge till symbol_lookup ()" - -#: src/symtab.c:243 -#, fuzzy, c-format -msgid "Name `%s' is unknown\n" -msgstr "Namnet \"%s\" är okänt\n" - -#, fuzzy -#~ msgid "Bad regular expression: `%s': %s" -#~ msgstr "Otillåtet reguljäruttryck \"%s\": %s" - -#, fuzzy -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "%s: flaggan \"%s\" är tvetydig\n" - -#, fuzzy -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: flaggan \"--%s\" tar inget argument\n" - -#, fuzzy -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "%s: flaggan \"%c%s\" tar inget argument\n" - -#, fuzzy -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "%s: flaggan \"%s\" behöver ett argument\n" - -#, fuzzy -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: okänd flagga \"--%s\"\n" - -#, fuzzy -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "%s: okänd flagga \"%c%s\"\n" - -#, fuzzy -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: otillåten flagga -- %c\n" - -#, fuzzy -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "%s: ogiltig flagga -- %c\n" - -#, fuzzy -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "%s: flaggan behöver ett argument -- %c\n" - -#, fuzzy -#~ msgid "No previous regular expression" -#~ msgstr "Inget föregående reguljäruttryck" - -#, fuzzy -#~ msgid "Memory exhausted" -#~ msgstr "Minnet slut" diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 00e8b063..00000000 --- a/src/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -AUTOMAKE_OPTIONS = ansi2knr -CATALOGS = fr.msg -LIBS = @LIBS@ -STACKOVF = @STACKOVF@ - -bin_PROGRAMS = m4 - -INCLUDES = -I$(top_srcdir) -I$(srcdir) -I$(top_srcdir)/lib - -m4_SOURCES = m4.c m4.h builtin.c debug.c eval.c format.c freeze.c input.c \ - macro.c output.c path.c symtab.c stackovf.c - -m4_LDADD = ../lib/libm4.a @INTLLIBS@ - - diff --git a/src/builtin.h b/src/builtin.h deleted file mode 100644 index 89088513..00000000 --- a/src/builtin.h +++ /dev/null @@ -1,39 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* Declarations for builtin macros. */ - -#ifndef BUILTIN_H -#define BUILTIN_H 1 - -#include <m4.h> - -#define ARG(i) (argc > (i) ? TOKEN_DATA_TEXT (argv[i]) : "") - -#define DECLARE(name) \ - static void name __P ((struct obstack *, int, token_data **)) - - - -boolean bad_argc (token_data *name, int argc, int min, int max); -const char *skip_space (const char *arg); - -boolean numeric_arg (token_data *macro, const char *arg, int *valuep); -void shipout_int (struct obstack *obs, int val); - -#endif /* BUILTIN_H */ diff --git a/src/evalmp.c b/src/evalmp.c deleted file mode 100644 index 5c48b8db..00000000 --- a/src/evalmp.c +++ /dev/null @@ -1,27 +0,0 @@ -/* 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/getopt.c b/src/getopt.c deleted file mode 100644 index efd82235..00000000 --- a/src/getopt.c +++ /dev/null @@ -1,1051 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to drepper@gnu.org - before changing it! - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 - Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. - Ditto for AIX 3.2 and <stdlib.h>. */ -#ifndef _NO_PROTO -# define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -# ifndef const -# define const -# endif -#endif - -#include <stdio.h> - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -# include <gnu-versions.h> -# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -# define ELIDE_CODE -# endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -# include <stdlib.h> -# include <unistd.h> -#endif /* GNU C library. */ - -#ifdef VMS -# include <unixlib.h> -# if HAVE_STRING_H - 0 -# include <string.h> -# endif -#endif - -#ifndef _ -/* This is for other GNU distributions with internationalized messages. - When compiling libc, the _ macro is predefined. */ -# ifdef HAVE_LIBINTL_H -# include <libintl.h> -# define _(msgid) gettext (msgid) -# else -# define _(msgid) (msgid) -# endif -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* 1003.2 says this must be 1 before any call. */ -int optind = 1; - -/* Formerly, initialization of getopt depended on optind==0, which - causes problems with re-calling getopt as programs generally don't - know that. */ - -int __getopt_initialized; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -# include <string.h> -# define my_index strchr -#else - -# if HAVE_STRING_H -# include <string.h> -# else -# include <strings.h> -# endif - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -#ifndef getenv -extern char *getenv (); -#endif - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -# if (!defined __STDC__ || !__STDC__) && !defined strlen -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -# endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -#ifdef _LIBC -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -/* Defined in getopt_init.c */ -extern char *__getopt_nonoption_flags; - -static int nonoption_flags_max_len; -static int nonoption_flags_len; - -static int original_argc; -static char *const *original_argv; - -/* Make sure the environment variable bash 2.0 puts in the environment - is valid for the getopt call we must make sure that the ARGV passed - to getopt is that one passed to the process. */ -static void -__attribute__ ((unused)) -store_args_and_env (int argc, char *const *argv) -{ - /* XXX This is no good solution. We should rather copy the args so - that we can compare them later. But we must not use malloc(3). */ - original_argc = argc; - original_argv = argv; -} -# ifdef text_set_element -text_set_element (__libc_subinit, store_args_and_env); -# endif /* text_set_element */ - -# define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ - } -#else /* !_LIBC */ -# define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -#if defined __STDC__ && __STDC__ -static void exchange (char **); -#endif - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - -#ifdef _LIBC - /* First make sure the handling of the `__getopt_nonoption_flags' - string can work normally. Our top argument must be in the range - of the string. */ - if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) - { - /* We must extend the array. The user plays games with us and - presents new arguments. */ - char *new_str = malloc (top + 1); - if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; - else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } - } -#endif - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -#if defined __STDC__ && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); -#endif -static const char * -_getopt_initialize (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - -#ifdef _LIBC - if (posixly_correct == NULL - && argc == original_argc && argv == original_argv) - { - if (nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); - } - } - nonoption_flags_len = nonoption_flags_max_len; - } - else - nonoption_flags_len = 0; -#endif - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - optarg = NULL; - - if (optind == 0 || !__getopt_initialized) - { - if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring); - __getopt_initialized = 1; - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. The later information - is only used when the used in the GNU libc. */ -#ifdef _LIBC -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) -#else -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') -#endif - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return -1; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return -1; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = -1; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - } - - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';') - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - fprintf (stderr, _("\ -%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - nextchar = NULL; - return 'W'; /* Let the application handle it. */ - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == -1) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/src/getopt.h b/src/getopt.h deleted file mode 100644 index 12b7ad56..00000000 --- a/src/getopt.h +++ /dev/null @@ -1,180 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _GETOPT_H - -#ifndef __need_getopt -# define _GETOPT_H 1 -#endif - -/* If __GNU_LIBRARY__ is not already defined, either we are being used - standalone, or this is the first header included in the source file. - If we are being used with glibc, we need to include <features.h>, but - that does not exist if we are standalone. So: if __GNU_LIBRARY__ is - not defined, include <ctype.h>, which will pull in <features.h> for us - if it's from glibc. (Why ctype.h? It's guaranteed to exist and it - doesn't flood the namespace with stuff the way some other headers do.) */ -#if !defined __GNU_LIBRARY__ -# include <ctype.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -#ifndef __need_getopt -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -# if defined __STDC__ && __STDC__ - const char *name; -# else - char *name; -# endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -# define no_argument 0 -# define required_argument 1 -# define optional_argument 2 -#endif /* need getopt */ - - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, `optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in `optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU `getopt'. - - The argument `--' causes premature termination of argument - scanning, explicitly telling `getopt' that there are no more - options. - - If OPTS begins with `--', then non-option arguments are treated as - arguments to the option '\0'. This behavior is specific to the GNU - `getopt'. */ - -#if defined __STDC__ && __STDC__ -# ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int __argc, char *const *__argv, const char *__shortopts); -# else /* not __GNU_LIBRARY__ */ -extern int getopt (); -# endif /* __GNU_LIBRARY__ */ - -# ifndef __need_getopt -extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, - const struct option *__longopts, int *__longind); -extern int getopt_long_only (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only); -# endif -#else /* not __STDC__ */ -extern int getopt (); -# ifndef __need_getopt -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -# endif -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -/* Make sure we later can get all the definitions and declarations. */ -#undef __need_getopt - -#endif /* getopt.h */ diff --git a/src/getopt1.c b/src/getopt1.c deleted file mode 100644 index 3d264f2d..00000000 --- a/src/getopt1.c +++ /dev/null @@ -1,188 +0,0 @@ -/* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "getopt.h" - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include <stdio.h> - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -#include <gnu-versions.h> -#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -#define ELIDE_CODE -#endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include <stdlib.h> -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -#include <stdio.h> - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == -1) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/src/ltdl.c b/src/ltdl.c deleted file mode 100644 index 9cb5887e..00000000 --- a/src/ltdl.c +++ /dev/null @@ -1,1691 +0,0 @@ -/* ltdl.c -- system independent dlopen wrapper - Copyright (C) 1998-2000 Free Software Foundation, Inc. - Originally by Thomas Tanner <tanner@ffii.org> - This file is part of GNU Libtool. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same -distribution terms that you use for the rest of that program. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA -*/ - -#define _LTDL_COMPILE_ - -#if HAVE_CONFIG_H -#include <config.h> -#endif - -#if HAVE_STRING_H -#include <string.h> -#endif - -#if HAVE_STRINGS_H -#include <strings.h> -#endif - -#if HAVE_CTYPE_H -#include <ctype.h> -#endif - -#if HAVE_MALLOC_H -#include <malloc.h> -#endif - -#if HAVE_MEMORY_H -#include <memory.h> -#endif - -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif - -#if HAVE_STDIO_H -#include <stdio.h> -#endif - -#include "ltdl.h" - -#ifdef DLL_EXPORT -# define LTDL_GLOBAL_DATA __declspec(dllexport) -#else -# define LTDL_GLOBAL_DATA -#endif - -/* max. filename length */ -#ifndef LTDL_FILENAME_MAX -#define LTDL_FILENAME_MAX 1024 -#endif - -#undef LTDL_READTEXT_MODE -/* fopen() mode flags for reading a text file */ -#ifdef _WIN32 -#define LTDL_READTEXT_MODE "rt" -#else -#define LTDL_READTEXT_MODE "r" -#endif - -#undef LTDL_SYMBOL_LENGTH -/* This is the maximum symbol size that won't require malloc/free */ -#define LTDL_SYMBOL_LENGTH 128 - -#undef LTDL_SYMBOL_OVERHEAD -/* This accounts for the _LTX_ separator */ -#define LTDL_SYMBOL_OVERHEAD 5 - -static const char objdir[] = LTDL_OBJDIR; -#ifdef LTDL_SHLIB_EXT -static const char shlib_ext[] = LTDL_SHLIB_EXT; -#endif - -static const char unknown_error[] = "unknown error"; -static const char dlopen_not_supported_error[] = "dlopen support not available"; -static const char file_not_found_error[] = "file not found"; -static const char no_symbols_error[] = "no symbols defined"; -static const char cannot_open_error[] = "can't open the module"; -static const char cannot_close_error[] = "can't close the module"; -static const char symbol_error[] = "symbol not found"; -static const char memory_error[] = "not enough memory"; -static const char invalid_handle_error[] = "invalid handle"; -static const char buffer_overflow_error[] = "internal buffer overflow"; -static const char shutdown_error[] = "library already shutdown"; - -#ifndef HAVE_PRELOADED_SYMBOLS -/* If libtool won't define it, we'd better do */ -LTDL_GLOBAL_DATA const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } }; -#endif - -static const char *last_error = 0; - -LTDL_GLOBAL_DATA lt_ptr_t (*lt_dlmalloc) LTDL_PARAMS((size_t size)) = (lt_ptr_t(*)LTDL_PARAMS((size_t)))malloc; -LTDL_GLOBAL_DATA void (*lt_dlfree) LTDL_PARAMS((lt_ptr_t ptr)) = (void(*)LTDL_PARAMS((lt_ptr_t)))free; - -typedef struct lt_dltype_t { - struct lt_dltype_t *next; - const char *sym_prefix; /* prefix for symbols */ - int (*mod_init) LTDL_PARAMS((void)); - int (*mod_exit) LTDL_PARAMS((void)); - int (*lib_open) LTDL_PARAMS((lt_dlhandle handle, const char *filename)); - int (*lib_close) LTDL_PARAMS((lt_dlhandle handle)); - lt_ptr_t (*find_sym) LTDL_PARAMS((lt_dlhandle handle, const char *symbol)); -} lt_dltype_t; - -#define LTDL_TYPE_TOP 0 - -typedef struct lt_dlhandle_t { - struct lt_dlhandle_t *next; - lt_dltype_t *type; /* dlopening interface */ - lt_dlinfo info; - int depcount; /* number of dependencies */ - lt_dlhandle *deplibs; /* dependencies */ - lt_ptr_t handle; /* system handle */ - lt_ptr_t system; /* system specific data */ - lt_ptr_t app_private; /* application private data */ -} lt_dlhandle_t; - -#undef strdup -#define strdup xstrdup - -static inline char * -strdup(str) - const char *str; -{ - char *tmp; - - if (!str) - return 0; - tmp = (char*) lt_dlmalloc(strlen(str)+1); - if (tmp) - strcpy(tmp, str); - return tmp; -} - -#if ! HAVE_STRCHR - -# if HAVE_INDEX - -# define strchr index - -# else - -# define strchr xstrchr - -static inline const char* -strchr(str, ch) - const char *str; - int ch; -{ - const char *p; - - for (p = str; *p != (char)ch && *p != '\0'; p++) - /*NOWORK*/; - - return (*p == (char)ch) ? p : 0; -} - -# endif - -#endif - -#if ! HAVE_STRRCHR - -# if HAVE_RINDEX - -# define strrchr rindex - -# else - -# define strrchr xstrrchr - -static inline const char* -strrchr(str, ch) - const char *str; - int ch; -{ - const char *p; - - for (p = str; *p != '\0'; p++) - /*NOWORK*/; - - while (*p != (char)ch && p >= str) - p--; - - return (*p == (char)ch) ? p : 0; -} - -# endif - -#endif - -#if HAVE_LIBDL - -/* dynamic linking with dlopen/dlsym */ - -#if HAVE_DLFCN_H -# include <dlfcn.h> -#endif - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -static int -sys_dl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = dlopen(filename, LTDL_GLOBAL | LTDL_LAZY_OR_NOW); - if (!handle->handle) { -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = cannot_open_error; -#endif - return 1; - } - return 0; -} - -static int -sys_dl_close (handle) - lt_dlhandle handle; -{ - if (dlclose(handle->handle) != 0) { -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = cannot_close_error; -#endif - return 1; - } - return 0; -} - -static lt_ptr_t -sys_dl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = dlsym(handle->handle, symbol); - - if (!address) -#if HAVE_DLERROR - last_error = dlerror(); -#else - last_error = symbol_error; -#endif - return address; -} - -static -lt_dltype_t -#ifdef NEED_USCORE -sys_dl = { LTDL_TYPE_TOP, "_", sys_dl_init, sys_dl_exit, - sys_dl_open, sys_dl_close, sys_dl_sym }; -#else -sys_dl = { LTDL_TYPE_TOP, 0, sys_dl_init, sys_dl_exit, - sys_dl_open, sys_dl_close, sys_dl_sym }; -#endif - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_dl - -#endif - -#if HAVE_SHL_LOAD - -/* dynamic linking with shl_load (HP-UX) (comments from gmodule) */ - -#ifdef HAVE_DL_H -#include <dl.h> -#endif - -/* some flags are missing on some systems, so we provide - * harmless defaults. - * - * Mandatory: - * BIND_IMMEDIATE - Resolve symbol references when the library is loaded. - * BIND_DEFERRED - Delay code symbol resolution until actual reference. - * - * Optionally: - * BIND_FIRST - Place the library at the head of the symbol search order. - * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all unsatisfied - * symbols as fatal. This flag allows binding of unsatisfied code - * symbols to be deferred until use. - * [Perl: For certain libraries, like DCE, deferred binding often - * causes run time problems. Adding BIND_NONFATAL to BIND_IMMEDIATE - * still allows unresolved references in situations like this.] - * BIND_NOSTART - Do not call the initializer for the shared library when the - * library is loaded, nor on a future call to shl_unload(). - * BIND_VERBOSE - Print verbose messages concerning possible unsatisfied symbols. - * - * hp9000s700/hp9000s800: - * BIND_RESTRICTED - Restrict symbols visible by the library to those present at - * library load time. - * DYNAMIC_PATH - Allow the loader to dynamically search for the library specified - * by the path argument. - */ - -#ifndef DYNAMIC_PATH -#define DYNAMIC_PATH 0 -#endif /* DYNAMIC_PATH */ -#ifndef BIND_RESTRICTED -#define BIND_RESTRICTED 0 -#endif /* BIND_RESTRICTED */ - -#define LTDL_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH) - -static int -sys_shl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_shl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_shl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = shl_load(filename, LTDL_BIND_FLAGS, 0L); - if (!handle->handle) { - last_error = cannot_open_error; - return 1; - } - return 0; -} - -static int -sys_shl_close (handle) - lt_dlhandle handle; -{ - if (shl_unload((shl_t) (handle->handle)) != 0) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_shl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address; - - if (handle->handle && shl_findsym((shl_t*) &(handle->handle), - symbol, TYPE_UNDEFINED, &address) == 0) - if (address) - return address; - last_error = symbol_error; - return 0; -} - -static -lt_dltype_t -sys_shl = { LTDL_TYPE_TOP, 0, sys_shl_init, sys_shl_exit, - sys_shl_open, sys_shl_close, sys_shl_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_shl - -#endif - -#if HAVE_DLD - -/* dynamic linking with dld */ - -#if HAVE_DLD_H -#include <dld.h> -#endif - -static int -sys_dld_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dld_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_dld_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - handle->handle = strdup(filename); - if (!handle->handle) { - last_error = memory_error; - return 1; - } - if (dld_link(filename) != 0) { - last_error = cannot_open_error; - lt_dlfree(handle->handle); - return 1; - } - return 0; -} - -static int -sys_dld_close (handle) - lt_dlhandle handle; -{ - if (dld_unlink_by_file((char*)(handle->handle), 1) != 0) { - last_error = cannot_close_error; - return 1; - } - lt_dlfree(handle->filename); - return 0; -} - -static lt_ptr_t -sys_dld_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = dld_get_func(symbol); - - if (!address) - last_error = symbol_error; - return address; -} - -static -lt_dltype_t -sys_dld = { LTDL_TYPE_TOP, 0, sys_dld_init, sys_dld_exit, - sys_dld_open, sys_dld_close, sys_dld_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_dld - -#endif - -#ifdef _WIN32 - -/* dynamic linking for Win32 */ - -#include <windows.h> - -static int -sys_wll_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_wll_exit LTDL_PARAMS((void)) -{ - return 0; -} - -/* Forward declaration; required to implement handle search below. */ -static lt_dlhandle handles; - -static int -sys_wll_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - lt_dlhandle cur; - char *searchname = NULL; - char *ext = strrchr(filename, '.'); - - if (ext) { - /* FILENAME already has an extension. */ - searchname = strdup(filename); - } else { - /* Append a `.' to stop Windows from adding an - implicit `.dll' extension. */ - searchname = (char*)lt_dlmalloc(2+ strlen(filename)); - strcpy(searchname, filename); - strcat(searchname, "."); - } - - handle->handle = LoadLibrary(searchname); - lt_dlfree(searchname); - - /* libltdl expects this function to fail if it is unable - to physically load the library. Sadly, LoadLibrary - will search the loaded libraries for a match and return - one of them if the path search load fails. - - We check whether LoadLibrary is returning a handle to - an already loaded module, and simulate failure if we - find one. */ - cur = handles; - while (cur) { - if (!cur->handle) { - cur = 0; - break; - } - if (cur->handle == handle->handle) - break; - cur = cur->next; - } - - if (cur || !handle->handle) { - last_error = cannot_open_error; - return 1; - } - - return 0; -} - -static int -sys_wll_close (handle) - lt_dlhandle handle; -{ - if (FreeLibrary(handle->handle) == 0) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_wll_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = GetProcAddress(handle->handle, symbol); - - if (!address) - last_error = symbol_error; - return address; -} - -static -lt_dltype_t -sys_wll = { LTDL_TYPE_TOP, 0, sys_wll_init, sys_wll_exit, - sys_wll_open, sys_wll_close, sys_wll_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_wll - -#endif - -#ifdef __BEOS__ - -/* dynamic linking for BeOS */ - -#include <kernel/image.h> - -static int -sys_bedl_init LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_bedl_exit LTDL_PARAMS((void)) -{ - return 0; -} - -static int -sys_bedl_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - image_id image = 0; - - if (filename) { - image = load_add_on(filename); - } else { - image_info info; - int32 cookie = 0; - if (get_next_image_info(0, &cookie, &info) == B_OK) - image = load_add_on(info.name); - } - if (image <= 0) { - last_error = cannot_open_error; - return 1; - } - handle->handle = (void*) image; - return 0; -} - -static int -sys_bedl_close (handle) - lt_dlhandle handle; -{ - if (unload_add_on((image_id)handle->handle) != B_OK) { - last_error = cannot_close_error; - return 1; - } - return 0; -} - -static lt_ptr_t -sys_bedl_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_ptr_t address = 0; - image_id image = (image_id)handle->handle; - - if (get_image_symbol(image, symbol, B_SYMBOL_TYPE_ANY, - &address) != B_OK) { - last_error = symbol_error; - return 0; - } - return address; -} - -static -lt_dltype_t -sys_bedl = { LTDL_TYPE_TOP, 0, sys_bedl_init, sys_bedl_exit, - sys_bedl_open, sys_bedl_close, sys_bedl_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &sys_bedl - -#endif - -/* emulate dynamic linking using preloaded_symbols */ - -typedef struct lt_dlsymlists_t { - struct lt_dlsymlists_t *next; - const lt_dlsymlist *syms; -} lt_dlsymlists_t; - -static const lt_dlsymlist *default_preloaded_symbols = 0; -static lt_dlsymlists_t *preloaded_symbols = 0; - -static int -presym_init LTDL_PARAMS((void)) -{ - preloaded_symbols = 0; - if (default_preloaded_symbols) - return lt_dlpreload(default_preloaded_symbols); - return 0; -} - -static int -presym_free_symlists LTDL_PARAMS((void)) -{ - lt_dlsymlists_t *lists = preloaded_symbols; - - while (lists) { - lt_dlsymlists_t *tmp = lists; - - lists = lists->next; - lt_dlfree(tmp); - } - preloaded_symbols = 0; - return 0; -} - -static int -presym_exit LTDL_PARAMS((void)) -{ - presym_free_symlists(); - return 0; -} - -static int -presym_add_symlist (preloaded) - const lt_dlsymlist *preloaded; -{ - lt_dlsymlists_t *tmp; - lt_dlsymlists_t *lists = preloaded_symbols; - - while (lists) { - if (lists->syms == preloaded) - return 0; - lists = lists->next; - } - - tmp = (lt_dlsymlists_t*) lt_dlmalloc(sizeof(lt_dlsymlists_t)); - if (!tmp) { - last_error = memory_error; - return 1; - } - tmp->syms = preloaded; - tmp->next = 0; - if (!preloaded_symbols) - preloaded_symbols = tmp; - else { - /* append to the end */ - lists = preloaded_symbols; - while (lists->next) - lists = lists->next; - lists->next = tmp; - } - return 0; -} - -static int -presym_open (handle, filename) - lt_dlhandle handle; - const char *filename; -{ - lt_dlsymlists_t *lists = preloaded_symbols; - - if (!lists) { - last_error = no_symbols_error; - return 1; - } - if (!filename) - filename = "@PROGRAM@"; - while (lists) { - const lt_dlsymlist *syms = lists->syms; - - while (syms->name) { - if (!syms->address && - strcmp(syms->name, filename) == 0) { - handle->handle = (lt_ptr_t) syms; - return 0; - } - syms++; - } - lists = lists->next; - } - last_error = file_not_found_error; - return 1; -} - -static int -presym_close (handle) - lt_dlhandle handle; -{ - /* Just to silence gcc -Wall */ - handle = 0; - return 0; -} - -static lt_ptr_t -presym_sym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - lt_dlsymlist *syms = (lt_dlsymlist*)(handle->handle); - - syms++; - while (syms->address) { - if (strcmp(syms->name, symbol) == 0) - return syms->address; - syms++; - } - last_error = symbol_error; - return 0; -} - -static -lt_dltype_t -presym = { LTDL_TYPE_TOP, 0, presym_init, presym_exit, - presym_open, presym_close, presym_sym }; - -#undef LTDL_TYPE_TOP -#define LTDL_TYPE_TOP &presym - -static char *user_search_path = 0; -static lt_dlhandle handles = 0; -static int initialized = 0; - -static lt_dltype_t *types = LTDL_TYPE_TOP; -#undef LTDL_TYPE_TOP - -int -lt_dlinit LTDL_PARAMS((void)) -{ - /* initialize libltdl */ - lt_dltype_t **type = &types; - int typecount = 0; - - if (initialized) { /* Initialize only at first call. */ - initialized++; - return 0; - } - handles = 0; - user_search_path = 0; /* empty search path */ - - while (*type) { - if ((*type)->mod_init()) - *type = (*type)->next; /* Remove it from the list */ - else { - type = &(*type)->next; /* Keep it */ - typecount++; - } - } - if (typecount == 0) { - last_error = dlopen_not_supported_error; - return 1; - } - last_error = 0; - initialized = 1; - return 0; -} - -int -lt_dlpreload (preloaded) - const lt_dlsymlist *preloaded; -{ - if (preloaded) - return presym_add_symlist(preloaded); - presym_free_symlists(); - if (default_preloaded_symbols) - return lt_dlpreload(default_preloaded_symbols); - return 0; -} - -int -lt_dlpreload_default (preloaded) - const lt_dlsymlist *preloaded; -{ - default_preloaded_symbols = preloaded; - return 0; -} - -int -lt_dlexit LTDL_PARAMS((void)) -{ - /* shut down libltdl */ - lt_dltype_t *type = types; - int errors; - - if (!initialized) { - last_error = shutdown_error; - return 1; - } - if (initialized != 1) { /* shut down only at last call. */ - initialized--; - return 0; - } - /* close all modules */ - errors = 0; - while (handles) { - /* FIXME: what if a module depends on another one? */ - if (lt_dlclose(handles)) - errors++; - } - initialized = 0; - while (type) { - if (type->mod_exit()) - errors++; - type = type->next; - } - return errors; -} - -static int -tryall_dlopen (handle, filename) - lt_dlhandle *handle; - const char *filename; -{ - lt_dlhandle cur; - lt_dltype_t *type = types; - const char *saved_error = last_error; - - /* check whether the module was already opened */ - cur = handles; - while (cur) { - /* try to dlopen the program itself? */ - if (!cur->info.filename && !filename) - break; - if (cur->info.filename && filename && - strcmp(cur->info.filename, filename) == 0) - break; - cur = cur->next; - } - if (cur) { - cur->info.ref_count++; - *handle = cur; - return 0; - } - - cur = *handle; - if (filename) { - cur->info.filename = strdup(filename); - if (!cur->info.filename) { - last_error = memory_error; - return 1; - } - } else - cur->info.filename = 0; - while (type) { - if (type->lib_open(cur, filename) == 0) - break; - type = type->next; - } - if (!type) { - if (cur->info.filename) - lt_dlfree(cur->info.filename); - return 1; - } - cur->type = type; - last_error = saved_error; - return 0; -} - -static int -find_module (handle, dir, libdir, dlname, old_name, installed) - lt_dlhandle *handle; - const char *dir; - const char *libdir; - const char *dlname; - const char *old_name; - int installed; -{ - int error; - char *filename; - /* try to open the old library first; if it was dlpreopened, - we want the preopened version of it, even if a dlopenable - module is available */ - if (old_name && tryall_dlopen(handle, old_name) == 0) - return 0; - /* try to open the dynamic library */ - if (dlname) { - /* try to open the installed module */ - if (installed && libdir) { - filename = (char*) - lt_dlmalloc(strlen(libdir)+1+strlen(dlname)+1); - if (!filename) { - last_error = memory_error; - return 1; - } - sprintf (filename, "%s/%s", libdir, dlname); - error = tryall_dlopen(handle, filename) != 0; - lt_dlfree(filename); - if (!error) - return 0; - } - /* try to open the not-installed module */ - if (!installed) { - filename = (char*) - lt_dlmalloc((dir ? strlen(dir) : 0) - + strlen(objdir) + strlen(dlname) + 1); - if (!filename) { - last_error = memory_error; - return 1; - } - if (dir) - strcpy(filename, dir); - else - *filename = 0; - strcat(filename, objdir); - strcat(filename, dlname); - - error = tryall_dlopen(handle, filename) != 0; - lt_dlfree(filename); - if (!error) - return 0; - } - /* maybe it was moved to another directory */ - { - filename = (char*) - lt_dlmalloc((dir ? strlen(dir) : 0) - + strlen(dlname) + 1); - if (dir) - strcpy(filename, dir); - else - *filename = 0; - strcat(filename, dlname); - error = tryall_dlopen(handle, filename) != 0; - lt_dlfree(filename); - if (!error) - return 0; - } - } - last_error = file_not_found_error; - return 1; -} - -static char* -canonicalize_path (path) - const char *path; -{ - char *canonical = NULL; - - if (path && *path) { - char *ptr = strdup (path); - canonical = ptr; -#ifdef LTDL_DIRSEP_CHAR - /* Avoid this overhead where '/' is the only separator. */ - while (ptr = strchr (ptr, LTDL_DIRSEP_CHAR)) - *ptr++ = '/'; -#endif - } - - return canonical; -} - -static lt_ptr_t -find_file (basename, search_path, pdir, handle) - const char *basename; - const char *search_path; - char **pdir; - lt_dlhandle *handle; -{ - /* when handle != NULL search a library, otherwise a file */ - /* return NULL on failure, otherwise the file/handle */ - - lt_ptr_t result = 0; - char *filename = 0; - int filenamesize = 0; - int lenbase = strlen(basename); - char *next = 0; - - if (!search_path || !*search_path) { - last_error = file_not_found_error; - return 0; - } - next = canonicalize_path (search_path); - if (!next) { - last_error = memory_error; - goto cleanup; - } - while (next) { - int lendir; - char *cur = next; - - next = strchr(cur, LTDL_PATHSEP_CHAR); - if (!next) - next = cur + strlen(cur); - lendir = next - cur; - if (*next == LTDL_PATHSEP_CHAR) - ++next; - else - next = 0; - if (lendir == 0) - continue; - if (lendir + 1 + lenbase >= filenamesize) { - if (filename) - lt_dlfree(filename); - filenamesize = lendir + 1 + lenbase + 1; - filename = (char*) lt_dlmalloc(filenamesize); - if (!filename) { - last_error = memory_error; - goto cleanup; - } - } - strncpy(filename, cur, lendir); - if (filename[lendir-1] != '/') - filename[lendir++] = '/'; - strcpy(filename+lendir, basename); - if (handle) { - if (tryall_dlopen(handle, filename) == 0) { - result = (lt_ptr_t) handle; - goto cleanup; - } - } else { - FILE *file = fopen(filename, LTDL_READTEXT_MODE); - if (file) { - if (*pdir) - lt_dlfree(*pdir); - filename[lendir] = '\0'; - *pdir = strdup(filename); - if (!*pdir) { - /* We could have even avoided the - strdup, but there would be some - memory overhead. */ - *pdir = filename; - } else - filename = NULL; - result = (lt_ptr_t) file; - goto cleanup; - } - } - } - last_error = file_not_found_error; -cleanup: - if (filename) - lt_dlfree(filename); - lt_dlfree(next); - return result; -} - -static int -load_deplibs(handle, deplibs) - lt_dlhandle handle; - const char *deplibs; -{ - /* FIXME: load deplibs */ - handle->depcount = 0; - handle->deplibs = 0; - /* Just to silence gcc -Wall */ - deplibs = 0; - return 0; -} - -static int -unload_deplibs(handle) - lt_dlhandle handle; -{ - /* FIXME: unload deplibs */ - /* Just to silence gcc -Wall */ - handle = 0; - return 0; -} - -static inline int -trim (dest, str) - char **dest; - const char *str; -{ - /* remove the leading and trailing "'" from str - and store the result in dest */ - char *tmp; - const char *end = strrchr(str, '\''); - int len = strlen(str); - - if (*dest) - lt_dlfree(*dest); - if (len > 3 && str[0] == '\'') { - tmp = (char*) lt_dlmalloc(end - str); - if (!tmp) { - last_error = memory_error; - return 1; - } - strncpy(tmp, &str[1], (end - str) - 1); - tmp[len-3] = '\0'; - *dest = tmp; - } else - *dest = 0; - return 0; -} - -static inline int -free_vars( dlname, oldname, libdir, deplibs) - char *dlname; - char *oldname; - char *libdir; - char *deplibs; -{ - if (dlname) - lt_dlfree(dlname); - if (oldname) - lt_dlfree(oldname); - if (libdir) - lt_dlfree(libdir); - if (deplibs) - lt_dlfree(deplibs); - return 0; -} - -lt_dlhandle -lt_dlopen (filename) - const char *filename; -{ - lt_dlhandle handle = 0, newhandle; - const char *ext; - const char *saved_error = last_error; - char *canonical = 0, *basename = 0, *dir = 0, *name = 0; - - if (!filename) { - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle) { - last_error = memory_error; - return 0; - } - handle->info.ref_count = 0; - handle->depcount = 0; - handle->deplibs = 0; - newhandle = handle; - if (tryall_dlopen(&newhandle, 0) != 0) { - lt_dlfree(handle); - return 0; - } - goto register_handle; - } - canonical = canonicalize_path (filename); - if (!canonical) { - last_error = memory_error; - if (handle) - lt_dlfree(handle); - return 0; - } - basename = strrchr(canonical, '/'); - if (basename) { - basename++; - dir = (char*) lt_dlmalloc(basename - canonical + 1); - if (!dir) { - last_error = memory_error; - handle = 0; - goto cleanup; - } - strncpy(dir, canonical, basename - canonical); - dir[basename - canonical] = '\0'; - } else - basename = canonical; - /* check whether we open a libtool module (.la extension) */ - ext = strrchr(basename, '.'); - if (ext && strcmp(ext, ".la") == 0) { - /* this seems to be a libtool module */ - FILE *file; - int i; - char *dlname = 0, *old_name = 0; - char *libdir = 0, *deplibs = 0; - char *line; - int error = 0; - /* if we can't find the installed flag, it is probably an - installed libtool archive, produced with an old version - of libtool */ - int installed = 1; - - /* extract the module name from the file name */ - name = (char*) lt_dlmalloc(ext - basename + 1); - if (!name) { - last_error = memory_error; - handle = 0; - goto cleanup; - } - /* canonicalize the module name */ - for (i = 0; i < ext - basename; i++) - if (isalnum((int)(basename[i]))) - name[i] = basename[i]; - else - name[i] = '_'; - name[ext - basename] = '\0'; - /* now try to open the .la file */ - file = fopen(filename, LTDL_READTEXT_MODE); - if (!file) - last_error = file_not_found_error; - if (!file && !dir) { - /* try other directories */ - file = (FILE*) find_file(basename, - user_search_path, - &dir, 0); - if (!file) - file = (FILE*) find_file(basename, - getenv("LTDL_LIBRARY_PATH"), - &dir, 0); -#ifdef LTDL_SHLIBPATH_VAR - if (!file) - file = (FILE*) find_file(basename, - getenv(LTDL_SHLIBPATH_VAR), - &dir, 0); -#endif - } - if (!file) { - handle = 0; - goto cleanup; - } - line = (char*) lt_dlmalloc(LTDL_FILENAME_MAX); - if (!line) { - fclose(file); - last_error = memory_error; - handle = 0; - goto cleanup; - } - /* read the .la file */ - while (!feof(file)) { - if (!fgets(line, LTDL_FILENAME_MAX, file)) - break; - if (line[0] == '\n' || line[0] == '#') - continue; -# undef STR_DLNAME -# define STR_DLNAME "dlname=" - if (strncmp(line, STR_DLNAME, - sizeof(STR_DLNAME) - 1) == 0) - error = trim(&dlname, - &line[sizeof(STR_DLNAME) - 1]); - else -# undef STR_OLD_LIBRARY -# define STR_OLD_LIBRARY "old_library=" - if (strncmp(line, STR_OLD_LIBRARY, - sizeof(STR_OLD_LIBRARY) - 1) == 0) - error = trim(&old_name, - &line[sizeof(STR_OLD_LIBRARY) - 1]); - else -# undef STR_LIBDIR -# define STR_LIBDIR "libdir=" - if (strncmp(line, STR_LIBDIR, - sizeof(STR_LIBDIR) - 1) == 0) - error = trim(&libdir, - &line[sizeof(STR_LIBDIR) - 1]); - else -# undef STR_DL_DEPLIBS -# define STR_DL_DEPLIBS "dl_dependency_libs=" - if (strncmp(line, STR_DL_DEPLIBS, - sizeof(STR_DL_DEPLIBS) - 1) == 0) - error = trim(&deplibs, - &line[sizeof(STR_DL_DEPLIBS) - 1]); - else - if (strcmp(line, "installed=yes\n") == 0) - installed = 1; - else - if (strcmp(line, "installed=no\n") == 0) - installed = 0; - if (error) - break; - } - fclose(file); - lt_dlfree(line); - /* allocate the handle */ - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle || error) { - if (handle) - lt_dlfree(handle); - if (!error) - last_error = memory_error; - free_vars(dlname, old_name, libdir, deplibs); - /* handle is already set to 0 */ - goto cleanup; - } - handle->info.ref_count = 0; - if (load_deplibs(handle, deplibs) == 0) { - newhandle = handle; - /* find_module may replace newhandle */ - if (find_module(&newhandle, dir, libdir, - dlname, old_name, installed)) { - unload_deplibs(handle); - error = 1; - } - } else - error = 1; - free_vars(dlname, old_name, libdir, deplibs); - if (error) { - lt_dlfree(handle); - handle = 0; - goto cleanup; - } - if (handle != newhandle) - unload_deplibs(handle); - } else { - /* not a libtool module */ - handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t)); - if (!handle) { - last_error = memory_error; - /* handle is already set to 0 */ - goto cleanup; - } - handle->info.ref_count = 0; - /* non-libtool modules don't have dependencies */ - handle->depcount = 0; - handle->deplibs = 0; - newhandle = handle; - if (tryall_dlopen(&newhandle, filename) - && (dir - || (!find_file(basename, user_search_path, - 0, &newhandle) - && !find_file(basename, - getenv("LTDL_LIBRARY_PATH"), - 0, &newhandle) -#ifdef LTDL_SHLIBPATH_VAR - && !find_file(basename, - getenv(LTDL_SHLIBPATH_VAR), - 0, &newhandle) -#endif - ))) { - lt_dlfree(handle); - handle = 0; - goto cleanup; - } - } -register_handle: - if (newhandle != handle) { - lt_dlfree(handle); - handle = newhandle; - } - if (!handle->info.ref_count) { - handle->info.ref_count = 1; - handle->app_private = 0; - handle->info.name = name; - handle->next = handles; - handles = handle; - name = 0; /* don't free this during `cleanup' */ - } - last_error = saved_error; -cleanup: - if (dir) - lt_dlfree(dir); - if (name) - lt_dlfree(name); - if (canonical) - lt_dlfree(canonical); - return handle; -} - -lt_dlhandle -lt_dlopenext (filename) - const char *filename; -{ - lt_dlhandle handle; - char *tmp; - int len; - const char *saved_error = last_error; - - if (!filename) - return lt_dlopen(filename); - len = strlen(filename); - if (!len) { - last_error = file_not_found_error; - return 0; - } - /* try the normal file name */ - handle = lt_dlopen(filename); - if (handle) - return handle; - /* try "filename.la" */ - tmp = (char*) lt_dlmalloc(len+4); - if (!tmp) { - last_error = memory_error; - return 0; - } - strcpy(tmp, filename); - strcat(tmp, ".la"); - handle = lt_dlopen(tmp); - if (handle) { - last_error = saved_error; - lt_dlfree(tmp); - return handle; - } -#ifdef LTDL_SHLIB_EXT - /* try "filename.EXT" */ - if (strlen(shlib_ext) > 3) { - lt_dlfree(tmp); - tmp = (char*) lt_dlmalloc(len + strlen(shlib_ext) + 1); - if (!tmp) { - last_error = memory_error; - return 0; - } - strcpy(tmp, filename); - } else - tmp[len] = '\0'; - strcat(tmp, shlib_ext); - handle = lt_dlopen(tmp); - if (handle) { - last_error = saved_error; - lt_dlfree(tmp); - return handle; - } -#endif - last_error = file_not_found_error; - lt_dlfree(tmp); - return 0; -} - -int -lt_dlclose (handle) - lt_dlhandle handle; -{ - lt_dlhandle cur, last; - - /* check whether the handle is valid */ - last = cur = handles; - while (cur && handle != cur) { - last = cur; - cur = cur->next; - } - if (!cur) { - last_error = invalid_handle_error; - return 1; - } - handle->info.ref_count--; - if (!handle->info.ref_count) { - int error; - - if (handle != handles) - last->next = handle->next; - else - handles = handle->next; - error = handle->type->lib_close(handle); - error += unload_deplibs(handle); - if (handle->info.filename) - lt_dlfree(handle->info.filename); - if (handle->info.name) - lt_dlfree(handle->info.name); - lt_dlfree(handle); - return error; - } - return 0; -} - -lt_ptr_t -lt_dlsym (handle, symbol) - lt_dlhandle handle; - const char *symbol; -{ - int lensym; - char lsym[LTDL_SYMBOL_LENGTH]; - char *sym; - lt_ptr_t address; - - if (!handle) { - last_error = invalid_handle_error; - return 0; - } - if (!symbol) { - last_error = symbol_error; - return 0; - } - lensym = strlen(symbol); - if (handle->type->sym_prefix) - lensym += strlen(handle->type->sym_prefix); - if (handle->info.name) - lensym += strlen(handle->info.name); - if (lensym + LTDL_SYMBOL_OVERHEAD < LTDL_SYMBOL_LENGTH) - sym = lsym; - else - sym = (char*) lt_dlmalloc(lensym + LTDL_SYMBOL_OVERHEAD + 1); - if (!sym) { - last_error = buffer_overflow_error; - return 0; - } - if (handle->info.name) { - const char *saved_error = last_error; - - /* this is a libtool module */ - if (handle->type->sym_prefix) { - strcpy(sym, handle->type->sym_prefix); - strcat(sym, handle->info.name); - } else - strcpy(sym, handle->info.name); - strcat(sym, "_LTX_"); - strcat(sym, symbol); - /* try "modulename_LTX_symbol" */ - address = handle->type->find_sym(handle, sym); - if (address) { - if (sym != lsym) - lt_dlfree(sym); - return address; - } - last_error = saved_error; - } - /* otherwise try "symbol" */ - if (handle->type->sym_prefix) { - strcpy(sym, handle->type->sym_prefix); - strcat(sym, symbol); - } else - strcpy(sym, symbol); - address = handle->type->find_sym(handle, sym); - if (sym != lsym) - lt_dlfree(sym); - return address; -} - -const char * -lt_dlerror LTDL_PARAMS((void)) -{ - const char *error = last_error; - - last_error = 0; - return error; -} - -int -lt_dladdsearchdir (search_dir) - const char *search_dir; -{ - if (!search_dir || !strlen(search_dir)) - return 0; - if (!user_search_path) { - user_search_path = strdup(search_dir); - if (!user_search_path) { - last_error = memory_error; - return 1; - } - } else { - char *new_search_path = (char*) - lt_dlmalloc(strlen(user_search_path) + - strlen(search_dir) + 2); /* ':' + '\0' == 2 */ - if (!new_search_path) { - last_error = memory_error; - return 1; - } - sprintf (new_search_path, "%s%c%s", user_search_path, - LTDL_PATHSEP_CHAR, search_dir); - lt_dlfree(user_search_path); - user_search_path = new_search_path; - } - return 0; -} - -int -lt_dlsetsearchpath (search_path) - const char *search_path; -{ - if (user_search_path) - lt_dlfree(user_search_path); - user_search_path = 0; /* reset the search path */ - if (!search_path || !strlen(search_path)) - return 0; - user_search_path = strdup(search_path); - if (!user_search_path) - return 1; - return 0; -} - -const char * -lt_dlgetsearchpath LTDL_PARAMS((void)) -{ - return user_search_path; -} - -int -lt_dlsetdata (handle, data) - lt_dlhandle handle; - lt_ptr_t data; -{ - if (!handle) { - last_error = invalid_handle_error; - return 1; - } - handle->app_private = data; - return 0; -} - -lt_ptr_t -lt_dlgetdata (handle) - lt_dlhandle handle; -{ - if (!handle) { - last_error = invalid_handle_error; - return 0; - } - return handle->app_private; -} - -const lt_dlinfo * -lt_dlgetinfo (handle) - lt_dlhandle handle; -{ - if (!handle) { - last_error = invalid_handle_error; - return 0; - } - return &(handle->info); -} diff --git a/src/ltdl.h b/src/ltdl.h deleted file mode 100644 index 0fafa207..00000000 --- a/src/ltdl.h +++ /dev/null @@ -1,141 +0,0 @@ -/* ltdl.h -- generic dlopen functions - Copyright (C) 1998-2000 Free Software Foundation, Inc. - Originally by Thomas Tanner <tanner@ffii.org> - This file is part of GNU Libtool. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same -distribution terms that you use for the rest of that program. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA -*/ - -/* Only include this header file once. */ -#ifndef _LTDL_H_ -#define _LTDL_H_ 1 - -/* Canonicalise Windows and Cygwin recognition macros. */ -#ifdef __CYGWIN32__ -# ifndef __CYGWIN__ -# define __CYGWIN__ __CYGWIN32__ -# endif -#endif -#ifdef _WIN32 -# ifndef WIN32 -# define WIN32 _WIN32 -# endif -#endif - -/* __BEGIN_DECLS should be used at the beginning of your declarations, - so that C++ compilers don't mangle their names. Use __END_DECLS at - the end of C declarations. */ -#undef __BEGIN_DECLS -#undef __END_DECLS -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS /* empty */ -# define __END_DECLS /* empty */ -#endif - -/* LTDL_PARAMS is a macro used to wrap function prototypes, so that compilers - that don't understand ANSI C prototypes still work, and ANSI C - compilers can issue warnings about type mismatches. */ -#undef LTDL_PARAMS -#undef lt_ptr_t -#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus) -# define LTDL_PARAMS(protos) protos -# define lt_ptr_t void* -#else -# define LTDL_PARAMS(protos) () -# define lt_ptr_t char* -#endif - -#ifdef WIN32 -# ifndef __CYGWIN__ -/* LTDL_DIRSEP_CHAR is accepted *in addition* to '/' as a directory - separator when it is set. */ -# define LTDL_DIRSEP_CHAR '\\' -# define LTDL_PATHSEP_CHAR ';' -# endif -#endif -#ifndef LTDL_PATHSEP_CHAR -# define LTDL_PATHSEP_CHAR ':' -#endif - -/* DLL building support on win32 hosts; mostly to workaround their - ridiculous implementation of data symbol exporting. */ -#ifndef LTDL_SCOPE -# ifdef _WIN32 -# ifdef DLL_EXPORT /* defined by libtool (if required) */ -# define LTDL_SCOPE __declspec(dllexport) -# endif -# ifdef LIBLTDL_DLL_IMPORT /* define if linking with this dll */ -# define LTDL_SCOPE extern __declspec(dllimport) -# endif -# endif -# ifndef LTDL_SCOPE /* static linking or !_WIN32 */ -# define LTDL_SCOPE extern -# endif -#endif - -#include <stdlib.h> - -#ifdef _LTDL_COMPILE_ -typedef struct lt_dlhandle_t *lt_dlhandle; -#else -typedef lt_ptr_t lt_dlhandle; -#endif - -typedef struct { - const char *name; - lt_ptr_t address; -} lt_dlsymlist; - -typedef struct { - char *filename; /* file name */ - char *name; /* module name */ - int ref_count; /* reference count */ -} lt_dlinfo; - -__BEGIN_DECLS -extern int lt_dlinit LTDL_PARAMS((void)); -extern int lt_dlpreload LTDL_PARAMS((const lt_dlsymlist *preloaded)); -extern int lt_dlpreload_default LTDL_PARAMS((const lt_dlsymlist *preloaded)); -extern int lt_dlexit LTDL_PARAMS((void)); -extern lt_dlhandle lt_dlopen LTDL_PARAMS((const char *filename)); -extern lt_dlhandle lt_dlopenext LTDL_PARAMS((const char *filename)); -extern int lt_dlclose LTDL_PARAMS((lt_dlhandle handle)); -extern lt_ptr_t lt_dlsym LTDL_PARAMS((lt_dlhandle handle, const char *name)); -extern const char *lt_dlerror LTDL_PARAMS((void)); -extern int lt_dladdsearchdir LTDL_PARAMS((const char *search_dir)); -extern int lt_dlsetsearchpath LTDL_PARAMS((const char *search_path)); -extern const char *lt_dlgetsearchpath LTDL_PARAMS((void)); -extern int lt_dlsetdata LTDL_PARAMS((lt_dlhandle handle, lt_ptr_t data)); -extern lt_ptr_t lt_dlgetdata LTDL_PARAMS((lt_dlhandle handle)); -extern const lt_dlinfo *lt_dlgetinfo LTDL_PARAMS((lt_dlhandle handle)); - -LTDL_SCOPE const lt_dlsymlist lt_preloaded_symbols[]; -#define LTDL_SET_PRELOADED_SYMBOLS() lt_dlpreload_default(lt_preloaded_symbols) - -LTDL_SCOPE lt_ptr_t (*lt_dlmalloc)LTDL_PARAMS((size_t size)); -LTDL_SCOPE void (*lt_dlfree)LTDL_PARAMS((lt_ptr_t ptr)); - -__END_DECLS - -#endif /* !_LTDL_H_ */ diff --git a/src/module.c b/src/module.c deleted file mode 100644 index fb42884c..00000000 --- a/src/module.c +++ /dev/null @@ -1,206 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "m4.h" - -#ifdef WITH_MODULES - -#define DEBUG_MODULES -#undef DEBUG_MODULES - -/* - * This file implements dynamic modules in GNU m4. A module is a - * compiled shared object, that can be linked into GNU m4 at run - * time. Information about creating modules is in ../modules/README. - * - * The current implementation uses dlopen(3). To enable this - * experimental feature give configure the `--with-modules' switch. - * This implementation is only tested on Linux. - * - * A m4 module need only define one external symbol, called - * `m4_macro_table'. This symbol should point to a table of `struct - * builtin' exactly as the one in builtin.c. This table is pushed on a - * list of builtin tables and each definition therein is added to the - * symbol table. - * - * The code implementing loadable modules is modest. It is divided - * between the files path.c (search in module path), builtin.c (user - * interface and support for multiple builtin tables) and this file (OS - * dependant routines). - * - * To load a module, use `loadmodule(modulename.so)', where .so is the - * normal extention for shared object files. The function - * `m4_loadmodule' calls module_load() in this file, which uses - * module_search() in path.c to find the module in the module search - * path. This path is initialised from the environment variable - * M4MODPATH, and cannot be modified in any way. Module_search() - * constructs absolute file names and calls module_try_load() in this - * file. This function returns NULL on failure and a non-NULL void* on - * success. If succesful module_search() returns the value of this - * void*, which is a handle for the vm segment mapped. Module_load() - * checks to see if the module is alreay loaded, and if not, retrives - * the symbol `m4_macro_table' and returns it's value to - * m4_loadmodule(). This pointer should be a builtin*, which is - * installed using install_builtin_table(). - * - * When a module is loaded, the function "void m4_init_module(struct - * obstack *obs)" is called, if defined. Any non NULL return value of - * this function will be the expansion of "loadmodule". Before program - * exit, all modules are unloaded and the function "void - * m4_finish_module(void)" is called, if defined. - * - * There is no way to unload a module unless at program exit. It is - * safe to load the same module several times, it has no effect. - **/ - -#include <dlfcn.h> - -/* This list is used to check for repeated loading of the same modules. */ - -struct module_list { - struct module_list *next; - char *modname; - void *handle; -}; - -typedef struct module_list module_list; - -static module_list *modules; - -/* - * Initialisation. Currently the module search path in path.c is - * initialised from M4MODPATH. Only absolute path names are accepted to - * prevent the path search of the dlopen library from finding wrong - * files. - */ -void -module_init (void) -{ - module_env_init (); -} - -/* - * Attempt to load a module with a absolute file name. It is used as a - * callback from module_search() in path.c. - */ -voidstar -module_try_load (const char *modname) -{ - return dlopen (modname, RTLD_NOW); -} - - -/* - * Load a module. Modname can be a absolute file name or, if relative, - * is is searched in the module path. Return value is the value of the - * symbol `m4_macro_table' in the module. The module is unloaded in - * case of error. The builtins from the module are installed in the - * symbol table by the caller, m4_loadmodule() in builtin.c. - */ - -struct builtin * -module_load (const char *modname, struct obstack *obs) -{ - void *handle; - struct module_list *list; - - builtin *btab; - module_init_t *init_func; - - handle = module_search(modname, module_try_load); - if (handle == NULL) - { - M4ERROR ((1, 0, _("Error: cannot find module `%s'"), modname)); - } - - for (list = modules; list != NULL; list = list->next) - if (list->handle == handle) - { -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s handle already seen", modname); -#endif /* DEBUG_MODULES */ - dlclose(handle); - return NULL; - } - - btab = (builtin *) dlsym (handle, "m4_macro_table"); - if (btab == NULL) { -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s no symbol m4_macro_table", modname); -#endif /* DEBUG_MODULES */ - dlclose(handle); - return NULL; - } - - list = xmalloc (sizeof (struct module_list)); - list->next = modules; - list->modname = xstrdup(modname); - list->handle = handle; - modules = list; - -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s loaded ok", modname); -#endif /* DEBUG_MODULES */ - - init_func = (module_init_t *) dlsym (handle, "m4_init_module"); - if (init_func != NULL) - { - (*init_func)(obs); - -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s init hook called", modname); -#endif /* DEBUG_MODULES */ - } - - return btab; -} - -void -module_unload_all(void) -{ - struct module_list *next; - module_finish_t *finish_func; - - while (modules != NULL) - { - finish_func = (module_finish_t *) dlsym (modules->handle, - "m4_finish_module"); - if (finish_func != NULL) - { - (*finish_func)(); - -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s finish hook called", modules->modname); -#endif /* DEBUG_MODULES */ - } - - dlclose(modules->handle); - -#ifdef DEBUG_MODULES - DEBUG_MESSAGE1("module %s unloaded", modules->modname); -#endif /* DEBUG_MODULES */ - - next = modules->next; - xfree(modules); - modules = next; - } -} - - - -#endif /* WITH_MODULES */ diff --git a/src/numb.c b/src/numb.c deleted file mode 100644 index 8dfa077e..00000000 --- a/src/numb.c +++ /dev/null @@ -1,418 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1995, 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 contains the functions to evaluate integer or multiple - precision expressions for the "eval" macro. - */ - -#include "m4.h" -#include "numb.h" - - -#ifdef WITH_GMP - -eval_t numb_ZERO; -eval_t numb_ONE; - -static int numb_initialised = 0; - -void -numb_initialise(void) { - if (numb_initialised) - return; - - numb_init(numb_ZERO); - numb_set_si(&numb_ZERO,0); - - numb_init(numb_ONE); - numb_set_si(&numb_ONE,1); - - numb_initialised = 1; -} - -void -numb_obstack(struct obstack *obs, const eval_t value, - const int radix, int min) -{ - const char *s; - - mpz_t i; - mpz_init(i); - - mpq_get_num(i,value); - s = mpz_get_str((char *)0, radix, i); - - if (*s == '-') - { - obstack_1grow (obs, '-'); - min--; - s++; - } - for (min -= strlen (s); --min >= 0;) - obstack_1grow (obs, '0'); - - obstack_grow (obs, s, strlen (s)); - - mpq_get_den(i,value); - if (mpz_cmp_si(i,(long)1)!=0) { - obstack_1grow (obs, ':'); - s = mpz_get_str((char *)0, radix, i); - obstack_grow (obs, s, strlen (s)); - } - - mpz_clear(i); -} - -#define NOISY "" -#define QUIET (char *)0 - -static void -mpq2mpz(mpz_t z, const eval_t q, const char *noisily) -{ - if (noisily && mpz_cmp_si(mpq_denref(q),(long)1)!=0) { - M4ERROR((warning_status, 0, - _("Loss of precision in eval: %s"), - noisily)); - } - mpz_div(z,mpq_numref(q),mpq_denref(q)); -} - -static void -mpz2mpq(eval_t q, const mpz_t z) -{ - mpq_set_si(q,(long)0,(unsigned long)1); - mpq_set_num(q,z); -} - -void -numb_divide(eval_t *x, const eval_t *y) -{ - mpq_t qres; - mpz_t zres; - - mpq_init(qres); - mpq_div(qres,*x,*y); - - mpz_init(zres); - mpz_div(zres,mpq_numref(qres),mpq_denref(qres)); - mpq_clear(qres); - - mpz2mpq(*x,zres); - mpz_clear(zres); -} - -void -numb_modulo(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - mpz_mod(res,xx,yy); - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_and(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - mpz_and(res,xx,yy); - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_ior(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - mpz_ior(res,xx,yy); - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_eor(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - -#if 0 - mpz_xor(res,xx,yy); -#else /* 0 */ - /* a^b = (a|b) & !(a&b) */ - { - mpz_t and_ab, ior_ab, nand_ab; - - mpz_init(ior_ab); - mpz_ior(ior_ab,xx,yy); - - mpz_init(and_ab); - mpz_and(and_ab,xx,yy); - - mpz_init(nand_ab); - mpz_com(nand_ab,and_ab); - - mpz_and(res,ior_ab,nand_ab); - - mpz_clear(and_ab); - mpz_clear(ior_ab); - mpz_clear(nand_ab); - } -#endif /* 0 */ - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_not(eval_t *x) -{ - mpz_t xx, res; - - /* x should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(res); - mpz_com(res,xx); - - mpz_clear(xx); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_lshift(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - { /* bug: need to determine if y is too big or negative */ - long int exp = mpz_get_si(yy); - if (exp >= 0) { - mpz_mul_2exp(res,xx,(unsigned)exp); - } else { - mpz_div_2exp(res,xx,(unsigned)-exp); - } - } - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - -void -numb_rshift(eval_t *x, const eval_t *y) -{ - mpz_t xx, yy, res; - - /* x should be integral */ - /* y should be integral */ - - mpz_init(xx); - mpq2mpz(xx,*x,NOISY); - - mpz_init(yy); - mpq2mpz(yy,*y,NOISY); - - mpz_init(res); - { /* bug: need to determine if y is too big or negative */ - long int exp = mpz_get_si(yy); - if (exp >= 0) { - mpz_div_2exp(res,xx,(unsigned)exp); - } else { - mpz_mul_2exp(res,xx,(unsigned)-exp); - } - } - - mpz_clear(xx); - mpz_clear(yy); - - mpz2mpq(*x,res); - mpz_clear(res); -} - - -#else /* WITH_GMP */ - -void -numb_initialise(void) -{ - ; -} - - -/*------------------------------------------------------------------------. -| The function ntoa () converts VALUE to a signed ascii representation in | -| radix RADIX. | -`------------------------------------------------------------------------*/ - -/* Digits for number to ascii conversions. */ -static char const ntoa_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz"; - -static const char * -ntoa (eval_t value, int radix) -{ - boolean negative; - ueval_t uvalue; - static char str[256]; - register char *s = &str[sizeof str]; - - *--s = '\0'; - - if (value < 0) - { - negative = TRUE; - uvalue = (ueval_t) -value; - } - else - { - negative = FALSE; - uvalue = (ueval_t) value; - } - - do - { - *--s = ntoa_digits[uvalue % radix]; - uvalue /= radix; - } - while (uvalue > 0); - - if (negative) - *--s = '-'; - return s; -} - -void -numb_obstack(struct obstack *obs, const eval_t value, - const int radix, int min) -{ - const char *s = ntoa (value, radix); - - if (*s == '-') - { - obstack_1grow (obs, '-'); - min--; - s++; - } - for (min -= strlen (s); --min >= 0;) - obstack_1grow (obs, '0'); - - obstack_grow (obs, s, strlen (s)); -} - - -#endif /* WITH_GMP */ - - -void -numb_pow (eval_t *x, const eval_t *y) -{ - /* y should be integral */ - - eval_t ans, yy; - - numb_init(ans); - numb_set_si(&ans,1); - - numb_init(yy); - numb_set(yy,*y); - - if (numb_negativep(yy)) { - numb_invert(*x); - numb_negate(yy); - } - - while (numb_positivep(yy)) { - numb_times(ans,*x); - numb_decr(yy); - } - numb_set(*x,ans); - - numb_fini(ans); - numb_fini(yy); -} diff --git a/src/numb.h b/src/numb.h deleted file mode 100644 index 2fa02a58..00000000 --- a/src/numb.h +++ /dev/null @@ -1,156 +0,0 @@ -/* GNU m4 -- A simple macro processor - Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "m4.h" - -#ifdef WITH_GMP -#define NUMB_MP 1 -#endif - -#ifdef WITH_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) - -#define numb_init(x) mpq_init((x)) -#define numb_fini(x) mpq_clear((x)) - -#define numb_zerop(x) (mpq_cmp(x,numb_ZERO) == 0) -#define numb_positivep(x) (mpq_cmp(x,numb_ZERO) > 0) -#define numb_negativep(x) (mpq_cmp(x,numb_ZERO) < 0) - -#define numb_eq(x,y) numb_set(x,mpq_cmp(x,y)==0? numb_ONE: numb_ZERO) -#define numb_ne(x,y) numb_set(x,mpq_cmp(x,y)!=0? numb_ONE: numb_ZERO) -#define numb_lt(x,y) numb_set(x,mpq_cmp(x,y)< 0? numb_ONE: numb_ZERO) -#define numb_le(x,y) numb_set(x,mpq_cmp(x,y)<=0? numb_ONE: numb_ZERO) -#define numb_gt(x,y) numb_set(x,mpq_cmp(x,y)> 0? numb_ONE: numb_ZERO) -#define numb_ge(x,y) numb_set(x,mpq_cmp(x,y)>=0? numb_ONE: numb_ZERO) - -#define numb_lnot(x) numb_set(x,numb_zerop(x)? numb_ONE: numb_ZERO) -#define numb_lior(x,y) numb_set(x,numb_zerop(x)? y: numb_ONE) -#define numb_land(x,y) numb_set(x,numb_zerop(x)? numb_ZERO: y) - -#define reduce1(f1,x) \ -{ eval_t T; mpq_init(T); f1(T,x); mpq_set(x,T); mpq_clear(T); } -#define reduce2(f2,x,y) \ -{ eval_t T; mpq_init(T); f2(T,(x),(y)); mpq_set((x),T); mpq_clear(T); } - -#define numb_plus(x,y) reduce2(mpq_add,x,y) -#define numb_minus(x,y) reduce2(mpq_sub,x,y) -#define numb_negate(x) reduce1(mpq_neg,x) - -#define numb_times(x,y) reduce2(mpq_mul,x,y) -#define numb_ratio(x,y) reduce2(mpq_div,x,y) -#define numb_invert(x) reduce1(mpq_inv,x) - -#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 */ - -/* eval_t should be at least 32 bits. */ -/* use GNU long long int if available */ -#if defined(SIZEOF_LONG_LONG_INT) && SIZEOF_LONG_LONG_INT > 0 -typedef long long int eval_t; -typedef unsigned long long int ueval_t; -#else -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)) - -#define numb_set(ans,x) ((ans) = x) -#define numb_set_si(ans,si) (*(ans) = int2numb(si)) - -#define numb_init(x) x=((eval_t)0) -#define numb_fini(x) - -#define numb_decr(n) (n) -= 1 - -#define numb_ZERO ((eval_t)0) -#define numb_ONE ((eval_t)1) - -#define numb_zerop(x) ((x) == numb_ZERO) -#define numb_positivep(x) ((x) > numb_ZERO) -#define numb_negativep(x) ((x) < numb_ZERO) - - -#define numb_eq(x,y) ((x) = ((x) == (y))) -#define numb_ne(x,y) ((x) = ((x) != (y))) -#define numb_lt(x,y) ((x) = ((x) < (y))) -#define numb_le(x,y) ((x) = ((x) <= (y))) -#define numb_gt(x,y) ((x) = ((x) > (y))) -#define numb_ge(x,y) ((x) = ((x) >= (y))) - -#define numb_lnot(x) ((x) = (! (x))) -#define numb_lior(x,y) ((x) = ((x) || (y))) -#define numb_land(x,y) ((x) = ((x) && (y))) - -#define numb_not(x) (*(x) = int2numb(~numb2int(*(x)))) -#define numb_eor(x,y) (*(x) = int2numb(numb2int(*(x)) ^ numb2int(*(y)))) -#define numb_ior(x,y) (*(x) = int2numb(numb2int(*(x)) | numb2int(*(y)))) -#define numb_and(x,y) (*(x) = int2numb(numb2int(*(x)) & numb2int(*(y)))) - -#define numb_plus(x,y) ((x) = ((x) + (y))) -#define numb_minus(x,y) ((x) = ((x) - (y))) -#define numb_negate(x) ((x) = (- (x))) - -#define numb_times(x,y) ((x) = ((x) * (y))) -#define numb_ratio(x,y) ((x) = ((x) / ((y)))) -#define numb_divide(x,y) (*(x) = (*(x) / (*(y)))) -#define numb_modulo(x,y) (*(x) = (*(x) % *(y))) -#define numb_invert(x) ((x) = 1 / (x)) - -#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)); diff --git a/tests/Makefile.am b/tests/Makefile.am deleted file mode 100644 index 7aed6dc3..00000000 --- a/tests/Makefile.am +++ /dev/null @@ -1,35 +0,0 @@ -# The next line is needed by `./esyscmd.1.test' -# Ty Coon, President of Vice -# The previous line is needed by `./esyscmd.1.test' - -EXTRA_DIST = get-them foo incl.m4 stamp-TESTS $(TESTS) defs m4wrap.1.test - -TESTS = $(OTHER_TESTS) $(GENERATED_TESTS) - -GENERATED_TESTS = \ - argument.1.test argument.2.test argument.3.test argument.4.test \ - changeco.1.test changeco.2.test changequ.1.test changequ.2.test \ - changequ.3.test changesy.1.test changesy.2.test changesy.3.test \ - changesy.4.test changesy.5.test changesy.6.test changesy.7.test \ - cleardiv.1.test cleardiv.2.test define.1.test define.2.test \ - defn.1.test defn.2.test divert.1.test divert.2.test divnum.1.test \ - dnl.1.test dumpdef.1.test errprint.1.test errprint.2.test \ - esyscmd.1.test eval.1.test eval.2.test format.1.test ifdef.1.test \ - ifelse.1.test ifelse.2.test include.1.test include.2.test \ - include.3.test incr.1.test index.1.test indir.1.test len.1.test \ - loops.1.test loops.2.test m4exit.1.test patsubst.1.test \ - patsubst.2.test pseudoar.1.test pseudoar.2.test pseudoar.3.test \ - pseudoar.4.test pseudoar.5.test pushdef.1.test pushdef.2.test \ - regexp.1.test regexp.2.test substr.1.test sysval.1.test trace.1.test \ - translit.1.test undefine.1.test undivert.1.test undivert.2.test \ - undivert.3.test - -OTHER_TESTS = - -all: stamp-TESTS - -stamp-TESTS: $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo - cd $(srcdir) \ - && rm -f *.[0-9].test \ - && AWK=$(AWK) $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo \ - && > $@ diff --git a/tests/Makefile.in b/tests/Makefile.in deleted file mode 100644 index e8f24129..00000000 --- a/tests/Makefile.in +++ /dev/null @@ -1,235 +0,0 @@ -# Makefile.in generated automatically by automake 1.3b from Makefile.am - -# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# The next line is needed by `./esyscmd.1.test' -# Ty Coon, President of Vice -# The previous line is needed by `./esyscmd.1.test' - - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -GENCAT = @GENCAT@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GT_NO = @GT_NO@ -GT_YES = @GT_YES@ -INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ -INSTOBJEXT = @INSTOBJEXT@ -INTLDEPS = @INTLDEPS@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -PACKAGE = @PACKAGE@ -PERL = @PERL@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -STACKOVF = @STACKOVF@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -l = @l@ - -EXTRA_DIST = get-them foo incl.m4 stamp-TESTS $(TESTS) defs m4wrap.1.test - -TESTS = $(OTHER_TESTS) $(GENERATED_TESTS) - -GENERATED_TESTS = \ - argument.1.test argument.2.test argument.3.test argument.4.test \ - changeco.1.test changeco.2.test changequ.1.test changequ.2.test \ - changequ.3.test changesy.1.test changesy.2.test changesy.3.test \ - changesy.4.test changesy.5.test changesy.6.test changesy.7.test \ - cleardiv.1.test cleardiv.2.test define.1.test define.2.test \ - defn.1.test defn.2.test divert.1.test divert.2.test divnum.1.test \ - dnl.1.test dumpdef.1.test errprint.1.test errprint.2.test \ - esyscmd.1.test eval.1.test eval.2.test format.1.test ifdef.1.test \ - ifelse.1.test ifelse.2.test include.1.test include.2.test \ - include.3.test incr.1.test index.1.test indir.1.test len.1.test \ - loops.1.test loops.2.test m4exit.1.test patsubst.1.test \ - patsubst.2.test pseudoar.1.test pseudoar.2.test pseudoar.3.test \ - pseudoar.4.test pseudoar.5.test pushdef.1.test pushdef.2.test \ - regexp.1.test regexp.2.test substr.1.test sysval.1.test trace.1.test \ - translit.1.test undefine.1.test undivert.1.test undivert.2.test \ - undivert.3.test - -OTHER_TESTS = -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP = --best -all: Makefile - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = tests - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file; \ - done -check-TESTS: $(TESTS) - @failed=0; all=0; \ - srcdir=$(srcdir); export srcdir; \ - for tst in $(TESTS); do \ - if test -f $$tst; then dir=.; \ - else dir="$(srcdir)"; fi; \ - if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \ - all=`expr $$all + 1`; \ - echo "PASS: $$tst"; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - failed=`expr $$failed + 1`; \ - echo "FAIL: $$tst"; \ - fi; \ - done; \ - if test "$$failed" -eq 0; then \ - banner="All $$all tests passed"; \ - else \ - banner="$$failed of $$all tests failed"; \ - fi; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes"; \ - test "$$failed" -eq 0 -info: -dvi: -check: all - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -installcheck: -install-exec: - @$(NORMAL_INSTALL) - -install-data: - @$(NORMAL_INSTALL) - -install: install-exec install-data all - @: - -uninstall: - -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean: mostlyclean-generic - -clean: clean-generic mostlyclean - -distclean: distclean-generic clean - -rm -f config.status - -maintainer-clean: maintainer-clean-generic distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -.PHONY: tags distdir check-TESTS info dvi installcheck install-exec \ -install-data install uninstall all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -all: stamp-TESTS - -stamp-TESTS: $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo - cd $(srcdir) \ - && rm -f *.[0-9].test \ - && AWK=$(AWK) $(srcdir)/get-them $(top_srcdir)/doc/m4.texinfo \ - && > $@ - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/tests/argument.1.test b/tests/argument.1.test deleted file mode 100755 index 9398608f..00000000 --- a/tests/argument.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# argument.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1037 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -exch(arg1, arg2) -EOF - -cat <<\EOF >ok - -arg2, arg1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/argument.2.test b/tests/argument.2.test deleted file mode 100755 index abd434f3..00000000 --- a/tests/argument.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# argument.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1047 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -define(exch(``expansion text'', ``macro'')) -macro -EOF - -cat <<\EOF >ok - - -expansion text -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/argument.3.test b/tests/argument.3.test deleted file mode 100755 index 0231981b..00000000 --- a/tests/argument.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# argument.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1067 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', ``Macro name: $0'') -test -EOF - -cat <<\EOF >ok - -Macro name: test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/argument.4.test b/tests/argument.4.test deleted file mode 100755 index a0c5cbfd..00000000 --- a/tests/argument.4.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# argument.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1077 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `This is macro `foo'.') -foo -EOF - -cat <<\EOF >ok - -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changeco.1.test b/tests/changeco.1.test deleted file mode 100755 index d1a60b0c..00000000 --- a/tests/changeco.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# changeco.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1960 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -# A normal comment -changecom(`/*', `*/') -# Not a comment anymore -But: /* this is a comment now */ while this is not a comment -EOF - -cat <<\EOF >ok - -# A normal comment - -# Not a COMMENT anymore -But: /* this is a comment now */ while this is not a COMMENT -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changeco.2.test b/tests/changeco.2.test deleted file mode 100755 index 21854f26..00000000 --- a/tests/changeco.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# changeco.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1981 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -changecom -# Not a comment anymore -EOF - -cat <<\EOF >ok - - -# Not a COMMENT anymore -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changequ.1.test b/tests/changequ.1.test deleted file mode 100755 index 4e6f1fa6..00000000 --- a/tests/changequ.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# changequ.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1896 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([, ]) -define([foo], [Macro [foo].]) -foo -EOF - -cat <<\EOF >ok - - -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changequ.2.test b/tests/changequ.2.test deleted file mode 100755 index 45fd0dbe..00000000 --- a/tests/changequ.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# changequ.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1908 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([[, ]]) -define([[foo]], [[Macro [[[foo]]].]]) -foo -EOF - -cat <<\EOF >ok - - -Macro [foo]. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changequ.3.test b/tests/changequ.3.test deleted file mode 100755 index d9432142..00000000 --- a/tests/changequ.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# changequ.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1920 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `FOO'.') -changequote(, ) -foo -`foo' -EOF - -cat <<\EOF >ok - - -Macro `FOO'. -`Macro `FOO'.' -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.1.test b/tests/changesy.1.test deleted file mode 100755 index 76512aae..00000000 --- a/tests/changesy.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# changesy.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2126 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test.1', `TEST ONE') -__file__ -changesyntax(`O_', `W.') -__file__ -test.1 -EOF - -cat <<\EOF >ok - -in - -__file__ -TEST ONE -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.2.test b/tests/changesy.2.test deleted file mode 100755 index d34dbb29..00000000 --- a/tests/changesy.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# changesy.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2142 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$#') -test(a, b, c) -changesyntax(`(<', `,|', `)>', `O(,)') -test(a, b, c) -test<a|b|c> -EOF - -cat <<\EOF >ok - -3 - -0(a, b, c) -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.3.test b/tests/changesy.3.test deleted file mode 100755 index 15a51f77..00000000 --- a/tests/changesy.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# changesy.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2159 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$1$2$3') -test(a, b, c) -changesyntax(`O ') -test(a, b, c) -EOF - -cat <<\EOF >ok - -abc - -a b c -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.4.test b/tests/changesy.4.test deleted file mode 100755 index 5dcde934..00000000 --- a/tests/changesy.4.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# changesy.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2178 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`@', `TEST') -@ -changesyntax(`A@') -@ -EOF - -cat <<\EOF >ok - -@ - -TEST -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.5.test b/tests/changesy.5.test deleted file mode 100755 index 1156668f..00000000 --- a/tests/changesy.5.test +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# changesy.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2202 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `TEST') -changesyntax(`L<', `R>') -<test> -`test> -changequote(<[>, `]') -<test> -[test] -EOF - -cat <<\EOF >ok - - -test -test - -<TEST> -test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.6.test b/tests/changesy.6.test deleted file mode 100755 index cae2ee23..00000000 --- a/tests/changesy.6.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# changesy.6.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2224 - -. ${srcdir}/defs - -cat <<\EOF >in -changesyntax(`({<', `)}>', `,;:', `O(,)') -eval{2**4-1; 2 : 8> -EOF - -cat <<\EOF >ok - -00001111 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/changesy.7.test b/tests/changesy.7.test deleted file mode 100755 index 9d4b4b08..00000000 --- a/tests/changesy.7.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# changesy.7.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2235 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `==$1==') -changequote(`<<', `>>') -changesyntax(<<L[>>, <<R]>>) -test(<<testing]>>) -test([testing>>]) -test([<<testing>>]) -EOF - -cat <<\EOF >ok - - - -==testing]== -==testing>>== -==<<testing>>== -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/cleardiv.1.test b/tests/cleardiv.1.test deleted file mode 100755 index 40f09405..00000000 --- a/tests/cleardiv.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# cleardiv.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2739 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert(-1) -undivert -EOF - -cat <<\EOF >ok -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/cleardiv.2.test b/tests/cleardiv.2.test deleted file mode 100755 index 1f5df3ac..00000000 --- a/tests/cleardiv.2.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# cleardiv.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2754 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleardivert', -`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/define.1.test b/tests/define.1.test deleted file mode 100755 index cffdbacb..00000000 --- a/tests/define.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# define.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 988 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -foo -EOF - -cat <<\EOF >ok - -Hello world. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/define.2.test b/tests/define.2.test deleted file mode 100755 index e4df34eb..00000000 --- a/tests/define.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# define.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1008 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`array', `defn(format(``array[%d]'', `$1'))') -define(`array_set', `define(format(``array[%d]'', `$1'), `$2')') -array_set(4, `array element no. 4') -array_set(17, `array element no. 17') -array(4) -array(eval(10+7)) -EOF - -cat <<\EOF >ok - - - - -array element no. 4 -array element no. 17 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/defn.1.test b/tests/defn.1.test deleted file mode 100755 index bf54769c..00000000 --- a/tests/defn.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# defn.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1231 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`zap', defn(`undefine')) -zap(`undefine') -undefine(`zap') -EOF - -cat <<\EOF >ok - - -undefine(zap) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/defn.2.test b/tests/defn.2.test deleted file mode 100755 index 33ea48bd..00000000 --- a/tests/defn.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# defn.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1251 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`string', `The macro dnl is very useful -') -string -defn(`string') -EOF - -cat <<\EOF >ok - -The macro -The macro dnl is very useful - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/defs b/tests/defs deleted file mode 100644 index cf97e3b3..00000000 --- a/tests/defs +++ /dev/null @@ -1,54 +0,0 @@ -# -*- ksh -*- -# Defines for GNU m4 testing environment. -# Erick Branderhorst <Erick.Branderhorst@asml.nl> - -# Ensure $srcdir set correctly. -test -f ${srcdir}/defs || { - echo "defs: installation error" 1>&2 - exit 1 -} - -# If srcdir is relative, we need to modify it. -case "$srcdir" in - /*) - ;; - - *) - srcdir="../$srcdir" - ;; -esac - -rm -rf testSubDir > /dev/null 2>&1 -mkdir testSubDir -cd testSubDir - -# Build appropriate environment in test directory. Eg create -# configure.in, touch all necessary files, etc. - -# nothing yet - -# See how redirections should work. User can set VERBOSE to see all -# output. -test -z "$VERBOSE" && { - exec > /dev/null 2>&1 -} - -# User can set MAKE to choose which make to use. Must use GNU make. -test -z "$MAKE" && MAKE=make - -echo "=== Running test $0" - -# See how GNU m4 should be run. No options as default. -test -z "$M4" && M4=../../src/m4 - -# See how cmp should be run. -test -z "$CMP" && CMP=cmp - -# Setting nls related vars. Override them in the test when needed. -LANGUAGE=C -export LANGUAGE -LC_ALL=C -export LC_ALL -LANG=C -export LANG - diff --git a/tests/divert.1.test b/tests/divert.1.test deleted file mode 100755 index 3a2a82ac..00000000 --- a/tests/divert.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# divert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2581 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/divert.2.test b/tests/divert.2.test deleted file mode 100755 index 2f22d845..00000000 --- a/tests/divert.2.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# divert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2601 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(-1) -define(`foo', `Macro `foo'.') -define(`bar', `Macro `bar'.') -divert -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/divnum.1.test b/tests/divnum.1.test deleted file mode 100755 index c1c2638d..00000000 --- a/tests/divnum.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# divnum.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2708 - -. ${srcdir}/defs - -cat <<\EOF >in -Initial divnum -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert -EOF - -cat <<\EOF >ok -Initial 0 - - -Diversion one: 1 - -Diversion two: 2 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/dnl.1.test b/tests/dnl.1.test deleted file mode 100755 index ecfa0077..00000000 --- a/tests/dnl.1.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# dnl.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1858 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. -foo -EOF - -cat <<\EOF >ok -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/dumpdef.1.test b/tests/dumpdef.1.test deleted file mode 100755 index 45a21ddd..00000000 --- a/tests/dumpdef.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# dumpdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1661 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -dumpdef(`foo') -dumpdef(`define') -EOF - -cat <<\EOF >ok - - - -EOF - -cat <<\EOF >okerr -foo: `Hello world.' -define: <define> -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/errprint.1.test b/tests/errprint.1.test deleted file mode 100755 index b1d6145c..00000000 --- a/tests/errprint.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# errprint.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3427 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`Illegal arguments to forloop -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -Illegal arguments to forloop -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/errprint.2.test b/tests/errprint.2.test deleted file mode 100755 index 8f44ca0a..00000000 --- a/tests/errprint.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# errprint.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3452 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`m4:'__file__:__line__: `Input error -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -m4:in:1: Input error -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/esyscmd.1.test b/tests/esyscmd.1.test deleted file mode 100755 index b32c6ced..00000000 --- a/tests/esyscmd.1.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# esyscmd.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3316 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`vice', `esyscmd(grep Vice ../Makefile)') -vice -EOF - -cat <<\EOF >ok - -# Ty Coon, President of Vice - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/eval.1.test b/tests/eval.1.test deleted file mode 100755 index ef9a3ca3..00000000 --- a/tests/eval.1.test +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# eval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3200 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(-3 * 5) -eval(index(`Hello world', `llo') >= 0) -define(`square', `eval(($1)**2)') -square(9) -square(square(5)+1) -define(`foo', `666') -eval(`foo'/6) -eval(foo/6) -EOF - -cat <<\EOF >ok --15 -1 - -81 -676 - - -111 -EOF - -cat <<\EOF >okerr -in:7: m4: Bad expression in eval: foo/6 -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/eval.2.test b/tests/eval.2.test deleted file mode 100755 index 374b7039..00000000 --- a/tests/eval.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# eval.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3231 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(666, 10) -eval(666, 11) -eval(666, 6) -eval(666, 6, 10) -eval(-666, 6, 10) -EOF - -cat <<\EOF >ok -666 -556 -3030 -0000003030 --000003030 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/foo b/tests/foo deleted file mode 100644 index 5716ca59..00000000 --- a/tests/foo +++ /dev/null @@ -1 +0,0 @@ -bar diff --git a/tests/format.1.test b/tests/format.1.test deleted file mode 100755 index 0434ff23..00000000 --- a/tests/format.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# format.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3036 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `The brown fox jumped over the lazy dog') -format(`The string "%s" is %d characters long', foo, len(foo)) -EOF - -cat <<\EOF >ok - -The string "The brown fox jumped over the lazy dog" is 38 characters long -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/argument.1.test b/tests/generated-tests/argument.1.test deleted file mode 100755 index 25b1d819..00000000 --- a/tests/generated-tests/argument.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/argument.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1030 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -exch(arg1, arg2) -EOF - -cat <<\EOF >ok - -arg2, arg1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/argument.2.test b/tests/generated-tests/argument.2.test deleted file mode 100755 index c077ec2a..00000000 --- a/tests/generated-tests/argument.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/argument.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1040 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -define(exch(``expansion text'', ``macro'')) -macro -EOF - -cat <<\EOF >ok - - -expansion text -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/argument.3.test b/tests/generated-tests/argument.3.test deleted file mode 100755 index 2a514172..00000000 --- a/tests/generated-tests/argument.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/argument.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1060 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', ``Macro name: $0'') -test -EOF - -cat <<\EOF >ok - -Macro name: test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/argument.4.test b/tests/generated-tests/argument.4.test deleted file mode 100755 index 2459f966..00000000 --- a/tests/generated-tests/argument.4.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/argument.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1070 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `This is macro `foo'.') -foo -EOF - -cat <<\EOF >ok - -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changeco.1.test b/tests/generated-tests/changeco.1.test deleted file mode 100755 index cc95cdbc..00000000 --- a/tests/generated-tests/changeco.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/changeco.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1953 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -# A normal comment -changecom(`/*', `*/') -# Not a comment anymore -But: /* this is a comment now */ while this is not a comment -EOF - -cat <<\EOF >ok - -# A normal comment - -# Not a COMMENT anymore -But: /* this is a comment now */ while this is not a COMMENT -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changeco.2.test b/tests/generated-tests/changeco.2.test deleted file mode 100755 index 4e4fc01b..00000000 --- a/tests/generated-tests/changeco.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/changeco.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1974 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -changecom -# Not a comment anymore -EOF - -cat <<\EOF >ok - - -# Not a COMMENT anymore -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changequ.1.test b/tests/generated-tests/changequ.1.test deleted file mode 100755 index b66db9cf..00000000 --- a/tests/generated-tests/changequ.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/changequ.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1889 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([, ]) -define([foo], [Macro [foo].]) -foo -EOF - -cat <<\EOF >ok - - -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changequ.2.test b/tests/generated-tests/changequ.2.test deleted file mode 100755 index 6ae416a9..00000000 --- a/tests/generated-tests/changequ.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/changequ.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1901 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([[, ]]) -define([[foo]], [[Macro [[[foo]]].]]) -foo -EOF - -cat <<\EOF >ok - - -Macro [foo]. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changequ.3.test b/tests/generated-tests/changequ.3.test deleted file mode 100755 index baed4cdb..00000000 --- a/tests/generated-tests/changequ.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/changequ.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1913 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `FOO'.') -changequote(, ) -foo -`foo' -EOF - -cat <<\EOF >ok - - -Macro `FOO'. -`Macro `FOO'.' -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.1.test b/tests/generated-tests/changesy.1.test deleted file mode 100755 index 7e925d10..00000000 --- a/tests/generated-tests/changesy.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2119 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test.1', `TEST ONE') -__file__ -changesyntax(`O_', `W.') -__file__ -test.1 -EOF - -cat <<\EOF >ok - -in - -__file__ -TEST ONE -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.2.test b/tests/generated-tests/changesy.2.test deleted file mode 100755 index af4aa27c..00000000 --- a/tests/generated-tests/changesy.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2135 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$#') -test(a, b, c) -changesyntax(`(<', `,|', `)>', `O(,)') -test(a, b, c) -test<a|b|c> -EOF - -cat <<\EOF >ok - -3 - -0(a, b, c) -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.3.test b/tests/generated-tests/changesy.3.test deleted file mode 100755 index 6229d772..00000000 --- a/tests/generated-tests/changesy.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2152 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$1$2$3') -test(a, b, c) -changesyntax(`O ') -test(a, b, c) -EOF - -cat <<\EOF >ok - -abc - -a b c -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.4.test b/tests/generated-tests/changesy.4.test deleted file mode 100755 index 64572a97..00000000 --- a/tests/generated-tests/changesy.4.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2171 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`@', `TEST') -@ -changesyntax(`A@') -@ -EOF - -cat <<\EOF >ok - -@ - -TEST -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.5.test b/tests/generated-tests/changesy.5.test deleted file mode 100755 index 83608521..00000000 --- a/tests/generated-tests/changesy.5.test +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2195 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `TEST') -changesyntax(`L<', `R>') -<test> -`test> -changequote(<[>, `]') -<test> -[test] -EOF - -cat <<\EOF >ok - - -test -test - -<TEST> -test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.6.test b/tests/generated-tests/changesy.6.test deleted file mode 100755 index 14066fec..00000000 --- a/tests/generated-tests/changesy.6.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.6.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2217 - -. ${srcdir}/defs - -cat <<\EOF >in -changesyntax(`({<', `)}>', `,;:', `O(,)') -eval{2**4-1; 2 : 8> -EOF - -cat <<\EOF >ok - -00001111 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.7.test b/tests/generated-tests/changesy.7.test deleted file mode 100755 index 9e70c202..00000000 --- a/tests/generated-tests/changesy.7.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.7.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2228 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `==$1==') -changequote(`<<', `>>') -changesyntax(<<L[>>, <<R]>>) -test(<<testing]>>) -test([testing>>]) -test([<<testing>>]) -EOF - -cat <<\EOF >ok - - - -==testing]== -==testing>>== -==testing== -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/changesy.8.test b/tests/generated-tests/changesy.8.test deleted file mode 100755 index a087f85a..00000000 --- a/tests/generated-tests/changesy.8.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/changesy.8.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2282 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `==$1==') -changequote(`<<', `>>') -changesyntax(<<L[>>, <<R]>>) -test(<<testing]>>) -test([testing>>]) -test([<<testing>>]) -EOF - -cat <<\EOF >ok - - - -==testing]== -==testing>>== -==testing== -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/cleardiv.1.test b/tests/generated-tests/cleardiv.1.test deleted file mode 100755 index c7dc0655..00000000 --- a/tests/generated-tests/cleardiv.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/cleardiv.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2732 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert(-1) -undivert -EOF - -cat <<\EOF >ok -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/cleardiv.2.test b/tests/generated-tests/cleardiv.2.test deleted file mode 100755 index 23324698..00000000 --- a/tests/generated-tests/cleardiv.2.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# generated-tests/cleardiv.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2747 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleardivert', -`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/define.1.test b/tests/generated-tests/define.1.test deleted file mode 100755 index eefece84..00000000 --- a/tests/generated-tests/define.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/define.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 981 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -foo -EOF - -cat <<\EOF >ok - -Hello world. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/define.2.test b/tests/generated-tests/define.2.test deleted file mode 100755 index 1b18fe06..00000000 --- a/tests/generated-tests/define.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/define.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1001 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`array', `defn(format(``array[%d]'', `$1'))') -define(`array_set', `define(format(``array[%d]'', `$1'), `$2')') -array_set(4, `array element no. 4') -array_set(17, `array element no. 17') -array(4) -array(eval(10+7)) -EOF - -cat <<\EOF >ok - - - - -array element no. 4 -array element no. 17 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/defn.1.test b/tests/generated-tests/defn.1.test deleted file mode 100755 index 1922b358..00000000 --- a/tests/generated-tests/defn.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/defn.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1224 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`zap', defn(`undefine')) -zap(`undefine') -undefine(`zap') -EOF - -cat <<\EOF >ok - - -undefine(zap) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/defn.2.test b/tests/generated-tests/defn.2.test deleted file mode 100755 index 0cac7363..00000000 --- a/tests/generated-tests/defn.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/defn.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1244 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`string', `The macro dnl is very useful -') -string -defn(`string') -EOF - -cat <<\EOF >ok - -The macro -The macro dnl is very useful - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/divert.1.test b/tests/generated-tests/divert.1.test deleted file mode 100755 index 83d5d9a2..00000000 --- a/tests/generated-tests/divert.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/divert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2574 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/divert.2.test b/tests/generated-tests/divert.2.test deleted file mode 100755 index f5cd9f8c..00000000 --- a/tests/generated-tests/divert.2.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# generated-tests/divert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2594 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(-1) -define(`foo', `Macro `foo'.') -define(`bar', `Macro `bar'.') -divert -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/divnum.1.test b/tests/generated-tests/divnum.1.test deleted file mode 100755 index ddcb689e..00000000 --- a/tests/generated-tests/divnum.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/divnum.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2701 - -. ${srcdir}/defs - -cat <<\EOF >in -Initial divnum -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert -EOF - -cat <<\EOF >ok -Initial 0 - - -Diversion one: 1 - -Diversion two: 2 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/dnl.1.test b/tests/generated-tests/dnl.1.test deleted file mode 100755 index b80528d5..00000000 --- a/tests/generated-tests/dnl.1.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# generated-tests/dnl.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1851 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. -foo -EOF - -cat <<\EOF >ok -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/dumpdef.1.test b/tests/generated-tests/dumpdef.1.test deleted file mode 100755 index 677a5974..00000000 --- a/tests/generated-tests/dumpdef.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/dumpdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1654 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -dumpdef(`foo') -dumpdef(`define') -EOF - -cat <<\EOF >ok - - - -EOF - -cat <<\EOF >okerr -foo: `Hello world.' -define: <define> -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/errprint.1.test b/tests/generated-tests/errprint.1.test deleted file mode 100755 index d89d95b8..00000000 --- a/tests/generated-tests/errprint.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/errprint.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3420 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`Illegal arguments to forloop -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -Illegal arguments to forloop -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/errprint.2.test b/tests/generated-tests/errprint.2.test deleted file mode 100755 index e7e6946b..00000000 --- a/tests/generated-tests/errprint.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/errprint.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3445 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`m4:'__file__:__line__: `Input error -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -m4:in:1: Input error -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/esyscmd.1.test b/tests/generated-tests/esyscmd.1.test deleted file mode 100755 index 0f4135d5..00000000 --- a/tests/generated-tests/esyscmd.1.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# generated-tests/esyscmd.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3309 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`vice', `esyscmd(grep Vice ../Makefile)') -vice -EOF - -cat <<\EOF >ok - -# Ty Coon, President of Vice - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/eval.1.test b/tests/generated-tests/eval.1.test deleted file mode 100755 index 73fd306b..00000000 --- a/tests/generated-tests/eval.1.test +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# generated-tests/eval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3193 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(-3 * 5) -eval(index(`Hello world', `llo') >= 0) -define(`square', `eval(($1)**2)') -square(9) -square(square(5)+1) -define(`foo', `666') -eval(`foo'/6) -eval(foo/6) -EOF - -cat <<\EOF >ok --15 -1 - -81 -676 - - -111 -EOF - -cat <<\EOF >okerr -in:7: m4: Bad expression in eval: foo/6 -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/eval.2.test b/tests/generated-tests/eval.2.test deleted file mode 100755 index 443672d1..00000000 --- a/tests/generated-tests/eval.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/eval.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3224 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(666, 10) -eval(666, 11) -eval(666, 6) -eval(666, 6, 10) -eval(-666, 6, 10) -EOF - -cat <<\EOF >ok -666 -556 -3030 -0000003030 --000003030 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/format.1.test b/tests/generated-tests/format.1.test deleted file mode 100755 index 52fc5029..00000000 --- a/tests/generated-tests/format.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/format.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3029 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `The brown fox jumped over the lazy dog') -format(`The string "%s" is %d characters long', foo, len(foo)) -EOF - -cat <<\EOF >ok - -The string "The brown fox jumped over the lazy dog" is 38 characters long -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/ifdef.1.test b/tests/generated-tests/ifdef.1.test deleted file mode 100755 index 559745fa..00000000 --- a/tests/generated-tests/ifdef.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/ifdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1434 - -. ${srcdir}/defs - -cat <<\EOF >in -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -define(`foo', `') -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -EOF - -cat <<\EOF >ok -foo is not defined - -foo is defined -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/ifelse.1.test b/tests/generated-tests/ifelse.1.test deleted file mode 100755 index 82b2770c..00000000 --- a/tests/generated-tests/ifelse.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/ifelse.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1472 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(`foo', `bar', `true') -ifelse(`foo', `foo', `true') -ifelse(`foo', `bar', `true', `false') -ifelse(`foo', `foo', `true', `false') -EOF - -cat <<\EOF >ok - -true -false -true -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/ifelse.2.test b/tests/generated-tests/ifelse.2.test deleted file mode 100755 index 9181abd0..00000000 --- a/tests/generated-tests/ifelse.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# generated-tests/ifelse.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1491 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh') -EOF - -cat <<\EOF >ok -seventh -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/include.1.test b/tests/generated-tests/include.1.test deleted file mode 100755 index cd8274bd..00000000 --- a/tests/generated-tests/include.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# generated-tests/include.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2448 - -. ${srcdir}/defs - -cat <<\EOF >in -include(`no-such-file') -sinclude(`no-such-file') -EOF - -cat <<\EOF >ok - - -EOF - -cat <<\EOF >okerr -in:1: m4: 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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/include.2.test b/tests/generated-tests/include.2.test deleted file mode 100755 index 94446fd7..00000000 --- a/tests/generated-tests/include.2.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# generated-tests/include.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2468 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `FOO') -include(`incl.m4') -EOF - -cat <<\EOF >ok - -Include file start -FOO -Include file end - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/include.3.test b/tests/generated-tests/include.3.test deleted file mode 100755 index 1cb768d9..00000000 --- a/tests/generated-tests/include.3.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# generated-tests/include.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2483 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', include(`incl.m4')) -This is `bar': >>>bar<<< -EOF - -cat <<\EOF >ok - -This is bar: >>>Include file start -foo -Include file end -<<< -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/incr.1.test b/tests/generated-tests/incr.1.test deleted file mode 100755 index f07ddf7c..00000000 --- a/tests/generated-tests/incr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/incr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3099 - -. ${srcdir}/defs - -cat <<\EOF >in -incr(4) -decr(7) -EOF - -cat <<\EOF >ok -5 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/index.1.test b/tests/generated-tests/index.1.test deleted file mode 100755 index 11768455..00000000 --- a/tests/generated-tests/index.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/index.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2815 - -. ${srcdir}/defs - -cat <<\EOF >in -index(`gnus, gnats, and armadillos', `nat') -index(`gnus, gnats, and armadillos', `dag') -EOF - -cat <<\EOF >ok -7 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/indir.1.test b/tests/generated-tests/indir.1.test deleted file mode 100755 index c37cc49b..00000000 --- a/tests/generated-tests/indir.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/indir.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1363 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`$$internal$macro', `Internal macro (name `$0')') -$$internal$macro -indir(`$$internal$macro') -EOF - -cat <<\EOF >ok - -$$internal$macro -Internal macro (name $$internal$macro) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/len.1.test b/tests/generated-tests/len.1.test deleted file mode 100755 index dac41506..00000000 --- a/tests/generated-tests/len.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/len.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2789 - -. ${srcdir}/defs - -cat <<\EOF >in -len() -len(`abcdef') -EOF - -cat <<\EOF >ok -0 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/loops.1.test b/tests/generated-tests/loops.1.test deleted file mode 100755 index 880f95d9..00000000 --- a/tests/generated-tests/loops.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/loops.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1528 - -. ${srcdir}/defs - -cat <<\EOF >in -shift -shift(bar) -shift(foo, bar, baz) -EOF - -cat <<\EOF >ok - - -bar,baz -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/loops.2.test b/tests/generated-tests/loops.2.test deleted file mode 100755 index 7b537032..00000000 --- a/tests/generated-tests/loops.2.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# generated-tests/loops.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1540 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'', - `reverse(shift($@)), `$1'')') -reverse -reverse(foo) -reverse(foo, bar, gnats, and gnus) -EOF - -cat <<\EOF >ok - - -foo -and gnus, gnats, bar, foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/m4exit.1.test b/tests/generated-tests/m4exit.1.test deleted file mode 100755 index 78aba0fd..00000000 --- a/tests/generated-tests/m4exit.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# generated-tests/m4exit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3468 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* -')m4exit(1)') -fatal_error(`This is a BAD one, buster') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/m4wrap.1.test b/tests/generated-tests/m4wrap.1.test deleted file mode 100755 index 0f9419dd..00000000 --- a/tests/generated-tests/m4wrap.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/m4wrap.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2389 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleanup', `This is the `cleanup' actions. -') -m4wrap(`cleanup') -This is the first and last normal input line. -EOF - -cat <<\EOF >ok - - -This is the first and last normal input line. -This is the cleanup actions. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/patsubst.1.test b/tests/generated-tests/patsubst.1.test deleted file mode 100755 index 4f04ac25..00000000 --- a/tests/generated-tests/patsubst.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/patsubst.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2977 - -. ${srcdir}/defs - -cat <<\EOF >in -patsubst(`GNUs not Unix', `^', `OBS: ') -patsubst(`GNUs not Unix', `\<', `OBS: ') -patsubst(`GNUs not Unix', `\w*', `(\&)') -patsubst(`GNUs not Unix', `\w+', `(\&)') -patsubst(`GNUs not Unix', `[A-Z][a-z]+') -EOF - -cat <<\EOF >ok -OBS: GNUs not Unix -OBS: GNUs OBS: not OBS: Unix -(GNUs)() (not)() (Unix) -(GNUs) (not) (Unix) -GN not -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/patsubst.2.test b/tests/generated-tests/patsubst.2.test deleted file mode 100755 index d651a184..00000000 --- a/tests/generated-tests/patsubst.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/patsubst.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2994 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl -define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl -define(`capitalize1', - `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl -capitalize(`GNUs not Unix') -EOF - -cat <<\EOF >ok -Gnus Not Unix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pseudoar.1.test b/tests/generated-tests/pseudoar.1.test deleted file mode 100755 index de5cabc2..00000000 --- a/tests/generated-tests/pseudoar.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/pseudoar.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1094 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`nargs', `$#') -nargs -nargs() -nargs(arg1, arg2, arg3) -EOF - -cat <<\EOF >ok - -0 -1 -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pseudoar.2.test b/tests/generated-tests/pseudoar.2.test deleted file mode 100755 index b8418771..00000000 --- a/tests/generated-tests/pseudoar.2.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/pseudoar.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1108 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$*') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pseudoar.3.test b/tests/generated-tests/pseudoar.3.test deleted file mode 100755 index 26f6ebb3..00000000 --- a/tests/generated-tests/pseudoar.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/pseudoar.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1119 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$@') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pseudoar.4.test b/tests/generated-tests/pseudoar.4.test deleted file mode 100755 index 8622426f..00000000 --- a/tests/generated-tests/pseudoar.4.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/pseudoar.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1129 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo1', `$*') -define(`echo2', `$@') -define(`foo', `This is macro `foo'.') -echo1(foo) -echo2(foo) -EOF - -cat <<\EOF >ok - - - -This is macro This is macro foo.. -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pseudoar.5.test b/tests/generated-tests/pseudoar.5.test deleted file mode 100755 index 1ed05635..00000000 --- a/tests/generated-tests/pseudoar.5.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/pseudoar.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1149 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `$$$ hello $$$') -foo -EOF - -cat <<\EOF >ok - -$$$ hello $$$ -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pushdef.1.test b/tests/generated-tests/pushdef.1.test deleted file mode 100755 index 09d5f945..00000000 --- a/tests/generated-tests/pushdef.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# generated-tests/pushdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1288 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -popdef(`foo') -foo -popdef(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Expansion one. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/pushdef.2.test b/tests/generated-tests/pushdef.2.test deleted file mode 100755 index 091c27e1..00000000 --- a/tests/generated-tests/pushdef.2.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# generated-tests/pushdef.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1312 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -define(`foo', `Second expansion two.') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Second expansion two. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/regexp.1.test b/tests/generated-tests/regexp.1.test deleted file mode 100755 index df471907..00000000 --- a/tests/generated-tests/regexp.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/regexp.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2847 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\<[a-z]\w+') -regexp(`GNUs not Unix', `\<Q\w*') -EOF - -cat <<\EOF >ok -5 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/regexp.2.test b/tests/generated-tests/regexp.2.test deleted file mode 100755 index 22cb99c6..00000000 --- a/tests/generated-tests/regexp.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# generated-tests/regexp.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2859 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***') -EOF - -cat <<\EOF >ok -*** Unix *** nix *** -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/substr.1.test b/tests/generated-tests/substr.1.test deleted file mode 100755 index 4ad45539..00000000 --- a/tests/generated-tests/substr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# generated-tests/substr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2885 - -. ${srcdir}/defs - -cat <<\EOF >in -substr(`gnus, gnats, and armadillos', 6) -substr(`gnus, gnats, and armadillos', 6, 5) -EOF - -cat <<\EOF >ok -gnats, and armadillos -gnats -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/symbols.1.test b/tests/generated-tests/symbols.1.test deleted file mode 100755 index 4414ee13..00000000 --- a/tests/generated-tests/symbols.1.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# generated-tests/symbols.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1442 - -. ${srcdir}/defs - -cat <<\EOF >in -symbols(`ifndef', `ifdef', `define', `undef') -EOF - -cat <<\EOF >ok -define,ifdef -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/sysval.1.test b/tests/generated-tests/sysval.1.test deleted file mode 100755 index 5cb177f1..00000000 --- a/tests/generated-tests/sysval.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/sysval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3340 - -. ${srcdir}/defs - -cat <<\EOF >in -syscmd(`false') -ifelse(sysval, 0, zero, nonzero) -syscmd(`true') -sysval -EOF - -cat <<\EOF >ok - -nonzero - -0 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/trace.1.test b/tests/generated-tests/trace.1.test deleted file mode 100755 index 9acf3a12..00000000 --- a/tests/generated-tests/trace.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# generated-tests/trace.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1699 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello World.') -define(`echo', `$@') -traceon(`foo', `echo') -foo -echo(gnus, and gnats) -EOF - -cat <<\EOF >ok - - - -Hello World. -gnus,and gnats -EOF - -cat <<\EOF >okerr -m4trace: -1- foo -> `Hello World.' -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/generated-tests/translit.1.test b/tests/generated-tests/translit.1.test deleted file mode 100755 index da6710c7..00000000 --- a/tests/generated-tests/translit.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# generated-tests/translit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2926 - -. ${srcdir}/defs - -cat <<\EOF >in -translit(`GNUs not Unix', `A-Z') -translit(`GNUs not Unix', `a-z', `A-Z') -translit(`GNUs not Unix', `A-Z', `z-a') -EOF - -cat <<\EOF >ok -s not nix -GNUS NOT UNIX -tmfs not fnix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/undefine.1.test b/tests/generated-tests/undefine.1.test deleted file mode 100755 index bac0cd29..00000000 --- a/tests/generated-tests/undefine.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/undefine.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1180 - -. ${srcdir}/defs - -cat <<\EOF >in -foo -define(`foo', `expansion text') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok -foo - -expansion text - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/undivert.1.test b/tests/generated-tests/undivert.1.test deleted file mode 100755 index 18c904ba..00000000 --- a/tests/generated-tests/undivert.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# generated-tests/undivert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2625 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -undivert(1) -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/undivert.2.test b/tests/generated-tests/undivert.2.test deleted file mode 100755 index 44485600..00000000 --- a/tests/generated-tests/undivert.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# generated-tests/undivert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2649 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted first. -divert(0)undivert(1)dnl -undivert(1) -divert(1) -This text is also diverted but not appended. -divert(0)undivert(1)dnl -EOF - -cat <<\EOF >ok - -This text is diverted first. - - -This text is also diverted but not appended. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/generated-tests/undivert.3.test b/tests/generated-tests/undivert.3.test deleted file mode 100755 index a85a9d0c..00000000 --- a/tests/generated-tests/undivert.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# generated-tests/undivert.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2675 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', `BAR') -undivert(`foo') -include(`foo') -EOF - -cat <<\EOF >ok - -bar - -BAR - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.1.m4 b/tests/gentest/argument.1.m4 deleted file mode 100755 index 04909dc9..00000000 --- a/tests/gentest/argument.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1036 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -exch(arg1, arg2) -EOF - -cat <<\EOF >ok - -arg2, arg1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.1.test b/tests/gentest/argument.1.test deleted file mode 100755 index e8f48197..00000000 --- a/tests/gentest/argument.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1036 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -exch(arg1, arg2) -EOF - -cat <<\EOF >ok - -arg2, arg1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.2.m4 b/tests/gentest/argument.2.m4 deleted file mode 100755 index 59814143..00000000 --- a/tests/gentest/argument.2.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/argument.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1046 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -define(exch(``expansion text'', ``macro'')) -macro -EOF - -cat <<\EOF >ok - - -expansion text -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.2.test b/tests/gentest/argument.2.test deleted file mode 100755 index 3e2149b5..00000000 --- a/tests/gentest/argument.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/argument.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1046 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`exch', `$2, $1') -define(exch(``expansion text'', ``macro'')) -macro -EOF - -cat <<\EOF >ok - - -expansion text -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.3.m4 b/tests/gentest/argument.3.m4 deleted file mode 100755 index 3dae6ca9..00000000 --- a/tests/gentest/argument.3.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1066 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', ``Macro name: $0'') -test -EOF - -cat <<\EOF >ok - -Macro name: test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.3.test b/tests/gentest/argument.3.test deleted file mode 100755 index 5ffdafd4..00000000 --- a/tests/gentest/argument.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1066 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', ``Macro name: $0'') -test -EOF - -cat <<\EOF >ok - -Macro name: test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.4.m4 b/tests/gentest/argument.4.m4 deleted file mode 100755 index 39389759..00000000 --- a/tests/gentest/argument.4.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.4.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1076 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `This is macro `foo'.') -foo -EOF - -cat <<\EOF >ok - -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/argument.4.test b/tests/gentest/argument.4.test deleted file mode 100755 index b28f5638..00000000 --- a/tests/gentest/argument.4.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/argument.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1076 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `This is macro `foo'.') -foo -EOF - -cat <<\EOF >ok - -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changeco.1.m4 b/tests/gentest/changeco.1.m4 deleted file mode 100755 index 533b931b..00000000 --- a/tests/gentest/changeco.1.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changeco.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1959 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -# A normal comment -changecom(`/*', `*/') -# Not a comment anymore -But: /* this is a comment now */ while this is not a comment -EOF - -cat <<\EOF >ok - -# A normal comment - -# Not a COMMENT anymore -But: /* this is a comment now */ while this is not a COMMENT -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changeco.1.test b/tests/gentest/changeco.1.test deleted file mode 100755 index 08ad873d..00000000 --- a/tests/gentest/changeco.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changeco.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1959 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -# A normal comment -changecom(`/*', `*/') -# Not a comment anymore -But: /* this is a comment now */ while this is not a comment -EOF - -cat <<\EOF >ok - -# A normal comment - -# Not a COMMENT anymore -But: /* this is a comment now */ while this is not a COMMENT -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changeco.2.m4 b/tests/gentest/changeco.2.m4 deleted file mode 100755 index dfd0aa1d..00000000 --- a/tests/gentest/changeco.2.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changeco.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1980 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -changecom -# Not a comment anymore -EOF - -cat <<\EOF >ok - - -# Not a COMMENT anymore -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changeco.2.test b/tests/gentest/changeco.2.test deleted file mode 100755 index c265d1f5..00000000 --- a/tests/gentest/changeco.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changeco.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1980 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`comment', `COMMENT') -changecom -# Not a comment anymore -EOF - -cat <<\EOF >ok - - -# Not a COMMENT anymore -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.1.m4 b/tests/gentest/changequ.1.m4 deleted file mode 100755 index 7022cec9..00000000 --- a/tests/gentest/changequ.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changequ.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1895 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([, ]) -define([foo], [Macro [foo].]) -foo -EOF - -cat <<\EOF >ok - - -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.1.test b/tests/gentest/changequ.1.test deleted file mode 100755 index f0f64f69..00000000 --- a/tests/gentest/changequ.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changequ.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1895 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([, ]) -define([foo], [Macro [foo].]) -foo -EOF - -cat <<\EOF >ok - - -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.2.m4 b/tests/gentest/changequ.2.m4 deleted file mode 100755 index 5eba166b..00000000 --- a/tests/gentest/changequ.2.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changequ.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1907 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([[, ]]) -define([[foo]], [[Macro [[[foo]]].]]) -foo -EOF - -cat <<\EOF >ok - - -Macro [foo]. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.2.test b/tests/gentest/changequ.2.test deleted file mode 100755 index 0ec4ad14..00000000 --- a/tests/gentest/changequ.2.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/changequ.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1907 - -. ${srcdir}/defs - -cat <<\EOF >in -changequote([[, ]]) -define([[foo]], [[Macro [[[foo]]].]]) -foo -EOF - -cat <<\EOF >ok - - -Macro [foo]. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.3.m4 b/tests/gentest/changequ.3.m4 deleted file mode 100755 index 6174e994..00000000 --- a/tests/gentest/changequ.3.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changequ.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1919 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `FOO'.') -changequote(, ) -foo -`foo' -EOF - -cat <<\EOF >ok - - -Macro `FOO'. -`Macro `FOO'.' -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changequ.3.test b/tests/gentest/changequ.3.test deleted file mode 100755 index 83a8544f..00000000 --- a/tests/gentest/changequ.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changequ.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1919 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `FOO'.') -changequote(, ) -foo -`foo' -EOF - -cat <<\EOF >ok - - -Macro `FOO'. -`Macro `FOO'.' -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.1.m4 b/tests/gentest/changesy.1.m4 deleted file mode 100755 index c608a21f..00000000 --- a/tests/gentest/changesy.1.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changesy.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2125 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test.1', `TEST ONE') -__file__ -changesyntax(`O_', `W.') -__file__ -test.1 -EOF - -cat <<\EOF >ok - -in - -__file__ -TEST ONE -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.1.test b/tests/gentest/changesy.1.test deleted file mode 100755 index 344bf506..00000000 --- a/tests/gentest/changesy.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changesy.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2125 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test.1', `TEST ONE') -__file__ -changesyntax(`O_', `W.') -__file__ -test.1 -EOF - -cat <<\EOF >ok - -in - -__file__ -TEST ONE -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.2.m4 b/tests/gentest/changesy.2.m4 deleted file mode 100755 index 55a99375..00000000 --- a/tests/gentest/changesy.2.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changesy.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2141 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$#') -test(a, b, c) -changesyntax(`(<', `,|', `)>', `O(,)') -test(a, b, c) -test<a|b|c> -EOF - -cat <<\EOF >ok - -3 - -0(a, b, c) -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.2.test b/tests/gentest/changesy.2.test deleted file mode 100755 index 544a8753..00000000 --- a/tests/gentest/changesy.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/changesy.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2141 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$#') -test(a, b, c) -changesyntax(`(<', `,|', `)>', `O(,)') -test(a, b, c) -test<a|b|c> -EOF - -cat <<\EOF >ok - -3 - -0(a, b, c) -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.3.m4 b/tests/gentest/changesy.3.m4 deleted file mode 100755 index 8f86a03a..00000000 --- a/tests/gentest/changesy.3.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changesy.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2158 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$1$2$3') -test(a, b, c) -changesyntax(`O ') -test(a, b, c) -EOF - -cat <<\EOF >ok - -abc - -a b c -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.3.test b/tests/gentest/changesy.3.test deleted file mode 100755 index 79030e78..00000000 --- a/tests/gentest/changesy.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changesy.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2158 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `$1$2$3') -test(a, b, c) -changesyntax(`O ') -test(a, b, c) -EOF - -cat <<\EOF >ok - -abc - -a b c -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.4.m4 b/tests/gentest/changesy.4.m4 deleted file mode 100755 index 9ee5b7d1..00000000 --- a/tests/gentest/changesy.4.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changesy.4.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2177 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`@', `TEST') -@ -changesyntax(`A@') -@ -EOF - -cat <<\EOF >ok - -@ - -TEST -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.4.test b/tests/gentest/changesy.4.test deleted file mode 100755 index 7df01f9e..00000000 --- a/tests/gentest/changesy.4.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/changesy.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2177 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`@', `TEST') -@ -changesyntax(`A@') -@ -EOF - -cat <<\EOF >ok - -@ - -TEST -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.5.m4 b/tests/gentest/changesy.5.m4 deleted file mode 100755 index 2035d2b9..00000000 --- a/tests/gentest/changesy.5.m4 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# gentest/changesy.5.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2201 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `TEST') -changesyntax(`L<', `R>') -<test> -`test> -changequote(<[>, `]') -<test> -[test] -EOF - -cat <<\EOF >ok - - -test -test - -<TEST> -test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.5.test b/tests/gentest/changesy.5.test deleted file mode 100755 index 25640e31..00000000 --- a/tests/gentest/changesy.5.test +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# gentest/changesy.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2201 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `TEST') -changesyntax(`L<', `R>') -<test> -`test> -changequote(<[>, `]') -<test> -[test] -EOF - -cat <<\EOF >ok - - -test -test - -<TEST> -test -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.6.m4 b/tests/gentest/changesy.6.m4 deleted file mode 100755 index 88cac7a4..00000000 --- a/tests/gentest/changesy.6.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/changesy.6.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2223 - -. ${srcdir}/defs - -cat <<\EOF >in -changesyntax(`({<', `)}>', `,;:', `O(,)') -eval{2**4-1; 2 : 8> -EOF - -cat <<\EOF >ok - -00001111 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.6.test b/tests/gentest/changesy.6.test deleted file mode 100755 index 91cfc80a..00000000 --- a/tests/gentest/changesy.6.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/changesy.6.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2223 - -. ${srcdir}/defs - -cat <<\EOF >in -changesyntax(`({<', `)}>', `,;:', `O(,)') -eval{2**4-1; 2 : 8> -EOF - -cat <<\EOF >ok - -00001111 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.7.m4 b/tests/gentest/changesy.7.m4 deleted file mode 100755 index 7a366945..00000000 --- a/tests/gentest/changesy.7.m4 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/changesy.7.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2234 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `==$1==') -changequote(`<<', `>>') -changesyntax(<<L[>>, <<R]>>) -test(<<testing]>>) -test([testing>>]) -test([<<testing>>]) -EOF - -cat <<\EOF >ok - - - -==testing]== -==testing>>== -==<<testing>>== -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/changesy.7.test b/tests/gentest/changesy.7.test deleted file mode 100755 index 014c152f..00000000 --- a/tests/gentest/changesy.7.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/changesy.7.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2234 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`test', `==$1==') -changequote(`<<', `>>') -changesyntax(<<L[>>, <<R]>>) -test(<<testing]>>) -test([testing>>]) -test([<<testing>>]) -EOF - -cat <<\EOF >ok - - - -==testing]== -==testing>>== -==testing== -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/cleardiv.1.m4 b/tests/gentest/cleardiv.1.m4 deleted file mode 100755 index 36cba76a..00000000 --- a/tests/gentest/cleardiv.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/cleardiv.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2738 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert(-1) -undivert -EOF - -cat <<\EOF >ok -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/cleardiv.1.test b/tests/gentest/cleardiv.1.test deleted file mode 100755 index d9883e43..00000000 --- a/tests/gentest/cleardiv.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/cleardiv.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2738 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert(-1) -undivert -EOF - -cat <<\EOF >ok -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/cleardiv.2.m4 b/tests/gentest/cleardiv.2.m4 deleted file mode 100755 index e44667a9..00000000 --- a/tests/gentest/cleardiv.2.m4 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# gentest/cleardiv.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2753 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleardivert', -`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/cleardiv.2.test b/tests/gentest/cleardiv.2.test deleted file mode 100755 index 7e78d8a4..00000000 --- a/tests/gentest/cleardiv.2.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# gentest/cleardiv.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2753 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleardivert', -`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/define.1.m4 b/tests/gentest/define.1.m4 deleted file mode 100755 index 17f30775..00000000 --- a/tests/gentest/define.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/define.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 987 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -foo -EOF - -cat <<\EOF >ok - -Hello world. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/define.1.test b/tests/gentest/define.1.test deleted file mode 100755 index fb364668..00000000 --- a/tests/gentest/define.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/define.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 987 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -foo -EOF - -cat <<\EOF >ok - -Hello world. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/define.2.m4 b/tests/gentest/define.2.m4 deleted file mode 100755 index 62e2ea0e..00000000 --- a/tests/gentest/define.2.m4 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/define.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1007 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`array', `defn(format(``array[%d]'', `$1'))') -define(`array_set', `define(format(``array[%d]'', `$1'), `$2')') -array_set(4, `array element no. 4') -array_set(17, `array element no. 17') -array(4) -array(eval(10+7)) -EOF - -cat <<\EOF >ok - - - - -array element no. 4 -array element no. 17 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/define.2.test b/tests/gentest/define.2.test deleted file mode 100755 index 028642c3..00000000 --- a/tests/gentest/define.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/define.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1007 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`array', `defn(format(``array[%d]'', `$1'))') -define(`array_set', `define(format(``array[%d]'', `$1'), `$2')') -array_set(4, `array element no. 4') -array_set(17, `array element no. 17') -array(4) -array(eval(10+7)) -EOF - -cat <<\EOF >ok - - - - -array element no. 4 -array element no. 17 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/defn.1.m4 b/tests/gentest/defn.1.m4 deleted file mode 100755 index c3f06939..00000000 --- a/tests/gentest/defn.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/defn.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1230 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`zap', defn(`undefine')) -zap(`undefine') -undefine(`zap') -EOF - -cat <<\EOF >ok - - -undefine(zap) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/defn.1.test b/tests/gentest/defn.1.test deleted file mode 100755 index 868dc07e..00000000 --- a/tests/gentest/defn.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/defn.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1230 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`zap', defn(`undefine')) -zap(`undefine') -undefine(`zap') -EOF - -cat <<\EOF >ok - - -undefine(zap) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/defn.2.m4 b/tests/gentest/defn.2.m4 deleted file mode 100755 index 0422980b..00000000 --- a/tests/gentest/defn.2.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/defn.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1250 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`string', `The macro dnl is very useful -') -string -defn(`string') -EOF - -cat <<\EOF >ok - -The macro -The macro dnl is very useful - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/defn.2.test b/tests/gentest/defn.2.test deleted file mode 100755 index df1925d4..00000000 --- a/tests/gentest/defn.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/defn.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1250 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`string', `The macro dnl is very useful -') -string -defn(`string') -EOF - -cat <<\EOF >ok - -The macro -The macro dnl is very useful - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divert.1.m4 b/tests/gentest/divert.1.m4 deleted file mode 100755 index acfc17d7..00000000 --- a/tests/gentest/divert.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/divert.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2580 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divert.1.test b/tests/gentest/divert.1.test deleted file mode 100755 index f675ba00..00000000 --- a/tests/gentest/divert.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/divert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2580 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divert.2.m4 b/tests/gentest/divert.2.m4 deleted file mode 100755 index 13075ff7..00000000 --- a/tests/gentest/divert.2.m4 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# gentest/divert.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2600 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(-1) -define(`foo', `Macro `foo'.') -define(`bar', `Macro `bar'.') -divert -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divert.2.test b/tests/gentest/divert.2.test deleted file mode 100755 index 87f745d7..00000000 --- a/tests/gentest/divert.2.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# gentest/divert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2600 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(-1) -define(`foo', `Macro `foo'.') -define(`bar', `Macro `bar'.') -divert -EOF - -cat <<\EOF >ok - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divnum.1.m4 b/tests/gentest/divnum.1.m4 deleted file mode 100755 index 4f49f918..00000000 --- a/tests/gentest/divnum.1.m4 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/divnum.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2707 - -. ${srcdir}/defs - -cat <<\EOF >in -Initial divnum -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert -EOF - -cat <<\EOF >ok -Initial 0 - - -Diversion one: 1 - -Diversion two: 2 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/divnum.1.test b/tests/gentest/divnum.1.test deleted file mode 100755 index b1866d7b..00000000 --- a/tests/gentest/divnum.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/divnum.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2707 - -. ${srcdir}/defs - -cat <<\EOF >in -Initial divnum -divert(1) -Diversion one: divnum -divert(2) -Diversion two: divnum -divert -EOF - -cat <<\EOF >ok -Initial 0 - - -Diversion one: 1 - -Diversion two: 2 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/dnl.1.m4 b/tests/gentest/dnl.1.m4 deleted file mode 100755 index 5d0d7632..00000000 --- a/tests/gentest/dnl.1.m4 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# gentest/dnl.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1857 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. -foo -EOF - -cat <<\EOF >ok -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/dnl.1.test b/tests/gentest/dnl.1.test deleted file mode 100755 index f27916b3..00000000 --- a/tests/gentest/dnl.1.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# gentest/dnl.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1857 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. -foo -EOF - -cat <<\EOF >ok -Macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/dumpdef.1.m4 b/tests/gentest/dumpdef.1.m4 deleted file mode 100755 index bc31e1df..00000000 --- a/tests/gentest/dumpdef.1.m4 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/dumpdef.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1660 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -dumpdef(`foo') -dumpdef(`define') -EOF - -cat <<\EOF >ok - - - -EOF - -cat <<\EOF >okerr -foo: `Hello world.' -define: <define> -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/dumpdef.1.test b/tests/gentest/dumpdef.1.test deleted file mode 100755 index c2a00ded..00000000 --- a/tests/gentest/dumpdef.1.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/dumpdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1660 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello world.') -dumpdef(`foo') -dumpdef(`define') -EOF - -cat <<\EOF >ok - - - -EOF - -cat <<\EOF >okerr -foo: `Hello world.' -define: <define> -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/errprint.1.m4 b/tests/gentest/errprint.1.m4 deleted file mode 100755 index 107ef789..00000000 --- a/tests/gentest/errprint.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/errprint.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3426 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`Illegal arguments to forloop -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -Illegal arguments to forloop -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/errprint.1.test b/tests/gentest/errprint.1.test deleted file mode 100755 index b703dd30..00000000 --- a/tests/gentest/errprint.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/errprint.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3426 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`Illegal arguments to forloop -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -Illegal arguments to forloop -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/errprint.2.m4 b/tests/gentest/errprint.2.m4 deleted file mode 100755 index 5259782d..00000000 --- a/tests/gentest/errprint.2.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/errprint.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3451 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`m4:'__file__:__line__: `Input error -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -m4:in:1: Input error -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/errprint.2.test b/tests/gentest/errprint.2.test deleted file mode 100755 index 4ca64136..00000000 --- a/tests/gentest/errprint.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/errprint.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3451 - -. ${srcdir}/defs - -cat <<\EOF >in -errprint(`m4:'__file__:__line__: `Input error -') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -m4:in:1: Input error -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/esyscmd.1.m4 b/tests/gentest/esyscmd.1.m4 deleted file mode 100755 index 856620e4..00000000 --- a/tests/gentest/esyscmd.1.m4 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# gentest/esyscmd.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3315 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`vice', `esyscmd(grep Vice ../Makefile)') -vice -EOF - -cat <<\EOF >ok - -# Ty Coon, President of Vice - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/esyscmd.1.test b/tests/gentest/esyscmd.1.test deleted file mode 100755 index 8d609baf..00000000 --- a/tests/gentest/esyscmd.1.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# gentest/esyscmd.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3315 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`vice', `esyscmd(grep Vice ../Makefile)') -vice -EOF - -cat <<\EOF >ok - -# Ty Coon, President of Vice - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/eval.1.m4 b/tests/gentest/eval.1.m4 deleted file mode 100755 index b3d38cc3..00000000 --- a/tests/gentest/eval.1.m4 +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# gentest/eval.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3199 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(-3 * 5) -eval(index(`Hello world', `llo') >= 0) -define(`square', `eval(($1)**2)') -square(9) -square(square(5)+1) -define(`foo', `666') -eval(`foo'/6) -eval(foo/6) -EOF - -cat <<\EOF >ok --15 -1 - -81 -676 - - -111 -EOF - -cat <<\EOF >okerr -in:7: m4: Bad expression in eval: foo/6 -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/eval.1.test b/tests/gentest/eval.1.test deleted file mode 100755 index 56f916c2..00000000 --- a/tests/gentest/eval.1.test +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# gentest/eval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3199 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(-3 * 5) -eval(index(`Hello world', `llo') >= 0) -define(`square', `eval(($1)**2)') -square(9) -square(square(5)+1) -define(`foo', `666') -eval(`foo'/6) -eval(foo/6) -EOF - -cat <<\EOF >ok --15 -1 - -81 -676 - - -111 -EOF - -cat <<\EOF >okerr -in:7: m4: Bad expression in eval: foo/6 -EOF - -$M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/eval.2.m4 b/tests/gentest/eval.2.m4 deleted file mode 100755 index bd394eb4..00000000 --- a/tests/gentest/eval.2.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/eval.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3230 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(666, 10) -eval(666, 11) -eval(666, 6) -eval(666, 6, 10) -eval(-666, 6, 10) -EOF - -cat <<\EOF >ok -666 -556 -3030 -0000003030 --000003030 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/eval.2.test b/tests/gentest/eval.2.test deleted file mode 100755 index abc9fbb6..00000000 --- a/tests/gentest/eval.2.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/eval.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3230 - -. ${srcdir}/defs - -cat <<\EOF >in -eval(666, 10) -eval(666, 11) -eval(666, 6) -eval(666, 6, 10) -eval(-666, 6, 10) -EOF - -cat <<\EOF >ok -666 -556 -3030 -0000003030 --000003030 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/format.1.m4 b/tests/gentest/format.1.m4 deleted file mode 100755 index ddfdb7f6..00000000 --- a/tests/gentest/format.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/format.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3035 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `The brown fox jumped over the lazy dog') -format(`The string "%s" is %d characters long', foo, len(foo)) -EOF - -cat <<\EOF >ok - -The string "The brown fox jumped over the lazy dog" is 38 characters long -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/format.1.test b/tests/gentest/format.1.test deleted file mode 100755 index 84c50d0a..00000000 --- a/tests/gentest/format.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/format.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3035 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `The brown fox jumped over the lazy dog') -format(`The string "%s" is %d characters long', foo, len(foo)) -EOF - -cat <<\EOF >ok - -The string "The brown fox jumped over the lazy dog" is 38 characters long -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifdef.1.m4 b/tests/gentest/ifdef.1.m4 deleted file mode 100755 index 721608c0..00000000 --- a/tests/gentest/ifdef.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/ifdef.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1440 - -. ${srcdir}/defs - -cat <<\EOF >in -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -define(`foo', `') -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -EOF - -cat <<\EOF >ok -foo is not defined - -foo is defined -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifdef.1.test b/tests/gentest/ifdef.1.test deleted file mode 100755 index fb9951c7..00000000 --- a/tests/gentest/ifdef.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/ifdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1440 - -. ${srcdir}/defs - -cat <<\EOF >in -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -define(`foo', `') -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -EOF - -cat <<\EOF >ok -foo is not defined - -foo is defined -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifelse.1.m4 b/tests/gentest/ifelse.1.m4 deleted file mode 100755 index 0d6fbcf0..00000000 --- a/tests/gentest/ifelse.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/ifelse.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1478 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(`foo', `bar', `true') -ifelse(`foo', `foo', `true') -ifelse(`foo', `bar', `true', `false') -ifelse(`foo', `foo', `true', `false') -EOF - -cat <<\EOF >ok - -true -false -true -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifelse.1.test b/tests/gentest/ifelse.1.test deleted file mode 100755 index 851c3005..00000000 --- a/tests/gentest/ifelse.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/ifelse.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1478 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(`foo', `bar', `true') -ifelse(`foo', `foo', `true') -ifelse(`foo', `bar', `true', `false') -ifelse(`foo', `foo', `true', `false') -EOF - -cat <<\EOF >ok - -true -false -true -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifelse.2.m4 b/tests/gentest/ifelse.2.m4 deleted file mode 100755 index 0cf36999..00000000 --- a/tests/gentest/ifelse.2.m4 +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# gentest/ifelse.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1497 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh') -EOF - -cat <<\EOF >ok -seventh -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/ifelse.2.test b/tests/gentest/ifelse.2.test deleted file mode 100755 index 2573945b..00000000 --- a/tests/gentest/ifelse.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# gentest/ifelse.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1497 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh') -EOF - -cat <<\EOF >ok -seventh -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/include.1.m4 b/tests/gentest/include.1.m4 deleted file mode 100755 index e2912c84..00000000 --- a/tests/gentest/include.1.m4 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/include.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2454 - -. ${srcdir}/defs - -cat <<\EOF >in -include(`no-such-file') -sinclude(`no-such-file') -EOF - -cat <<\EOF >ok - - -EOF - -cat <<\EOF >okerr -in:1: m4: 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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/include.1.test b/tests/gentest/include.1.test deleted file mode 100755 index 55e186eb..00000000 --- a/tests/gentest/include.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/include.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2454 - -. ${srcdir}/defs - -cat <<\EOF >in -include(`no-such-file') -sinclude(`no-such-file') -EOF - -cat <<\EOF >ok - - -EOF - -cat <<\EOF >okerr -in:1: m4: 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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/include.2.m4 b/tests/gentest/include.2.m4 deleted file mode 100755 index 15a2ea64..00000000 --- a/tests/gentest/include.2.m4 +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# gentest/include.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2474 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `FOO') -include(`incl.m4') -EOF - -cat <<\EOF >ok - -Include file start -FOO -Include file end - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/include.2.test b/tests/gentest/include.2.test deleted file mode 100755 index 9257157c..00000000 --- a/tests/gentest/include.2.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# gentest/include.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2474 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `FOO') -include(`incl.m4') -EOF - -cat <<\EOF >ok - -Include file start -FOO -Include file end - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/include.3.m4 b/tests/gentest/include.3.m4 deleted file mode 100755 index 0f286a81..00000000 --- a/tests/gentest/include.3.m4 +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# gentest/include.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2489 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', include(`incl.m4')) -This is `bar': >>>bar<<< -EOF - -cat <<\EOF >ok - -This is bar: >>>Include file start -foo -Include file end -<<< -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/include.3.test b/tests/gentest/include.3.test deleted file mode 100755 index 19c911b2..00000000 --- a/tests/gentest/include.3.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# gentest/include.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2489 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', include(`incl.m4')) -This is `bar': >>>bar<<< -EOF - -cat <<\EOF >ok - -This is bar: >>>Include file start -foo -Include file end -<<< -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/incr.1.m4 b/tests/gentest/incr.1.m4 deleted file mode 100755 index 16035bd3..00000000 --- a/tests/gentest/incr.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/incr.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3105 - -. ${srcdir}/defs - -cat <<\EOF >in -incr(4) -decr(7) -EOF - -cat <<\EOF >ok -5 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/incr.1.test b/tests/gentest/incr.1.test deleted file mode 100755 index d9da8faa..00000000 --- a/tests/gentest/incr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/incr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3105 - -. ${srcdir}/defs - -cat <<\EOF >in -incr(4) -decr(7) -EOF - -cat <<\EOF >ok -5 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/index.1.m4 b/tests/gentest/index.1.m4 deleted file mode 100755 index 28771378..00000000 --- a/tests/gentest/index.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/index.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2821 - -. ${srcdir}/defs - -cat <<\EOF >in -index(`gnus, gnats, and armadillos', `nat') -index(`gnus, gnats, and armadillos', `dag') -EOF - -cat <<\EOF >ok -7 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/index.1.test b/tests/gentest/index.1.test deleted file mode 100755 index 2226ab97..00000000 --- a/tests/gentest/index.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/index.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2821 - -. ${srcdir}/defs - -cat <<\EOF >in -index(`gnus, gnats, and armadillos', `nat') -index(`gnus, gnats, and armadillos', `dag') -EOF - -cat <<\EOF >ok -7 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/indir.1.m4 b/tests/gentest/indir.1.m4 deleted file mode 100755 index e1714a5b..00000000 --- a/tests/gentest/indir.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/indir.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1369 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`$$internal$macro', `Internal macro (name `$0')') -$$internal$macro -indir(`$$internal$macro') -EOF - -cat <<\EOF >ok - -$$internal$macro -Internal macro (name $$internal$macro) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/indir.1.test b/tests/gentest/indir.1.test deleted file mode 100755 index ddb86909..00000000 --- a/tests/gentest/indir.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/indir.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1369 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`$$internal$macro', `Internal macro (name `$0')') -$$internal$macro -indir(`$$internal$macro') -EOF - -cat <<\EOF >ok - -$$internal$macro -Internal macro (name $$internal$macro) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/len.1.m4 b/tests/gentest/len.1.m4 deleted file mode 100755 index 1fa71023..00000000 --- a/tests/gentest/len.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/len.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2795 - -. ${srcdir}/defs - -cat <<\EOF >in -len() -len(`abcdef') -EOF - -cat <<\EOF >ok -0 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/len.1.test b/tests/gentest/len.1.test deleted file mode 100755 index 8799457a..00000000 --- a/tests/gentest/len.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/len.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2795 - -. ${srcdir}/defs - -cat <<\EOF >in -len() -len(`abcdef') -EOF - -cat <<\EOF >ok -0 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/loops.1.m4 b/tests/gentest/loops.1.m4 deleted file mode 100755 index 791e2560..00000000 --- a/tests/gentest/loops.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/loops.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1534 - -. ${srcdir}/defs - -cat <<\EOF >in -shift -shift(bar) -shift(foo, bar, baz) -EOF - -cat <<\EOF >ok - - -bar,baz -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/loops.1.test b/tests/gentest/loops.1.test deleted file mode 100755 index bf2b5264..00000000 --- a/tests/gentest/loops.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/loops.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1534 - -. ${srcdir}/defs - -cat <<\EOF >in -shift -shift(bar) -shift(foo, bar, baz) -EOF - -cat <<\EOF >ok - - -bar,baz -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/loops.2.m4 b/tests/gentest/loops.2.m4 deleted file mode 100755 index 88c305f5..00000000 --- a/tests/gentest/loops.2.m4 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/loops.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1546 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'', - `reverse(shift($@)), `$1'')') -reverse -reverse(foo) -reverse(foo, bar, gnats, and gnus) -EOF - -cat <<\EOF >ok - - -foo -and gnus, gnats, bar, foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/loops.2.test b/tests/gentest/loops.2.test deleted file mode 100755 index 5e38e47e..00000000 --- a/tests/gentest/loops.2.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/loops.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1546 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'', - `reverse(shift($@)), `$1'')') -reverse -reverse(foo) -reverse(foo, bar, gnats, and gnus) -EOF - -cat <<\EOF >ok - - -foo -and gnus, gnats, bar, foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/m4exit.1.m4 b/tests/gentest/m4exit.1.m4 deleted file mode 100755 index 7ba446b1..00000000 --- a/tests/gentest/m4exit.1.m4 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/m4exit.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3474 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* -')m4exit(1)') -fatal_error(`This is a BAD one, buster') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/m4exit.1.test b/tests/gentest/m4exit.1.test deleted file mode 100755 index 43a4b004..00000000 --- a/tests/gentest/m4exit.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# gentest/m4exit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3474 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* -')m4exit(1)') -fatal_error(`This is a BAD one, buster') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/m4wrap.1.m4 b/tests/gentest/m4wrap.1.m4 deleted file mode 100755 index a8315641..00000000 --- a/tests/gentest/m4wrap.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/m4wrap.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2395 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleanup', `This is the `cleanup' actions. -') -m4wrap(`cleanup') -This is the first and last normal input line. -EOF - -cat <<\EOF >ok - - -This is the first and last normal input line. -This is the cleanup actions. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/m4wrap.1.test b/tests/gentest/m4wrap.1.test deleted file mode 100755 index c6327beb..00000000 --- a/tests/gentest/m4wrap.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/m4wrap.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2395 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleanup', `This is the `cleanup' actions. -') -m4wrap(`cleanup') -This is the first and last normal input line. -EOF - -cat <<\EOF >ok - - -This is the first and last normal input line. -This is the cleanup actions. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/patsubst.1.m4 b/tests/gentest/patsubst.1.m4 deleted file mode 100755 index 1b39ecba..00000000 --- a/tests/gentest/patsubst.1.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/patsubst.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2983 - -. ${srcdir}/defs - -cat <<\EOF >in -patsubst(`GNUs not Unix', `^', `OBS: ') -patsubst(`GNUs not Unix', `\<', `OBS: ') -patsubst(`GNUs not Unix', `\w*', `(\&)') -patsubst(`GNUs not Unix', `\w+', `(\&)') -patsubst(`GNUs not Unix', `[A-Z][a-z]+') -EOF - -cat <<\EOF >ok -OBS: GNUs not Unix -OBS: GNUs OBS: not OBS: Unix -(GNUs)() (not)() (Unix) -(GNUs) (not) (Unix) -GN not -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/patsubst.1.test b/tests/gentest/patsubst.1.test deleted file mode 100755 index 6213ef87..00000000 --- a/tests/gentest/patsubst.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/patsubst.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2983 - -. ${srcdir}/defs - -cat <<\EOF >in -patsubst(`GNUs not Unix', `^', `OBS: ') -patsubst(`GNUs not Unix', `\<', `OBS: ') -patsubst(`GNUs not Unix', `\w*', `(\&)') -patsubst(`GNUs not Unix', `\w+', `(\&)') -patsubst(`GNUs not Unix', `[A-Z][a-z]+') -EOF - -cat <<\EOF >ok -OBS: GNUs not Unix -OBS: GNUs OBS: not OBS: Unix -(GNUs)() (not)() (Unix) -(GNUs) (not) (Unix) -GN not -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/patsubst.2.m4 b/tests/gentest/patsubst.2.m4 deleted file mode 100755 index f8644359..00000000 --- a/tests/gentest/patsubst.2.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/patsubst.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3000 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl -define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl -define(`capitalize1', - `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl -capitalize(`GNUs not Unix') -EOF - -cat <<\EOF >ok -Gnus Not Unix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/patsubst.2.test b/tests/gentest/patsubst.2.test deleted file mode 100755 index b31e4d80..00000000 --- a/tests/gentest/patsubst.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/patsubst.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3000 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl -define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl -define(`capitalize1', - `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl -capitalize(`GNUs not Unix') -EOF - -cat <<\EOF >ok -Gnus Not Unix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.1.m4 b/tests/gentest/pseudoar.1.m4 deleted file mode 100755 index 29721fa1..00000000 --- a/tests/gentest/pseudoar.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1100 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`nargs', `$#') -nargs -nargs() -nargs(arg1, arg2, arg3) -EOF - -cat <<\EOF >ok - -0 -1 -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.1.test b/tests/gentest/pseudoar.1.test deleted file mode 100755 index 50260e65..00000000 --- a/tests/gentest/pseudoar.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1100 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`nargs', `$#') -nargs -nargs() -nargs(arg1, arg2, arg3) -EOF - -cat <<\EOF >ok - -0 -1 -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.2.m4 b/tests/gentest/pseudoar.2.m4 deleted file mode 100755 index 47231cf4..00000000 --- a/tests/gentest/pseudoar.2.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1114 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$*') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.2.test b/tests/gentest/pseudoar.2.test deleted file mode 100755 index ca939b81..00000000 --- a/tests/gentest/pseudoar.2.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1114 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$*') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.3.m4 b/tests/gentest/pseudoar.3.m4 deleted file mode 100755 index 997641f3..00000000 --- a/tests/gentest/pseudoar.3.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1125 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$@') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.3.test b/tests/gentest/pseudoar.3.test deleted file mode 100755 index b29b17fc..00000000 --- a/tests/gentest/pseudoar.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1125 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$@') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.4.m4 b/tests/gentest/pseudoar.4.m4 deleted file mode 100755 index 68b7b6ef..00000000 --- a/tests/gentest/pseudoar.4.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.4.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1135 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo1', `$*') -define(`echo2', `$@') -define(`foo', `This is macro `foo'.') -echo1(foo) -echo2(foo) -EOF - -cat <<\EOF >ok - - - -This is macro This is macro foo.. -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.4.test b/tests/gentest/pseudoar.4.test deleted file mode 100755 index 81616f26..00000000 --- a/tests/gentest/pseudoar.4.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1135 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo1', `$*') -define(`echo2', `$@') -define(`foo', `This is macro `foo'.') -echo1(foo) -echo2(foo) -EOF - -cat <<\EOF >ok - - - -This is macro This is macro foo.. -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.5.m4 b/tests/gentest/pseudoar.5.m4 deleted file mode 100755 index 8c01d6f7..00000000 --- a/tests/gentest/pseudoar.5.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.5.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1155 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `$$$ hello $$$') -foo -EOF - -cat <<\EOF >ok - -$$$ hello $$$ -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pseudoar.5.test b/tests/gentest/pseudoar.5.test deleted file mode 100755 index e90de1fa..00000000 --- a/tests/gentest/pseudoar.5.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/pseudoar.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1155 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `$$$ hello $$$') -foo -EOF - -cat <<\EOF >ok - -$$$ hello $$$ -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pushdef.1.m4 b/tests/gentest/pushdef.1.m4 deleted file mode 100755 index ac11f585..00000000 --- a/tests/gentest/pushdef.1.m4 +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/pushdef.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1294 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -popdef(`foo') -foo -popdef(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Expansion one. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pushdef.1.test b/tests/gentest/pushdef.1.test deleted file mode 100755 index d934f422..00000000 --- a/tests/gentest/pushdef.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/pushdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1294 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -popdef(`foo') -foo -popdef(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Expansion one. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pushdef.2.m4 b/tests/gentest/pushdef.2.m4 deleted file mode 100755 index 07eb0c79..00000000 --- a/tests/gentest/pushdef.2.m4 +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/pushdef.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1318 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -define(`foo', `Second expansion two.') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Second expansion two. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/pushdef.2.test b/tests/gentest/pushdef.2.test deleted file mode 100755 index 7d43770f..00000000 --- a/tests/gentest/pushdef.2.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/pushdef.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1318 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -define(`foo', `Second expansion two.') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Second expansion two. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/regexp.1.m4 b/tests/gentest/regexp.1.m4 deleted file mode 100755 index d27cf8e7..00000000 --- a/tests/gentest/regexp.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/regexp.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2853 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\<[a-z]\w+') -regexp(`GNUs not Unix', `\<Q\w*') -EOF - -cat <<\EOF >ok -5 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/regexp.1.test b/tests/gentest/regexp.1.test deleted file mode 100755 index 3427751e..00000000 --- a/tests/gentest/regexp.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/regexp.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2853 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\<[a-z]\w+') -regexp(`GNUs not Unix', `\<Q\w*') -EOF - -cat <<\EOF >ok -5 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/regexp.2.m4 b/tests/gentest/regexp.2.m4 deleted file mode 100755 index a75bdc6f..00000000 --- a/tests/gentest/regexp.2.m4 +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# gentest/regexp.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2865 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***') -EOF - -cat <<\EOF >ok -*** Unix *** nix *** -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/regexp.2.test b/tests/gentest/regexp.2.test deleted file mode 100755 index c3ff8894..00000000 --- a/tests/gentest/regexp.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# gentest/regexp.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2865 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***') -EOF - -cat <<\EOF >ok -*** Unix *** nix *** -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/substr.1.m4 b/tests/gentest/substr.1.m4 deleted file mode 100755 index 6354c598..00000000 --- a/tests/gentest/substr.1.m4 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/substr.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2891 - -. ${srcdir}/defs - -cat <<\EOF >in -substr(`gnus, gnats, and armadillos', 6) -substr(`gnus, gnats, and armadillos', 6, 5) -EOF - -cat <<\EOF >ok -gnats, and armadillos -gnats -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/substr.1.test b/tests/gentest/substr.1.test deleted file mode 100755 index 964ab0eb..00000000 --- a/tests/gentest/substr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# gentest/substr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2891 - -. ${srcdir}/defs - -cat <<\EOF >in -substr(`gnus, gnats, and armadillos', 6) -substr(`gnus, gnats, and armadillos', 6, 5) -EOF - -cat <<\EOF >ok -gnats, and armadillos -gnats -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/sysval.1.m4 b/tests/gentest/sysval.1.m4 deleted file mode 100755 index f1ffeb7b..00000000 --- a/tests/gentest/sysval.1.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/sysval.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3346 - -. ${srcdir}/defs - -cat <<\EOF >in -syscmd(`false') -ifelse(sysval, 0, zero, non-zero) -syscmd(`true') -sysval -EOF - -cat <<\EOF >ok - -non-zero - -0 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/sysval.1.test b/tests/gentest/sysval.1.test deleted file mode 100755 index 6e101fd7..00000000 --- a/tests/gentest/sysval.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/sysval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3346 - -. ${srcdir}/defs - -cat <<\EOF >in -syscmd(`false') -ifelse(sysval, 0, zero, non-zero) -syscmd(`true') -sysval -EOF - -cat <<\EOF >ok - -non-zero - -0 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/trace.1.m4 b/tests/gentest/trace.1.m4 deleted file mode 100755 index eae2a55e..00000000 --- a/tests/gentest/trace.1.m4 +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/trace.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1705 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello World.') -define(`echo', `$@') -traceon(`foo', `echo') -foo -echo(gnus, and gnats) -EOF - -cat <<\EOF >ok - - - -Hello World. -gnus,and gnats -EOF - -cat <<\EOF >okerr -m4trace: -1- foo -> `Hello World.' -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/trace.1.test b/tests/gentest/trace.1.test deleted file mode 100755 index ef1cb312..00000000 --- a/tests/gentest/trace.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# gentest/trace.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1705 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello World.') -define(`echo', `$@') -traceon(`foo', `echo') -foo -echo(gnus, and gnats) -EOF - -cat <<\EOF >ok - - - -Hello World. -gnus,and gnats -EOF - -cat <<\EOF >okerr -m4trace: -1- foo -> `Hello World.' -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/gentest/translit.1.m4 b/tests/gentest/translit.1.m4 deleted file mode 100755 index 4ac2bd7a..00000000 --- a/tests/gentest/translit.1.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/translit.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2932 - -. ${srcdir}/defs - -cat <<\EOF >in -translit(`GNUs not Unix', `A-Z') -translit(`GNUs not Unix', `a-z', `A-Z') -translit(`GNUs not Unix', `A-Z', `z-a') -EOF - -cat <<\EOF >ok -s not nix -GNUS NOT UNIX -tmfs not fnix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/translit.1.test b/tests/gentest/translit.1.test deleted file mode 100755 index e650bbdf..00000000 --- a/tests/gentest/translit.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# gentest/translit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2932 - -. ${srcdir}/defs - -cat <<\EOF >in -translit(`GNUs not Unix', `A-Z') -translit(`GNUs not Unix', `a-z', `A-Z') -translit(`GNUs not Unix', `A-Z', `z-a') -EOF - -cat <<\EOF >ok -s not nix -GNUS NOT UNIX -tmfs not fnix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undefine.1.m4 b/tests/gentest/undefine.1.m4 deleted file mode 100755 index cd7db2ad..00000000 --- a/tests/gentest/undefine.1.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/undefine.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1186 - -. ${srcdir}/defs - -cat <<\EOF >in -foo -define(`foo', `expansion text') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok -foo - -expansion text - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undefine.1.test b/tests/gentest/undefine.1.test deleted file mode 100755 index d196e530..00000000 --- a/tests/gentest/undefine.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/undefine.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1186 - -. ${srcdir}/defs - -cat <<\EOF >in -foo -define(`foo', `expansion text') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok -foo - -expansion text - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.1.m4 b/tests/gentest/undivert.1.m4 deleted file mode 100755 index db869a32..00000000 --- a/tests/gentest/undivert.1.m4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/undivert.1.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2631 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -undivert(1) -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.1.test b/tests/gentest/undivert.1.test deleted file mode 100755 index 3d04dc8b..00000000 --- a/tests/gentest/undivert.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# gentest/undivert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2631 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -undivert(1) -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.2.m4 b/tests/gentest/undivert.2.m4 deleted file mode 100755 index 0663e0dd..00000000 --- a/tests/gentest/undivert.2.m4 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/undivert.2.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2655 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted first. -divert(0)undivert(1)dnl -undivert(1) -divert(1) -This text is also diverted but not appended. -divert(0)undivert(1)dnl -EOF - -cat <<\EOF >ok - -This text is diverted first. - - -This text is also diverted but not appended. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.2.test b/tests/gentest/undivert.2.test deleted file mode 100755 index 6a84ecc4..00000000 --- a/tests/gentest/undivert.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# gentest/undivert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2655 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted first. -divert(0)undivert(1)dnl -undivert(1) -divert(1) -This text is also diverted but not appended. -divert(0)undivert(1)dnl -EOF - -cat <<\EOF >ok - -This text is diverted first. - - -This text is also diverted but not appended. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.3.m4 b/tests/gentest/undivert.3.m4 deleted file mode 100755 index d0b92cae..00000000 --- a/tests/gentest/undivert.3.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/undivert.3.m4 is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2681 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', `BAR') -undivert(`foo') -include(`foo') -EOF - -cat <<\EOF >ok - -bar - -BAR - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/gentest/undivert.3.test b/tests/gentest/undivert.3.test deleted file mode 100755 index f6d22551..00000000 --- a/tests/gentest/undivert.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# gentest/undivert.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2681 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', `BAR') -undivert(`foo') -include(`foo') -EOF - -cat <<\EOF >ok - -bar - -BAR - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/get-them b/tests/get-them deleted file mode 100755 index ca42991a..00000000 --- a/tests/get-them +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# Extract all examples from the manual source. -# Copyright (C) 1992 Free Software Foundation, Inc. - -# This script is for use with GNU awk. - -FILE=${1-/dev/null} - -${AWK-gawk} ' - -BEGIN { - node = ""; - seq = -1; - count = 0; - file = "NONE"; -} - -/^@node / { - if (seq > 0) - printf(" -- %d test%s", seq, seq == 1 ? "" : "s"); - if (seq >= 0) - printf("\n"); - - split($0, tmp, ","); - Node = substr(tmp[1], 7); - node = tolower(Node); - gsub(" ", "", node); - if (length(node) > 8) - printf("Node: %s - truncated", node); - else - printf("Node: %s ", node); - node = substr(node, 1, 8); - seq = 0; -} - -/^@comment ignore$/ { - getline; - next; -} - -/^@example$/, /^@end example$/ { - if (seq < 0) - next; - if ($0 ~ /^@example$/) { - if (count > 0) - close (file); - seq++; - count++; - o = 0; - e = 0; - error_flag = 0; - i = 0; - include_flag = 0; - file = sprintf("%s.%d.test", node, seq); - printf ("#!/bin/sh\n\n") > file; - printf ("# %s is part of the GNU m4 testsuite\n", file) >> file; - printf ("# generated from example in %s line %d\n\n", FILENAME, NR) >>file; - printf (". ${srcdir}/defs\n") >> file; - next; - } - if ($0 ~ /^@end example$/) { - printthem(input, i, "in"); - printthem(output, o, "ok"); - printthem(error, e, "okerr"); - printf ("\n") >> file; - 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; - printf ("\n\n$CMP -s out ok") >> file; - if (error_flag == 1) printf (" && $CMP -s err okerr") >> file; - printf ("\n\n") >> file; - next; - } - if ($0 ~ /^\^D$/) - next; - if ($0 ~ /^@result\{\}/) { - gsub(/^@result\{\}/, "", $0); - output[o++] = $0; - } - else if ($0 ~ /^@error\{\}/) { - gsub(/^@error\{\}/, "", $0); - error[e++] = $0; - error_flag = 1; - } - else { - input[i++] = $0; - if ($0 ~ /s*include\(/) include_flag = 1; - } -} - -END { - printf("\n"); -} - -function printthem(thearray, thecounter, thefile) { - if ((thecounter>0) || (thefile=="ok")) { - printf ("\ncat <<\\EOF >%s\n", thefile) >> file; - for (j=0; j<thecounter; j++) { - gsub("@{", "{", thearray[j]); - gsub("@}", "}", thearray[j]); - gsub("@@", "@", thearray[j]); - gsub("@comment.*", "", thearray[j]); - printf ("%s\n", thearray[j]) >> file; - } - printf ("EOF\n") >> file; - } -} - -' $FILE >/dev/null - -chmod +x *.[0-9].test diff --git a/tests/ifdef.1.test b/tests/ifdef.1.test deleted file mode 100755 index 9cb0935b..00000000 --- a/tests/ifdef.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# ifdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1441 - -. ${srcdir}/defs - -cat <<\EOF >in -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -define(`foo', `') -ifdef(`foo', ``foo' is defined', ``foo' is not defined') -EOF - -cat <<\EOF >ok -foo is not defined - -foo is defined -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/ifelse.1.test b/tests/ifelse.1.test deleted file mode 100755 index 7942a0c2..00000000 --- a/tests/ifelse.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# ifelse.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1479 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(`foo', `bar', `true') -ifelse(`foo', `foo', `true') -ifelse(`foo', `bar', `true', `false') -ifelse(`foo', `foo', `true', `false') -EOF - -cat <<\EOF >ok - -true -false -true -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/ifelse.2.test b/tests/ifelse.2.test deleted file mode 100755 index d2049f5d..00000000 --- a/tests/ifelse.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# ifelse.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1498 - -. ${srcdir}/defs - -cat <<\EOF >in -ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh') -EOF - -cat <<\EOF >ok -seventh -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/incl.m4 b/tests/incl.m4 deleted file mode 100644 index ab9572eb..00000000 --- a/tests/incl.m4 +++ /dev/null @@ -1,3 +0,0 @@ -Include file start -foo -Include file end diff --git a/tests/include.1.test b/tests/include.1.test deleted file mode 100755 index 535a1292..00000000 --- a/tests/include.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# include.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2455 - -. ${srcdir}/defs - -cat <<\EOF >in -include(`no-such-file') -sinclude(`no-such-file') -EOF - -cat <<\EOF >ok - - -EOF - -cat <<\EOF >okerr -in:1: m4: 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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/include.2.test b/tests/include.2.test deleted file mode 100755 index 1e0c428f..00000000 --- a/tests/include.2.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# include.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2475 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `FOO') -include(`incl.m4') -EOF - -cat <<\EOF >ok - -Include file start -FOO -Include file end - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/include.3.test b/tests/include.3.test deleted file mode 100755 index edf228d0..00000000 --- a/tests/include.3.test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# include.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2490 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', include(`incl.m4')) -This is `bar': >>>bar<<< -EOF - -cat <<\EOF >ok - -This is bar: >>>Include file start -foo -Include file end -<<< -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - diff --git a/tests/incr.1.test b/tests/incr.1.test deleted file mode 100755 index d20be4df..00000000 --- a/tests/incr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# incr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3106 - -. ${srcdir}/defs - -cat <<\EOF >in -incr(4) -decr(7) -EOF - -cat <<\EOF >ok -5 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/index.1.test b/tests/index.1.test deleted file mode 100755 index 1cee65fa..00000000 --- a/tests/index.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# index.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2822 - -. ${srcdir}/defs - -cat <<\EOF >in -index(`gnus, gnats, and armadillos', `nat') -index(`gnus, gnats, and armadillos', `dag') -EOF - -cat <<\EOF >ok -7 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/indir.1.test b/tests/indir.1.test deleted file mode 100755 index 3cbc0511..00000000 --- a/tests/indir.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# indir.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1370 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`$$internal$macro', `Internal macro (name `$0')') -$$internal$macro -indir(`$$internal$macro') -EOF - -cat <<\EOF >ok - -$$internal$macro -Internal macro (name $$internal$macro) -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/len.1.test b/tests/len.1.test deleted file mode 100755 index a60bb1b0..00000000 --- a/tests/len.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# len.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2796 - -. ${srcdir}/defs - -cat <<\EOF >in -len() -len(`abcdef') -EOF - -cat <<\EOF >ok -0 -6 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/loops.1.test b/tests/loops.1.test deleted file mode 100755 index 3a872fc9..00000000 --- a/tests/loops.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# loops.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1535 - -. ${srcdir}/defs - -cat <<\EOF >in -shift -shift(bar) -shift(foo, bar, baz) -EOF - -cat <<\EOF >ok - - -bar,baz -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/loops.2.test b/tests/loops.2.test deleted file mode 100755 index 35e4db17..00000000 --- a/tests/loops.2.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# loops.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1547 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'', - `reverse(shift($@)), `$1'')') -reverse -reverse(foo) -reverse(foo, bar, gnats, and gnus) -EOF - -cat <<\EOF >ok - - -foo -and gnus, gnats, bar, foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/m4exit.1.test b/tests/m4exit.1.test deleted file mode 100755 index c721d434..00000000 --- a/tests/m4exit.1.test +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# m4exit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3475 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* -')m4exit(1)') -fatal_error(`This is a BAD one, buster') -EOF - -cat <<\EOF >ok - -EOF - -cat <<\EOF >okerr -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/m4wrap.1.test b/tests/m4wrap.1.test deleted file mode 100755 index 1a27ac3c..00000000 --- a/tests/m4wrap.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# m4wrap.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2396 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`cleanup', `This is the `cleanup' actions. -') -m4wrap(`cleanup') -This is the first and last normal input line. -EOF - -cat <<\EOF >ok - - -This is the first and last normal input line. -This is the cleanup actions. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/mkconfig.sh b/tests/mkconfig.sh deleted file mode 100644 index f2ebc782..00000000 --- a/tests/mkconfig.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -env >/tmp/env -sed -n -e '/^#define \(\(WITH\|ENABLE\)_.*\) \(.*\)$/s//define(\1, \3)dnl/p' config.h > tests/config.m4 -sed -n -e '/^#define \(\(WITH\|ENABLE\)_.*\) \(.*\)$/s//\1=\3/p' config.h > tests/config.sh diff --git a/tests/other-tests/discard-comments.m4 b/tests/other-tests/discard-comments.m4 deleted file mode 100644 index 95aebd27..00000000 --- a/tests/other-tests/discard-comments.m4 +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100755 index 2f6a4599..00000000 --- a/tests/other-tests/discard-comments.test +++ /dev/null @@ -1,17 +0,0 @@ -#!/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 deleted file mode 100644 index b916ff69..00000000 --- a/tests/other-tests/gmp.m4 +++ /dev/null @@ -1,10 +0,0 @@ -divert(-1) -# forloop(i, from, to, stmt) - -define(`forloop', `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')') -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) -') diff --git a/tests/other-tests/gmp.test b/tests/other-tests/gmp.test deleted file mode 100755 index 9382832a..00000000 --- a/tests/other-tests/gmp.test +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh - -# gmp.test is part of the GNU m4 testsuite - -. ${srcdir}/defs -. ${srcdir}/config.sh - -# cannot perform test without --with-gmp -test -z "$WITH_GMP" && exit 77 - -cat ${srcdir}/other-tests/gmp.m4 >in - -cat <<\EOF >ok - -2**1 = 2 -2**2 = 4 -2**3 = 8 -2**4 = 16 -2**5 = 32 -2**6 = 64 -2**7 = 128 -2**8 = 256 -2**9 = 512 -2**10 = 1024 -2**11 = 2048 -2**12 = 4096 -2**13 = 8192 -2**14 = 16384 -2**15 = 32768 -2**16 = 65536 -2**17 = 131072 -2**18 = 262144 -2**19 = 524288 -2**20 = 1048576 -2**21 = 2097152 -2**22 = 4194304 -2**23 = 8388608 -2**24 = 16777216 -2**25 = 33554432 -2**26 = 67108864 -2**27 = 134217728 -2**28 = 268435456 -2**29 = 536870912 -2**30 = 1073741824 -2**31 = 2147483648 -2**32 = 4294967296 -2**33 = 8589934592 -2**34 = 17179869184 -2**35 = 34359738368 -2**36 = 68719476736 -2**37 = 137438953472 -2**38 = 274877906944 -2**39 = 549755813888 -2**40 = 1099511627776 -2**41 = 2199023255552 -2**42 = 4398046511104 -2**43 = 8796093022208 -2**44 = 17592186044416 -2**45 = 35184372088832 -2**46 = 70368744177664 -2**47 = 140737488355328 -2**48 = 281474976710656 -2**49 = 562949953421312 -2**50 = 1125899906842624 -2**51 = 2251799813685248 -2**52 = 4503599627370496 -2**53 = 9007199254740992 -2**54 = 18014398509481984 -2**55 = 36028797018963968 -2**56 = 72057594037927936 -2**57 = 144115188075855872 -2**58 = 288230376151711744 -2**59 = 576460752303423488 -2**60 = 1152921504606846976 -2**61 = 2305843009213693952 -2**62 = 4611686018427387904 -2**63 = 9223372036854775808 -2**64 = 18446744073709551616 -2**65 = 36893488147419103232 -2**66 = 73786976294838206464 -2**67 = 147573952589676412928 -2**68 = 295147905179352825856 -2**69 = 590295810358705651712 -2**70 = 1180591620717411303424 -2**71 = 2361183241434822606848 -2**72 = 4722366482869645213696 -2**73 = 9444732965739290427392 -2**74 = 18889465931478580854784 -2**75 = 37778931862957161709568 -2**76 = 75557863725914323419136 -2**77 = 151115727451828646838272 -2**78 = 302231454903657293676544 -2**79 = 604462909807314587353088 -2**80 = 1208925819614629174706176 -2**81 = 2417851639229258349412352 -2**82 = 4835703278458516698824704 -2**83 = 9671406556917033397649408 -2**84 = 19342813113834066795298816 -2**85 = 38685626227668133590597632 -2**86 = 77371252455336267181195264 -2**87 = 154742504910672534362390528 -2**88 = 309485009821345068724781056 -2**89 = 618970019642690137449562112 -2**90 = 1237940039285380274899124224 -2**91 = 2475880078570760549798248448 -2**92 = 4951760157141521099596496896 -2**93 = 9903520314283042199192993792 -2**94 = 19807040628566084398385987584 -2**95 = 39614081257132168796771975168 -2**96 = 79228162514264337593543950336 -2**97 = 158456325028528675187087900672 -2**98 = 316912650057057350374175801344 -2**99 = 633825300114114700748351602688 -2**100 = 1267650600228229401496703205376 - -EOF - -M4PATH=$srcdir:$srcdir/../tests $M4 -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/import-environment.m4 b/tests/other-tests/import-environment.m4 deleted file mode 100644 index f537df66..00000000 --- a/tests/other-tests/import-environment.m4 +++ /dev/null @@ -1,4 +0,0 @@ -`TEST'=TEST -`LANGUAGE'=LANGUAGE -`ZAPPED'=ZAPPED -`OVERRIDE'=OVERRIDE diff --git a/tests/other-tests/import-environment.test b/tests/other-tests/import-environment.test deleted file mode 100755 index 195434b5..00000000 --- a/tests/other-tests/import-environment.test +++ /dev/null @@ -1,28 +0,0 @@ -#!/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 differdeleted file mode 100644 index 4ac1d196..00000000 --- a/tests/other-tests/iso8859.m4 +++ /dev/null diff --git a/tests/other-tests/iso8859.test b/tests/other-tests/iso8859.test deleted file mode 100755 index f77dbb27..00000000 --- a/tests/other-tests/iso8859.test +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# iso8859.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/other-tests/iso8859.m4 > in - -cat <<\EOF >ok -# Texting quotes -DEFINE -CHANGEQUOTE(«,») -0 TEST # TEST -1 test # test -2 «test» # «test» -3 ««test»» # ««test»» -CHANGEQUOTE(«««,»»») -0 TEST # TEST -1 «TEST» # «TEST» -2 ««TEST»» # ««TEST»» -3 test # test -# Test use of all iso8859 characters except NUL ` ' -Length of string is: 253 -Comparing strings: MATCH -# NUL does not pass through -This will be seen. -EOF - -M4PATH=$srcdir:$srcdir/other-tests $M4 -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/stackovf.test b/tests/other-tests/stackovf.test deleted file mode 100755 index 699c5bef..00000000 --- a/tests/other-tests/stackovf.test +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh - -exit 77 - -# Script to verify that stack overflow is diagnosed properly when -# there is infinite macro call nesting. -# (causes coredump in m4-1.0.3) - -# On some systems the ulimit command is available in ksh or bash but not sh -(exec 2>/dev/null; ulimit -HSs 300) || { - for altshell in bash bsh ksh ; do - if (exec >/dev/null 2>&1; $altshell -c 'ulimit -HSs 300') && - test -z "$1" - then - echo "Using $altshell because it supports ulimit" - exec $altshell $0 running-with-$altshell - exit 9 - fi - done -} - -PATH=.:..:$PATH; export PATH; -: ${M4=../../src/m4} -type $M4 - -tmpfile=/tmp/t.$$ -trap 'rm -f $tmpfile; exit 1' 1 2 3 15 - -rm -f core -perl -e ' -# Generate nested define sequence -$max=1000000; -for ($i=0; $i<$max; $i++) { - print "define(X$i,\n"; -} -for ($i=$max-1; $i>=0; $i--) { - print "body with substance no. $i)dnl\n" -} -' | \ -( -# Limit the stack size if the shell we are running permits it -if (exec 2>/dev/null; ulimit -HSs 50) -then - (exec >/dev/null 2>&1; ulimit -v) && ulimitdashv=ok - ulimit -HSs 50 - #ulimit -HSd 8000 - #test -n "$ulimitdashv" && ulimit -HSv 8000 - echo "Stack limit is `ulimit -s`K"; - echo "Heap limit is `ulimit -d`K"; - test -n "$ulimitdashv" && - echo "VMem limit is `ulimit -v`K"; -else - echo "Can't reset stack limit - this may take a while..." -fi -strace -o /tmp/aaa $M4 -L999999999 > $tmpfile 2>&1 -) -result=$? -{ echo "Output from $M4:"; cat $tmpfile; } - -exitcode=1 -if test $result -eq 0 ; then - echo "TEST DID NOT WORK - m4 did not abort. Output:" -else - # See if stack overflow was diagnosed - case "`cat $tmpfile`" in - *overflow*) - echo "Test succeeded."; - exitcode=0 - ;; - *ut*of*emory*|*emory*xhausted) - echo "*** Test is INCONCLUSIVE (ran out of heap before stack overflow)"; - ;; - *) echo "*** Test FAILED. $M4 aborted unexpectedly. Output:"; - ;; - esac -fi - -if test -f core ; then - ls -l core - exitcode=1 -fi - -#(test $exitcode -ne 0) && - { echo "Output from $M4:"; cat $tmpfile; } - -exit $exitcode diff --git a/tests/other-tests/sync-lines.m4 b/tests/other-tests/sync-lines.m4 deleted file mode 100644 index 7cad389d..00000000 --- a/tests/other-tests/sync-lines.m4 +++ /dev/null @@ -1,12 +0,0 @@ -syncoutput(on)dnl -# Several input lines, expanding to one -define(`foo', ``foo' line one. -`foo' line two. -`foo' line three.') xyz -foo -# Several input lines, expanding to none -define(`foo', ``foo' line one. -`foo' line two. -`foo' line three.')dnl -# one input line, expanding to several output lines -foo foo diff --git a/tests/other-tests/sync-lines.test b/tests/other-tests/sync-lines.test deleted file mode 100755 index c151f669..00000000 --- a/tests/other-tests/sync-lines.test +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -# sync-lines.test is part of the GNU m4 testsuite - -. ${srcdir}/defs - -cat ${srcdir}/other-tests/sync-lines.m4 >in - -cat <<\EOF >ok -#line 2 "in" -# Several input lines, expanding to one -#line 5 - xyz -foo line one. -#line 6 -foo line two. -#line 6 -foo line three. -# Several input lines, expanding to none -#line 11 -# one input line, expanding to several output lines -foo line one. -#line 12 -foo line two. -#line 12 -foo line three. foo line one. -#line 12 -foo line two. -#line 12 -foo line three. -EOF - -M4PATH=$srcdir:$srcdir/other-tests $M4 -d in >out 2>err -sed -e "s, ../../src/m4:, m4:," err >sederr && mv sederr err -$CMP -s out ok diff --git a/tests/patsubst.1.test b/tests/patsubst.1.test deleted file mode 100755 index 152d961d..00000000 --- a/tests/patsubst.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# patsubst.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2984 - -. ${srcdir}/defs - -cat <<\EOF >in -patsubst(`GNUs not Unix', `^', `OBS: ') -patsubst(`GNUs not Unix', `\<', `OBS: ') -patsubst(`GNUs not Unix', `\w*', `(\&)') -patsubst(`GNUs not Unix', `\w+', `(\&)') -patsubst(`GNUs not Unix', `[A-Z][a-z]+') -EOF - -cat <<\EOF >ok -OBS: GNUs not Unix -OBS: GNUs OBS: not OBS: Unix -(GNUs)() (not)() (Unix) -(GNUs) (not) (Unix) -GN not -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/patsubst.2.test b/tests/patsubst.2.test deleted file mode 100755 index 47ce0b77..00000000 --- a/tests/patsubst.2.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# patsubst.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3001 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl -define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl -define(`capitalize1', - `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl -capitalize(`GNUs not Unix') -EOF - -cat <<\EOF >ok -Gnus Not Unix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pseudoar.1.test b/tests/pseudoar.1.test deleted file mode 100755 index 060af181..00000000 --- a/tests/pseudoar.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# pseudoar.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1101 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`nargs', `$#') -nargs -nargs() -nargs(arg1, arg2, arg3) -EOF - -cat <<\EOF >ok - -0 -1 -3 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pseudoar.2.test b/tests/pseudoar.2.test deleted file mode 100755 index 765e73b2..00000000 --- a/tests/pseudoar.2.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# pseudoar.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1115 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$*') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pseudoar.3.test b/tests/pseudoar.3.test deleted file mode 100755 index ef7bae06..00000000 --- a/tests/pseudoar.3.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# pseudoar.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1126 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo', `$@') -echo(arg1, arg2, arg3 , arg4) -EOF - -cat <<\EOF >ok - -arg1,arg2,arg3 ,arg4 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pseudoar.4.test b/tests/pseudoar.4.test deleted file mode 100755 index b95fade9..00000000 --- a/tests/pseudoar.4.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# pseudoar.4.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1136 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`echo1', `$*') -define(`echo2', `$@') -define(`foo', `This is macro `foo'.') -echo1(foo) -echo2(foo) -EOF - -cat <<\EOF >ok - - - -This is macro This is macro foo.. -This is macro foo. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pseudoar.5.test b/tests/pseudoar.5.test deleted file mode 100755 index c739ef51..00000000 --- a/tests/pseudoar.5.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# pseudoar.5.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1156 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `$$$ hello $$$') -foo -EOF - -cat <<\EOF >ok - -$$$ hello $$$ -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pushdef.1.test b/tests/pushdef.1.test deleted file mode 100755 index fecfa31a..00000000 --- a/tests/pushdef.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# pushdef.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1295 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -popdef(`foo') -foo -popdef(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Expansion one. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/pushdef.2.test b/tests/pushdef.2.test deleted file mode 100755 index d391e5da..00000000 --- a/tests/pushdef.2.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# pushdef.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1319 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Expansion one.') -foo -pushdef(`foo', `Expansion two.') -foo -define(`foo', `Second expansion two.') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok - -Expansion one. - -Expansion two. - -Second expansion two. - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/regexp.1.test b/tests/regexp.1.test deleted file mode 100755 index a83a2228..00000000 --- a/tests/regexp.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# regexp.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2854 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\<[a-z]\w+') -regexp(`GNUs not Unix', `\<Q\w*') -EOF - -cat <<\EOF >ok -5 --1 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/regexp.2.test b/tests/regexp.2.test deleted file mode 100755 index 6ed53dd8..00000000 --- a/tests/regexp.2.test +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# regexp.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2866 - -. ${srcdir}/defs - -cat <<\EOF >in -regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***') -EOF - -cat <<\EOF >ok -*** Unix *** nix *** -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/run-test b/tests/run-test deleted file mode 100755 index c5223163..00000000 --- a/tests/run-test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# Run a test manually -# Copyright (C) 1998 Free Software Foundation, Inc. - -srcdir=. -export srcdir - -if sh "$@"; then - echo "Test succeeded" -else - echo "TEST FAILED" - - if cmp testSubDir/ok testSubDir/out 2>/dev/null; then - : - else - echo "stdout mosmatch" - diff -c testSubDir/ok testSubDir/out - fi - - msgerr="" - if test -e testSubDir/err; then - if cmp testSubDir/okerr testSubDir/err 2>/dev/null; then - : - else - echo "stderr mismatch" - diff -c testSubDir/okerr testSubDir/err - fi - fi -fi diff --git a/tests/stamp-TESTS b/tests/stamp-TESTS deleted file mode 100644 index e69de29b..00000000 --- a/tests/stamp-TESTS +++ /dev/null diff --git a/tests/substr.1.test b/tests/substr.1.test deleted file mode 100755 index ebfc000f..00000000 --- a/tests/substr.1.test +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# substr.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2892 - -. ${srcdir}/defs - -cat <<\EOF >in -substr(`gnus, gnats, and armadillos', 6) -substr(`gnus, gnats, and armadillos', 6, 5) -EOF - -cat <<\EOF >ok -gnats, and armadillos -gnats -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/sysval.1.test b/tests/sysval.1.test deleted file mode 100755 index e79a0ef5..00000000 --- a/tests/sysval.1.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# sysval.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 3347 - -. ${srcdir}/defs - -cat <<\EOF >in -syscmd(`false') -ifelse(sysval, 0, zero, non-zero) -syscmd(`true') -sysval -EOF - -cat <<\EOF >ok - -non-zero - -0 -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/trace.1.test b/tests/trace.1.test deleted file mode 100755 index 7d103f7f..00000000 --- a/tests/trace.1.test +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# trace.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1706 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`foo', `Hello World.') -define(`echo', `$@') -traceon(`foo', `echo') -foo -echo(gnus, and gnats) -EOF - -cat <<\EOF >ok - - - -Hello World. -gnus,and gnats -EOF - -cat <<\EOF >okerr -m4trace: -1- foo -> `Hello World.' -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 - -$CMP -s out ok && $CMP -s err okerr - diff --git a/tests/translit.1.test b/tests/translit.1.test deleted file mode 100755 index 51a4396a..00000000 --- a/tests/translit.1.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# translit.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2933 - -. ${srcdir}/defs - -cat <<\EOF >in -translit(`GNUs not Unix', `A-Z') -translit(`GNUs not Unix', `a-z', `A-Z') -translit(`GNUs not Unix', `A-Z', `z-a') -EOF - -cat <<\EOF >ok -s not nix -GNUS NOT UNIX -tmfs not fnix -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/undefine.1.test b/tests/undefine.1.test deleted file mode 100755 index e2450f79..00000000 --- a/tests/undefine.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# undefine.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 1187 - -. ${srcdir}/defs - -cat <<\EOF >in -foo -define(`foo', `expansion text') -foo -undefine(`foo') -foo -EOF - -cat <<\EOF >ok -foo - -expansion text - -foo -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/undivert.1.test b/tests/undivert.1.test deleted file mode 100755 index 10c6625e..00000000 --- a/tests/undivert.1.test +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# undivert.1.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2632 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted. -divert -This text is not diverted. -undivert(1) -EOF - -cat <<\EOF >ok - -This text is not diverted. - -This text is diverted. - -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/undivert.2.test b/tests/undivert.2.test deleted file mode 100755 index d49f7fc4..00000000 --- a/tests/undivert.2.test +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# undivert.2.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2656 - -. ${srcdir}/defs - -cat <<\EOF >in -divert(1) -This text is diverted first. -divert(0)undivert(1)dnl -undivert(1) -divert(1) -This text is also diverted but not appended. -divert(0)undivert(1)dnl -EOF - -cat <<\EOF >ok - -This text is diverted first. - - -This text is also diverted but not appended. -EOF - -$M4 -d in >out - -$CMP -s out ok - diff --git a/tests/undivert.3.test b/tests/undivert.3.test deleted file mode 100755 index 146374d9..00000000 --- a/tests/undivert.3.test +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# undivert.3.test is part of the GNU m4 testsuite -# generated from example in ../doc/m4.texinfo line 2682 - -. ${srcdir}/defs - -cat <<\EOF >in -define(`bar', `BAR') -undivert(`foo') -include(`foo') -EOF - -cat <<\EOF >ok - -bar - -BAR - -EOF - -M4PATH=$srcdir $M4 -d in >out - -$CMP -s out ok - |