Changeset 503 for trunk/src/gmake/config


Ignore:
Timestamp:
Sep 15, 2006, 7:09:38 AM (19 years ago)
Author:
bird
Message:

Untested merge with GNU Make v3.81 (vendor/gnumake/2005-05-16 -> vendor/gnumake/current).

Location:
trunk/src/gmake/config
Files:
1 deleted
13 edited
10 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/gmake/config/ChangeLog

    r53 r503  
     12006-03-09  Paul Smith  <psmith@gnu.org>
     2
     3        * dospaths.m4: Add MSYS to the list of targets allowing DOS-style
     4        pathnames.  Reported by David Ergo <david.ergo@alterface.com>.
     5
     62005-07-01  Paul D. Smith  <psmith@gnu.org>
     7
     8        * Makefile.am (EXTRA_DIST): Added more M4 files to EXTRA_DIST, so
     9        users can re-run aclocal.
     10
    1112003-04-30  Paul D. Smith  <psmith@gnu.org>
    212
     
    1828        * Makefile.am: New file.
    1929
     30
     31
     32Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     33This file is part of GNU Make.
     34
     35GNU Make is free software; you can redistribute it and/or modify it under the
     36terms of the GNU General Public License as published by the Free Software
     37Foundation; either version 2, or (at your option) any later version.
     38
     39GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     40WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     41A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     42
     43You should have received a copy of the GNU General Public License along with
     44GNU Make; see the file COPYING.  If not, write to the Free Software
     45Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • trunk/src/gmake/config/Makefile.am

    r53 r503  
    11# -*-Makefile-*-, or close enough
     2# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     3# This file is part of GNU Make.
     4#
     5# GNU Make is free software; you can redistribute it and/or modify it under the
     6# terms of the GNU General Public License as published by the Free Software
     7# Foundation; either version 2, or (at your option) any later version.
     8#
     9# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     10# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12#
     13# You should have received a copy of the GNU General Public License along with
     14# GNU Make; see the file COPYING.  If not, write to the Free Software
     15# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    216
    317EXTRA_DIST =    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \
    418                intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
    519                isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
    6                 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 \
    7                 dospaths.m4 po.m4
     20                progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
     21                dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
     22                wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
  • trunk/src/gmake/config/Makefile.in

    r200 r503  
    1 # Makefile.in generated by automake 1.8.3 from Makefile.am.
     1# Makefile.in generated by automake 1.9.6 from Makefile.am.
    22# @configure_input@
    33
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004  Free Software Foundation, Inc.
     5# 2003, 2004, 2005  Free Software Foundation, Inc.
    66# This Makefile.in is free software; the Free Software Foundation
    77# gives unlimited permission to copy and/or distribute it,
     
    1616
    1717# -*-Makefile-*-, or close enough
     18# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     19# This file is part of GNU Make.
     20#
     21# GNU Make is free software; you can redistribute it and/or modify it under the
     22# terms of the GNU General Public License as published by the Free Software
     23# Foundation; either version 2, or (at your option) any later version.
     24#
     25# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     26# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     27# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     28#
     29# You should have received a copy of the GNU General Public License along with
     30# GNU Make; see the file COPYING.  If not, write to the Free Software
     31# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1832srcdir = @srcdir@
    1933top_srcdir = @top_srcdir@
     
    3650PRE_UNINSTALL = :
    3751POST_UNINSTALL = :
     52build_triplet = @build@
    3853host_triplet = @host@
    3954subdir = config
    4055DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
    4156        compile config.guess config.rpath config.sub depcomp \
    42         install-sh missing mkinstalldirs texinfo.tex
     57        install-sh mdate-sh missing mkinstalldirs texinfo.tex
    4358ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
    44 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
    45         $(top_srcdir)/configure.in
     59am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
     60        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
     61        $(top_srcdir)/config/lib-ld.m4 \
     62        $(top_srcdir)/config/lib-link.m4 \
     63        $(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
     64        $(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
     65        $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
    4666am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
    4767        $(ACLOCAL_M4)
     
    121141USE_NLS = @USE_NLS@
    122142VERSION = @VERSION@
     143WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     144WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    123145XGETTEXT = @XGETTEXT@
    124146ac_ct_CC = @ac_ct_CC@
     
    130152am__leading_dot = @am__leading_dot@
    131153am__quote = @am__quote@
     154am__tar = @am__tar@
     155am__untar = @am__untar@
    132156bindir = @bindir@
    133157build = @build@
     
    161185                intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
    162186                isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
    163                 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 \
    164                 dospaths.m4 po.m4
     187                progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
     188                dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
     189                wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
    165190
    166191all: all-am
     
    254279
    255280distclean-generic:
    256         -rm -f $(CONFIG_CLEAN_FILES)
     281        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    257282
    258283maintainer-clean-generic:
  • trunk/src/gmake/config/compile

    • Property svn:executable set to *
    r151 r503  
    22# Wrapper for compilers which do not understand `-c -o'.
    33
    4 scriptversion=2003-11-09.00
     4scriptversion=2005-05-14.22
    55
    6 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
     6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    77# Written by Tom Tromey <tromey@cygnus.com>.
    88#
     
    1919# You should have received a copy of the GNU General Public License
    2020# along with this program; if not, write to the Free Software
    21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     21# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    2222
    2323# As a special exception to the GNU General Public License, if you
     
    4848Report bugs to <bug-automake@gnu.org>.
    4949EOF
    50     exit 0
     50    exit $?
    5151    ;;
    5252  -v | --v*)
    5353    echo "compile $scriptversion"
    54     exit 0
     54    exit $?
    5555    ;;
    5656esac
    5757
    58 
    59 prog=$1
    60 shift
    61 
    6258ofile=
    6359cfile=
    64 args=
    65 while test $# -gt 0; do
    66   case "$1" in
    67     -o)
    68       # configure might choose to run compile as `compile cc -o foo foo.c'.
    69       # So we do something ugly here.
    70       ofile=$2
    71       shift
    72       case "$ofile" in
    73         *.o | *.obj)
    74           ;;
    75         *)
    76           args="$args -o $ofile"
    77           ofile=
    78           ;;
    79       esac
    80        ;;
    81     *.c)
    82       cfile=$1
    83       args="$args $1"
    84       ;;
    85     *)
    86       args="$args $1"
    87       ;;
    88   esac
     60eat=
     61
     62for arg
     63do
     64  if test -n "$eat"; then
     65    eat=
     66  else
     67    case $1 in
     68      -o)
     69        # configure might choose to run compile as `compile cc -o foo foo.c'.
     70        # So we strip `-o arg' only if arg is an object.
     71        eat=1
     72        case $2 in
     73          *.o | *.obj)
     74            ofile=$2
     75            ;;
     76          *)
     77            set x "$@" -o "$2"
     78            shift
     79            ;;
     80        esac
     81        ;;
     82      *.c)
     83        cfile=$1
     84        set x "$@" "$1"
     85        shift
     86        ;;
     87      *)
     88        set x "$@" "$1"
     89        shift
     90        ;;
     91    esac
     92  fi
    8993  shift
    9094done
     
    96100  # `.c' file was seen then we are probably linking.  That is also
    97101  # ok.
    98   exec "$prog" $args
     102  exec "$@"
    99103fi
    100104
    101105# Name of file we expect compiler to create.
    102 cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
     106cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
    103107
    104108# Create the lock directory.
     
    106110# that we are using for the .o file.  Also, base the name on the expected
    107111# object file name, since that is what matters with a parallel build.
    108 lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
     112lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
    109113while true; do
    110   if mkdir $lockdir > /dev/null 2>&1; then
     114  if mkdir "$lockdir" >/dev/null 2>&1; then
    111115    break
    112116  fi
     
    114118done
    115119# FIXME: race condition here if user kills between mkdir and trap.
    116 trap "rmdir $lockdir; exit 1" 1 2 15
     120trap "rmdir '$lockdir'; exit 1" 1 2 15
    117121
    118122# Run the compile.
    119 "$prog" $args
    120 status=$?
     123"$@"
     124ret=$?
    121125
    122126if test -f "$cofile"; then
    123127  mv "$cofile" "$ofile"
     128elif test -f "${cofile}bj"; then
     129  mv "${cofile}bj" "$ofile"
    124130fi
    125131
    126 rmdir $lockdir
    127 exit $status
     132rmdir "$lockdir"
     133exit $ret
    128134
    129135# Local Variables:
  • trunk/src/gmake/config/config.guess

    r151 r503  
    1 #! /bin/sh
    2 # Attempt to guess a canonical system name.
    3 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    4 #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    5 
    6 timestamp='2004-03-03'
     1
     2timestamp='2006-03-13'
    73
    84# This file is free software; you can redistribute it and/or modify it
     
    1814# You should have received a copy of the GNU General Public License
    1915# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     16# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     17# 02110-1301, USA.
    2118#
    2219# As a special exception to the GNU General Public License, if you
     
    2421# configuration script generated by Autoconf, you may include it under
    2522# the same distribution terms that you use for the rest of that program.
     23
    2624
    2725# Originally written by Per Bothner <per@bothner.com>.
     
    5452
    5553Originally written by Per Bothner.
    56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     54Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    5755Free Software Foundation, Inc.
    5856
     
    6765  case $1 in
    6866    --time-stamp | --time* | -t )
    69        echo "$timestamp" ; exit 0 ;;
     67       echo "$timestamp" ; exit ;;
    7068    --version | -v )
    71        echo "$version" ; exit 0 ;;
     69       echo "$version" ; exit ;;
    7270    --help | --h* | -h )
    73        echo "$usage"; exit 0 ;;
     71       echo "$usage"; exit ;;
    7472    -- )     # Stop option processing
    7573       shift; break ;;
     
    105103trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
    106104: ${TMPDIR=/tmp} ;
    107  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
     105 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
    108106 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
    109107 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
     
    124122 ,,*)   CC_FOR_BUILD=$CC ;;
    125123 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    126 esac ;'
     124esac ; set_cc_for_build= ;'
    127125
    128126# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
     
    197195        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
    198196        echo "${machine}-${os}${release}"
    199         exit 0 ;;
    200     amd64:OpenBSD:*:*)
    201         echo x86_64-unknown-openbsd${UNAME_RELEASE}
    202         exit 0 ;;
    203     amiga:OpenBSD:*:*)
    204         echo m68k-unknown-openbsd${UNAME_RELEASE}
    205         exit 0 ;;
    206     arc:OpenBSD:*:*)
    207         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    208         exit 0 ;;
    209     cats:OpenBSD:*:*)
    210         echo arm-unknown-openbsd${UNAME_RELEASE}
    211         exit 0 ;;
    212     hp300:OpenBSD:*:*)
    213         echo m68k-unknown-openbsd${UNAME_RELEASE}
    214         exit 0 ;;
    215     mac68k:OpenBSD:*:*)
    216         echo m68k-unknown-openbsd${UNAME_RELEASE}
    217         exit 0 ;;
    218     macppc:OpenBSD:*:*)
    219         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    220         exit 0 ;;
    221     mvme68k:OpenBSD:*:*)
    222         echo m68k-unknown-openbsd${UNAME_RELEASE}
    223         exit 0 ;;
    224     mvme88k:OpenBSD:*:*)
    225         echo m88k-unknown-openbsd${UNAME_RELEASE}
    226         exit 0 ;;
    227     mvmeppc:OpenBSD:*:*)
    228         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    229         exit 0 ;;
    230     pegasos:OpenBSD:*:*)
    231         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    232         exit 0 ;;
    233     pmax:OpenBSD:*:*)
    234         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    235         exit 0 ;;
    236     sgi:OpenBSD:*:*)
    237         echo mipseb-unknown-openbsd${UNAME_RELEASE}
    238         exit 0 ;;
    239     sun3:OpenBSD:*:*)
    240         echo m68k-unknown-openbsd${UNAME_RELEASE}
    241         exit 0 ;;
    242     wgrisc:OpenBSD:*:*)
    243         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    244         exit 0 ;;
     197        exit ;;
    245198    *:OpenBSD:*:*)
    246         echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
    247         exit 0 ;;
     199        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
     200        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
     201        exit ;;
    248202    *:ekkoBSD:*:*)
    249203        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
    250         exit 0 ;;
     204        exit ;;
     205    *:SolidBSD:*:*)
     206        echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
     207        exit ;;
    251208    macppc:MirBSD:*:*)
    252209        echo powerppc-unknown-mirbsd${UNAME_RELEASE}
    253         exit 0 ;;
     210        exit ;;
    254211    *:MirBSD:*:*)
    255212        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
    256         exit 0 ;;
     213        exit ;;
    257214    alpha:OSF1:*:*)
    258215        case $UNAME_RELEASE in
     
    307264        # 1.2 uses "1.2" for uname -r.
    308265        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
    309         exit 0 ;;
    310     Alpha*:OpenVMS:*:*)
    311         echo alpha-hp-vms
    312         exit 0 ;;
     266        exit ;;
    313267    Alpha\ *:Windows_NT*:*)
    314268        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    316270        # of the specific Alpha model?
    317271        echo alpha-pc-interix
    318         exit 0 ;;
     272        exit ;;
    319273    21064:Windows_NT:50:3)
    320274        echo alpha-dec-winnt3.5
    321         exit 0 ;;
     275        exit ;;
    322276    Amiga*:UNIX_System_V:4.0:*)
    323277        echo m68k-unknown-sysv4
    324         exit 0;;
     278        exit ;;
    325279    *:[Aa]miga[Oo][Ss]:*:*)
    326280        echo ${UNAME_MACHINE}-unknown-amigaos
    327         exit 0 ;;
     281        exit ;;
    328282    *:[Mm]orph[Oo][Ss]:*:*)
    329283        echo ${UNAME_MACHINE}-unknown-morphos
    330         exit 0 ;;
     284        exit ;;
    331285    *:OS/390:*:*)
    332286        echo i370-ibm-openedition
    333         exit 0 ;;
     287        exit ;;
     288    *:z/VM:*:*)
     289        echo s390-ibm-zvmoe
     290        exit ;;
    334291    *:OS400:*:*)
    335292        echo powerpc-ibm-os400
    336         exit 0 ;;
     293        exit ;;
    337294    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
    338295        echo arm-acorn-riscix${UNAME_RELEASE}
    339         exit 0;;
     296        exit ;;
     297    arm:riscos:*:*|arm:RISCOS:*:*)
     298        echo arm-unknown-riscos
     299        exit ;;
    340300    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
    341301        echo hppa1.1-hitachi-hiuxmpp
    342         exit 0;;
     302        exit ;;
    343303    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
    344304        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
     
    348308                echo pyramid-pyramid-bsd
    349309        fi
    350         exit 0 ;;
     310        exit ;;
    351311    NILE*:*:*:dcosx)
    352312        echo pyramid-pyramid-svr4
    353         exit 0 ;;
     313        exit ;;
    354314    DRS?6000:unix:4.0:6*)
    355315        echo sparc-icl-nx6
    356         exit 0 ;;
    357     DRS?6000:UNIX_SV:4.2*:7*)
     316        exit ;;
     317    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
    358318        case `/usr/bin/uname -p` in
    359             sparc) echo sparc-icl-nx7 && exit 0 ;;
     319            sparc) echo sparc-icl-nx7; exit ;;
    360320        esac ;;
    361321    sun4H:SunOS:5.*:*)
    362322        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    363         exit 0 ;;
     323        exit ;;
    364324    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
    365325        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    366         exit 0 ;;
     326        exit ;;
    367327    i86pc:SunOS:5.*:*)
    368328        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    369         exit 0 ;;
     329        exit ;;
    370330    sun4*:SunOS:6*:*)
    371331        # According to config.sub, this is the proper way to canonicalize
     
    373333        # it's likely to be more like Solaris than SunOS4.
    374334        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    375         exit 0 ;;
     335        exit ;;
    376336    sun4*:SunOS:*:*)
    377337        case "`/usr/bin/arch -k`" in
     
    382342        # Japanese Language versions have a version number like `4.1.3-JL'.
    383343        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
    384         exit 0 ;;
     344        exit ;;
    385345    sun3*:SunOS:*:*)
    386346        echo m68k-sun-sunos${UNAME_RELEASE}
    387         exit 0 ;;
     347        exit ;;
    388348    sun*:*:4.2BSD:*)
    389349        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
     
    397357                ;;
    398358        esac
    399         exit 0 ;;
     359        exit ;;
    400360    aushp:SunOS:*:*)
    401361        echo sparc-auspex-sunos${UNAME_RELEASE}
    402         exit 0 ;;
     362        exit ;;
    403363    # The situation for MiNT is a little confusing.  The machine name
    404364    # can be virtually everything (everything which is not
     
    411371    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
    412372        echo m68k-atari-mint${UNAME_RELEASE}
    413         exit 0 ;;
     373        exit ;;
    414374    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
    415375        echo m68k-atari-mint${UNAME_RELEASE}
    416         exit 0 ;;
     376        exit ;;
    417377    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
    418378        echo m68k-atari-mint${UNAME_RELEASE}
    419         exit 0 ;;
     379        exit ;;
    420380    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
    421381        echo m68k-milan-mint${UNAME_RELEASE}
    422         exit 0 ;;
     382        exit ;;
    423383    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
    424384        echo m68k-hades-mint${UNAME_RELEASE}
    425         exit 0 ;;
     385        exit ;;
    426386    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
    427387        echo m68k-unknown-mint${UNAME_RELEASE}
    428         exit 0 ;;
     388        exit ;;
    429389    m68k:machten:*:*)
    430390        echo m68k-apple-machten${UNAME_RELEASE}
    431         exit 0 ;;
     391        exit ;;
    432392    powerpc:machten:*:*)
    433393        echo powerpc-apple-machten${UNAME_RELEASE}
    434         exit 0 ;;
     394        exit ;;
    435395    RISC*:Mach:*:*)
    436396        echo mips-dec-mach_bsd4.3
    437         exit 0 ;;
     397        exit ;;
    438398    RISC*:ULTRIX:*:*)
    439399        echo mips-dec-ultrix${UNAME_RELEASE}
    440         exit 0 ;;
     400        exit ;;
    441401    VAX*:ULTRIX*:*:*)
    442402        echo vax-dec-ultrix${UNAME_RELEASE}
    443         exit 0 ;;
     403        exit ;;
    444404    2020:CLIX:*:* | 2430:CLIX:*:*)
    445405        echo clipper-intergraph-clix${UNAME_RELEASE}
    446         exit 0 ;;
     406        exit ;;
    447407    mips:*:*:UMIPS | mips:*:*:RISCos)
    448408        eval $set_cc_for_build
     
    468428        }
    469429EOF
    470         $CC_FOR_BUILD -o $dummy $dummy.c \
    471           && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
    472           && exit 0
     430        $CC_FOR_BUILD -o $dummy $dummy.c &&
     431          dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
     432          SYSTEM_NAME=`$dummy $dummyarg` &&
     433            { echo "$SYSTEM_NAME"; exit; }
    473434        echo mips-mips-riscos${UNAME_RELEASE}
    474         exit 0 ;;
     435        exit ;;
    475436    Motorola:PowerMAX_OS:*:*)
    476437        echo powerpc-motorola-powermax
    477         exit 0 ;;
     438        exit ;;
    478439    Motorola:*:4.3:PL8-*)
    479440        echo powerpc-harris-powermax
    480         exit 0 ;;
     441        exit ;;
    481442    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
    482443        echo powerpc-harris-powermax
    483         exit 0 ;;
     444        exit ;;
    484445    Night_Hawk:Power_UNIX:*:*)
    485446        echo powerpc-harris-powerunix
    486         exit 0 ;;
     447        exit ;;
    487448    m88k:CX/UX:7*:*)
    488449        echo m88k-harris-cxux7
    489         exit 0 ;;
     450        exit ;;
    490451    m88k:*:4*:R4*)
    491452        echo m88k-motorola-sysv4
    492         exit 0 ;;
     453        exit ;;
    493454    m88k:*:3*:R3*)
    494455        echo m88k-motorola-sysv3
    495         exit 0 ;;
     456        exit ;;
    496457    AViiON:dgux:*:*)
    497458        # DG/UX returns AViiON for all architectures
     
    509470            echo i586-dg-dgux${UNAME_RELEASE}
    510471        fi
    511         exit 0 ;;
     472        exit ;;
    512473    M88*:DolphinOS:*:*) # DolphinOS (SVR3)
    513474        echo m88k-dolphin-sysv3
    514         exit 0 ;;
     475        exit ;;
    515476    M88*:*:R3*:*)
    516477        # Delta 88k system running SVR3
    517478        echo m88k-motorola-sysv3
    518         exit 0 ;;
     479        exit ;;
    519480    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
    520481        echo m88k-tektronix-sysv3
    521         exit 0 ;;
     482        exit ;;
    522483    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
    523484        echo m68k-tektronix-bsd
    524         exit 0 ;;
     485        exit ;;
    525486    *:IRIX*:*:*)
    526487        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
    527         exit 0 ;;
     488        exit ;;
    528489    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
    529         echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
    530         exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
     490        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
     491        exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
    531492    i*86:AIX:*:*)
    532493        echo i386-ibm-aix
    533         exit 0 ;;
     494        exit ;;
    534495    ia64:AIX:*:*)
    535496        if [ -x /usr/bin/oslevel ] ; then
     
    539500        fi
    540501        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
    541         exit 0 ;;
     502        exit ;;
    542503    *:AIX:2:3)
    543504        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
     
    554515                        }
    555516EOF
    556                 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
    557                 echo rs6000-ibm-aix3.2.5
     517                if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
     518                then
     519                        echo "$SYSTEM_NAME"
     520                else
     521                        echo rs6000-ibm-aix3.2.5
     522                fi
    558523        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
    559524                echo rs6000-ibm-aix3.2.4
     
    561526                echo rs6000-ibm-aix3.2
    562527        fi
    563         exit 0 ;;
     528        exit ;;
    564529    *:AIX:*:[45])
    565530        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
     
    575540        fi
    576541        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
    577         exit 0 ;;
     542        exit ;;
    578543    *:AIX:*:*)
    579544        echo rs6000-ibm-aix
    580         exit 0 ;;
     545        exit ;;
    581546    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
    582547        echo romp-ibm-bsd4.4
    583         exit 0 ;;
     548        exit ;;
    584549    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
    585550        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
    586         exit 0 ;;                           # report: romp-ibm BSD 4.3
     551        exit ;;                             # report: romp-ibm BSD 4.3
    587552    *:BOSX:*:*)
    588553        echo rs6000-bull-bosx
    589         exit 0 ;;
     554        exit ;;
    590555    DPX/2?00:B.O.S.:*:*)
    591556        echo m68k-bull-sysv3
    592         exit 0 ;;
     557        exit ;;
    593558    9000/[34]??:4.3bsd:1.*:*)
    594559        echo m68k-hp-bsd
    595         exit 0 ;;
     560        exit ;;
    596561    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
    597562        echo m68k-hp-bsd4.4
    598         exit 0 ;;
     563        exit ;;
    599564    9000/[34678]??:HP-UX:*:*)
    600565        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
     
    658623        if [ ${HP_ARCH} = "hppa2.0w" ]
    659624        then
    660             # avoid double evaluation of $set_cc_for_build
    661             test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
    662             if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
     625            eval $set_cc_for_build
     626
     627            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
     628            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
     629            # generating 64-bit code.  GNU and HP use different nomenclature:
     630            #
     631            # $ CC_FOR_BUILD=cc ./config.guess
     632            # => hppa2.0w-hp-hpux11.23
     633            # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
     634            # => hppa64-hp-hpux11.23
     635
     636            if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
     637                grep __LP64__ >/dev/null
    663638            then
    664639                HP_ARCH="hppa2.0w"
     
    668643        fi
    669644        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
    670         exit 0 ;;
     645        exit ;;
    671646    ia64:HP-UX:*:*)
    672647        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
    673648        echo ia64-hp-hpux${HPUX_REV}
    674         exit 0 ;;
     649        exit ;;
    675650    3050*:HI-UX:*:*)
    676651        eval $set_cc_for_build
     
    700675        }
    701676EOF
    702         $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
     677        $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
     678                { echo "$SYSTEM_NAME"; exit; }
    703679        echo unknown-hitachi-hiuxwe2
    704         exit 0 ;;
     680        exit ;;
    705681    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
    706682        echo hppa1.1-hp-bsd
    707         exit 0 ;;
     683        exit ;;
    708684    9000/8??:4.3bsd:*:*)
    709685        echo hppa1.0-hp-bsd
    710         exit 0 ;;
     686        exit ;;
    711687    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
    712688        echo hppa1.0-hp-mpeix
    713         exit 0 ;;
     689        exit ;;
    714690    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
    715691        echo hppa1.1-hp-osf
    716         exit 0 ;;
     692        exit ;;
    717693    hp8??:OSF1:*:*)
    718694        echo hppa1.0-hp-osf
    719         exit 0 ;;
     695        exit ;;
    720696    i*86:OSF1:*:*)
    721697        if [ -x /usr/sbin/sysversion ] ; then
     
    724700            echo ${UNAME_MACHINE}-unknown-osf1
    725701        fi
    726         exit 0 ;;
     702        exit ;;
    727703    parisc*:Lites*:*:*)
    728704        echo hppa1.1-hp-lites
    729         exit 0 ;;
     705        exit ;;
    730706    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
    731707        echo c1-convex-bsd
    732         exit 0 ;;
     708        exit ;;
    733709    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
    734710        if getsysinfo -f scalar_acc
     
    736712        else echo c2-convex-bsd
    737713        fi
    738         exit 0 ;;
     714        exit ;;
    739715    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
    740716        echo c34-convex-bsd
    741         exit 0 ;;
     717        exit ;;
    742718    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
    743719        echo c38-convex-bsd
    744         exit 0 ;;
     720        exit ;;
    745721    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
    746722        echo c4-convex-bsd
    747         exit 0 ;;
     723        exit ;;
    748724    CRAY*Y-MP:*:*:*)
    749725        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    750         exit 0 ;;
     726        exit ;;
    751727    CRAY*[A-Z]90:*:*:*)
    752728        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
     
    754730              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
    755731              -e 's/\.[^.]*$/.X/'
    756         exit 0 ;;
     732        exit ;;
    757733    CRAY*TS:*:*:*)
    758734        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    759         exit 0 ;;
     735        exit ;;
    760736    CRAY*T3E:*:*:*)
    761737        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    762         exit 0 ;;
     738        exit ;;
    763739    CRAY*SV1:*:*:*)
    764740        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    765         exit 0 ;;
     741        exit ;;
    766742    *:UNICOS/mp:*:*)
    767         echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    768         exit 0 ;;
     743        echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
     744        exit ;;
    769745    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
    770746        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
     
    772748        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
    773749        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    774         exit 0 ;;
     750        exit ;;
    775751    5000:UNIX_System_V:4.*:*)
    776752        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
    777753        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
    778754        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    779         exit 0 ;;
     755        exit ;;
    780756    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
    781757        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
    782         exit 0 ;;
     758        exit ;;
    783759    sparc*:BSD/OS:*:*)
    784760        echo sparc-unknown-bsdi${UNAME_RELEASE}
    785         exit 0 ;;
     761        exit ;;
    786762    *:BSD/OS:*:*)
    787763        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
    788         exit 0 ;;
     764        exit ;;
    789765    *:FreeBSD:*:*)
    790         # Determine whether the default compiler uses glibc.
    791         eval $set_cc_for_build
    792         sed 's/^        //' << EOF >$dummy.c
    793         #include <features.h>
    794         #if __GLIBC__ >= 2
    795         LIBC=gnu
    796         #else
    797         LIBC=
    798         #endif
    799 EOF
    800         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    801         # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
    802         # FreeBSD's kernel, but not the complete OS.
    803         case ${LIBC} in gnu) kernel_only='k' ;; esac
    804         echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
    805         exit 0 ;;
     766        case ${UNAME_MACHINE} in
     767            pc98)
     768                echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     769            *)
     770                echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     771        esac
     772        exit ;;
    806773    i*:CYGWIN*:*)
    807774        echo ${UNAME_MACHINE}-pc-cygwin
    808         exit 0 ;;
     775        exit ;;
    809776    i*:MINGW*:*)
    810777        echo ${UNAME_MACHINE}-pc-mingw32
    811         exit 0 ;;
     778        exit ;;
     779    i*:windows32*:*)
     780        # uname -m includes "-pc" on this system.
     781        echo ${UNAME_MACHINE}-mingw32
     782        exit ;;
    812783    i*:PW*:*)
    813784        echo ${UNAME_MACHINE}-pc-pw32
    814         exit 0 ;;
    815     x86:Interix*:[34]*)
    816         echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
    817         exit 0 ;;
     785        exit ;;
     786    x86:Interix*:[345]*)
     787        echo i586-pc-interix${UNAME_RELEASE}
     788        exit ;;
     789    EM64T:Interix*:[345]*)
     790        echo x86_64-unknown-interix${UNAME_RELEASE}
     791        exit ;;
    818792    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
    819793        echo i${UNAME_MACHINE}-pc-mks
    820         exit 0 ;;
     794        exit ;;
    821795    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
    822796        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    824798        # UNAME_MACHINE based on the output of uname instead of i386?
    825799        echo i586-pc-interix
    826         exit 0 ;;
     800        exit ;;
    827801    i*:UWIN*:*)
    828802        echo ${UNAME_MACHINE}-pc-uwin
    829         exit 0 ;;
     803        exit ;;
     804    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
     805        echo x86_64-unknown-cygwin
     806        exit ;;
    830807    p*:CYGWIN*:*)
    831808        echo powerpcle-unknown-cygwin
    832         exit 0 ;;
     809        exit ;;
    833810    prep*:SunOS:5.*:*)
    834811        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    835         exit 0 ;;
     812        exit ;;
    836813    *:GNU:*:*)
    837814        # the GNU system
    838815        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
    839         exit 0 ;;
     816        exit ;;
    840817    *:GNU/*:*:*)
    841818        # other systems with GNU libc and userland
    842819        echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
    843         exit 0 ;;
     820        exit ;;
    844821    i*86:Minix:*:*)
    845822        echo ${UNAME_MACHINE}-pc-minix
    846         exit 0 ;;
     823        exit ;;
    847824    arm*:Linux:*:*)
    848825        echo ${UNAME_MACHINE}-unknown-linux-gnu
    849         exit 0 ;;
     826        exit ;;
    850827    cris:Linux:*:*)
    851828        echo cris-axis-linux-gnu
    852         exit 0 ;;
     829        exit ;;
     830    crisv32:Linux:*:*)
     831        echo crisv32-axis-linux-gnu
     832        exit ;;
     833    frv:Linux:*:*)
     834        echo frv-unknown-linux-gnu
     835        exit ;;
    853836    ia64:Linux:*:*)
    854837        echo ${UNAME_MACHINE}-unknown-linux-gnu
    855         exit 0 ;;
     838        exit ;;
     839    m32r*:Linux:*:*)
     840        echo ${UNAME_MACHINE}-unknown-linux-gnu
     841        exit ;;
    856842    m68*:Linux:*:*)
    857843        echo ${UNAME_MACHINE}-unknown-linux-gnu
    858         exit 0 ;;
     844        exit ;;
    859845    mips:Linux:*:*)
    860846        eval $set_cc_for_build
     
    873859        #endif
    874860EOF
    875         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    876         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
     861        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     862            /^CPU/{
     863                s: ::g
     864                p
     865            }'`"
     866        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    877867        ;;
    878868    mips64:Linux:*:*)
     
    892882        #endif
    893883EOF
    894         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    895         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
     884        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     885            /^CPU/{
     886                s: ::g
     887                p
     888            }'`"
     889        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    896890        ;;
     891    or32:Linux:*:*)
     892        echo or32-unknown-linux-gnu
     893        exit ;;
    897894    ppc:Linux:*:*)
    898895        echo powerpc-unknown-linux-gnu
    899         exit 0 ;;
     896        exit ;;
    900897    ppc64:Linux:*:*)
    901898        echo powerpc64-unknown-linux-gnu
    902         exit 0 ;;
     899        exit ;;
    903900    alpha:Linux:*:*)
    904901        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
     
    914911        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
    915912        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
    916         exit 0 ;;
     913        exit ;;
    917914    parisc:Linux:*:* | hppa:Linux:*:*)
    918915        # Look for CPU level
     
    922919          *)    echo hppa-unknown-linux-gnu ;;
    923920        esac
    924         exit 0 ;;
     921        exit ;;
    925922    parisc64:Linux:*:* | hppa64:Linux:*:*)
    926923        echo hppa64-unknown-linux-gnu
    927         exit 0 ;;
     924        exit ;;
    928925    s390:Linux:*:* | s390x:Linux:*:*)
    929926        echo ${UNAME_MACHINE}-ibm-linux
    930         exit 0 ;;
     927        exit ;;
    931928    sh64*:Linux:*:*)
    932929        echo ${UNAME_MACHINE}-unknown-linux-gnu
    933         exit 0 ;;
     930        exit ;;
    934931    sh*:Linux:*:*)
    935932        echo ${UNAME_MACHINE}-unknown-linux-gnu
    936         exit 0 ;;
     933        exit ;;
    937934    sparc:Linux:*:* | sparc64:Linux:*:*)
    938935        echo ${UNAME_MACHINE}-unknown-linux-gnu
    939         exit 0 ;;
     936        exit ;;
     937    vax:Linux:*:*)
     938        echo ${UNAME_MACHINE}-dec-linux-gnu
     939        exit ;;
    940940    x86_64:Linux:*:*)
    941941        echo x86_64-unknown-linux-gnu
    942         exit 0 ;;
     942        exit ;;
    943943    i*86:Linux:*:*)
    944944        # The BFD linker knows what the default object file format is, so
     
    958958          a.out-i386-linux)
    959959                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
    960                 exit 0 ;;
     960                exit ;;
    961961          coff-i386)
    962962                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
    963                 exit 0 ;;
     963                exit ;;
    964964          "")
    965965                # Either a pre-BFD a.out linker (linux-gnuoldld) or
    966966                # one that does not give us useful --help.
    967967                echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
    968                 exit 0 ;;
     968                exit ;;
    969969        esac
    970970        # Determine whether the default compiler is a.out or elf
     
    983983        # endif
    984984        #else
    985         #ifdef __INTEL_COMPILER
     985        #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
    986986        LIBC=gnu
    987987        #else
     
    993993        #endif
    994994EOF
    995         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    996         test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
    997         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
     995        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     996            /^LIBC/{
     997                s: ::g
     998                p
     999            }'`"
     1000        test x"${LIBC}" != x && {
     1001                echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
     1002                exit
     1003        }
     1004        test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
    9981005        ;;
    9991006    i*86:DYNIX/ptx:4*:*)
     
    10021009        # sysname and nodename.
    10031010        echo i386-sequent-sysv4
    1004         exit 0 ;;
     1011        exit ;;
    10051012    i*86:UNIX_SV:4.2MP:2.*)
    10061013        # Unixware is an offshoot of SVR4, but it has its own version
     
    10101017        # Use sysv4.2uw... so that sysv4* matches it.
    10111018        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
    1012         exit 0 ;;
     1019        exit ;;
    10131020    i*86:OS/2:*:*)
    10141021        # If we were able to find `uname', then EMX Unix compatibility
    10151022        # is probably installed.
    10161023        echo ${UNAME_MACHINE}-pc-os2-emx
    1017         exit 0 ;;
     1024        exit ;;
    10181025    i*86:XTS-300:*:STOP)
    10191026        echo ${UNAME_MACHINE}-unknown-stop
    1020         exit 0 ;;
     1027        exit ;;
    10211028    i*86:atheos:*:*)
    10221029        echo ${UNAME_MACHINE}-unknown-atheos
    1023         exit 0 ;;
    1024         i*86:syllable:*:*)
     1030        exit ;;
     1031    i*86:syllable:*:*)
    10251032        echo ${UNAME_MACHINE}-pc-syllable
    1026         exit 0 ;;
     1033        exit ;;
    10271034    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
    10281035        echo i386-unknown-lynxos${UNAME_RELEASE}
    1029         exit 0 ;;
     1036        exit ;;
    10301037    i*86:*DOS:*:*)
    10311038        echo ${UNAME_MACHINE}-pc-msdosdjgpp
    1032         exit 0 ;;
     1039        exit ;;
    10331040    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
    10341041        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
     
    10381045                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
    10391046        fi
    1040         exit 0 ;;
    1041     i*86:*:5:[78]*)
     1047        exit ;;
     1048    i*86:*:5:[678]*)
     1049        # UnixWare 7.x, OpenUNIX and OpenServer 6.
    10421050        case `/bin/uname -X | grep "^Machine"` in
    10431051            *486*)           UNAME_MACHINE=i486 ;;
     
    10461054        esac
    10471055        echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
    1048         exit 0 ;;
     1056        exit ;;
    10491057    i*86:*:3.2:*)
    10501058        if test -f /usr/options/cb.name; then
     
    10641072                echo ${UNAME_MACHINE}-pc-sysv32
    10651073        fi
    1066         exit 0 ;;
     1074        exit ;;
    10671075    pc:*:*:*)
    10681076        # Left here for compatibility:
     
    10701078        # the processor, so we play safe by assuming i386.
    10711079        echo i386-pc-msdosdjgpp
    1072         exit 0 ;;
     1080        exit ;;
    10731081    Intel:Mach:3*:*)
    10741082        echo i386-pc-mach3
    1075         exit 0 ;;
     1083        exit ;;
    10761084    paragon:*:*:*)
    10771085        echo i860-intel-osf1
    1078         exit 0 ;;
     1086        exit ;;
    10791087    i860:*:4.*:*) # i860-SVR4
    10801088        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
     
    10831091          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
    10841092        fi
    1085         exit 0 ;;
     1093        exit ;;
    10861094    mini*:CTIX:SYS*5:*)
    10871095        # "miniframe"
    10881096        echo m68010-convergent-sysv
    1089         exit 0 ;;
     1097        exit ;;
    10901098    mc68k:UNIX:SYSTEM5:3.51m)
    10911099        echo m68k-convergent-sysv
    1092         exit 0 ;;
     1100        exit ;;
    10931101    M680?0:D-NIX:5.3:*)
    10941102        echo m68k-diab-dnix
    1095         exit 0 ;;
    1096     M68*:*:R3V[567]*:*)
    1097         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
    1098     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
     1103        exit ;;
     1104    M68*:*:R3V[5678]*:*)
     1105        test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     1106    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
    10991107        OS_REL=''
    11001108        test -r /etc/.relid \
    11011109        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
    11021110        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1103           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
     1111          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
    11041112        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
    1105           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
     1113          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
    11061114    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
    11071115        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1108           && echo i486-ncr-sysv4 && exit 0 ;;
     1116          && { echo i486-ncr-sysv4; exit; } ;;
    11091117    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
    11101118        echo m68k-unknown-lynxos${UNAME_RELEASE}
    1111         exit 0 ;;
     1119        exit ;;
    11121120    mc68030:UNIX_System_V:4.*:*)
    11131121        echo m68k-atari-sysv4
    1114         exit 0 ;;
     1122        exit ;;
    11151123    TSUNAMI:LynxOS:2.*:*)
    11161124        echo sparc-unknown-lynxos${UNAME_RELEASE}
    1117         exit 0 ;;
     1125        exit ;;
    11181126    rs6000:LynxOS:2.*:*)
    11191127        echo rs6000-unknown-lynxos${UNAME_RELEASE}
    1120         exit 0 ;;
     1128        exit ;;
    11211129    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
    11221130        echo powerpc-unknown-lynxos${UNAME_RELEASE}
    1123         exit 0 ;;
     1131        exit ;;
    11241132    SM[BE]S:UNIX_SV:*:*)
    11251133        echo mips-dde-sysv${UNAME_RELEASE}
    1126         exit 0 ;;
     1134        exit ;;
    11271135    RM*:ReliantUNIX-*:*:*)
    11281136        echo mips-sni-sysv4
    1129         exit 0 ;;
     1137        exit ;;
    11301138    RM*:SINIX-*:*:*)
    11311139        echo mips-sni-sysv4
    1132         exit 0 ;;
     1140        exit ;;
    11331141    *:SINIX-*:*:*)
    11341142        if uname -p 2>/dev/null >/dev/null ; then
     
    11381146                echo ns32k-sni-sysv
    11391147        fi
    1140         exit 0 ;;
     1148        exit ;;
    11411149    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
    11421150                      # says <Richard.M.Bartel@ccMail.Census.GOV>
    11431151        echo i586-unisys-sysv4
    1144         exit 0 ;;
     1152        exit ;;
    11451153    *:UNIX_System_V:4*:FTX*)
    11461154        # From Gerald Hewes <hewes@openmarket.com>.
    11471155        # How about differentiating between stratus architectures? -djm
    11481156        echo hppa1.1-stratus-sysv4
    1149         exit 0 ;;
     1157        exit ;;
    11501158    *:*:*:FTX*)
    11511159        # From seanf@swdc.stratus.com.
    11521160        echo i860-stratus-sysv4
    1153         exit 0 ;;
     1161        exit ;;
     1162    i*86:VOS:*:*)
     1163        # From Paul.Green@stratus.com.
     1164        echo ${UNAME_MACHINE}-stratus-vos
     1165        exit ;;
    11541166    *:VOS:*:*)
    11551167        # From Paul.Green@stratus.com.
    11561168        echo hppa1.1-stratus-vos
    1157         exit 0 ;;
     1169        exit ;;
    11581170    mc68*:A/UX:*:*)
    11591171        echo m68k-apple-aux${UNAME_RELEASE}
    1160         exit 0 ;;
     1172        exit ;;
    11611173    news*:NEWS-OS:6*:*)
    11621174        echo mips-sony-newsos6
    1163         exit 0 ;;
     1175        exit ;;
    11641176    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
    11651177        if [ -d /usr/nec ]; then
     
    11681180                echo mips-unknown-sysv${UNAME_RELEASE}
    11691181        fi
    1170         exit 0 ;;
     1182        exit ;;
    11711183    BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
    11721184        echo powerpc-be-beos
    1173         exit 0 ;;
     1185        exit ;;
    11741186    BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
    11751187        echo powerpc-apple-beos
    1176         exit 0 ;;
     1188        exit ;;
    11771189    BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
    11781190        echo i586-pc-beos
    1179         exit 0 ;;
     1191        exit ;;
    11801192    SX-4:SUPER-UX:*:*)
    11811193        echo sx4-nec-superux${UNAME_RELEASE}
    1182         exit 0 ;;
     1194        exit ;;
    11831195    SX-5:SUPER-UX:*:*)
    11841196        echo sx5-nec-superux${UNAME_RELEASE}
    1185         exit 0 ;;
     1197        exit ;;
    11861198    SX-6:SUPER-UX:*:*)
    11871199        echo sx6-nec-superux${UNAME_RELEASE}
    1188         exit 0 ;;
     1200        exit ;;
    11891201    Power*:Rhapsody:*:*)
    11901202        echo powerpc-apple-rhapsody${UNAME_RELEASE}
    1191         exit 0 ;;
     1203        exit ;;
    11921204    *:Rhapsody:*:*)
    11931205        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
    1194         exit 0 ;;
     1206        exit ;;
    11951207    *:Darwin:*:*)
    1196         case `uname -p` in
    1197             *86) UNAME_PROCESSOR=i686 ;;
    1198             powerpc) UNAME_PROCESSOR=powerpc ;;
     1208        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
     1209        case $UNAME_PROCESSOR in
     1210            unknown) UNAME_PROCESSOR=powerpc ;;
    11991211        esac
    12001212        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
    1201         exit 0 ;;
     1213        exit ;;
    12021214    *:procnto*:*:* | *:QNX:[0123456789]*:*)
    12031215        UNAME_PROCESSOR=`uname -p`
     
    12071219        fi
    12081220        echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
    1209         exit 0 ;;
     1221        exit ;;
    12101222    *:QNX:*:4*)
    12111223        echo i386-pc-qnx
    1212         exit 0 ;;
     1224        exit ;;
     1225    NSE-?:NONSTOP_KERNEL:*:*)
     1226        echo nse-tandem-nsk${UNAME_RELEASE}
     1227        exit ;;
    12131228    NSR-?:NONSTOP_KERNEL:*:*)
    12141229        echo nsr-tandem-nsk${UNAME_RELEASE}
    1215         exit 0 ;;
     1230        exit ;;
    12161231    *:NonStop-UX:*:*)
    12171232        echo mips-compaq-nonstopux
    1218         exit 0 ;;
     1233        exit ;;
    12191234    BS2000:POSIX*:*:*)
    12201235        echo bs2000-siemens-sysv
    1221         exit 0 ;;
     1236        exit ;;
    12221237    DS/*:UNIX_System_V:*:*)
    12231238        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
    1224         exit 0 ;;
     1239        exit ;;
    12251240    *:Plan9:*:*)
    12261241        # "uname -m" is not consistent, so use $cputype instead. 386
     
    12331248        fi
    12341249        echo ${UNAME_MACHINE}-unknown-plan9
    1235         exit 0 ;;
     1250        exit ;;
    12361251    *:TOPS-10:*:*)
    12371252        echo pdp10-unknown-tops10
    1238         exit 0 ;;
     1253        exit ;;
    12391254    *:TENEX:*:*)
    12401255        echo pdp10-unknown-tenex
    1241         exit 0 ;;
     1256        exit ;;
    12421257    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
    12431258        echo pdp10-dec-tops20
    1244         exit 0 ;;
     1259        exit ;;
    12451260    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
    12461261        echo pdp10-xkl-tops20
    1247         exit 0 ;;
     1262        exit ;;
    12481263    *:TOPS-20:*:*)
    12491264        echo pdp10-unknown-tops20
    1250         exit 0 ;;
     1265        exit ;;
    12511266    *:ITS:*:*)
    12521267        echo pdp10-unknown-its
    1253         exit 0 ;;
     1268        exit ;;
    12541269    SEI:*:*:SEIUX)
    12551270        echo mips-sei-seiux${UNAME_RELEASE}
    1256         exit 0 ;;
     1271        exit ;;
    12571272    *:DragonFly:*:*)
    12581273        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
    1259         exit 0 ;;
     1274        exit ;;
     1275    *:*VMS:*:*)
     1276        UNAME_MACHINE=`(uname -p) 2>/dev/null`
     1277        case "${UNAME_MACHINE}" in
     1278            A*) echo alpha-dec-vms ; exit ;;
     1279            I*) echo ia64-dec-vms ; exit ;;
     1280            V*) echo vax-dec-vms ; exit ;;
     1281        esac ;;
     1282    *:XENIX:*:SysV)
     1283        echo i386-pc-xenix
     1284        exit ;;
     1285    i*86:skyos:*:*)
     1286        echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
     1287        exit ;;
     1288    i*86:rdos:*:*)
     1289        echo ${UNAME_MACHINE}-pc-rdos
     1290        exit ;;
    12601291esac
    12611292
     
    12891320
    12901321#if defined (__arm) && defined (__acorn) && defined (__unix)
    1291   printf ("arm-acorn-riscix"); exit (0);
     1322  printf ("arm-acorn-riscix\n"); exit (0);
    12921323#endif
    12931324
     
    13781409EOF
    13791410
    1380 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
     1411$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
     1412        { echo "$SYSTEM_NAME"; exit; }
    13811413
    13821414# Apollos put the system type in the environment.
    13831415
    1384 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
     1416test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
    13851417
    13861418# Convex versions that predate uname can use getsysinfo(1)
     
    13911423    c1*)
    13921424        echo c1-convex-bsd
    1393         exit 0 ;;
     1425        exit ;;
    13941426    c2*)
    13951427        if getsysinfo -f scalar_acc
     
    13971429        else echo c2-convex-bsd
    13981430        fi
    1399         exit 0 ;;
     1431        exit ;;
    14001432    c34*)
    14011433        echo c34-convex-bsd
    1402         exit 0 ;;
     1434        exit ;;
    14031435    c38*)
    14041436        echo c38-convex-bsd
    1405         exit 0 ;;
     1437        exit ;;
    14061438    c4*)
    14071439        echo c4-convex-bsd
    1408         exit 0 ;;
     1440        exit ;;
    14091441    esac
    14101442fi
     
    14171449download the most up to date version of the config scripts from
    14181450
    1419     ftp://ftp.gnu.org/pub/gnu/config/
     1451  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
     1452and
     1453  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
    14201454
    14211455If the version you run ($0) is already up to date, please
  • trunk/src/gmake/config/config.rpath

    • Property svn:executable set to *
  • trunk/src/gmake/config/config.sub

    r151 r503  
    1 #! /bin/sh
    2 # Configuration validation subroutine script.
    3 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    4 #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    5 
    6 timestamp='2004-02-23'
     1
     2timestamp='2006-03-07'
    73
    84# This file is (in principle) common to ALL GNU software.
     
    2218# You should have received a copy of the GNU General Public License
    2319# along with this program; if not, write to the Free Software
    24 # Foundation, Inc., 59 Temple Place - Suite 330,
    25 # Boston, MA 02111-1307, USA.
    26 
     20# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     21# 02110-1301, USA.
     22#
    2723# As a special exception to the GNU General Public License, if you
    2824# distribute this file as part of a program that contains a
    2925# configuration script generated by Autoconf, you may include it under
    3026# the same distribution terms that you use for the rest of that program.
     27
    3128
    3229# Please send patches to <config-patches@gnu.org>.  Submit a context
     
    7168GNU config.sub ($timestamp)
    7269
    73 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     70Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    7471Free Software Foundation, Inc.
    7572
     
    8481  case $1 in
    8582    --time-stamp | --time* | -t )
    86        echo "$timestamp" ; exit 0 ;;
     83       echo "$timestamp" ; exit ;;
    8784    --version | -v )
    88        echo "$version" ; exit 0 ;;
     85       echo "$version" ; exit ;;
    8986    --help | --h* | -h )
    90        echo "$usage"; exit 0 ;;
     87       echo "$usage"; exit ;;
    9188    -- )     # Stop option processing
    9289       shift; break ;;
     
    10097       # First pass through any local machine types.
    10198       echo $1
    102        exit 0;;
     99       exit ;;
    103100
    104101    * )
     
    119116maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
    120117case $maybe_os in
    121   nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
    122   kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
     118  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
     119  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
     120  storm-chaos* | os2-emx* | rtmk-nova*)
    123121    os=-$maybe_os
    124122    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     
    146144        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
    147145        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
    148         -apple | -axis)
     146        -apple | -axis | -knuth | -cray)
    149147                os=
    150148                basic_machine=$1
     
    171169                os=-hiuxwe2
    172170                ;;
     171        -sco6)
     172                os=-sco5v6
     173                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     174                ;;
    173175        -sco5)
    174176                os=-sco3.2v5
     
    184186                ;;
    185187        -sco3.2v[4-9]*)
     188                # Don't forget version if it is 3.2v4 or newer.
     189                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     190                ;;
     191        -sco5v6*)
    186192                # Don't forget version if it is 3.2v4 or newer.
    187193                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     
    232238        | am33_2.0 \
    233239        | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
     240        | bfin \
    234241        | c4x | clipper \
    235242        | d10v | d30v | dlx | dsp16xx \
     
    238245        | i370 | i860 | i960 | ia64 \
    239246        | ip2k | iq2000 \
    240         | m32r | m68000 | m68k | m88k | mcore \
     247        | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
    241248        | mips | mipsbe | mipseb | mipsel | mipsle \
    242249        | mips16 \
     
    247254        | mips64vr4300 | mips64vr4300el \
    248255        | mips64vr5000 | mips64vr5000el \
     256        | mips64vr5900 | mips64vr5900el \
    249257        | mipsisa32 | mipsisa32el \
    250258        | mipsisa32r2 | mipsisa32r2el \
     
    255263        | mipstx39 | mipstx39el \
    256264        | mn10200 | mn10300 \
     265        | mt \
    257266        | msp430 \
     267        | nios | nios2 \
    258268        | ns16k | ns32k \
    259         | openrisc | or32 \
     269        | or32 \
    260270        | pdp10 | pdp11 | pj | pjl \
    261271        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
    262272        | pyramid \
    263         | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
     273        | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
    264274        | sh64 | sh64le \
    265         | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
     275        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
     276        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
    266277        | strongarm \
    267278        | tahoe | thumb | tic4x | tic80 | tron \
    268279        | v850 | v850e \
    269280        | we32k \
    270         | x86 | xscale | xstormy16 | xtensa \
     281        | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
    271282        | z8k)
     283                basic_machine=$basic_machine-unknown
     284                ;;
     285        m32c)
    272286                basic_machine=$basic_machine-unknown
    273287                ;;
     
    278292                ;;
    279293        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
     294                ;;
     295        ms1)
     296                basic_machine=mt-unknown
    280297                ;;
    281298
     
    299316        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
    300317        | avr-* \
    301         | bs2000-* \
     318        | bfin-* | bs2000-* \
    302319        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
    303         | clipper-* | cydra-* \
     320        | clipper-* | craynv-* | cydra-* \
    304321        | d10v-* | d30v-* | dlx-* \
    305322        | elxsi-* \
     
    309326        | i*86-* | i860-* | i960-* | ia64-* \
    310327        | ip2k-* | iq2000-* \
    311         | m32r-* \
     328        | m32r-* | m32rle-* \
    312329        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
    313         | m88110-* | m88k-* | mcore-* \
     330        | m88110-* | m88k-* | maxq-* | mcore-* \
    314331        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
    315332        | mips16-* \
     
    320337        | mips64vr4300-* | mips64vr4300el-* \
    321338        | mips64vr5000-* | mips64vr5000el-* \
     339        | mips64vr5900-* | mips64vr5900el-* \
    322340        | mipsisa32-* | mipsisa32el-* \
    323341        | mipsisa32r2-* | mipsisa32r2el-* \
     
    327345        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
    328346        | mipstx39-* | mipstx39el-* \
     347        | mmix-* \
     348        | mt-* \
    329349        | msp430-* \
    330         | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
     350        | nios-* | nios2-* \
     351        | none-* | np1-* | ns16k-* | ns32k-* \
    331352        | orion-* \
    332353        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
     
    334355        | pyramid-* \
    335356        | romp-* | rs6000-* \
    336         | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
     357        | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
    337358        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
    338         | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
    339         | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
     359        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
     360        | sparclite-* \
     361        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
    340362        | tahoe-* | thumb-* \
    341363        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
     
    343365        | v850-* | v850e-* | vax-* \
    344366        | we32k-* \
    345         | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
    346         | xtensa-* \
     367        | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
     368        | xstormy16-* | xtensa-* \
    347369        | ymp-* \
    348370        | z8k-*)
     371                ;;
     372        m32c-*)
    349373                ;;
    350374        # Recognize the various machine names and aliases which stand
     
    446470                os=-unicos
    447471                ;;
     472        craynv)
     473                basic_machine=craynv-cray
     474                os=-unicosmp
     475                ;;
    448476        cr16c)
    449477                basic_machine=cr16c-unknown
     
    453481                basic_machine=m68k-crds
    454482                ;;
     483        crisv32 | crisv32-* | etraxfs*)
     484                basic_machine=crisv32-axis
     485                ;;
    455486        cris | cris-* | etrax*)
    456487                basic_machine=cris-axis
     
    481512                basic_machine=m88k-motorola
    482513                os=-sysv3
     514                ;;
     515        djgpp)
     516                basic_machine=i586-pc
     517                os=-msdosdjgpp
    483518                ;;
    484519        dpx20 | dpx20-*)
     
    660695                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
    661696                ;;
    662         mmix*)
    663                 basic_machine=mmix-knuth
    664                 os=-mmixware
    665                 ;;
    666697        monitor)
    667698                basic_machine=m68k-rom68k
     
    675706                basic_machine=i386-pc
    676707                os=-msdos
     708                ;;
     709        ms1-*)
     710                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
    677711                ;;
    678712        mvs)
     
    744778                basic_machine=np1-gould
    745779                ;;
    746         nv1)
    747                 basic_machine=nv1-cray
    748                 os=-unicosmp
    749                 ;;
    750780        nsr-tandem)
    751781                basic_machine=nsr-tandem
     
    755785                os=-proelf
    756786                ;;
    757         or32 | or32-*)
     787        openrisc | openrisc-*)
    758788                basic_machine=or32-unknown
    759                 os=-coff
    760789                ;;
    761790        os400)
     
    788817                basic_machine=ns32k-pc532
    789818                ;;
     819        pc98)
     820                basic_machine=i386-pc
     821                ;;
     822        pc98-*)
     823                basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
     824                ;;
    790825        pentium | p5 | k5 | k6 | nexgen | viac3)
    791826                basic_machine=i586-pc
     
    844879                os=-pw32
    845880                ;;
     881        rdos)
     882                basic_machine=i386-pc
     883                os=-rdos
     884                ;;
    846885        rom68k)
    847886                basic_machine=m68k-rom68k
     
    10291068                basic_machine=hppa1.1-winbond
    10301069                os=-proelf
     1070                ;;
     1071        xbox)
     1072                basic_machine=i686-pc
     1073                os=-mingw32
    10311074                ;;
    10321075        xps | xps100)
     
    10601103                basic_machine=romp-ibm
    10611104                ;;
     1105        mmix)
     1106                basic_machine=mmix-knuth
     1107                ;;
    10621108        rs6000)
    10631109                basic_machine=rs6000-ibm
     
    10761122                basic_machine=we32k-att
    10771123                ;;
    1078         sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
     1124        sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
    10791125                basic_machine=sh-unknown
    10801126                ;;
    1081         sh64)
    1082                 basic_machine=sh64-unknown
    1083                 ;;
    1084         sparc | sparcv9 | sparcv9b)
     1127        sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
    10851128                basic_machine=sparc-sun
    10861129                ;;
     
    11551198              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
    11561199              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
    1157               | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
     1200              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
     1201              | -openbsd* | -solidbsd* \
    11581202              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
    11591203              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
     
    11621206              | -chorusos* | -chorusrdb* \
    11631207              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
    1164               | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
     1208              | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
     1209              | -uxpv* | -beos* | -mpeix* | -udk* \
    11651210              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
    11661211              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
     
    11681213              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
    11691214              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
    1170               | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
     1215              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
     1216              | -skyos* | -haiku* | -rdos*)
    11711217        # Remember, each alternative MUST END IN *, to match a version number.
    11721218                ;;
     
    11861232                ;;
    11871233        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
    1188               | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
     1234              | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
    11891235              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
    11901236                ;;
     
    12941340        -kaos*)
    12951341                os=-kaos
     1342                ;;
     1343        -zvmoe)
     1344                os=-zvmoe
    12961345                ;;
    12971346        -none)
     
    13721421                os=-beos
    13731422                ;;
     1423        *-haiku)
     1424                os=-haiku
     1425                ;;
    13741426        *-ibm)
    13751427                os=-aix
     1428                ;;
     1429        *-knuth)
     1430                os=-mmixware
    13761431                ;;
    13771432        *-wec)
     
    15401595
    15411596echo $basic_machine$os
    1542 exit 0
     1597exit
    15431598
    15441599# Local variables:
  • trunk/src/gmake/config/depcomp

    • Property svn:executable set to *
    r151 r503  
    22# depcomp - compile a program generating dependencies as side-effects
    33
    4 scriptversion=2003-11-08.23
    5 
    6 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
     4scriptversion=2005-07-09.11
     5
     6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    77
    88# This program is free software; you can redistribute it and/or modify
     
    1818# You should have received a copy of the GNU General Public License
    1919# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    21 # 02111-1307, USA.
     20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     21# 02110-1301, USA.
    2222
    2323# As a special exception to the GNU General Public License, if you
     
    4444  source      Source file read by `PROGRAMS ARGS'.
    4545  object      Object file output by `PROGRAMS ARGS'.
     46  DEPDIR      directory where to store dependencies.
    4647  depfile     Dependency file to output.
    4748  tmpdepfile  Temporary file to use when outputing dependencies.
     
    5051Report bugs to <bug-automake@gnu.org>.
    5152EOF
    52     exit 0
     53    exit $?
    5354    ;;
    5455  -v | --v*)
    5556    echo "depcomp $scriptversion"
    56     exit 0
     57    exit $?
    5758    ;;
    5859esac
     
    6263  exit 1
    6364fi
    64 # `libtool' can also be set to `yes' or `no'.
    65 
    66 if test -z "$depfile"; then
    67    base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
    68    dir=`echo "$object" | sed 's,/.*$,/,'`
    69    if test "$dir" = "$object"; then
    70       dir=
    71    fi
    72    # FIXME: should be _deps on DOS.
    73    depfile="$dir.deps/$base"
    74 fi
    75 
     65
     66# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
     67depfile=${depfile-`echo "$object" |
     68  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
    7669tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
    7770
     
    295288
    296289   if test "$libtool" = yes; then
    297       tmpdepfile1="$dir.libs/$base.lo.d"
    298       tmpdepfile2="$dir.libs/$base.d"
     290      # With Tru64 cc, shared objects can also be used to make a
     291      # static library.  This mecanism is used in libtool 1.4 series to
     292      # handle both shared and static libraries in a single compilation.
     293      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
     294      #
     295      # With libtool 1.5 this exception was removed, and libtool now
     296      # generates 2 separate objects for the 2 libraries.  These two
     297      # compilations output dependencies in in $dir.libs/$base.o.d and
     298      # in $dir$base.o.d.  We have to check for both files, because
     299      # one of the two compilations can be disabled.  We should prefer
     300      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
     301      # automatically cleaned when .libs/ is deleted, while ignoring
     302      # the former would cause a distcleancheck panic.
     303      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
     304      tmpdepfile2=$dir$base.o.d          # libtool 1.5
     305      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
     306      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
    299307      "$@" -Wc,-MD
    300308   else
    301       tmpdepfile1="$dir$base.o.d"
    302       tmpdepfile2="$dir$base.d"
     309      tmpdepfile1=$dir$base.o.d
     310      tmpdepfile2=$dir$base.d
     311      tmpdepfile3=$dir$base.d
     312      tmpdepfile4=$dir$base.d
    303313      "$@" -MD
    304314   fi
     
    307317   if test $stat -eq 0; then :
    308318   else
    309       rm -f "$tmpdepfile1" "$tmpdepfile2"
     319      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
    310320      exit $stat
    311321   fi
    312322
    313    if test -f "$tmpdepfile1"; then
    314       tmpdepfile="$tmpdepfile1"
    315    else
    316       tmpdepfile="$tmpdepfile2"
    317    fi
     323   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
     324   do
     325     test -f "$tmpdepfile" && break
     326   done
    318327   if test -f "$tmpdepfile"; then
    319328      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
     
    459468
    460469  "$@" -E |
    461     sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
     470    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
     471       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
    462472    sed '$ s: \\$::' > "$tmpdepfile"
    463473  rm -f "$depfile"
  • trunk/src/gmake/config/dospaths.m4

    r151 r503  
    11# Test if the system uses DOS-style pathnames (drive specs and backslashes)
    22# By Paul Smith <psmith@gnu.org>.  Based on dos.m4 by Jim Meyering.
     3
     4# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     5# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     6# This file is part of GNU Make.
     7#
     8# GNU Make is free software; you can redistribute it and/or modify it under the
     9# terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 2, or (at your option) any later version.
     11#
     12# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     14# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     15#
     16# You should have received a copy of the GNU General Public License along with
     17# GNU Make; see the file COPYING.  If not, write to the Free Software
     18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    319
    420AC_DEFUN([pds_AC_DOS_PATHS],
     
    723      [
    824        AC_COMPILE_IFELSE([
    9 #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__
     25#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__
    1026neither MSDOS nor Windows nor OS2
    1127#endif
  • trunk/src/gmake/config/install-sh

    • Property svn:executable set to *
    r151 r503  
    22# install - install a program, script, or datafile
    33
    4 scriptversion=2004-01-12.10
     4scriptversion=2005-05-14.22
    55
    66# This originates from X11R5 (mit/util/scripts/install.sh), which was
     
    5959mkdirprog="${MKDIRPROG-mkdir}"
    6060
    61 transformbasename=
    62 transform_arg=
    63 instcmd="$mvprog"
    6461chmodcmd="$chmodprog 0755"
    6562chowncmd=
     
    7168dst=
    7269dir_arg=
    73 
    74 usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
     70dstarg=
     71no_target_directory=
     72
     73usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    7574   or: $0 [OPTION]... SRCFILES... DIRECTORY
    76    or: $0 -d DIRECTORIES...
    77 
    78 In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
    79 In the second, create the directory path DIR.
     75   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
     76   or: $0 [OPTION]... -d DIRECTORIES...
     77
     78In the 1st form, copy SRCFILE to DSTFILE.
     79In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
     80In the 4th, create DIRECTORIES.
    8081
    8182Options:
    82 -b=TRANSFORMBASENAME
    83 -c         copy source (using $cpprog) instead of moving (using $mvprog).
     83-c         (ignored)
    8484-d         create directories instead of installing files.
    85 -g GROUP   $chgrp installed files to GROUP.
    86 -m MODE    $chmod installed files to MODE.
    87 -o USER    $chown installed files to USER.
    88 -s         strip installed files (using $stripprog).
    89 -t=TRANSFORM
     85-g GROUP   $chgrpprog installed files to GROUP.
     86-m MODE    $chmodprog installed files to MODE.
     87-o USER    $chownprog installed files to USER.
     88-s         $stripprog installed files.
     89-t DIRECTORY  install into DIRECTORY.
     90-T         report an error if DSTFILE is a directory.
    9091--help     display this help and exit.
    9192--version  display version info and exit.
     
    9798while test -n "$1"; do
    9899  case $1 in
    99     -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
    100         shift
    101         continue;;
    102 
    103     -c) instcmd=$cpprog
    104         shift
     100    -c) shift
    105101        continue;;
    106102
     
    114110        continue;;
    115111
    116     --help) echo "$usage"; exit 0;;
     112    --help) echo "$usage"; exit $?;;
    117113
    118114    -m) chmodcmd="$chmodprog $2"
     
    130126        continue;;
    131127
    132     -t=*) transformarg=`echo $1 | sed 's/-t=//'`
    133         shift
    134         continue;;
    135 
    136     --version) echo "$0 $scriptversion"; exit 0;;
     128    -t) dstarg=$2
     129        shift
     130        shift
     131        continue;;
     132
     133    -T) no_target_directory=true
     134        shift
     135        continue;;
     136
     137    --version) echo "$0 $scriptversion"; exit $?;;
    137138
    138139    *)  # When -d is used, all remaining arguments are directories to create.
    139         test -n "$dir_arg" && break
     140        # When -t is used, the destination is already specified.
     141        test -n "$dir_arg$dstarg" && break
    140142        # Otherwise, the last argument is the destination.  Remove it from $@.
    141143        for arg
     
    175177
    176178    if test -d "$dst"; then
    177       instcmd=:
     179      mkdircmd=:
    178180      chmodcmd=
    179181    else
    180       instcmd=$mkdirprog
     182      mkdircmd=$mkdirprog
    181183    fi
    182184  else
    183     # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
     185    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
    184186    # might cause directories to be created, which would be especially bad
    185187    # if $src (and thus $dsttmp) contains '*'.
     
    203205    # if double slashes aren't ignored.
    204206    if test -d "$dst"; then
     207      if test -n "$no_target_directory"; then
     208        echo "$0: $dstarg: Is a directory" >&2
     209        exit 1
     210      fi
    205211      dst=$dst/`basename "$src"`
    206212    fi
     
    208214
    209215  # This sed command emulates the dirname command.
    210   dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
     216  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
    211217
    212218  # Make sure that the destination directory exists.
     
    215221  if test ! -d "$dstdir"; then
    216222    defaultIFS='
    217         '
     223         '
    218224    IFS="${IFS-$defaultIFS}"
    219225
     
    221227    # Some sh's can't handle IFS=/ for some reason.
    222228    IFS='%'
    223     set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     229    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     230    shift
    224231    IFS=$oIFS
    225232
     
    229236      pathcomp=$pathcomp$1
    230237      shift
    231       test -d "$pathcomp" || $mkdirprog "$pathcomp"
     238      if test ! -d "$pathcomp"; then
     239        $mkdirprog "$pathcomp"
     240        # mkdir can fail with a `File exist' error in case several
     241        # install-sh are creating the directory concurrently.  This
     242        # is OK.
     243        test -d "$pathcomp" || exit
     244      fi
    232245      pathcomp=$pathcomp/
    233246    done
     
    235248
    236249  if test -n "$dir_arg"; then
    237     $doit $instcmd "$dst" \
     250    $doit $mkdircmd "$dst" \
    238251      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
    239252      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
     
    242255
    243256  else
    244     # If we're going to rename the final executable, determine the name now.
    245     if test -z "$transformarg"; then
    246       dstfile=`basename "$dst"`
    247     else
    248       dstfile=`basename "$dst" $transformbasename \
    249                | sed $transformarg`$transformbasename
    250     fi
    251 
    252     # don't allow the sed command to completely eliminate the filename.
    253     test -z "$dstfile" && dstfile=`basename "$dst"`
     257    dstfile=`basename "$dst"`
    254258
    255259    # Make a couple of temp file names in the proper directory.
     
    258262
    259263    # Trap to clean up those temp files at exit.
    260     trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
     264    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
    261265    trap '(exit $?); exit' 1 2 13 15
    262266
    263     # Move or copy the file name to the temp name
    264     $doit $instcmd "$src" "$dsttmp" &&
     267    # Copy the file name to the temp name.
     268    $doit $cpprog "$src" "$dsttmp" &&
    265269
    266270    # and set any options; do chmod last to preserve setuid bits.
     
    268272    # If any of these fail, we abort the whole thing.  If we want to
    269273    # ignore errors from any of these, just make sure not to ignore
    270     # errors from the above "$doit $instcmd $src $dsttmp" command.
     274    # errors from the above "$doit $cpprog $src $dsttmp" command.
    271275    #
    272276    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
     
    275279      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
    276280
    277     # Now remove or move aside any old file at destination location.  We
    278     # try this two ways since rm can't unlink itself on some systems and
    279     # the destination file might be busy for other reasons.  In this case,
    280     # the final cleanup might fail but the new file should still install
    281     # successfully.
    282     {
    283       if test -f "$dstdir/$dstfile"; then
    284         $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
    285         || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
    286         || {
    287           echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
    288           (exit 1); exit
    289         }
    290       else
    291         :
    292       fi
    293     } &&
    294 
    295281    # Now rename the file to the real destination.
    296     $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
    297   fi || { (exit 1); exit; }
     282    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
     283      || {
     284           # The rename failed, perhaps because mv can't rename something else
     285           # to itself, or perhaps because mv is so ancient that it does not
     286           # support -f.
     287
     288           # Now remove or move aside any old file at destination location.
     289           # We try this two ways since rm can't unlink itself on some
     290           # systems and the destination file might be busy for other
     291           # reasons.  In this case, the final cleanup might fail but the new
     292           # file should still install successfully.
     293           {
     294             if test -f "$dstdir/$dstfile"; then
     295               $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
     296               || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
     297               || {
     298                 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
     299                 (exit 1); exit 1
     300               }
     301             else
     302               :
     303             fi
     304           } &&
     305
     306           # Now rename the file to the real destination.
     307           $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
     308         }
     309    }
     310  fi || { (exit 1); exit 1; }
    298311done
    299312
    300313# The final little trick to "correctly" pass the exit status to the exit trap.
    301314{
    302   (exit 0); exit
     315  (exit 0); exit 0
    303316}
    304317
  • trunk/src/gmake/config/missing

    • Property svn:executable set to *
    r151 r503  
    22# Common stub for a few missing GNU programs while installing.
    33
    4 scriptversion=2003-09-02.23
    5 
    6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 
     4scriptversion=2005-06-08.21
     5
     6# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
    77#   Free Software Foundation, Inc.
    88# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
     
    2020# You should have received a copy of the GNU General Public License
    2121# along with this program; if not, write to the Free Software
    22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    23 # 02111-1307, USA.
     22# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     23# 02110-1301, USA.
    2424
    2525# As a special exception to the GNU General Public License, if you
     
    6161  fi
    6262  ;;
    63 esac
    64 
    65 # If it does not exist, or fails to run (possibly an outdated version),
    66 # try to emulate it.
    67 case "$1" in
    6863
    6964  -h|--h|--he|--hel|--help)
     
    9388
    9489Send bug reports to <bug-automake@gnu.org>."
     90    exit $?
    9591    ;;
    9692
    9793  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
    9894    echo "missing $scriptversion (GNU Automake)"
     95    exit $?
    9996    ;;
    10097
     
    105102    ;;
    106103
    107   aclocal*)
     104esac
     105
     106# Now exit if we have it, but it failed.  Also exit now if we
     107# don't have it and --version was passed (most likely to detect
     108# the program).
     109case "$1" in
     110  lex|yacc)
     111    # Not GNU programs, they don't have --version.
     112    ;;
     113
     114  tar)
     115    if test -n "$run"; then
     116       echo 1>&2 "ERROR: \`tar' requires --run"
     117       exit 1
     118    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
     119       exit 1
     120    fi
     121    ;;
     122
     123  *)
    108124    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    109125       # We have it, but it failed.
    110126       exit 1
    111     fi
    112 
     127    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
     128       # Could not run --version or --help.  This is probably someone
     129       # running `$TOOL --version' or `$TOOL --help' to check whether
     130       # $TOOL exists and not knowing $TOOL uses missing.
     131       exit 1
     132    fi
     133    ;;
     134esac
     135
     136# If it does not exist, or fails to run (possibly an outdated version),
     137# try to emulate it.
     138case "$1" in
     139  aclocal*)
    113140    echo 1>&2 "\
    114141WARNING: \`$1' is $msg.  You should only need it if
     
    120147
    121148  autoconf)
    122     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    123        # We have it, but it failed.
    124        exit 1
    125     fi
    126 
    127149    echo 1>&2 "\
    128150WARNING: \`$1' is $msg.  You should only need it if
     
    134156
    135157  autoheader)
    136     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    137        # We have it, but it failed.
    138        exit 1
    139     fi
    140 
    141158    echo 1>&2 "\
    142159WARNING: \`$1' is $msg.  You should only need it if
     
    158175
    159176  automake*)
    160     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    161        # We have it, but it failed.
    162        exit 1
    163     fi
    164 
    165177    echo 1>&2 "\
    166178WARNING: \`$1' is $msg.  You should only need it if
     
    174186
    175187  autom4te)
    176     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    177        # We have it, but it failed.
    178        exit 1
    179     fi
    180 
    181188    echo 1>&2 "\
    182189WARNING: \`$1' is needed, but is $msg.
     
    255262
    256263  help2man)
    257     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    258        # We have it, but it failed.
    259        exit 1
    260     fi
    261 
    262264    echo 1>&2 "\
    263265WARNING: \`$1' is $msg.  You should only need it if
     
    280282
    281283  makeinfo)
    282     if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
    283        # We have makeinfo, but it failed.
    284        exit 1
    285     fi
    286 
    287284    echo 1>&2 "\
    288285WARNING: \`$1' is $msg.  You should only need it if
     
    292289         DU, IRIX).  You might want to install the \`Texinfo' package or
    293290         the \`GNU make' package.  Grab either from any GNU archive site."
     291    # The file to touch is that specified with -o ...
    294292    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
    295293    if test -z "$file"; then
    296       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
    297       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
    298     fi
     294      # ... or it is the one specified with @setfilename ...
     295      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
     296      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
     297      # ... or it is derived from the source name (dir/f.texi becomes f.info)
     298      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     299    fi
     300    # If the file does not exist, the user really needs makeinfo;
     301    # let's fail without touching anything.
     302    test -f $file || exit 1
    299303    touch $file
    300304    ;;
     
    302306  tar)
    303307    shift
    304     if test -n "$run"; then
    305       echo 1>&2 "ERROR: \`tar' requires --run"
    306       exit 1
    307     fi
    308308
    309309    # We have already tried tar in the generic part.
  • trunk/src/gmake/config/mkinstalldirs

    • Property svn:executable set to *
  • trunk/src/gmake/config/texinfo.tex

    r151 r503  
    44\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
    55%
    6 \def\texinfoversion{2004-02-25.17}
     6\def\texinfoversion{2006-03-21.13}
    77%
    88% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
    9 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
    10 % Foundation, Inc.
     9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
     10% Software Foundation, Inc.
    1111%
    1212% This texinfo.tex file is free software; you can redistribute it and/or
     
    2222% You should have received a copy of the GNU General Public License
    2323% along with this texinfo.tex file; see the file COPYING.  If not, write
    24 % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    25 % Boston, MA 02111-1307, USA.
     24% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     25% Boston, MA 02110-1301, USA.
    2626%
    2727% As a special exception, when this file is read by TeX when processing
    2828% a Texinfo source document, you may use the result without
    2929% restriction.  (This has been our intent since Texinfo was invented.)
    30 % 
     30%
    3131% Please try the latest version of texinfo.tex before submitting bug
    3232% reports; you can get the latest version from:
     
    5656% extent.  You can get the existing language-specific files from the
    5757% full Texinfo distribution.
    58 % 
     58%
    5959% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
    6060
     
    9090\let\ptexi=\i
    9191\let\ptexindent=\indent
    92 \let\ptexnoindent=\noindent
    9392\let\ptexinsert=\insert
    9493\let\ptexlbrace=\{
    9594\let\ptexless=<
     95\let\ptexnewwrite\newwrite
     96\let\ptexnoindent=\noindent
    9697\let\ptexplus=+
    9798\let\ptexrbrace=\}
     
    153154\ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
    154155
    155 % In some macros, we cannot use the `\? notation---the left quote is
    156 % in some cases the escape char.
    157 \chardef\colonChar = `\:
    158 \chardef\commaChar = `\,
    159 \chardef\dotChar   = `\.
    160 \chardef\exclamChar= `\!
    161 \chardef\questChar = `\?
    162 \chardef\semiChar  = `\;
    163 \chardef\underChar = `\_
    164 
    165 \chardef\spaceChar = `\ %
     156% Since the category of space is not known, we have to be careful.
    166157\chardef\spacecat = 10
    167 \def\spaceisspace{\catcode\spaceChar=\spacecat}
     158\def\spaceisspace{\catcode`\ =\spacecat}
    168159
    169160% Ignore a token.
     
    176167% Hyphenation fixes.
    177168\hyphenation{
    178   Flor-i-da Ghost-script Ghost-view Mac-OS ap-pen-dix bit-map bit-maps
     169  Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
     170  ap-pen-dix bit-map bit-maps
    179171  data-base data-bases eshell fall-ing half-way long-est man-u-script
    180172  man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
    181   par-a-digms rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
     173  par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
     174  spell-ing spell-ings
    182175  stand-alone strong-est time-stamp time-stamps which-ever white-space
    183176  wide-spread wrap-around
     
    300293    % before the \shipout runs.
    301294    %
    302     \escapechar = `\\     % use backslash in output files.
    303295    \indexdummies         % don't expand commands in the output.
    304296    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
    305                    % the page break happens to be in the middle of an example.
     297               % the page break happens to be in the middle of an example.
     298               % We don't want .vr (or whatever) entries like this:
     299               % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
     300               % "\acronym" won't work when it's read back in;
     301               % it needs to be
     302               % {\code {{\tt \backslashcurfont }acronym}
    306303    \shipout\vbox{%
    307304      % Do this early so pdf references go to the beginning of the page.
     
    354351      \fi
    355352    }% end of \shipout\vbox
    356   }% end of group with \normalturnoffactive
     353  }% end of group with \indexdummies
    357354  \advancepageno
    358355  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
     
    389386\def\parsearg{\parseargusing{}}
    390387\def\parseargusing#1#2{%
    391   \def\next{#2}%
     388  \def\argtorun{#2}%
    392389  \begingroup
    393390    \obeylines
     
    420417  \def\temp{#3}%
    421418  \ifx\temp\empty
    422     % We cannot use \next here, as it holds the macro to run;
    423     % thus we reuse \temp.
     419    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
    424420    \let\temp\finishparsearg
    425421  \else
     
    433429% to get _exactly_ the rest of the line, we had to prevent such situation.
    434430% We prepended an \empty token at the very beginning and we expand it now,
    435 % just before passing the control to \next.
     431% just before passing the control to \argtorun.
    436432% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
    437433% either the null string, or it ends with \^^M---thus there is no danger
     
    440436% But first, we have to remove the trailing space token.
    441437%
    442 \def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
     438\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
    443439
    444440% \parseargdef\foo{...}
     
    480476
    481477% Define the framework for environments in texinfo.tex.  It's used like this:
    482 % 
     478%
    483479%   \envdef\foo{...}
    484480%   \def\Efoo{...}
    485 %   
     481%
    486482% It's the responsibility of \envdef to insert \begingroup before the
    487483% actual body; @end closes the group after calling \Efoo.  \envdef also
     
    489485% whether the environment name matches.  The \checkenv macro can also be
    490486% used to check whether the current environment is the one expected.
    491 % 
     487%
    492488% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
    493489% are not treated as enviroments; they don't open a group.  (The
     
    564560\begingroup
    565561  % Definitions to produce \{ and \} commands for indices,
    566   % and @{ and @} for the aux file.
     562  % and @{ and @} for the aux/toc files.
    567563  \catcode`\{ = \other \catcode`\} = \other
    568564  \catcode`\[ = 1 \catcode`\] = 2
     
    606602% The \TeX{} logo, as in plain, but resetting the spacing so that a
    607603% period following counts as ending a sentence.  (Idea found in latex.)
    608 % 
    609 \edef\TeX{\TeX \spacefactor=3000 }
     604%
     605\edef\TeX{\TeX \spacefactor=1000 }
    610606
    611607% @LaTeX{} logo.  Not quite the same results as the definition in
     
    614610% the \scriptstyle font (since we don't reset \scriptstyle and
    615611% \scriptscriptstyle).
    616 % 
     612%
    617613\def\LaTeX{%
    618614  L\kern-.36em
     
    645641
    646642% @. is an end-of-sentence period.
    647 \def\.{.\spacefactor=3000 }
     643\def\.{.\spacefactor=\endofsentencespacefactor\space}
    648644
    649645% @! is an end-of-sentence bang.
    650 \def\!{!\spacefactor=3000 }
     646\def\!{!\spacefactor=\endofsentencespacefactor\space}
    651647
    652648% @? is an end-of-sentence query.
    653 \def\?{?\spacefactor=3000 }
     649\def\?{?\spacefactor=\endofsentencespacefactor\space}
     650
     651% @frenchspacing on|off  says whether to put extra space after punctuation.
     652%
     653\def\onword{on}
     654\def\offword{off}
     655%
     656\parseargdef\frenchspacing{%
     657  \def\temp{#1}%
     658  \ifx\temp\onword \plainfrenchspacing
     659  \else\ifx\temp\offword \plainnonfrenchspacing
     660  \else
     661    \errhelp = \EMsimple
     662    \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
     663  \fi\fi
     664}
    654665
    655666% @w prevents a word break.  Without the \leavevmode, @w at the
     
    10291040% which is what @var uses.
    10301041{
    1031   \catcode\underChar = \active
     1042  \catcode`\_ = \active
    10321043  \gdef\mathunderscore{%
    1033     \catcode\underChar=\active
     1044    \catcode`\_=\active
    10341045    \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
    10351046  }
     
    10901101\def\enddots{%
    10911102  \dots
    1092   \spacefactor=3000
     1103  \spacefactor=\endofsentencespacefactor
    10931104}
    10941105
    10951106% @comma{} is so commas can be inserted into text without messing up
    10961107% Texinfo's parsing.
    1097 % 
     1108%
    10981109\let\comma = ,
    10991110
     
    11611172\newif\ifpdfmakepagedest
    11621173
     1174% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
     1175% can be set).  So we test for \relax and 0 as well as \undefined,
     1176% borrowed from ifpdf.sty.
    11631177\ifx\pdfoutput\undefined
    1164   \pdffalse
    1165   \let\pdfmkdest = \gobble
    1166   \let\pdfurl = \gobble
    1167   \let\endlink = \relax
    1168   \let\linkcolor = \relax
    1169   \let\pdfmakeoutlines = \relax
    11701178\else
    1171   \pdftrue
    1172   \pdfoutput = 1
     1179  \ifx\pdfoutput\relax
     1180  \else
     1181    \ifcase\pdfoutput
     1182    \else
     1183      \pdftrue
     1184    \fi
     1185  \fi
     1186\fi
     1187
     1188% PDF uses PostScript string constants for the names of xref targets,
     1189% for display in the outlines, and in other places.  Thus, we have to
     1190% double any backslashes.  Otherwise, a name like "\node" will be
     1191% interpreted as a newline (\n), followed by o, d, e.  Not good.
     1192% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
     1193% (and related messages, the final outcome is that it is up to the TeX
     1194% user to double the backslashes and otherwise make the string valid, so
     1195% that's what we do).
     1196
     1197% double active backslashes.
     1198%
     1199{\catcode`\@=0 \catcode`\\=\active
     1200 @gdef@activebackslashdouble{%
     1201   @catcode`@\=@active
     1202   @let\=@doublebackslash}
     1203}
     1204
     1205% To handle parens, we must adopt a different approach, since parens are
     1206% not active characters.  hyperref.dtx (which has the same problem as
     1207% us) handles it with this amazing macro to replace tokens.  I've
     1208% tinkered with it a little for texinfo, but it's definitely from there.
     1209%
     1210% #1 is the tokens to replace.
     1211% #2 is the replacement.
     1212% #3 is the control sequence with the string.
     1213%
     1214\def\HyPsdSubst#1#2#3{%
     1215  \def\HyPsdReplace##1#1##2\END{%
     1216    ##1%
     1217    \ifx\\##2\\%
     1218    \else
     1219      #2%
     1220      \HyReturnAfterFi{%
     1221        \HyPsdReplace##2\END
     1222      }%
     1223    \fi
     1224  }%
     1225  \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
     1226}
     1227\long\def\HyReturnAfterFi#1\fi{\fi#1}
     1228
     1229% #1 is a control sequence in which to do the replacements.
     1230\def\backslashparens#1{%
     1231  \xdef#1{#1}% redefine it as its expansion; the definition is simply
     1232             % \lastnode when called from \setref -> \pdfmkdest.
     1233  \HyPsdSubst{(}{\realbackslash(}{#1}%
     1234  \HyPsdSubst{)}{\realbackslash)}{#1}%
     1235}
     1236
     1237\ifpdf
    11731238  \input pdfcolor
    11741239  \pdfcatalog{/PageMode /UseOutlines}%
     
    11941259    \fi}
    11951260  \def\pdfmkdest#1{{%
    1196     % We have to set dummies so commands such as @code in a section title
    1197     % aren't expanded.
     1261    % We have to set dummies so commands such as @code, and characters
     1262    % such as \, aren't expanded when present in a section title.
    11981263    \atdummies
    1199     \normalturnoffactive
    1200     \pdfdest name{#1} xyz%
    1201   }}
    1202   \def\pdfmkpgn#1{#1}
     1264    \activebackslashdouble
     1265    \def\pdfdestname{#1}%
     1266    \backslashparens\pdfdestname
     1267    \pdfdest name{\pdfdestname} xyz%
     1268  }}%
     1269  %
     1270  % used to mark target names; must be expandable.
     1271  \def\pdfmkpgn#1{#1}%
     1272  %
    12031273  \let\linkcolor = \Blue  % was Cyan, but that seems light?
    12041274  \def\endlink{\Black\pdfendlink}
     
    12111281    \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
    12121282  %
    1213   % #1 is the section text.  #2 is the pdf expression for the number
    1214   % of subentries (or empty, for subsubsections).  #3 is the node
    1215   % text, which might be empty if this toc entry had no
    1216   % corresponding node.  #4 is the page number.
    1217   %
     1283  % #1 is the section text, which is what will be displayed in the
     1284  % outline by the pdf viewer.  #2 is the pdf expression for the number
     1285  % of subentries (or empty, for subsubsections).  #3 is the node text,
     1286  % which might be empty if this toc entry had no corresponding node.
     1287  % #4 is the page number
     1288  %
    12181289  \def\dopdfoutline#1#2#3#4{%
    12191290    % Generate a link to the node text if that exists; else, use the
    12201291    % page number.  We could generate a destination for the section
    12211292    % text in the case where a section has no node, but it doesn't
    1222     % seem worthwhile, since most documents are normally structured.
     1293    % seem worth the trouble, since most documents are normally structured.
    12231294    \def\pdfoutlinedest{#3}%
    1224     \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi
     1295    \ifx\pdfoutlinedest\empty
     1296      \def\pdfoutlinedest{#4}%
     1297    \else
     1298      % Doubled backslashes in the name.
     1299      {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
     1300       \backslashparens\pdfoutlinedest}%
     1301    \fi
    12251302    %
    1226     \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}%
     1303    % Also double the backslashes in the display string.
     1304    {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
     1305     \backslashparens\pdfoutlinetext}%
     1306    %
     1307    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
    12271308  }
    12281309  %
     
    12361317      \def\numchapentry##1##2##3##4{%
    12371318        \def\thischapnum{##2}%
    1238         \let\thissecnum\empty
    1239         \let\thissubsecnum\empty
     1319        \def\thissecnum{0}%
     1320        \def\thissubsecnum{0}%
    12401321      }%
    12411322      \def\numsecentry##1##2##3##4{%
    12421323        \advancenumber{chap\thischapnum}%
    12431324        \def\thissecnum{##2}%
    1244         \let\thissubsecnum\empty
     1325        \def\thissubsecnum{0}%
    12451326      }%
    12461327      \def\numsubsecentry##1##2##3##4{%
     
    12511332        \advancenumber{subsec\thissubsecnum}%
    12521333      }%
    1253       \let\thischapnum\empty
    1254       \let\thissecnum\empty
    1255       \let\thissubsecnum\empty
     1334      \def\thischapnum{0}%
     1335      \def\thissecnum{0}%
     1336      \def\thissubsecnum{0}%
    12561337      %
    12571338      % use \def rather than \let here because we redefine \chapentry et
     
    12651346      \def\unnsubsecentry{\numsubsecentry}%
    12661347      \def\unnsubsubsecentry{\numsubsubsecentry}%
    1267       \input \jobname.toc
     1348      \readdatafile{toc}%
    12681349      %
    12691350      % Read toc second time, this time actually producing the outlines.
    12701351      % The `-' means take the \expnumber as the absolute number of
    12711352      % subentries, which we calculated on our first read of the .toc above.
    1272       % 
     1353      %
    12731354      % We use the node names as the destinations.
    12741355      \def\numchapentry##1##2##3##4{%
     
    12861367      % Latin 2 (0xea) gets translated to a | character.  Info from
    12871368      % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
    1288       % 
     1369      %
    12891370      % xx to do this right, we have to translate 8-bit characters to
    12901371      % their "best" equivalent, based on the @documentencoding.  Right
    12911372      % now, I guess we'll just let the pdf reader have its way.
    12921373      \indexnofonts
    1293       \turnoffactive
     1374      \setupdatafile
     1375      \catcode`\\=\active \otherbackslash
    12941376      \input \jobname.toc
    12951377    \endgroup
    12961378  }
    12971379  %
    1298   \def\makelinks #1,{%
    1299     \def\params{#1}\def\E{END}%
    1300     \ifx\params\E
    1301       \let\nextmakelinks=\relax
    1302     \else
    1303       \let\nextmakelinks=\makelinks
    1304       \ifnum\lnkcount>0,\fi
    1305       \picknum{#1}%
    1306       \startlink attr{/Border [0 0 0]}
    1307         goto name{\pdfmkpgn{\the\pgn}}%
    1308       \linkcolor #1%
    1309       \advance\lnkcount by 1%
    1310       \endlink
    1311     \fi
    1312     \nextmakelinks
    1313   }
    1314   \def\picknum#1{\expandafter\pn#1}
    1315   \def\pn#1{%
    1316     \def\p{#1}%
    1317     \ifx\p\lbrace
    1318       \let\nextpn=\ppn
    1319     \else
    1320       \let\nextpn=\ppnn
    1321       \def\first{#1}
    1322     \fi
    1323     \nextpn
    1324   }
    1325   \def\ppn#1{\pgn=#1\gobble}
    1326   \def\ppnn{\pgn=\first}
    1327   \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
    13281380  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
    13291381    \ifx\PP\D\let\nextsp\relax
     
    13401392    \let \startlink \pdfstartlink
    13411393  \fi
     1394  % make a live url in pdf output.
    13421395  \def\pdfurl#1{%
    13431396    \begingroup
    1344       \normalturnoffactive\def\@{@}%
     1397      % it seems we really need yet another set of dummies; have not
     1398      % tried to figure out what each command should do in the context
     1399      % of @url.  for now, just make @/ a no-op, that's the only one
     1400      % people have actually reported a problem with.
     1401      %
     1402      \normalturnoffactive
     1403      \def\@{@}%
     1404      \let\/=\empty
    13451405      \makevalueexpandable
    13461406      \leavevmode\Red
     
    13731433    \linkcolor #1\endlink}
    13741434  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
    1375 \fi % \ifx\pdfoutput
     1435\else
     1436  \let\pdfmkdest = \gobble
     1437  \let\pdfurl = \gobble
     1438  \let\endlink = \relax
     1439  \let\linkcolor = \relax
     1440  \let\pdfmakeoutlines = \relax
     1441\fi  % \ifx\pdfoutput
    13761442
    13771443
     
    13811447% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
    13821448% italics, not bold italics.
    1383 % 
     1449%
    13841450\def\setfontstyle#1{%
    13851451  \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
     
    13881454
    13891455% Select #1 fonts with the current style.
    1390 % 
     1456%
    13911457\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
    13921458
     
    13941460\def\it{\fam=\itfam \setfontstyle{it}}
    13951461\def\sl{\fam=\slfam \setfontstyle{sl}}
    1396 \def\bf{\fam=\bffam \setfontstyle{bf}}
     1462\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
    13971463\def\tt{\fam=\ttfam \setfontstyle{tt}}
    13981464
     
    14561522
    14571523% Text fonts (11.2pt, magstep1).
    1458 \newcount\mainmagstep
    1459 \ifx\bigger\relax
    1460   % not really supported.
    1461   \mainmagstep=\magstep1
    1462   \setfont\textrm\rmshape{12}{1000}
    1463   \setfont\texttt\ttshape{12}{1000}
    1464 \else
    1465   \mainmagstep=\magstephalf
    1466   \setfont\textrm\rmshape{10}{\mainmagstep}
    1467   \setfont\texttt\ttshape{10}{\mainmagstep}
    1468 \fi
     1524\def\textnominalsize{11pt}
     1525\edef\mainmagstep{\magstephalf}
     1526\setfont\textrm\rmshape{10}{\mainmagstep}
     1527\setfont\texttt\ttshape{10}{\mainmagstep}
    14691528\setfont\textbf\bfshape{10}{\mainmagstep}
    14701529\setfont\textit\itshape{10}{\mainmagstep}
     
    14831542
    14841543% Fonts for indices, footnotes, small examples (9pt).
     1544\def\smallnominalsize{9pt}
    14851545\setfont\smallrm\rmshape{9}{1000}
    14861546\setfont\smalltt\ttshape{9}{1000}
     
    14951555
    14961556% Fonts for small examples (8pt).
     1557\def\smallernominalsize{8pt}
    14971558\setfont\smallerrm\rmshape{8}{1000}
    14981559\setfont\smallertt\ttshape{8}{1000}
     
    15071568
    15081569% Fonts for title page (20.4pt):
     1570\def\titlenominalsize{20pt}
    15091571\setfont\titlerm\rmbshape{12}{\magstep3}
    15101572\setfont\titleit\itbshape{10}{\magstep4}
     
    15211583
    15221584% Chapter (and unnumbered) fonts (17.28pt).
     1585\def\chapnominalsize{17pt}
    15231586\setfont\chaprm\rmbshape{12}{\magstep2}
    15241587\setfont\chapit\itbshape{10}{\magstep3}
     
    15331596
    15341597% Section fonts (14.4pt).
     1598\def\secnominalsize{14pt}
    15351599\setfont\secrm\rmbshape{12}{\magstep1}
    15361600\setfont\secit\itbshape{10}{\magstep2}
     
    15451609
    15461610% Subsection fonts (13.15pt).
     1611\def\ssecnominalsize{13pt}
    15471612\setfont\ssecrm\rmbshape{12}{\magstephalf}
    15481613\setfont\ssecit\itbshape{10}{1315}
     
    15571622
    15581623% Reduced fonts for @acro in text (10pt).
     1624\def\reducednominalsize{10pt}
    15591625\setfont\reducedrm\rmshape{10}{1000}
    15601626\setfont\reducedtt\ttshape{10}{1000}
     
    15841650% current \fam for math mode.  Our \STYLE (e.g., \rm) commands hardwire
    15851651% \tenSTYLE to set the current font.
    1586 % 
     1652%
    15871653% Each font-changing command also sets the names \lsize (one size lower)
    15881654% and \lllsize (three sizes lower).  These relative commands are used in
    15891655% the LaTeX logo and acronyms.
    1590 % 
     1656%
    15911657% This all needs generalizing, badly.
    1592 % 
     1658%
    15931659\def\textfonts{%
    15941660  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
     
    15961662  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
    15971663  \let\tenttsl=\textttsl
     1664  \def\curfontsize{text}%
    15981665  \def\lsize{reduced}\def\lllsize{smaller}%
    15991666  \resetmathfonts \setleading{\textleading}}
     
    16031670  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
    16041671  \let\tenttsl=\titlettsl
     1672  \def\curfontsize{title}%
    16051673  \def\lsize{chap}\def\lllsize{subsec}%
    16061674  \resetmathfonts \setleading{25pt}}
     
    16091677  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
    16101678  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
    1611   \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
     1679  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
     1680  \let\tenttsl=\chapttsl
     1681  \def\curfontsize{chap}%
    16121682  \def\lsize{sec}\def\lllsize{text}%
    16131683  \resetmathfonts \setleading{19pt}}
     
    16171687  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
    16181688  \let\tenttsl=\secttsl
     1689  \def\curfontsize{sec}%
    16191690  \def\lsize{subsec}\def\lllsize{reduced}%
    16201691  \resetmathfonts \setleading{16pt}}
     
    16241695  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
    16251696  \let\tenttsl=\ssecttsl
     1697  \def\curfontsize{ssec}%
    16261698  \def\lsize{text}\def\lllsize{small}%
    16271699  \resetmathfonts \setleading{15pt}}
     
    16321704  \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
    16331705  \let\tenttsl=\reducedttsl
     1706  \def\curfontsize{reduced}%
    16341707  \def\lsize{small}\def\lllsize{smaller}%
    16351708  \resetmathfonts \setleading{10.5pt}}
     
    16391712  \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
    16401713  \let\tenttsl=\smallttsl
     1714  \def\curfontsize{small}%
    16411715  \def\lsize{smaller}\def\lllsize{smaller}%
    16421716  \resetmathfonts \setleading{10.5pt}}
     
    16461720  \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
    16471721  \let\tenttsl=\smallerttsl
     1722  \def\curfontsize{smaller}%
    16481723  \def\lsize{smaller}\def\lllsize{smaller}%
    16491724  \resetmathfonts \setleading{9.5pt}}
     
    17031778
    17041779\let\i=\smartitalic
     1780\let\slanted=\smartslanted
    17051781\let\var=\smartslanted
    17061782\let\dfn=\smartslanted
    17071783\let\emph=\smartitalic
    17081784
     1785% @b, explicit bold.
    17091786\def\b#1{{\bf #1}}
    17101787\let\strong=\b
     1788
     1789% @sansserif, explicit sans.
     1790\def\sansserif#1{{\sf #1}}
    17111791
    17121792% We can't just use \exhyphenpenalty, because that only has effect at
     
    17211801% sometimes \x has an active definition that messes things up.
    17221802%
     1803\chardef\colonChar = `\:
     1804\chardef\commaChar = `\,
     1805\chardef\dotChar   = `\.
     1806\chardef\exclamChar= `\!
     1807\chardef\questChar = `\?
     1808\chardef\semiChar  = `\;
     1809%
    17231810\catcode`@=11
    1724   \def\frenchspacing{%
     1811  \def\plainfrenchspacing{%
    17251812    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
    17261813    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
     1814    \def\endofsentencespacefactor{1000}% for @. and friends
     1815  }
     1816  \def\plainnonfrenchspacing{%
     1817    \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
     1818    \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
     1819    \def\endofsentencespacefactor{3000}% for @. and friends
    17271820  }
    17281821\catcode`@=\other
     1822\def\endofsentencespacefactor{3000}% default
    17291823
    17301824\def\t#1{%
    1731   {\tt \rawbackslash \frenchspacing #1}%
     1825  {\tt \rawbackslash \plainfrenchspacing #1}%
    17321826  \null
    17331827}
     
    17661860    %
    17671861    \rawbackslash
    1768     \frenchspacing
     1862    \plainfrenchspacing
    17691863    #1%
    17701864  }%
     
    17861880  %
    17871881  \global\def\code{\begingroup
    1788     \catcode`\-=\active \let-\codedash
    1789     \catcode`\_=\active \let_\codeunder
     1882    \catcode`\-=\active  \catcode`\_=\active
     1883    \ifallowcodebreaks
     1884     \let-\codedash
     1885     \let_\codeunder
     1886    \else
     1887     \let-\realdash
     1888     \let_\realunder
     1889    \fi
    17901890    \codex
    17911891  }
     
    18071907\def\codex #1{\tclose{#1}\endgroup}
    18081908
     1909% An additional complication: the above will allow breaks after, e.g.,
     1910% each of the four underscores in __typeof__.  This is undesirable in
     1911% some manuals, especially if they don't have long identifiers in
     1912% general.  @allowcodebreaks provides a way to control this.
     1913%
     1914\newif\ifallowcodebreaks  \allowcodebreakstrue
     1915
     1916\def\keywordtrue{true}
     1917\def\keywordfalse{false}
     1918
     1919\parseargdef\allowcodebreaks{%
     1920  \def\txiarg{#1}%
     1921  \ifx\txiarg\keywordtrue
     1922    \allowcodebreakstrue
     1923  \else\ifx\txiarg\keywordfalse
     1924    \allowcodebreaksfalse
     1925  \else
     1926    \errhelp = \EMsimple
     1927    \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
     1928  \fi\fi
     1929}
     1930
    18091931% @kbd is like @code, except that if the argument is just one @key command,
    18101932% then @kbd has no effect.
     
    18141936%   or `code' (@kbd uses normal tty font always).
    18151937\parseargdef\kbdinputstyle{%
    1816   \def\arg{#1}%
    1817   \ifx\arg\worddistinct
     1938  \def\txiarg{#1}%
     1939  \ifx\txiarg\worddistinct
    18181940    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
    1819   \else\ifx\arg\wordexample
     1941  \else\ifx\txiarg\wordexample
    18201942    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
    1821   \else\ifx\arg\wordcode
     1943  \else\ifx\txiarg\wordcode
    18221944    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
    18231945  \else
    18241946    \errhelp = \EMsimple
    1825     \errmessage{Unknown @kbdinputstyle option `\arg'}%
     1947    \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
    18261948  \fi\fi\fi
    18271949}
     
    18391961\else{\tclose{\kbdfont\look}}\fi}
    18401962
    1841 % For @url, @env, @command quotes seem unnecessary, so use \code.
    1842 \let\url=\code
     1963% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
     1964\let\indicateurl=\code
    18431965\let\env=\code
    18441966\let\command=\code
     
    18721994\endgroup}
    18731995
     1996% @url synonym for @uref, since that's how everyone uses it.
     1997%
     1998\let\url=\uref
     1999
    18742000% rms does not like angle brackets --karl, 17may97.
    18752001% So now @email is just like @uref, unless we are pdf.
     
    19132039\def\ii#1{{\it #1}}             % italic font
    19142040
     2041% @acronym for "FBI", "NATO", and the like.
     2042% We print this one point size smaller, since it's intended for
     2043% all-uppercase.
     2044%
    19152045\def\acronym#1{\doacronym #1,,\finish}
    19162046\def\doacronym#1,#2,#3\finish{%
     
    19222052}
    19232053
    1924 % @pounds{} is a sterling sign, which is in the CM italic font.
     2054% @abbr for "Comput. J." and the like.
     2055% No font change, but don't do end-of-sentence spacing.
    19252056%
     2057\def\abbr#1{\doabbr #1,,\finish}
     2058\def\doabbr#1,#2,#3\finish{%
     2059  {\plainfrenchspacing #1}%
     2060  \def\temp{#2}%
     2061  \ifx\temp\empty \else
     2062    \space ({\unsepspaces \ignorespaces \temp \unskip})%
     2063  \fi
     2064}
     2065
     2066% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
     2067%
    19262068\def\pounds{{\it\$}}
     2069
     2070% @euro{} comes from a separate font, depending on the current style.
     2071% We use the free feym* fonts from the eurosym package by Henrik
     2072% Theiling, which support regular, slanted, bold and bold slanted (and
     2073% "outlined" (blackboard board, sort of) versions, which we don't need).
     2074% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
     2075%
     2076% Although only regular is the truly official Euro symbol, we ignore
     2077% that.  The Euro is designed to be slightly taller than the regular
     2078% font height.
     2079%
     2080% feymr - regular
     2081% feymo - slanted
     2082% feybr - bold
     2083% feybo - bold slanted
     2084%
     2085% There is no good (free) typewriter version, to my knowledge.
     2086% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
     2087% Hmm.
     2088%
     2089% Also doesn't work in math.  Do we need to do math with euro symbols?
     2090% Hope not.
     2091%
     2092%
     2093\def\euro{{\eurofont e}}
     2094\def\eurofont{%
     2095  % We set the font at each command, rather than predefining it in
     2096  % \textfonts and the other font-switching commands, so that
     2097  % installations which never need the symbol don't have to have the
     2098  % font installed.
     2099  %
     2100  % There is only one designed size (nominal 10pt), so we always scale
     2101  % that to the current nominal size.
     2102  %
     2103  % By the way, simply using "at 1em" works for cmr10 and the like, but
     2104  % does not work for cmbx10 and other extended/shrunken fonts.
     2105  %
     2106  \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
     2107  %
     2108  \ifx\curfontstyle\bfstylename
     2109    % bold:
     2110    \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
     2111  \else
     2112    % regular:
     2113    \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
     2114  \fi
     2115  \thiseurofont
     2116}
    19272117
    19282118% @registeredsymbol - R in a circle.  The font for the R should really
     
    19352125    }$%
    19362126}
     2127
     2128% Laurent Siebenmann reports \Orb undefined with:
     2129%  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
     2130% so we'll define it if necessary.
     2131%
     2132\ifx\Orb\undefined
     2133\def\Orb{\mathhexbox20D}
     2134\fi
    19372135
    19382136
     
    20382236% @author should come last, but may come many times.
    20392237% It can also be used inside @quotation.
    2040 % 
     2238%
    20412239\parseargdef\author{%
    20422240  \def\temp{\quotation}%
     
    22412439    \nobreak \vskip-\parskip
    22422440    %
    2243     % Stop a page break at the \parskip glue coming up.  (Unfortunately
    2244     % we can't prevent a possible page break at the following
    2245     % \baselineskip glue.)  However, if what follows is an environment
    2246     % such as @example, there will be no \parskip glue; then
    2247     % the negative vskip we just would cause the example and the item to
    2248     % crash together.  So we use this bizarre value of 10001 as a signal
    2249     % to \aboveenvbreak to insert \parskip glue after all.
    2250     % (Possibly there are other commands that could be followed by
    2251     % @example which need the same treatment, but not section titles; or
    2252     % maybe section titles are the only special case and they should be
    2253     % penalty 10001...)
     2441    % Stop a page break at the \parskip glue coming up.  However, if
     2442    % what follows is an environment such as @example, there will be no
     2443    % \parskip glue; then the negative vskip we just inserted would
     2444    % cause the example and the item to crash together.  So we use this
     2445    % bizarre value of 10001 as a signal to \aboveenvbreak to insert
     2446    % \parskip glue after all.  Section titles are handled this way also.
     2447    %
    22542448    \penalty 10001
    22552449    \endgroup
     
    22772471\envdef\table{%
    22782472  \let\itemindex\gobble
    2279   \tablex
     2473  \tablecheck{table}%
    22802474}
    22812475\envdef\ftable{%
    22822476  \def\itemindex ##1{\doind {fn}{\code{##1}}}%
    2283   \tablex
     2477  \tablecheck{ftable}%
    22842478}
    22852479\envdef\vtable{%
    22862480  \def\itemindex ##1{\doind {vr}{\code{##1}}}%
    2287   \tablex
     2481  \tablecheck{vtable}%
     2482}
     2483\def\tablecheck#1{%
     2484  \ifnum \the\catcode`\^^M=\active
     2485    \endgroup
     2486    \errmessage{This command won't work in this context; perhaps the problem is
     2487      that we are \inenvironment\thisenv}%
     2488    \def\next{\doignore{#1}}%
     2489  \else
     2490    \let\next\tablex
     2491  \fi
     2492  \next
    22882493}
    22892494\def\tablex#1{%
     
    25382743% #1 is the @columnfraction, usually a decimal number like .5, but might
    25392744% be just 1.  We just use it, whatever it is.
    2540 % 
     2745%
    25412746\def\pickupwholefraction#1 {%
    25422747  \global\advance\colcount by 1
     
    25962801  %
    25972802  % @item within a multitable starts a normal row.
    2598   \let\item\crcr
     2803  % We use \def instead of \let so that if one of the multitable entries
     2804  % contains an @itemize, we don't choke on the \item (seen as \crcr aka
     2805  % \endtemplate) expanding \doitemize.
     2806  \def\item{\crcr}%
    25992807  %
    26002808  \tolerance=9500
     
    26812889}
    26822890
    2683 \def\setmultitablespacing{% test to see if user has set \multitablelinespace.
    2684 % If so, do nothing. If not, give it an appropriate dimension based on
    2685 % current baselineskip.
     2891\def\setmultitablespacing{%
     2892  \def\multistrut{\strut}% just use the standard line spacing
     2893  %
     2894  % Compute \multitablelinespace (if not defined by user) for use in
     2895  % \multitableparskip calculation.  We used define \multistrut based on
     2896  % this, but (ironically) that caused the spacing to be off.
     2897  % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
    26862898\ifdim\multitablelinespace=0pt
    26872899\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
    26882900\global\advance\multitablelinespace by-\ht0
    2689 %% strut to put in table in case some entry doesn't have descenders,
    2690 %% to keep lines equally spaced
    2691 \let\multistrut = \strut
    2692 \else
    2693 %% FIXME: what is \box0 supposed to be?
    2694 \gdef\multistrut{\vrule height\multitablelinespace depth\dp0
    2695 width0pt\relax} \fi
     2901\fi
    26962902%% Test to see if parskip is larger than space between lines of
    26972903%% table. If not, do nothing.
     
    27512957\def\doignore#1{\begingroup
    27522958  % Scan in ``verbatim'' mode:
     2959  \obeylines
    27532960  \catcode`\@ = \other
    27542961  \catcode`\{ = \other
     
    27622969  %
    27632970  % Swallow text until we reach the matching `@end #1'.
    2764   \dodoignore {#1}%
     2971  \dodoignore{#1}%
    27652972}
    27662973
     
    27692976  %
    27702977  \gdef\dodoignore#1{%
    2771     % #1 contains the string `ifinfo'.
     2978    % #1 contains the command name as a string, e.g., `ifinfo'.
    27722979    %
    2773     % Define a command to find the next `@end #1', which must be on a line
    2774     % by itself.
    2775     \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
     2980    % Define a command to find the next `@end #1'.
     2981    \long\def\doignoretext##1^^M@end #1{%
     2982      \doignoretextyyy##1^^M@#1\_STOP_}%
     2983    %
    27762984    % And this command to find another #1 command, at the beginning of a
    27772985    % line.  (Otherwise, we would consider a line `@c @ifset', for
     
    27802988    %
    27812989    % And now expand that command.
    2782     \obeylines %
    27832990    \doignoretext ^^M%
    27842991  }%
     
    27983005
    27993006% We have to swallow the remaining "\_STOP_".
    2800 % 
     3007%
    28013008\def\doignoretextzzz#1{%
    28023009  \ifnum\doignorecount = 0      % We have just found the outermost @end.
     
    28103017
    28113018% Finish off ignored text.
    2812 \def\enddoignore{\endgroup\ignorespaces}
     3019{ \obeylines%
     3020  % Ignore anything after the last `@end #1'; this matters in verbatim
     3021  % environments, where otherwise the newline after an ignored conditional
     3022  % would result in a blank line in the output.
     3023  \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
     3024}
    28133025
    28143026
     
    29233135
    29243136% Define \newwrite to be identical to plain tex's \newwrite
    2925 % except not \outer, so it can be used within \newindex.
    2926 {\catcode`\@=11
    2927 \gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
     3137% except not \outer, so it can be used within macros and \if's.
     3138\edef\newwrite{\makecsname{ptexnewwrite}}
    29283139
    29293140% \newindex {foo} defines an index named foo.
     
    30113222%
    30123223\def\indexdummies{%
     3224  \escapechar = `\\     % use backslash in output files.
    30133225  \def\@{@}% change to @@ when we switch to @ as escape char in index files.
    30143226  \def\ {\realbackslash\space }%
     
    30193231  \let\} = \myrbrace
    30203232  %
    3021   % \definedummyword defines \#1 as \realbackslash #1\space, thus
    3022   % effectively preventing its expansion.  This is used only for control
    3023   % words, not control letters, because the \space would be incorrect
    3024   % for control characters, but is needed to separate the control word
    3025   % from whatever follows.
    3026   %
    3027   % For control letters, we have \definedummyletter, which omits the
    3028   % space.
    3029   %
    3030   % These can be used both for control words that take an argument and
    3031   % those that do not.  If it is followed by {arg} in the input, then
    3032   % that will dutifully get written to the index (or wherever).
    3033   %
    3034   \def\definedummyword##1{%
    3035     \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
    3036   }%
    3037   \def\definedummyletter##1{%
    3038     \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
    3039   }%
    3040   %
    30413233  % Do the redefinitions.
    30423234  \commondummies
    30433235}
    30443236
    3045 % For the aux file, @ is the escape character.  So we want to redefine
    3046 % everything using @ instead of \realbackslash.  When everything uses
    3047 % @, this will be simpler.
     3237% For the aux and toc files, @ is the escape character.  So we want to
     3238% redefine everything using @ as the escape character (instead of
     3239% \realbackslash, still used for index files).  When everything uses @,
     3240% this will be simpler.
    30483241%
    30493242\def\atdummies{%
     
    30533246  \let\} = \rbraceatcmd
    30543247  %
    3055   % (See comments in \indexdummies.)
    3056   \def\definedummyword##1{%
    3057     \expandafter\def\csname ##1\endcsname{@##1\space}%
    3058   }%
    3059   \def\definedummyletter##1{%
    3060     \expandafter\def\csname ##1\endcsname{@##1}%
    3061   }%
    3062   %
    30633248  % Do the redefinitions.
    30643249  \commondummies
    3065 }
    3066 
    3067 % Called from \indexdummies and \atdummies.  \definedummyword and
    3068 % \definedummyletter must be defined first.
     3250  \otherbackslash
     3251}
     3252
     3253% Called from \indexdummies and \atdummies.
    30693254%
    30703255\def\commondummies{%
    30713256  %
     3257  % \definedummyword defines \#1 as \string\#1\space, thus effectively
     3258  % preventing its expansion.  This is used only for control% words,
     3259  % not control letters, because the \space would be incorrect for
     3260  % control characters, but is needed to separate the control word
     3261  % from whatever follows.
     3262  %
     3263  % For control letters, we have \definedummyletter, which omits the
     3264  % space.
     3265  %
     3266  % These can be used both for control words that take an argument and
     3267  % those that do not.  If it is followed by {arg} in the input, then
     3268  % that will dutifully get written to the index (or wherever).
     3269  %
     3270  \def\definedummyword  ##1{\def##1{\string##1\space}}%
     3271  \def\definedummyletter##1{\def##1{\string##1}}%
     3272  \let\definedummyaccent\definedummyletter
     3273  %
     3274  \commondummiesnofonts
     3275  %
     3276  \definedummyletter\_%
     3277  %
     3278  % Non-English letters.
     3279  \definedummyword\AA
     3280  \definedummyword\AE
     3281  \definedummyword\L
     3282  \definedummyword\OE
     3283  \definedummyword\O
     3284  \definedummyword\aa
     3285  \definedummyword\ae
     3286  \definedummyword\l
     3287  \definedummyword\oe
     3288  \definedummyword\o
     3289  \definedummyword\ss
     3290  \definedummyword\exclamdown
     3291  \definedummyword\questiondown
     3292  \definedummyword\ordf
     3293  \definedummyword\ordm
     3294  %
     3295  % Although these internal commands shouldn't show up, sometimes they do.
     3296  \definedummyword\bf
     3297  \definedummyword\gtr
     3298  \definedummyword\hat
     3299  \definedummyword\less
     3300  \definedummyword\sf
     3301  \definedummyword\sl
     3302  \definedummyword\tclose
     3303  \definedummyword\tt
     3304  %
     3305  \definedummyword\LaTeX
     3306  \definedummyword\TeX
     3307  %
     3308  % Assorted special characters.
     3309  \definedummyword\bullet
     3310  \definedummyword\comma
     3311  \definedummyword\copyright
     3312  \definedummyword\registeredsymbol
     3313  \definedummyword\dots
     3314  \definedummyword\enddots
     3315  \definedummyword\equiv
     3316  \definedummyword\error
     3317  \definedummyword\euro
     3318  \definedummyword\expansion
     3319  \definedummyword\minus
     3320  \definedummyword\pounds
     3321  \definedummyword\point
     3322  \definedummyword\print
     3323  \definedummyword\result
     3324  %
     3325  % We want to disable all macros so that they are not expanded by \write.
     3326  \macrolist
     3327  %
    30723328  \normalturnoffactive
    3073   %
    3074   \commondummiesnofonts
    3075   %
    3076   \definedummyletter{_}%
    3077   %
    3078   % Non-English letters.
    3079   \definedummyword{AA}%
    3080   \definedummyword{AE}%
    3081   \definedummyword{L}%
    3082   \definedummyword{OE}%
    3083   \definedummyword{O}%
    3084   \definedummyword{aa}%
    3085   \definedummyword{ae}%
    3086   \definedummyword{l}%
    3087   \definedummyword{oe}%
    3088   \definedummyword{o}%
    3089   \definedummyword{ss}%
    3090   \definedummyword{exclamdown}%
    3091   \definedummyword{questiondown}%
    3092   \definedummyword{ordf}%
    3093   \definedummyword{ordm}%
    3094   %
    3095   % Although these internal commands shouldn't show up, sometimes they do.
    3096   \definedummyword{bf}%
    3097   \definedummyword{gtr}%
    3098   \definedummyword{hat}%
    3099   \definedummyword{less}%
    3100   \definedummyword{sf}%
    3101   \definedummyword{sl}%
    3102   \definedummyword{tclose}%
    3103   \definedummyword{tt}%
    3104   %
    3105   \definedummyword{LaTeX}%
    3106   \definedummyword{TeX}%
    3107   %
    3108   % Assorted special characters.
    3109   \definedummyword{bullet}%
    3110   \definedummyword{copyright}%
    3111   \definedummyword{registeredsymbol}%
    3112   \definedummyword{dots}%
    3113   \definedummyword{enddots}%
    3114   \definedummyword{equiv}%
    3115   \definedummyword{error}%
    3116   \definedummyword{expansion}%
    3117   \definedummyword{minus}%
    3118   \definedummyword{pounds}%
    3119   \definedummyword{point}%
    3120   \definedummyword{print}%
    3121   \definedummyword{result}%
    31223329  %
    31233330  % Handle some cases of @value -- where it does not contain any
    31243331  % (non-fully-expandable) commands.
    31253332  \makevalueexpandable
    3126   %
    3127   % Normal spaces, not active ones.
    3128   \unsepspaces
    3129   %
    3130   % No macro expansion.
    3131   \turnoffmacros
    31323333}
    31333334
    31343335% \commondummiesnofonts: common to \commondummies and \indexnofonts.
    31353336%
    3136 % Better have this without active chars.
    3137 {
    3138   \catcode`\~=\other
    3139   \gdef\commondummiesnofonts{%
    3140     % Control letters and accents.
    3141     \definedummyletter{!}%
    3142     \definedummyletter{"}%
    3143     \definedummyletter{'}%
    3144     \definedummyletter{*}%
    3145     \definedummyletter{,}%
    3146     \definedummyletter{.}%
    3147     \definedummyletter{/}%
    3148     \definedummyletter{:}%
    3149     \definedummyletter{=}%
    3150     \definedummyletter{?}%
    3151     \definedummyletter{^}%
    3152     \definedummyletter{`}%
    3153     \definedummyletter{~}%
    3154     \definedummyword{u}%
    3155     \definedummyword{v}%
    3156     \definedummyword{H}%
    3157     \definedummyword{dotaccent}%
    3158     \definedummyword{ringaccent}%
    3159     \definedummyword{tieaccent}%
    3160     \definedummyword{ubaraccent}%
    3161     \definedummyword{udotaccent}%
    3162     \definedummyword{dotless}%
    3163     %
    3164     % Texinfo font commands.
    3165     \definedummyword{b}%
    3166     \definedummyword{i}%
    3167     \definedummyword{r}%
    3168     \definedummyword{sc}%
    3169     \definedummyword{t}%
    3170     %
    3171     % Commands that take arguments.
    3172     \definedummyword{acronym}%
    3173     \definedummyword{cite}%
    3174     \definedummyword{code}%
    3175     \definedummyword{command}%
    3176     \definedummyword{dfn}%
    3177     \definedummyword{emph}%
    3178     \definedummyword{env}%
    3179     \definedummyword{file}%
    3180     \definedummyword{kbd}%
    3181     \definedummyword{key}%
    3182     \definedummyword{math}%
    3183     \definedummyword{option}%
    3184     \definedummyword{samp}%
    3185     \definedummyword{strong}%
    3186     \definedummyword{tie}%
    3187     \definedummyword{uref}%
    3188     \definedummyword{url}%
    3189     \definedummyword{var}%
    3190     \definedummyword{verb}%
    3191     \definedummyword{w}%
    3192   }
     3337\def\commondummiesnofonts{%
     3338  % Control letters and accents.
     3339  \definedummyletter\!%
     3340  \definedummyaccent\"%
     3341  \definedummyaccent\'%
     3342  \definedummyletter\*%
     3343  \definedummyaccent\,%
     3344  \definedummyletter\.%
     3345  \definedummyletter\/%
     3346  \definedummyletter\:%
     3347  \definedummyaccent\=%
     3348  \definedummyletter\?%
     3349  \definedummyaccent\^%
     3350  \definedummyaccent\`%
     3351  \definedummyaccent\~%
     3352  \definedummyword\u
     3353  \definedummyword\v
     3354  \definedummyword\H
     3355  \definedummyword\dotaccent
     3356  \definedummyword\ringaccent
     3357  \definedummyword\tieaccent
     3358  \definedummyword\ubaraccent
     3359  \definedummyword\udotaccent
     3360  \definedummyword\dotless
     3361  %
     3362  % Texinfo font commands.
     3363  \definedummyword\b
     3364  \definedummyword\i
     3365  \definedummyword\r
     3366  \definedummyword\sc
     3367  \definedummyword\t
     3368  %
     3369  % Commands that take arguments.
     3370  \definedummyword\acronym
     3371  \definedummyword\cite
     3372  \definedummyword\code
     3373  \definedummyword\command
     3374  \definedummyword\dfn
     3375  \definedummyword\emph
     3376  \definedummyword\env
     3377  \definedummyword\file
     3378  \definedummyword\kbd
     3379  \definedummyword\key
     3380  \definedummyword\math
     3381  \definedummyword\option
     3382  \definedummyword\pxref
     3383  \definedummyword\ref
     3384  \definedummyword\samp
     3385  \definedummyword\strong
     3386  \definedummyword\tie
     3387  \definedummyword\uref
     3388  \definedummyword\url
     3389  \definedummyword\var
     3390  \definedummyword\verb
     3391  \definedummyword\w
     3392  \definedummyword\xref
    31933393}
    31943394
     
    31993399%
    32003400\def\indexnofonts{%
    3201   \def\definedummyword##1{%
    3202     \expandafter\let\csname ##1\endcsname\asis
    3203   }%
    3204   \let\definedummyletter=\definedummyword
     3401  % Accent commands should become @asis.
     3402  \def\definedummyaccent##1{\let##1\asis}%
     3403  % We can just ignore other control letters.
     3404  \def\definedummyletter##1{\let##1\empty}%
     3405  % Hopefully, all control words can become @asis.
     3406  \let\definedummyword\definedummyaccent
    32053407  %
    32063408  \commondummiesnofonts
     
    32393441  % (The following {} will end up in the sort string, but that's ok.)
    32403442  \def\bullet{bullet}%
     3443  \def\comma{,}%
    32413444  \def\copyright{copyright}%
    32423445  \def\registeredsymbol{R}%
     
    32453448  \def\equiv{==}%
    32463449  \def\error{error}%
     3450  \def\euro{euro}%
    32473451  \def\expansion{==>}%
    32483452  \def\minus{-}%
     
    32513455  \def\print{-|}%
    32523456  \def\result{=>}%
     3457  %
     3458  % We need to get rid of all macros, leaving only the arguments (if present).
     3459  % Of course this is not nearly correct, but it is the best we can do for now.
     3460  % makeinfo does not expand macros in the argument to @deffn, which ends up
     3461  % writing an index entry, and texindex isn't prepared for an index sort entry
     3462  % that starts with \.
     3463  %
     3464  % Since macro invocations are followed by braces, we can just redefine them
     3465  % to take a single TeX argument.  The case of a macro invocation that
     3466  % goes to end-of-line is not handled.
     3467  %
     3468  \macrolist
    32533469}
    32543470
     
    32973513  % Remember, we are within a group.
    32983514  \indexdummies % Must do this here, since \bf, etc expand at this stage
    3299   \escapechar=`\\
    33003515  \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
    33013516      % so it will be output as is; and it will print as backslash.
     
    33713586  %
    33723587  \ifx\lastskipmacro\zeroskipmacro
    3373     % if \lastskip was zero, perhaps the last item was a
    3374     % penalty, and perhaps it was >=10000, e.g., a \nobreak.
    3375     % In that case, we want to re-insert the penalty; since we
    3376     % just inserted a non-discardable item, any following glue
    3377     % (such as a \parskip) would be a breakpoint.  For example:
     3588    % If \lastskip was zero, perhaps the last item was a penalty, and
     3589    % perhaps it was >=10000, e.g., a \nobreak.  In that case, we want
     3590    % to re-insert the same penalty (values >10000 are used for various
     3591    % signals); since we just inserted a non-discardable item, any
     3592    % following glue (such as a \parskip) would be a breakpoint.  For example:
     3593    %
    33783594    %   @deffn deffn-whatever
    33793595    %   @vindex index-whatever
     
    33813597    % would allow a break between the index-whatever whatsit
    33823598    % and the "Description." paragraph.
    3383     \ifnum\count255>9999 \nobreak \fi
     3599    \ifnum\count255>9999 \penalty\count255 \fi
    33843600  \else
    33853601    % On the other hand, if we had a nonzero \lastskip,
     
    34793695  %
    34803696  % We like breaks before the index initials, so insert a bonus.
    3481   \penalty -300
     3697  \nobreak
     3698  \vskip 0pt plus 3\baselineskip
     3699  \penalty 0
     3700  \vskip 0pt plus -3\baselineskip
    34823701  %
    34833702  % Typeset the initial.  Making this add up to a whole number of
     
    34893708  \vskip 1.67\baselineskip plus .5\baselineskip
    34903709  \leftline{\secbf #1}%
    3491   \vskip .33\baselineskip plus .1\baselineskip
    3492   %
    34933710  % Do our best not to break after the initial.
    34943711  \nobreak
     3712  \vskip .33\baselineskip plus .1\baselineskip
    34953713}}
    34963714
     
    35043722% @code, which sets - active.  This problem was fixed by a kludge---
    35053723% ``-'' was active throughout whole index, but this isn't really right.
    3506 % 
     3724%
    35073725% The right solution is to prevent \entry from swallowing the whole text.
    35083726%                                 --kasal, 21nov03
     
    37703988% construct for the sake of pdftex, which needs the actual
    37713989% letter in the expansion, not just typeset.
    3772 % 
     3990%
    37733991\def\appendixletter{%
    37743992  \ifnum\appendixno=`A A%
     
    39074125% @chapter, @appendix, @unnumbered.  Increment top-level counter, reset
    39084126% all lower-level sectioning counters to zero.
    3909 % 
     4127%
    39104128% Also set \chaplevelprefix, which we prepend to @float sequence numbers
    39114129% (e.g., figures), q.v.  By default (before any chapter), that is empty.
    39124130\let\chaplevelprefix = \empty
    3913 % 
     4131%
    39144132\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
    39154133\def\chapterzzz#1{%
     
    41354353
    41364354% Chapter opening.
    4137 % 
     4355%
    41384356% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
    41394357% Yappendix, Yomitfromtoc), #3 the chapter number.
    4140 % 
     4358%
    41414359% To test against our argument.
    41424360\def\Ynothingkeyword{Ynothing}
     
    41614379      \setbox0 = \hbox{}%
    41624380      \def\toctype{unnchap}%
    4163       \def\thischapter{#1}%
     4381      \gdef\thischapter{#1}%
    41644382    \else\ifx\temptype\Yomitfromtockeyword
    41654383      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
    41664384      \def\toctype{omit}%
    4167       \xdef\thischapter{}%
     4385      \gdef\thischapter{}%
    41684386    \else\ifx\temptype\Yappendixkeyword
    41694387      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
     
    42144432% I don't think this chapter style is supported any more, so I'm not
    42154433% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
    4216 % 
     4434%
    42174435\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
    42184436%
     
    42384456% Section titles.  These macros combine the section number parts and
    42394457% call the generic \sectionheading to do the printing.
    4240 % 
     4458%
    42414459\newskip\secheadingskip
    42424460\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
     
    42524470
    42534471% Print any size, any type, section title.
    4254 % 
     4472%
    42554473% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
    42564474% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
    42574475% section number.
    4258 % 
     4476%
    42594477\def\sectionheading#1#2#3#4{%
    42604478  {%
     
    42894507    \fi\fi\fi
    42904508    %
    4291     % Write the toc entry (before \donoderef).  See comments in \chfplain.
     4509    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
    42924510    \writetocentry{\toctype\sectionlevel}{#1}{#4}%
    42934511    %
    42944512    % Write the node reference (= pdf destination for pdftex).
    4295     % Again, see comments in \chfplain.
     4513    % Again, see comments in \chapmacro.
    42964514    \donoderef{#3}%
     4515    %
     4516    % Interline glue will be inserted when the vbox is completed.
     4517    % That glue will be a valid breakpoint for the page, since it'll be
     4518    % preceded by a whatsit (usually from the \donoderef, or from the
     4519    % \writetocentry if there was no node).  We don't want to allow that
     4520    % break, since then the whatsits could end up on page n while the
     4521    % section is on page n+1, thus toc/etc. are wrong.  Debian bug 276000.
     4522    \nobreak
    42974523    %
    42984524    % Output the actual section heading.
     
    43134539  % discardable item.)
    43144540  \vskip-\parskip
    4315   %
    4316   % This \nobreak is purely so the last item on the list is a \penalty
    4317   % of 10000.  This is so other code, for instance \parsebodycommon, can
    4318   % check for and avoid allowing breakpoints.  Otherwise, it would
    4319   % insert a valid breakpoint between:
     4541  % 
     4542  % This is purely so the last item on the list is a known \penalty >
     4543  % 10000.  This is so \startdefun can avoid allowing breakpoints after
     4544  % section headings.  Otherwise, it would insert a valid breakpoint between:
     4545  %
    43204546  %   @section sec-whatever
    43214547  %   @deffn def-whatever
    4322   \nobreak
     4548  \penalty 10001
    43234549}
    43244550
     
    43294555
    43304556% Write an entry to the toc file, opening it if necessary.
    4331 % Called from @chapter, etc. 
    4332 % 
     4557% Called from @chapter, etc.
     4558%
    43334559% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
    43344560% We append the current node name (if any) and page number as additional
     
    43364562% read this.  The node name is used in the pdf outlines as the
    43374563% destination to jump to.
    4338 % 
     4564%
    43394565% We open the .toc file for writing here instead of at @setfilename (or
    43404566% any other fixed time) so that @contents can be anywhere in the document.
     
    43544580    %
    43554581    \iflinks
    4356       \toks0 = {#2}%
    4357       \toks2 = \expandafter{\lastnode}%
    4358       \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}%
    4359                                {\the\toks2}{\noexpand\folio}}}%
    4360       \temp
     4582      {\atdummies
     4583       \edef\temp{%
     4584         \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
     4585       \temp
     4586      }%
    43614587    \fi
    43624588  \fi
     
    43714597}
    43724598
     4599
     4600% These characters do not print properly in the Computer Modern roman
     4601% fonts, so we must take special care.  This is more or less redundant
     4602% with the Texinfo input format setup at the end of this file.
     4603%
     4604\def\activecatcodes{%
     4605  \catcode`\"=\active
     4606  \catcode`\$=\active
     4607  \catcode`\<=\active
     4608  \catcode`\>=\active
     4609  \catcode`\\=\active
     4610  \catcode`\^=\active
     4611  \catcode`\_=\active
     4612  \catcode`\|=\active
     4613  \catcode`\~=\active
     4614}
     4615
     4616
     4617% Read the toc file, which is essentially Texinfo input.
     4618\def\readtocfile{%
     4619  \setupdatafile
     4620  \activecatcodes
     4621  \input \jobname.toc
     4622}
     4623
    43734624\newskip\contentsrightmargin \contentsrightmargin=1in
    43744625\newcount\savepageno
     
    43924643  \savepageno = \pageno
    43934644  \begingroup                  % Set up to handle contents files properly.
    4394     \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
    4395     % We can't do this, because then an actual ^ in a section
    4396     % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
    4397     %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
    4398     \raggedbottom             % Worry more about breakpoints than the bottom.
     4645    \raggedbottom              % Worry more about breakpoints than the bottom.
    43994646    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
    44004647    %
     
    44094656    \openin 1 \jobname.toc
    44104657    \ifeof 1 \else
    4411       \input \jobname.toc
     4658      \readtocfile
    44124659    \fi
    44134660    \vfill \eject
     
    44474694    \openin 1 \jobname.toc
    44484695    \ifeof 1 \else
    4449       \input \jobname.toc
     4696      \readtocfile
    44504697    \fi
    44514698    \closein 1
     
    44674714  % (This space doesn't include the extra space that gets added after
    44684715  % the label; that gets put in by \shortchapentry above.)
    4469   % 
     4716  %
    44704717  % We'd like to right-justify chapter numbers, but that looks strange
    44714718  % with appendix letters.  And right-justifying numbers and
     
    44924739% Appendices, in the main contents.
    44934740% Need the word Appendix, and a fixed-size box.
    4494 % 
     4741%
    44954742\def\appendixbox#1{%
    44964743  % We use M since it's probably the widest letter.
     
    46374884  \let\*=\ptexstar
    46384885  \let\t=\ptext
     4886  \let\frenchspacing=\plainfrenchspacing
    46394887  %
    46404888  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
     
    46654913%
    46664914\def\aboveenvbreak{{%
    4667   % =10000 instead of <10000 because of a special case in \itemzzz, q.v.
     4915  % =10000 instead of <10000 because of a special case in \itemzzz and
     4916  % \sectionheading, q.v.
    46684917  \ifnum \lastpenalty=10000 \else
    46694918    \advance\envskipamount by \parskip
     
    46814930\let\afterenvbreak = \aboveenvbreak
    46824931
    4683 % \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
     4932% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins; it will
     4933% also clear it, so that its embedded environments do the narrowing again.
    46844934\let\nonarrowing=\relax
    46854935
     
    47184968  \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
    47194969  % Flag to tell @lisp, etc., not to narrow margin.
    4720   \let\nonarrowing=\comment
     4970  \let\nonarrowing = t%
    47214971  \vbox\bgroup
    47224972      \baselineskip=0pt\parskip=0pt\lineskip=0pt
     
    47585008  \parindent = 0pt
    47595009  \emergencystretch = 0pt % don't try to avoid overfull boxes
    4760   % @cartouche defines \nonarrowing to inhibit narrowing
    4761   % at next level down.
    47625010  \ifx\nonarrowing\relax
    47635011    \advance \leftskip by \lispnarrowing
    47645012    \exdentamount=\lispnarrowing
     5013  \else
     5014    \let\nonarrowing = \relax
    47655015  \fi
    47665016  \let\exdent=\nofillexdent
     
    48625112    \advance\rightskip by \lispnarrowing
    48635113    \exdentamount = \lispnarrowing
     5114  \else
    48645115    \let\nonarrowing = \relax
    48655116  \fi
     
    48695120% We have retained a nonzero parskip for the environment, since we're
    48705121% doing normal filling.
    4871 % 
     5122%
    48725123\def\Equotation{%
    48735124  \par
     
    49545205\endgroup
    49555206\def\setupverbatim{%
     5207  \let\nonarrowing = t%
    49565208  \nonfillstart
    4957   \advance\leftskip by -\defbodyindent
    49585209  % Easiest (and conventionally used) font for verbatim
    49595210  \tt
     
    50265277
    50275278% @copying ... @end copying.
    5028 % Save the text away for @insertcopying later.  Many commands won't be
    5029 % allowed in this context, but that's ok.
     5279% Save the text away for @insertcopying later.
    50305280%
    50315281% We save the uninterpreted tokens, rather than creating a box.
     
    50365286% possible is very desirable.
    50375287%
    5038 \def\copying{\begingroup
    5039   % Define a command to swallow text until we reach `@end copying'.
    5040   % \ is the escape char in this texinfo.tex file, so it is the
    5041   % delimiter for the command; @ will be the escape char when we read
    5042   % it, but that doesn't matter.
    5043   \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
    5044   %
    5045   % We must preserve ^^M's in the input file; see \insertcopying below.
    5046   \catcode`\^^M = \active
    5047   \docopying
    5048 }
    5049 
    5050 % What we do to finish off the copying text.
    5051 %
    5052 \def\enddocopying{\endgroup\ignorespaces}
    5053 
    5054 % @insertcopying.  Here we must play games with ^^M's.  On the one hand,
    5055 % we need them to delimit commands such as `@end quotation', so they
    5056 % must be active.  On the other hand, we certainly don't want every
    5057 % end-of-line to be a \par, as would happen with the normal active
    5058 % definition of ^^M.  On the third hand, two ^^M's in a row should still
    5059 % generate a \par.
    5060 %
    5061 % Our approach is to make ^^M insert a space and a penalty1 normally;
    5062 % then it can also check if \lastpenalty=1.  If it does, then manually
    5063 % do \par.
    5064 %
    5065 % This messes up the normal definitions of @c[omment], so we redefine
    5066 % it.  Similarly for @ignore.  (These commands are used in the gcc
    5067 % manual for man page generation.)
    5068 %
    5069 % Seems pretty fragile, most line-oriented commands will presumably
    5070 % fail, but for the limited use of getting the copying text (which
    5071 % should be quite simple) inserted, we can hope it's ok.
    5072 %
    5073 {\catcode`\^^M=\active %
    5074 \gdef\insertcopying{\begingroup %
    5075   \parindent = 0pt  % looks wrong on title page
    5076   \def^^M{%
    5077     \ifnum \lastpenalty=1 %
    5078       \par %
    5079     \else %
    5080       \space \penalty 1 %
    5081     \fi %
    5082   }%
    5083   %
    5084   % Fix @c[omment] for catcode 13 ^^M's.
    5085   \def\c##1^^M{\ignorespaces}%
    5086   \let\comment = \c %
    5087   %
    5088   % Don't bother jumping through all the hoops that \doignore does, it
    5089   % would be very hard since the catcodes are already set.
    5090   \long\def\ignore##1\end ignore{\ignorespaces}%
    5091   %
    5092   \copyingtext %
    5093 \endgroup}%
     5288\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
     5289\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
     5290%
     5291\def\insertcopying{%
     5292  \begingroup
     5293    \parindent = 0pt  % paragraph indentation looks wrong on title page
     5294    \scanexp\copyingtext
     5295  \endgroup
    50945296}
    50955297
     
    51095311    % which is there to keep the function description together with its
    51105312    % header.  But if there's nothing but headers, we need to allow a
    5111     % break somewhere.  Check for penalty 10002 (inserted by
    5112     % \defargscommonending) instead of 10000, since the sectioning
    5113     % commands insert a \penalty10000, and we don't want to allow a break
    5114     % between a section heading and a defun.
     5313    % break somewhere.  Check specifically for penalty 10002, inserted
     5314    % by \defargscommonending, instead of 10000, since the sectioning
     5315    % commands also insert a nobreak penalty, and we don't want to allow
     5316    % a break between a section heading and a defun.
     5317    %
    51155318    \ifnum\lastpenalty=10002 \penalty2000 \fi
    51165319    %
     
    52725475% #2 is the return type, if any.
    52735476% #3 is the function name.
    5274 % 
     5477%
    52755478% We are followed by (but not passed) the arguments, if any.
    52765479%
     
    53305533% the argument list (groff manual), and ttsl and tt are not very
    53315534% distinguishable.  Prevent hyphenation at `-' chars.
    5332 % 
     5535%
    53335536\def\defunargs#1{%
    5334   % use sl by default (not ttsl), 
     5537  % use sl by default (not ttsl),
    53355538  % tt for the names.
    53365539  \df \sl \hyphenchar\font=0
     
    54365639  \newwrite\macscribble
    54375640  \def\scantokens#1{%
    5438     \toks0={#1\endinput}%
     5641    \toks0={#1}%
    54395642    \immediate\openout\macscribble=\jobname.tmp
    54405643    \immediate\write\macscribble{\the\toks0}%
     
    54495652    \let\xeatspaces\eatspaces
    54505653    % Undo catcode changes of \startcontents and \doprintindex
    5451     \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
     5654    % When called from @insertcopying or (short)caption, we need active
     5655    % backslash to get it printed correctly.  Previously, we had
     5656    % \catcode`\\=\other instead.  We'll see whether a problem appears
     5657    % with macro expansion.                             --kasal, 19aug04
     5658    \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
    54525659    % ... and \example
    54535660    \spaceisspace
     
    54615668}
    54625669
     5670\def\scanexp#1{%
     5671  \edef\temp{\noexpand\scanmacro{#1}}%
     5672  \temp
     5673}
     5674
    54635675\newcount\paramno   % Count of parameters
    54645676\newtoks\macname    % Macro name
    54655677\newif\ifrecursive  % Is it recursive?
    5466 \def\macrolist{}    % List of all defined macros in the form
    5467                     % \do\macro1\do\macro2...
     5678
     5679% List of all defined macros in the form
     5680%    \definedummyword\macro1\definedummyword\macro2...
     5681% Currently is also contains all @aliases; the list can be split
     5682% if there is a need.
     5683\def\macrolist{}
     5684
     5685% Add the macro to \macrolist
     5686\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
     5687\def\addtomacrolistxxx#1{%
     5688     \toks0 = \expandafter{\macrolist\definedummyword#1}%
     5689     \xdef\macrolist{\the\toks0}%
     5690}
    54685691
    54695692% Utility routines.
    5470 % This does \let #1 = #2, except with \csnames.
     5693% This does \let #1 = #2, with \csnames; that is,
     5694%   \let \csname#1\endcsname = \csname#2\endcsname
     5695% (except of course we have to play expansion games).
     5696%
    54715697\def\cslet#1#2{%
    5472 \expandafter\expandafter
    5473 \expandafter\let
    5474 \expandafter\expandafter
    5475 \csname#1\endcsname
    5476 \csname#2\endcsname}
     5698  \expandafter\let
     5699  \csname#1\expandafter\endcsname
     5700  \csname#2\endcsname
     5701}
    54775702
    54785703% Trim leading and trailing spaces off a string.
     
    55015726% body, and then making it the \newlinechar in \scanmacro.
    55025727
    5503 \def\macrobodyctxt{%
    5504   \catcode`\~=\other
     5728\def\scanctxt{%
     5729  \catcode`\"=\other
     5730  \catcode`\+=\other
     5731  \catcode`\<=\other
     5732  \catcode`\>=\other
     5733  \catcode`\@=\other
    55055734  \catcode`\^=\other
    55065735  \catcode`\_=\other
    55075736  \catcode`\|=\other
    5508   \catcode`\<=\other
    5509   \catcode`\>=\other
    5510   \catcode`\+=\other
     5737  \catcode`\~=\other
     5738}
     5739
     5740\def\scanargctxt{%
     5741  \scanctxt
     5742  \catcode`\\=\other
     5743  \catcode`\^^M=\other
     5744}
     5745
     5746\def\macrobodyctxt{%
     5747  \scanctxt
    55115748  \catcode`\{=\other
    55125749  \catcode`\}=\other
    5513   \catcode`\@=\other
    55145750  \catcode`\^^M=\other
    5515   \usembodybackslash}
     5751  \usembodybackslash
     5752}
    55165753
    55175754\def\macroargctxt{%
    5518   \catcode`\~=\other
    5519   \catcode`\^=\other
    5520   \catcode`\_=\other
    5521   \catcode`\|=\other
    5522   \catcode`\<=\other
    5523   \catcode`\>=\other
    5524   \catcode`\+=\other
    5525   \catcode`\@=\other
    5526   \catcode`\\=\other}
     5755  \scanctxt
     5756  \catcode`\\=\other
     5757}
    55275758
    55285759% \mbodybackslash is the definition of \ in @macro bodies.
     
    55555786     \global\cslet{macsave.\the\macname}{\the\macname}%
    55565787     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
    5557      % Add the macroname to \macrolist
    5558      \toks0 = \expandafter{\macrolist\do}%
    5559      \xdef\macrolist{\the\toks0
    5560        \expandafter\noexpand\csname\the\macname\endcsname}%
     5788     \addtomacrolist{\the\macname}%
    55615789  \fi
    55625790  \begingroup \macrobodyctxt
     
    55725800    \begingroup
    55735801      \expandafter\let\csname#1\endcsname \relax
    5574       \let\do\unmacrodo
     5802      \let\definedummyword\unmacrodo
    55755803      \xdef\macrolist{\macrolist}%
    55765804    \endgroup
     
    55845812%
    55855813\def\unmacrodo#1{%
    5586   \ifx#1\relax
     5814  \ifx #1\relax
    55875815    % remove this
    55885816  \else
    5589     \noexpand\do \noexpand #1%
     5817    \noexpand\definedummyword \noexpand#1%
    55905818  \fi
    55915819}
     
    57005928% line.  Whatever was read is then fed to the next control sequence
    57015929% as an argument (by \parsebrace or \parsearg)
    5702 \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
     5930\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
    57035931\def\braceorlinexxx{%
    57045932  \ifx\nchar\bgroup\else
    57055933    \expandafter\parsearg
    5706   \fi \next}
    5707 
    5708 % We mant to disable all macros during \shipout so that they are not
    5709 % expanded by \write.
    5710 \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
    5711   \edef\next{\macrolist}\expandafter\endgroup\next}
     5934  \fi \macnamexxx}
    57125935
    57135936
     
    57205943  {%
    57215944    \expandafter\let\obeyedspace=\empty
     5945    \addtomacrolist{#1}%
    57225946    \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
    57235947  }%
     
    57395963
    57405964% @node's only job in TeX is to define \lastnode, which is used in
    5741 % cross-references.
    5742 \parseargdef\node{\checkenv{}\nodexxx #1,\finishnodeparse}
    5743 \def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}}
     5965% cross-references.  The @node line might or might not have commas, and
     5966% might or might not have spaces before the first comma, like:
     5967% @node foo , bar , ...
     5968% We don't want such trailing spaces in the node name.
     5969%
     5970\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
     5971%
     5972% also remove a trailing comma, in case of something like this:
     5973% @node Help-Cross,  ,  , Cross-refs
     5974\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
     5975\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
     5976
    57445977\let\nwnode=\node
    57455978\let\lastnode=\empty
     
    57475980% Write a cross-reference definition for the current node.  #1 is the
    57485981% type (Ynumbered, Yappendix, Ynothing).
    5749 % 
     5982%
    57505983\def\donoderef#1{%
    57515984  \ifx\lastnode\empty\else
     
    57706003%                 empty for anchors.
    57716004% 3) NAME-pg    - the page number.
    5772 % 
     6005%
    57736006% This is called from \donoderef, \anchor, and \dofloat.  In the case of
    57746007% floats, there is an additional part, which is not written here:
    57756008% 4) NAME-lof   - the text as it should appear in a @listoffloats.
    5776 % 
     6009%
    57776010\def\setref#1#2{%
    57786011  \pdfmkdest{#1}%
     
    57806013    {%
    57816014      \atdummies  % preserve commands, but don't expand them
    5782       \turnoffactive
    5783       \otherbackslash
    57846015      \edef\writexrdef##1##2{%
    57856016        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
     
    58356066    \leavevmode
    58366067    \getfilename{#4}%
    5837     {\turnoffactive \otherbackslash
     6068    {\turnoffactive
     6069     % See comments at \activebackslashdouble.
     6070     {\activebackslashdouble \xdef\pdfxrefdest{#1}%
     6071      \backslashparens\pdfxrefdest}%
     6072     %
    58386073     \ifnum\filenamelength>0
    58396074       \startlink attr{/Border [0 0 0]}%
    5840          goto file{\the\filename.pdf} name{#1}%
     6075         goto file{\the\filename.pdf} name{\pdfxrefdest}%
    58416076     \else
    58426077       \startlink attr{/Border [0 0 0]}%
    5843          goto name{\pdfmkpgn{#1}}%
     6078         goto name{\pdfmkpgn{\pdfxrefdest}}%
    58446079     \fi
    58456080    }%
     
    58556090    \indexnofonts
    58566091    \turnoffactive
    5857     \otherbackslash
    58586092    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
    58596093      \csname XR#1-title\endcsname
     
    58636097    % print it instead of our usual "Figure 1.2".
    58646098    \ifdim\wd0 = 0pt
    5865       \refx{#1-snt}%
     6099      \refx{#1-snt}{}%
    58666100    \else
    58676101      \printedrefname
     
    58696103    %
    58706104    % if the user also gave the printed manual name (fifth arg), append
    5871     % "in MANUALNAME". 
     6105    % "in MANUALNAME".
    58726106    \ifdim \wd1 > 0pt
    58736107      \space \putwordin{} \cite{\printedmanual}%
     
    58756109  \else
    58766110    % node/anchor (non-float) references.
    5877     % 
     6111    %
    58786112    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
    58796113    % insert empty discretionaries after hyphens, which means that it will
     
    58906124      % printing. So we \turnoffactive for the \refx-snt, back on for the
    58916125      % printing, back off for the \refx-pg.
    5892       {\turnoffactive \otherbackslash
     6126      {\turnoffactive
    58936127       % Only output a following space if the -snt ref is nonempty; for
    58946128       % @unnumbered and @anchor, it won't be.
     
    59036137      %
    59046138      % output the `page 3'.
    5905       \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
     6139      \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
    59066140    \fi
    59076141  \fi
     
    59866220    \expandafter\let\expandafter\floatlist
    59876221      \csname floatlist\iffloattype\endcsname
    5988     % 
     6222    %
    59896223    % Is this the first time we've seen this float type?
    59906224    \expandafter\ifx\floatlist\relax
     
    60026236
    60036237% Read the last existing aux file, if any.  No error if none exists.
    6004 % 
     6238%
    60056239\def\tryauxfile{%
    60066240  \openin 1 \jobname.aux
    60076241  \ifeof 1 \else
    6008     \readauxfile
     6242    \readdatafile{aux}%
    60096243    \global\havexrefstrue
    60106244  \fi
     
    60126246}
    60136247
    6014 \def\readauxfile{\begingroup
     6248\def\setupdatafile{%
    60156249  \catcode`\^^@=\other
    60166250  \catcode`\^^A=\other
     
    60816315  % Make the characters 128-255 be printing characters.
    60826316  {%
    6083     \count 1=128
     6317    \count1=128
    60846318    \def\loop{%
    6085       \catcode\count 1=\other
    6086       \advance\count 1 by 1
    6087       \ifnum \count 1<256 \loop \fi
     6319      \catcode\count1=\other
     6320      \advance\count1 by 1
     6321      \ifnum \count1<256 \loop \fi
    60886322    }%
    60896323  }%
     
    60936327  \catcode`\}=2
    60946328  \catcode`\@=0
    6095   %
    6096   \input \jobname.aux
     6329}
     6330
     6331\def\readdatafile#1{%
     6332\begingroup
     6333  \setupdatafile
     6334  \input\jobname.#1
    60976335\endgroup}
    6098 
    60996336
    61006337\message{insertions,}
     
    62906527    \nobreak\vskip\parskip
    62916528    \nobreak
    6292     \line\bgroup\hss
     6529    \line\bgroup
    62936530  \fi
    62946531  %
     
    63036540  \fi
    63046541  %
    6305   \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
     6542  \ifimagevmode \egroup \bigbreak \fi  % space after the image
    63066543\endgroup}
    63076544
    63086545
    6309 % @float FLOATTYPE,LOC ... @end float for displayed figures, tables, etc.
    6310 % We don't actually implement floating yet, we just plop the float "here".
    6311 % But it seemed the best name for the future.
    6312 %
    6313 \envparseargdef\float{\dofloat #1,,,\finish}
     6546% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
     6547% etc.  We don't actually implement floating yet, we always include the
     6548% float "here".  But it seemed the best name for the future.
     6549%
     6550\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
     6551
     6552% There may be a space before second and/or third parameter; delete it.
     6553\def\eatcommaspace#1, {#1,}
    63146554
    63156555% #1 is the optional FLOATTYPE, the text label for this float, typically
    63166556% "Figure", "Table", "Example", etc.  Can't contain commas.  If omitted,
    63176557% this float will not be numbered and cannot be referred to.
    6318 % 
     6558%
    63196559% #2 is the optional xref label.  Also must be present for the float to
    63206560% be referable.
    6321 % 
     6561%
    63226562% #3 is the optional positioning argument; for now, it is ignored.  It
    63236563% will somehow specify the positions allowed to float to (here, top, bottom).
    6324 % 
     6564%
    63256565% We keep a separate counter for each FLOATTYPE, which we reset at each
    63266566% chapter-level command.
     
    63326572  %
    63336573  % don't lose footnotes inside @float.
     6574  %
     6575  % BEWARE: when the floats start float, we have to issue warning whenever an
     6576  % insert appears inside a float which could possibly float. --kasal, 26may04
     6577  %
    63346578  \startsavinginserts
    63356579  %
     
    63586602      % We want each FLOATTYPE to be numbered separately (Figure 1,
    63596603      % Table 1, Figure 2, ...).  (And if no label, no number.)
    6360       % 
     6604      %
    63616605      \expandafter\getfloatno\csname\safefloattype floatno\endcsname
    63626606      \global\advance\floatno by 1
     
    63686612        % node and anchor labels.  And \xrdef uses it to construct the
    63696613        % lists of floats.
    6370         % 
     6614        %
    63716615        \edef\thissection{\floatmagic=\safefloattype}%
    63726616        \setref{\floatlabel}{Yfloat}%
     
    64166660      %
    64176661      % caption text.
    6418       \appendtomacro\captionline\thiscaption
     6662      \appendtomacro\captionline{\scanexp\thiscaption}%
    64196663    \fi
    64206664    %
     
    64246668      \vskip.5\parskip
    64256669      \captionline
     6670      %
     6671      % Space below caption.
     6672      \vskip\parskip
    64266673    \fi
    64276674    %
     
    64336680      % caption if specified, else the full caption if specified, else nothing.
    64346681      {%
    6435         \atdummies \turnoffactive \otherbackslash
    6436         \immediate\write\auxfile{@xrdef{\floatlabel-lof}{%
    6437           \floatident
    6438           \ifx\thisshortcaption\empty
    6439             \ifx\thiscaption\empty \else : \thiscaption \fi
    6440           \else
    6441             : \thisshortcaption
    6442           \fi
    6443         }}%
     6682        \atdummies
     6683        %
     6684        % since we read the caption text in the macro world, where ^^M
     6685        % is turned into a normal character, we have to scan it back, so
     6686        % we don't write the literal three characters "^^M" into the aux file.
     6687        \scanexp{%
     6688          \xdef\noexpand\gtemp{%
     6689            \ifx\thisshortcaption\empty
     6690              \thiscaption
     6691            \else
     6692              \thisshortcaption
     6693            \fi
     6694          }%
     6695        }%
     6696        \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
     6697          \ifx\gtemp\empty \else : \gtemp \fi}}%
    64446698      }%
    64456699    \fi
    6446     %
    6447     % Space below caption, if we printed anything.
    6448     \ifx\printedsomething\empty \else \vskip\parskip \fi
    64496700  \egroup  % end of \vtop
     6701  %
     6702  % place the captured inserts
     6703  %
     6704  % BEWARE: when the floats start floating, we have to issue warning
     6705  % whenever an insert appears inside a float which could possibly
     6706  % float. --kasal, 26may04
     6707  %
    64506708  \checkinserts
    64516709}
    64526710
    64536711% Append the tokens #2 to the definition of macro #1, not expanding either.
    6454 %
    6455 \newtoks\appendtomacroAtoks
    6456 \newtoks\appendtomacroBtoks
     6712%
    64576713\def\appendtomacro#1#2{%
    6458   \appendtomacroAtoks = \expandafter{#1}%
    6459   \appendtomacroBtoks = {#2}%
    6460   \edef#1{\the\appendtomacroAtoks \the\appendtomacroBtoks}%
    6461 }
    6462 
    6463 % @caption, @shortcaption are easy.
    6464 %
    6465 \long\def\caption#1{\checkenv\float \def\thiscaption{#1}}
    6466 \def\shortcaption#1{\checkenv\float \def\thisshortcaption{#1}}
     6714  \expandafter\def\expandafter#1\expandafter{#1#2}%
     6715}
     6716
     6717% @caption, @shortcaption
     6718%
     6719\def\caption{\docaption\thiscaption}
     6720\def\shortcaption{\docaption\thisshortcaption}
     6721\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
     6722\def\defcaption#1#2{\egroup \def#1{#2}}
    64676723
    64686724% The parameter is the control sequence identifying the counter we are
     
    64836739% to the FLOATLABEL to expand to "Figure 3.1".  We call \setref when we
    64846740% first read the @float command.
    6485 % 
     6741%
    64866742\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
    64876743
     
    64936749% which is true if #1 represents a float ref.  That is, the magic
    64946750% \thissection value which we \setref above.
    6495 % 
     6751%
    64966752\def\iffloat#1{\expandafter\doiffloat#1==\finish}
    64976753%
    64986754% #1 is (maybe) the \floatmagic string.  If so, #2 will be the
    64996755% (safe) float type for this float.  We set \iffloattype to #2.
    6500 % 
     6756%
    65016757\def\doiffloat#1=#2=#3\finish{%
    65026758  \def\temp{#1}%
     
    65066762
    65076763% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
    6508 % 
     6764%
    65096765\parseargdef\listoffloats{%
    65106766  \def\floattype{#1}% floattype
     
    65366792% aux file.  We strip off the -title and look up \XRLABEL-lof, which
    65376793% has the text we're supposed to typeset here.
    6538 % 
     6794%
    65396795% Figures without xref labels will not be included in the list (since
    65406796% they won't appear in the aux file).
    6541 % 
     6797%
    65426798\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
    65436799\def\listoffloatsdoentry#1-title\finish{{%
     
    66166872}
    66176873
    6618 % Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
    6619 % 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
    6620 % physical page width.
     6874% Parameters in order: 1) textheight; 2) textwidth;
     6875% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
     6876% 7) physical page height; 8) physical page width.
    66216877%
    66226878% We also call \setleading{\textleading}, so the caller should define
     
    66656921}}
    66666922
    6667 % Use @smallbook to reset parameters for 7x9.5 (or so) format.
     6923% Use @smallbook to reset parameters for 7x9.25 trim size.
    66686924\def\smallbook{{\globaldefs = 1
    66696925  \parskip = 2pt plus 1pt
     
    66806936  \contentsrightmargin = 0pt
    66816937  \defbodyindent = .5cm
     6938}}
     6939
     6940% Use @smallerbook to reset parameters for 6x9 trim size.
     6941% (Just testing, parameters still in flux.)
     6942\def\smallerbook{{\globaldefs = 1
     6943  \parskip = 1.5pt plus 1pt
     6944  \textleading = 12pt
     6945  %
     6946  \internalpagesizes{7.4in}{4.8in}%
     6947                    {-.2in}{-.4in}%
     6948                    {0pt}{14pt}%
     6949                    {9in}{6in}%
     6950  %
     6951  \lispnarrowing = 0.25in
     6952  \tolerance = 700
     6953  \hfuzz = 1pt
     6954  \contentsrightmargin = 0pt
     6955  \defbodyindent = .4cm
    66826956}}
    66836957
     
    68347108\catcode`\_=\active
    68357109\def_{\ifusingtt\normalunderscore\_}
     7110\let\realunder=_
    68367111% Subroutine for the previous macro.
    68377112\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
     
    68567131\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
    68577132
     7133% Used sometimes to turn off (effectively) the active characters even after
     7134% parsing them.
     7135\def\turnoffactive{%
     7136  \normalturnoffactive
     7137  \otherbackslash
     7138}
     7139
    68587140\catcode`\@=0
    68597141
     
    68637145\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
    68647146
     7147% \realbackslash is an actual character `\' with catcode other, and
     7148% \doublebackslash is two of them (for the pdf outlines).
     7149{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
     7150
     7151% In texinfo, backslash is an active character; it prints the backslash
     7152% in fixed width font.
     7153\catcode`\\=\active
     7154@def@normalbackslash{{@tt@backslashcurfont}}
     7155% On startup, @fixbackslash assigns:
     7156%  @let \ = @normalbackslash
     7157
    68657158% \rawbackslash defines an active \ to do \backslashcurfont.
    68667159% \otherbackslash defines an active \ to be a literal `\' character with
    68677160% catcode other.
    6868 {\catcode`\\=\active
    6869  @gdef@rawbackslash{@let\=@backslashcurfont}
    6870  @gdef@otherbackslash{@let\=@realbackslash}
    6871 }
    6872 
    6873 % \realbackslash is an actual character `\' with catcode other.
    6874 {\catcode`\\=\other @gdef@realbackslash{\}}
    6875 
    6876 % \normalbackslash outputs one backslash in fixed width font.
    6877 \def\normalbackslash{{\tt\backslashcurfont}}
    6878 
    6879 \catcode`\\=\active
    6880 
    6881 % Used sometimes to turn off (effectively) the active characters
    6882 % even after parsing them.
    6883 @def@turnoffactive{%
     7161@gdef@rawbackslash{@let\=@backslashcurfont}
     7162@gdef@otherbackslash{@let\=@realbackslash}
     7163
     7164% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
     7165% the literal character `\'.
     7166%
     7167@def@normalturnoffactive{%
     7168  @let\=@normalbackslash
    68847169  @let"=@normaldoublequote
    6885   @let\=@realbackslash
    68867170  @let~=@normaltilde
    68877171  @let^=@normalcaret
     
    68957179}
    68967180
    6897 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
    6898 % the literal character `\'.  (Thus, \ is not expandable when this is in
    6899 % effect.)
    6900 %
    6901 @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
    6902 
    69037181% Make _ and + \other characters, temporarily.
    69047182% This is canceled by @fixbackslash.
     
    69137191
    69147192% On the other hand, perhaps the file did not have a `\input texinfo'. Then
    6915 % the first `\{ in the file would cause an error. This macro tries to fix
     7193% the first `\' in the file would cause an error. This macro tries to fix
    69167194% that, assuming it is called before the first `\' could plausibly occur.
    6917 % Also back turn on active characters that might appear in the input
     7195% Also turn back on active characters that might appear in the input
    69187196% file name, in case not using a pre-dumped format.
    69197197%
Note: See TracChangeset for help on using the changeset viewer.