VirtualBox

Changeset 501 in kBuild for vendor/gnumake/current/config


Ignore:
Timestamp:
Sep 15, 2006 2:30:32 AM (18 years ago)
Author:
bird
Message:

Load make-3.81/ into vendor/gnumake/current.

Location:
vendor/gnumake/current/config
Files:
10 added
1 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • vendor/gnumake/current/config/ChangeLog

    r53 r501  
     12006-03-09  Paul Smith  <[email protected]>
     2
     3        * dospaths.m4: Add MSYS to the list of targets allowing DOS-style
     4        pathnames.  Reported by David Ergo <[email protected]>.
     5
     62005-07-01  Paul D. Smith  <[email protected]>
     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  <[email protected]>
    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.
  • vendor/gnumake/current/config/Makefile.am

    r53 r501  
    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
  • vendor/gnumake/current/config/Makefile.in

    r152 r501  
    1 # Makefile.in generated by automake 1.8.2 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
    4459am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
     
    126141USE_NLS = @USE_NLS@
    127142VERSION = @VERSION@
     143WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     144WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    128145XGETTEXT = @XGETTEXT@
    129146ac_ct_CC = @ac_ct_CC@
     
    135152am__leading_dot = @am__leading_dot@
    136153am__quote = @am__quote@
     154am__tar = @am__tar@
     155am__untar = @am__untar@
    137156bindir = @bindir@
    138157build = @build@
     
    166185                intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
    167186                isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
    168                 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 \
    169                 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
    170190
    171191all: all-am
     
    259279
    260280distclean-generic:
    261         -rm -f $(CONFIG_CLEAN_FILES)
     281        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    262282
    263283maintainer-clean-generic:
  • vendor/gnumake/current/config/compile

    • Property svn:executable set to *
    r152 r501  
    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 <[email protected]>.
    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 <[email protected]>.
    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:
  • vendor/gnumake/current/config/config.guess

    r152 r501  
    22# Attempt to guess a canonical system name.
    33#   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'
     4#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     5#   Inc.
     6
     7timestamp='2006-03-13'
    78
    89# This file is free software; you can redistribute it and/or modify it
     
    1819# You should have received a copy of the GNU General Public License
    1920# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     21# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     22# 02110-1301, USA.
    2123#
    2224# As a special exception to the GNU General Public License, if you
     
    2426# configuration script generated by Autoconf, you may include it under
    2527# the same distribution terms that you use for the rest of that program.
     28
    2629
    2730# Originally written by Per Bothner <[email protected]>.
     
    5457
    5558Originally written by Per Bothner.
    56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    5760Free Software Foundation, Inc.
    5861
     
    6770  case $1 in
    6871    --time-stamp | --time* | -t )
    69        echo "$timestamp" ; exit 0 ;;
     72       echo "$timestamp" ; exit ;;
    7073    --version | -v )
    71        echo "$version" ; exit 0 ;;
     74       echo "$version" ; exit ;;
    7275    --help | --h* | -h )
    73        echo "$usage"; exit 0 ;;
     76       echo "$usage"; exit ;;
    7477    -- )     # Stop option processing
    7578       shift; break ;;
     
    105108trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
    106109: ${TMPDIR=/tmp} ;
    107  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
     110 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
    108111 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
    109112 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
     
    124127 ,,*)   CC_FOR_BUILD=$CC ;;
    125128 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    126 esac ;'
     129esac ; set_cc_for_build= ;'
    127130
    128131# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
     
    197200        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
    198201        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 ;;
     202        exit ;;
    245203    *:OpenBSD:*:*)
    246         echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
    247         exit 0 ;;
     204        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
     205        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
     206        exit ;;
    248207    *:ekkoBSD:*:*)
    249208        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
    250         exit 0 ;;
     209        exit ;;
     210    *:SolidBSD:*:*)
     211        echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
     212        exit ;;
    251213    macppc:MirBSD:*:*)
    252214        echo powerppc-unknown-mirbsd${UNAME_RELEASE}
    253         exit 0 ;;
     215        exit ;;
    254216    *:MirBSD:*:*)
    255217        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
    256         exit 0 ;;
     218        exit ;;
    257219    alpha:OSF1:*:*)
    258220        case $UNAME_RELEASE in
     
    307269        # 1.2 uses "1.2" for uname -r.
    308270        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 ;;
     271        exit ;;
    313272    Alpha\ *:Windows_NT*:*)
    314273        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    316275        # of the specific Alpha model?
    317276        echo alpha-pc-interix
    318         exit 0 ;;
     277        exit ;;
    319278    21064:Windows_NT:50:3)
    320279        echo alpha-dec-winnt3.5
    321         exit 0 ;;
     280        exit ;;
    322281    Amiga*:UNIX_System_V:4.0:*)
    323282        echo m68k-unknown-sysv4
    324         exit 0;;
     283        exit ;;
    325284    *:[Aa]miga[Oo][Ss]:*:*)
    326285        echo ${UNAME_MACHINE}-unknown-amigaos
    327         exit 0 ;;
     286        exit ;;
    328287    *:[Mm]orph[Oo][Ss]:*:*)
    329288        echo ${UNAME_MACHINE}-unknown-morphos
    330         exit 0 ;;
     289        exit ;;
    331290    *:OS/390:*:*)
    332291        echo i370-ibm-openedition
    333         exit 0 ;;
     292        exit ;;
     293    *:z/VM:*:*)
     294        echo s390-ibm-zvmoe
     295        exit ;;
    334296    *:OS400:*:*)
    335297        echo powerpc-ibm-os400
    336         exit 0 ;;
     298        exit ;;
    337299    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
    338300        echo arm-acorn-riscix${UNAME_RELEASE}
    339         exit 0;;
     301        exit ;;
     302    arm:riscos:*:*|arm:RISCOS:*:*)
     303        echo arm-unknown-riscos
     304        exit ;;
    340305    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
    341306        echo hppa1.1-hitachi-hiuxmpp
    342         exit 0;;
     307        exit ;;
    343308    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
    344309        # [email protected] (Earle F. Ake) contributed MIS and NILE.
     
    348313                echo pyramid-pyramid-bsd
    349314        fi
    350         exit 0 ;;
     315        exit ;;
    351316    NILE*:*:*:dcosx)
    352317        echo pyramid-pyramid-svr4
    353         exit 0 ;;
     318        exit ;;
    354319    DRS?6000:unix:4.0:6*)
    355320        echo sparc-icl-nx6
    356         exit 0 ;;
    357     DRS?6000:UNIX_SV:4.2*:7*)
     321        exit ;;
     322    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
    358323        case `/usr/bin/uname -p` in
    359             sparc) echo sparc-icl-nx7 && exit 0 ;;
     324            sparc) echo sparc-icl-nx7; exit ;;
    360325        esac ;;
    361326    sun4H:SunOS:5.*:*)
    362327        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    363         exit 0 ;;
     328        exit ;;
    364329    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
    365330        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    366         exit 0 ;;
     331        exit ;;
    367332    i86pc:SunOS:5.*:*)
    368333        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    369         exit 0 ;;
     334        exit ;;
    370335    sun4*:SunOS:6*:*)
    371336        # According to config.sub, this is the proper way to canonicalize
     
    373338        # it's likely to be more like Solaris than SunOS4.
    374339        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    375         exit 0 ;;
     340        exit ;;
    376341    sun4*:SunOS:*:*)
    377342        case "`/usr/bin/arch -k`" in
     
    382347        # Japanese Language versions have a version number like `4.1.3-JL'.
    383348        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
    384         exit 0 ;;
     349        exit ;;
    385350    sun3*:SunOS:*:*)
    386351        echo m68k-sun-sunos${UNAME_RELEASE}
    387         exit 0 ;;
     352        exit ;;
    388353    sun*:*:4.2BSD:*)
    389354        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
     
    397362                ;;
    398363        esac
    399         exit 0 ;;
     364        exit ;;
    400365    aushp:SunOS:*:*)
    401366        echo sparc-auspex-sunos${UNAME_RELEASE}
    402         exit 0 ;;
     367        exit ;;
    403368    # The situation for MiNT is a little confusing.  The machine name
    404369    # can be virtually everything (everything which is not
     
    411376    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
    412377        echo m68k-atari-mint${UNAME_RELEASE}
    413         exit 0 ;;
     378        exit ;;
    414379    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
    415380        echo m68k-atari-mint${UNAME_RELEASE}
    416         exit 0 ;;
     381        exit ;;
    417382    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
    418383        echo m68k-atari-mint${UNAME_RELEASE}
    419         exit 0 ;;
     384        exit ;;
    420385    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
    421386        echo m68k-milan-mint${UNAME_RELEASE}
    422         exit 0 ;;
     387        exit ;;
    423388    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
    424389        echo m68k-hades-mint${UNAME_RELEASE}
    425         exit 0 ;;
     390        exit ;;
    426391    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
    427392        echo m68k-unknown-mint${UNAME_RELEASE}
    428         exit 0 ;;
     393        exit ;;
    429394    m68k:machten:*:*)
    430395        echo m68k-apple-machten${UNAME_RELEASE}
    431         exit 0 ;;
     396        exit ;;
    432397    powerpc:machten:*:*)
    433398        echo powerpc-apple-machten${UNAME_RELEASE}
    434         exit 0 ;;
     399        exit ;;
    435400    RISC*:Mach:*:*)
    436401        echo mips-dec-mach_bsd4.3
    437         exit 0 ;;
     402        exit ;;
    438403    RISC*:ULTRIX:*:*)
    439404        echo mips-dec-ultrix${UNAME_RELEASE}
    440         exit 0 ;;
     405        exit ;;
    441406    VAX*:ULTRIX*:*:*)
    442407        echo vax-dec-ultrix${UNAME_RELEASE}
    443         exit 0 ;;
     408        exit ;;
    444409    2020:CLIX:*:* | 2430:CLIX:*:*)
    445410        echo clipper-intergraph-clix${UNAME_RELEASE}
    446         exit 0 ;;
     411        exit ;;
    447412    mips:*:*:UMIPS | mips:*:*:RISCos)
    448413        eval $set_cc_for_build
     
    468433        }
    469434EOF
    470         $CC_FOR_BUILD -o $dummy $dummy.c \
    471           && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
    472           && exit 0
     435        $CC_FOR_BUILD -o $dummy $dummy.c &&
     436          dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
     437          SYSTEM_NAME=`$dummy $dummyarg` &&
     438            { echo "$SYSTEM_NAME"; exit; }
    473439        echo mips-mips-riscos${UNAME_RELEASE}
    474         exit 0 ;;
     440        exit ;;
    475441    Motorola:PowerMAX_OS:*:*)
    476442        echo powerpc-motorola-powermax
    477         exit 0 ;;
     443        exit ;;
    478444    Motorola:*:4.3:PL8-*)
    479445        echo powerpc-harris-powermax
    480         exit 0 ;;
     446        exit ;;
    481447    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
    482448        echo powerpc-harris-powermax
    483         exit 0 ;;
     449        exit ;;
    484450    Night_Hawk:Power_UNIX:*:*)
    485451        echo powerpc-harris-powerunix
    486         exit 0 ;;
     452        exit ;;
    487453    m88k:CX/UX:7*:*)
    488454        echo m88k-harris-cxux7
    489         exit 0 ;;
     455        exit ;;
    490456    m88k:*:4*:R4*)
    491457        echo m88k-motorola-sysv4
    492         exit 0 ;;
     458        exit ;;
    493459    m88k:*:3*:R3*)
    494460        echo m88k-motorola-sysv3
    495         exit 0 ;;
     461        exit ;;
    496462    AViiON:dgux:*:*)
    497463        # DG/UX returns AViiON for all architectures
     
    509475            echo i586-dg-dgux${UNAME_RELEASE}
    510476        fi
    511         exit 0 ;;
     477        exit ;;
    512478    M88*:DolphinOS:*:*) # DolphinOS (SVR3)
    513479        echo m88k-dolphin-sysv3
    514         exit 0 ;;
     480        exit ;;
    515481    M88*:*:R3*:*)
    516482        # Delta 88k system running SVR3
    517483        echo m88k-motorola-sysv3
    518         exit 0 ;;
     484        exit ;;
    519485    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
    520486        echo m88k-tektronix-sysv3
    521         exit 0 ;;
     487        exit ;;
    522488    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
    523489        echo m68k-tektronix-bsd
    524         exit 0 ;;
     490        exit ;;
    525491    *:IRIX*:*:*)
    526492        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
    527         exit 0 ;;
     493        exit ;;
    528494    ????????: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 '
     495        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
     496        exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
    531497    i*86:AIX:*:*)
    532498        echo i386-ibm-aix
    533         exit 0 ;;
     499        exit ;;
    534500    ia64:AIX:*:*)
    535501        if [ -x /usr/bin/oslevel ] ; then
     
    539505        fi
    540506        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
    541         exit 0 ;;
     507        exit ;;
    542508    *:AIX:2:3)
    543509        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
     
    554520                        }
    555521EOF
    556                 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
    557                 echo rs6000-ibm-aix3.2.5
     522                if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
     523                then
     524                        echo "$SYSTEM_NAME"
     525                else
     526                        echo rs6000-ibm-aix3.2.5
     527                fi
    558528        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
    559529                echo rs6000-ibm-aix3.2.4
     
    561531                echo rs6000-ibm-aix3.2
    562532        fi
    563         exit 0 ;;
     533        exit ;;
    564534    *:AIX:*:[45])
    565535        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
     
    575545        fi
    576546        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
    577         exit 0 ;;
     547        exit ;;
    578548    *:AIX:*:*)
    579549        echo rs6000-ibm-aix
    580         exit 0 ;;
     550        exit ;;
    581551    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
    582552        echo romp-ibm-bsd4.4
    583         exit 0 ;;
     553        exit ;;
    584554    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
    585555        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
    586         exit 0 ;;                           # report: romp-ibm BSD 4.3
     556        exit ;;                             # report: romp-ibm BSD 4.3
    587557    *:BOSX:*:*)
    588558        echo rs6000-bull-bosx
    589         exit 0 ;;
     559        exit ;;
    590560    DPX/2?00:B.O.S.:*:*)
    591561        echo m68k-bull-sysv3
    592         exit 0 ;;
     562        exit ;;
    593563    9000/[34]??:4.3bsd:1.*:*)
    594564        echo m68k-hp-bsd
    595         exit 0 ;;
     565        exit ;;
    596566    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
    597567        echo m68k-hp-bsd4.4
    598         exit 0 ;;
     568        exit ;;
    599569    9000/[34678]??:HP-UX:*:*)
    600570        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
     
    658628        if [ ${HP_ARCH} = "hppa2.0w" ]
    659629        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
     630            eval $set_cc_for_build
     631
     632            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
     633            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
     634            # generating 64-bit code.  GNU and HP use different nomenclature:
     635            #
     636            # $ CC_FOR_BUILD=cc ./config.guess
     637            # => hppa2.0w-hp-hpux11.23
     638            # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
     639            # => hppa64-hp-hpux11.23
     640
     641            if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
     642                grep __LP64__ >/dev/null
    663643            then
    664644                HP_ARCH="hppa2.0w"
     
    668648        fi
    669649        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
    670         exit 0 ;;
     650        exit ;;
    671651    ia64:HP-UX:*:*)
    672652        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
    673653        echo ia64-hp-hpux${HPUX_REV}
    674         exit 0 ;;
     654        exit ;;
    675655    3050*:HI-UX:*:*)
    676656        eval $set_cc_for_build
     
    700680        }
    701681EOF
    702         $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
     682        $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
     683                { echo "$SYSTEM_NAME"; exit; }
    703684        echo unknown-hitachi-hiuxwe2
    704         exit 0 ;;
     685        exit ;;
    705686    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
    706687        echo hppa1.1-hp-bsd
    707         exit 0 ;;
     688        exit ;;
    708689    9000/8??:4.3bsd:*:*)
    709690        echo hppa1.0-hp-bsd
    710         exit 0 ;;
     691        exit ;;
    711692    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
    712693        echo hppa1.0-hp-mpeix
    713         exit 0 ;;
     694        exit ;;
    714695    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
    715696        echo hppa1.1-hp-osf
    716         exit 0 ;;
     697        exit ;;
    717698    hp8??:OSF1:*:*)
    718699        echo hppa1.0-hp-osf
    719         exit 0 ;;
     700        exit ;;
    720701    i*86:OSF1:*:*)
    721702        if [ -x /usr/sbin/sysversion ] ; then
     
    724705            echo ${UNAME_MACHINE}-unknown-osf1
    725706        fi
    726         exit 0 ;;
     707        exit ;;
    727708    parisc*:Lites*:*:*)
    728709        echo hppa1.1-hp-lites
    729         exit 0 ;;
     710        exit ;;
    730711    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
    731712        echo c1-convex-bsd
    732         exit 0 ;;
     713        exit ;;
    733714    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
    734715        if getsysinfo -f scalar_acc
     
    736717        else echo c2-convex-bsd
    737718        fi
    738         exit 0 ;;
     719        exit ;;
    739720    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
    740721        echo c34-convex-bsd
    741         exit 0 ;;
     722        exit ;;
    742723    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
    743724        echo c38-convex-bsd
    744         exit 0 ;;
     725        exit ;;
    745726    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
    746727        echo c4-convex-bsd
    747         exit 0 ;;
     728        exit ;;
    748729    CRAY*Y-MP:*:*:*)
    749730        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    750         exit 0 ;;
     731        exit ;;
    751732    CRAY*[A-Z]90:*:*:*)
    752733        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
     
    754735              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
    755736              -e 's/\.[^.]*$/.X/'
    756         exit 0 ;;
     737        exit ;;
    757738    CRAY*TS:*:*:*)
    758739        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    759         exit 0 ;;
     740        exit ;;
    760741    CRAY*T3E:*:*:*)
    761742        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    762         exit 0 ;;
     743        exit ;;
    763744    CRAY*SV1:*:*:*)
    764745        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    765         exit 0 ;;
     746        exit ;;
    766747    *:UNICOS/mp:*:*)
    767         echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    768         exit 0 ;;
     748        echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
     749        exit ;;
    769750    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
    770751        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
     
    772753        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
    773754        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    774         exit 0 ;;
     755        exit ;;
    775756    5000:UNIX_System_V:4.*:*)
    776757        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
    777758        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
    778759        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    779         exit 0 ;;
     760        exit ;;
    780761    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
    781762        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
    782         exit 0 ;;
     763        exit ;;
    783764    sparc*:BSD/OS:*:*)
    784765        echo sparc-unknown-bsdi${UNAME_RELEASE}
    785         exit 0 ;;
     766        exit ;;
    786767    *:BSD/OS:*:*)
    787768        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
    788         exit 0 ;;
     769        exit ;;
    789770    *: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 ;;
     771        case ${UNAME_MACHINE} in
     772            pc98)
     773                echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     774            *)
     775                echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     776        esac
     777        exit ;;
    806778    i*:CYGWIN*:*)
    807779        echo ${UNAME_MACHINE}-pc-cygwin
    808         exit 0 ;;
     780        exit ;;
    809781    i*:MINGW*:*)
    810782        echo ${UNAME_MACHINE}-pc-mingw32
    811         exit 0 ;;
     783        exit ;;
     784    i*:windows32*:*)
     785        # uname -m includes "-pc" on this system.
     786        echo ${UNAME_MACHINE}-mingw32
     787        exit ;;
    812788    i*:PW*:*)
    813789        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 ;;
     790        exit ;;
     791    x86:Interix*:[345]*)
     792        echo i586-pc-interix${UNAME_RELEASE}
     793        exit ;;
     794    EM64T:Interix*:[345]*)
     795        echo x86_64-unknown-interix${UNAME_RELEASE}
     796        exit ;;
    818797    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
    819798        echo i${UNAME_MACHINE}-pc-mks
    820         exit 0 ;;
     799        exit ;;
    821800    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
    822801        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    824803        # UNAME_MACHINE based on the output of uname instead of i386?
    825804        echo i586-pc-interix
    826         exit 0 ;;
     805        exit ;;
    827806    i*:UWIN*:*)
    828807        echo ${UNAME_MACHINE}-pc-uwin
    829         exit 0 ;;
     808        exit ;;
     809    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
     810        echo x86_64-unknown-cygwin
     811        exit ;;
    830812    p*:CYGWIN*:*)
    831813        echo powerpcle-unknown-cygwin
    832         exit 0 ;;
     814        exit ;;
    833815    prep*:SunOS:5.*:*)
    834816        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    835         exit 0 ;;
     817        exit ;;
    836818    *:GNU:*:*)
    837819        # the GNU system
    838820        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
    839         exit 0 ;;
     821        exit ;;
    840822    *:GNU/*:*:*)
    841823        # other systems with GNU libc and userland
    842824        echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
    843         exit 0 ;;
     825        exit ;;
    844826    i*86:Minix:*:*)
    845827        echo ${UNAME_MACHINE}-pc-minix
    846         exit 0 ;;
     828        exit ;;
    847829    arm*:Linux:*:*)
    848830        echo ${UNAME_MACHINE}-unknown-linux-gnu
    849         exit 0 ;;
     831        exit ;;
    850832    cris:Linux:*:*)
    851833        echo cris-axis-linux-gnu
    852         exit 0 ;;
     834        exit ;;
     835    crisv32:Linux:*:*)
     836        echo crisv32-axis-linux-gnu
     837        exit ;;
     838    frv:Linux:*:*)
     839        echo frv-unknown-linux-gnu
     840        exit ;;
    853841    ia64:Linux:*:*)
    854842        echo ${UNAME_MACHINE}-unknown-linux-gnu
    855         exit 0 ;;
     843        exit ;;
     844    m32r*:Linux:*:*)
     845        echo ${UNAME_MACHINE}-unknown-linux-gnu
     846        exit ;;
    856847    m68*:Linux:*:*)
    857848        echo ${UNAME_MACHINE}-unknown-linux-gnu
    858         exit 0 ;;
     849        exit ;;
    859850    mips:Linux:*:*)
    860851        eval $set_cc_for_build
     
    873864        #endif
    874865EOF
    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
     866        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     867            /^CPU/{
     868                s: ::g
     869                p
     870            }'`"
     871        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    877872        ;;
    878873    mips64:Linux:*:*)
     
    892887        #endif
    893888EOF
    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
     889        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     890            /^CPU/{
     891                s: ::g
     892                p
     893            }'`"
     894        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    896895        ;;
     896    or32:Linux:*:*)
     897        echo or32-unknown-linux-gnu
     898        exit ;;
    897899    ppc:Linux:*:*)
    898900        echo powerpc-unknown-linux-gnu
    899         exit 0 ;;
     901        exit ;;
    900902    ppc64:Linux:*:*)
    901903        echo powerpc64-unknown-linux-gnu
    902         exit 0 ;;
     904        exit ;;
    903905    alpha:Linux:*:*)
    904906        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
     
    914916        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
    915917        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
    916         exit 0 ;;
     918        exit ;;
    917919    parisc:Linux:*:* | hppa:Linux:*:*)
    918920        # Look for CPU level
     
    922924          *)    echo hppa-unknown-linux-gnu ;;
    923925        esac
    924         exit 0 ;;
     926        exit ;;
    925927    parisc64:Linux:*:* | hppa64:Linux:*:*)
    926928        echo hppa64-unknown-linux-gnu
    927         exit 0 ;;
     929        exit ;;
    928930    s390:Linux:*:* | s390x:Linux:*:*)
    929931        echo ${UNAME_MACHINE}-ibm-linux
    930         exit 0 ;;
     932        exit ;;
    931933    sh64*:Linux:*:*)
    932934        echo ${UNAME_MACHINE}-unknown-linux-gnu
    933         exit 0 ;;
     935        exit ;;
    934936    sh*:Linux:*:*)
    935937        echo ${UNAME_MACHINE}-unknown-linux-gnu
    936         exit 0 ;;
     938        exit ;;
    937939    sparc:Linux:*:* | sparc64:Linux:*:*)
    938940        echo ${UNAME_MACHINE}-unknown-linux-gnu
    939         exit 0 ;;
     941        exit ;;
     942    vax:Linux:*:*)
     943        echo ${UNAME_MACHINE}-dec-linux-gnu
     944        exit ;;
    940945    x86_64:Linux:*:*)
    941946        echo x86_64-unknown-linux-gnu
    942         exit 0 ;;
     947        exit ;;
    943948    i*86:Linux:*:*)
    944949        # The BFD linker knows what the default object file format is, so
     
    958963          a.out-i386-linux)
    959964                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
    960                 exit 0 ;;
     965                exit ;;
    961966          coff-i386)
    962967                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
    963                 exit 0 ;;
     968                exit ;;
    964969          "")
    965970                # Either a pre-BFD a.out linker (linux-gnuoldld) or
    966971                # one that does not give us useful --help.
    967972                echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
    968                 exit 0 ;;
     973                exit ;;
    969974        esac
    970975        # Determine whether the default compiler is a.out or elf
     
    983988        # endif
    984989        #else
    985         #ifdef __INTEL_COMPILER
     990        #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
    986991        LIBC=gnu
    987992        #else
     
    993998        #endif
    994999EOF
    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
     1000        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     1001            /^LIBC/{
     1002                s: ::g
     1003                p
     1004            }'`"
     1005        test x"${LIBC}" != x && {
     1006                echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
     1007                exit
     1008        }
     1009        test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
    9981010        ;;
    9991011    i*86:DYNIX/ptx:4*:*)
     
    10021014        # sysname and nodename.
    10031015        echo i386-sequent-sysv4
    1004         exit 0 ;;
     1016        exit ;;
    10051017    i*86:UNIX_SV:4.2MP:2.*)
    10061018        # Unixware is an offshoot of SVR4, but it has its own version
     
    10101022        # Use sysv4.2uw... so that sysv4* matches it.
    10111023        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
    1012         exit 0 ;;
     1024        exit ;;
    10131025    i*86:OS/2:*:*)
    10141026        # If we were able to find `uname', then EMX Unix compatibility
    10151027        # is probably installed.
    10161028        echo ${UNAME_MACHINE}-pc-os2-emx
    1017         exit 0 ;;
     1029        exit ;;
    10181030    i*86:XTS-300:*:STOP)
    10191031        echo ${UNAME_MACHINE}-unknown-stop
    1020         exit 0 ;;
     1032        exit ;;
    10211033    i*86:atheos:*:*)
    10221034        echo ${UNAME_MACHINE}-unknown-atheos
    1023         exit 0 ;;
    1024         i*86:syllable:*:*)
     1035        exit ;;
     1036    i*86:syllable:*:*)
    10251037        echo ${UNAME_MACHINE}-pc-syllable
    1026         exit 0 ;;
     1038        exit ;;
    10271039    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
    10281040        echo i386-unknown-lynxos${UNAME_RELEASE}
    1029         exit 0 ;;
     1041        exit ;;
    10301042    i*86:*DOS:*:*)
    10311043        echo ${UNAME_MACHINE}-pc-msdosdjgpp
    1032         exit 0 ;;
     1044        exit ;;
    10331045    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
    10341046        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
     
    10381050                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
    10391051        fi
    1040         exit 0 ;;
    1041     i*86:*:5:[78]*)
     1052        exit ;;
     1053    i*86:*:5:[678]*)
     1054        # UnixWare 7.x, OpenUNIX and OpenServer 6.
    10421055        case `/bin/uname -X | grep "^Machine"` in
    10431056            *486*)           UNAME_MACHINE=i486 ;;
     
    10461059        esac
    10471060        echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
    1048         exit 0 ;;
     1061        exit ;;
    10491062    i*86:*:3.2:*)
    10501063        if test -f /usr/options/cb.name; then
     
    10641077                echo ${UNAME_MACHINE}-pc-sysv32
    10651078        fi
    1066         exit 0 ;;
     1079        exit ;;
    10671080    pc:*:*:*)
    10681081        # Left here for compatibility:
     
    10701083        # the processor, so we play safe by assuming i386.
    10711084        echo i386-pc-msdosdjgpp
    1072         exit 0 ;;
     1085        exit ;;
    10731086    Intel:Mach:3*:*)
    10741087        echo i386-pc-mach3
    1075         exit 0 ;;
     1088        exit ;;
    10761089    paragon:*:*:*)
    10771090        echo i860-intel-osf1
    1078         exit 0 ;;
     1091        exit ;;
    10791092    i860:*:4.*:*) # i860-SVR4
    10801093        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
     
    10831096          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
    10841097        fi
    1085         exit 0 ;;
     1098        exit ;;
    10861099    mini*:CTIX:SYS*5:*)
    10871100        # "miniframe"
    10881101        echo m68010-convergent-sysv
    1089         exit 0 ;;
     1102        exit ;;
    10901103    mc68k:UNIX:SYSTEM5:3.51m)
    10911104        echo m68k-convergent-sysv
    1092         exit 0 ;;
     1105        exit ;;
    10931106    M680?0:D-NIX:5.3:*)
    10941107        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)
     1108        exit ;;
     1109    M68*:*:R3V[5678]*:*)
     1110        test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     1111    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)
    10991112        OS_REL=''
    11001113        test -r /etc/.relid \
    11011114        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
    11021115        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1103           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
     1116          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
    11041117        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
    1105           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
     1118          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
    11061119    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
    11071120        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1108           && echo i486-ncr-sysv4 && exit 0 ;;
     1121          && { echo i486-ncr-sysv4; exit; } ;;
    11091122    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
    11101123        echo m68k-unknown-lynxos${UNAME_RELEASE}
    1111         exit 0 ;;
     1124        exit ;;
    11121125    mc68030:UNIX_System_V:4.*:*)
    11131126        echo m68k-atari-sysv4
    1114         exit 0 ;;
     1127        exit ;;
    11151128    TSUNAMI:LynxOS:2.*:*)
    11161129        echo sparc-unknown-lynxos${UNAME_RELEASE}
    1117         exit 0 ;;
     1130        exit ;;
    11181131    rs6000:LynxOS:2.*:*)
    11191132        echo rs6000-unknown-lynxos${UNAME_RELEASE}
    1120         exit 0 ;;
     1133        exit ;;
    11211134    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
    11221135        echo powerpc-unknown-lynxos${UNAME_RELEASE}
    1123         exit 0 ;;
     1136        exit ;;
    11241137    SM[BE]S:UNIX_SV:*:*)
    11251138        echo mips-dde-sysv${UNAME_RELEASE}
    1126         exit 0 ;;
     1139        exit ;;
    11271140    RM*:ReliantUNIX-*:*:*)
    11281141        echo mips-sni-sysv4
    1129         exit 0 ;;
     1142        exit ;;
    11301143    RM*:SINIX-*:*:*)
    11311144        echo mips-sni-sysv4
    1132         exit 0 ;;
     1145        exit ;;
    11331146    *:SINIX-*:*:*)
    11341147        if uname -p 2>/dev/null >/dev/null ; then
     
    11381151                echo ns32k-sni-sysv
    11391152        fi
    1140         exit 0 ;;
     1153        exit ;;
    11411154    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
    11421155                      # says <[email protected]>
    11431156        echo i586-unisys-sysv4
    1144         exit 0 ;;
     1157        exit ;;
    11451158    *:UNIX_System_V:4*:FTX*)
    11461159        # From Gerald Hewes <[email protected]>.
    11471160        # How about differentiating between stratus architectures? -djm
    11481161        echo hppa1.1-stratus-sysv4
    1149         exit 0 ;;
     1162        exit ;;
    11501163    *:*:*:FTX*)
    11511164        # From [email protected].
    11521165        echo i860-stratus-sysv4
    1153         exit 0 ;;
     1166        exit ;;
     1167    i*86:VOS:*:*)
     1168        # From [email protected].
     1169        echo ${UNAME_MACHINE}-stratus-vos
     1170        exit ;;
    11541171    *:VOS:*:*)
    11551172        # From [email protected].
    11561173        echo hppa1.1-stratus-vos
    1157         exit 0 ;;
     1174        exit ;;
    11581175    mc68*:A/UX:*:*)
    11591176        echo m68k-apple-aux${UNAME_RELEASE}
    1160         exit 0 ;;
     1177        exit ;;
    11611178    news*:NEWS-OS:6*:*)
    11621179        echo mips-sony-newsos6
    1163         exit 0 ;;
     1180        exit ;;
    11641181    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
    11651182        if [ -d /usr/nec ]; then
     
    11681185                echo mips-unknown-sysv${UNAME_RELEASE}
    11691186        fi
    1170         exit 0 ;;
     1187        exit ;;
    11711188    BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
    11721189        echo powerpc-be-beos
    1173         exit 0 ;;
     1190        exit ;;
    11741191    BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
    11751192        echo powerpc-apple-beos
    1176         exit 0 ;;
     1193        exit ;;
    11771194    BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
    11781195        echo i586-pc-beos
    1179         exit 0 ;;
     1196        exit ;;
    11801197    SX-4:SUPER-UX:*:*)
    11811198        echo sx4-nec-superux${UNAME_RELEASE}
    1182         exit 0 ;;
     1199        exit ;;
    11831200    SX-5:SUPER-UX:*:*)
    11841201        echo sx5-nec-superux${UNAME_RELEASE}
    1185         exit 0 ;;
     1202        exit ;;
    11861203    SX-6:SUPER-UX:*:*)
    11871204        echo sx6-nec-superux${UNAME_RELEASE}
    1188         exit 0 ;;
     1205        exit ;;
    11891206    Power*:Rhapsody:*:*)
    11901207        echo powerpc-apple-rhapsody${UNAME_RELEASE}
    1191         exit 0 ;;
     1208        exit ;;
    11921209    *:Rhapsody:*:*)
    11931210        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
    1194         exit 0 ;;
     1211        exit ;;
    11951212    *:Darwin:*:*)
    1196         case `uname -p` in
    1197             *86) UNAME_PROCESSOR=i686 ;;
    1198             powerpc) UNAME_PROCESSOR=powerpc ;;
     1213        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
     1214        case $UNAME_PROCESSOR in
     1215            unknown) UNAME_PROCESSOR=powerpc ;;
    11991216        esac
    12001217        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
    1201         exit 0 ;;
     1218        exit ;;
    12021219    *:procnto*:*:* | *:QNX:[0123456789]*:*)
    12031220        UNAME_PROCESSOR=`uname -p`
     
    12071224        fi
    12081225        echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
    1209         exit 0 ;;
     1226        exit ;;
    12101227    *:QNX:*:4*)
    12111228        echo i386-pc-qnx
    1212         exit 0 ;;
     1229        exit ;;
     1230    NSE-?:NONSTOP_KERNEL:*:*)
     1231        echo nse-tandem-nsk${UNAME_RELEASE}
     1232        exit ;;
    12131233    NSR-?:NONSTOP_KERNEL:*:*)
    12141234        echo nsr-tandem-nsk${UNAME_RELEASE}
    1215         exit 0 ;;
     1235        exit ;;
    12161236    *:NonStop-UX:*:*)
    12171237        echo mips-compaq-nonstopux
    1218         exit 0 ;;
     1238        exit ;;
    12191239    BS2000:POSIX*:*:*)
    12201240        echo bs2000-siemens-sysv
    1221         exit 0 ;;
     1241        exit ;;
    12221242    DS/*:UNIX_System_V:*:*)
    12231243        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
    1224         exit 0 ;;
     1244        exit ;;
    12251245    *:Plan9:*:*)
    12261246        # "uname -m" is not consistent, so use $cputype instead. 386
     
    12331253        fi
    12341254        echo ${UNAME_MACHINE}-unknown-plan9
    1235         exit 0 ;;
     1255        exit ;;
    12361256    *:TOPS-10:*:*)
    12371257        echo pdp10-unknown-tops10
    1238         exit 0 ;;
     1258        exit ;;
    12391259    *:TENEX:*:*)
    12401260        echo pdp10-unknown-tenex
    1241         exit 0 ;;
     1261        exit ;;
    12421262    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
    12431263        echo pdp10-dec-tops20
    1244         exit 0 ;;
     1264        exit ;;
    12451265    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
    12461266        echo pdp10-xkl-tops20
    1247         exit 0 ;;
     1267        exit ;;
    12481268    *:TOPS-20:*:*)
    12491269        echo pdp10-unknown-tops20
    1250         exit 0 ;;
     1270        exit ;;
    12511271    *:ITS:*:*)
    12521272        echo pdp10-unknown-its
    1253         exit 0 ;;
     1273        exit ;;
    12541274    SEI:*:*:SEIUX)
    12551275        echo mips-sei-seiux${UNAME_RELEASE}
    1256         exit 0 ;;
     1276        exit ;;
    12571277    *:DragonFly:*:*)
    12581278        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
    1259         exit 0 ;;
     1279        exit ;;
     1280    *:*VMS:*:*)
     1281        UNAME_MACHINE=`(uname -p) 2>/dev/null`
     1282        case "${UNAME_MACHINE}" in
     1283            A*) echo alpha-dec-vms ; exit ;;
     1284            I*) echo ia64-dec-vms ; exit ;;
     1285            V*) echo vax-dec-vms ; exit ;;
     1286        esac ;;
     1287    *:XENIX:*:SysV)
     1288        echo i386-pc-xenix
     1289        exit ;;
     1290    i*86:skyos:*:*)
     1291        echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
     1292        exit ;;
     1293    i*86:rdos:*:*)
     1294        echo ${UNAME_MACHINE}-pc-rdos
     1295        exit ;;
    12601296esac
    12611297
     
    12891325
    12901326#if defined (__arm) && defined (__acorn) && defined (__unix)
    1291   printf ("arm-acorn-riscix"); exit (0);
     1327  printf ("arm-acorn-riscix\n"); exit (0);
    12921328#endif
    12931329
     
    13781414EOF
    13791415
    1380 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
     1416$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
     1417        { echo "$SYSTEM_NAME"; exit; }
    13811418
    13821419# Apollos put the system type in the environment.
    13831420
    1384 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
     1421test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
    13851422
    13861423# Convex versions that predate uname can use getsysinfo(1)
     
    13911428    c1*)
    13921429        echo c1-convex-bsd
    1393         exit 0 ;;
     1430        exit ;;
    13941431    c2*)
    13951432        if getsysinfo -f scalar_acc
     
    13971434        else echo c2-convex-bsd
    13981435        fi
    1399         exit 0 ;;
     1436        exit ;;
    14001437    c34*)
    14011438        echo c34-convex-bsd
    1402         exit 0 ;;
     1439        exit ;;
    14031440    c38*)
    14041441        echo c38-convex-bsd
    1405         exit 0 ;;
     1442        exit ;;
    14061443    c4*)
    14071444        echo c4-convex-bsd
    1408         exit 0 ;;
     1445        exit ;;
    14091446    esac
    14101447fi
     
    14171454download the most up to date version of the config scripts from
    14181455
    1419     ftp://ftp.gnu.org/pub/gnu/config/
     1456  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
     1457and
     1458  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
    14201459
    14211460If the version you run ($0) is already up to date, please
  • vendor/gnumake/current/config/config.rpath

    • Property svn:executable set to *
  • vendor/gnumake/current/config/config.sub

    r152 r501  
    22# Configuration validation subroutine script.
    33#   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'
     4#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     5#   Inc.
     6
     7timestamp='2006-03-07'
    78
    89# This file is (in principle) common to ALL GNU software.
     
    2223# You should have received a copy of the GNU General Public License
    2324# 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 
     25# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     26# 02110-1301, USA.
     27#
    2728# As a special exception to the GNU General Public License, if you
    2829# distribute this file as part of a program that contains a
    2930# configuration script generated by Autoconf, you may include it under
    3031# the same distribution terms that you use for the rest of that program.
     32
    3133
    3234# Please send patches to <[email protected]>.  Submit a context
     
    7173GNU config.sub ($timestamp)
    7274
    73 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    7476Free Software Foundation, Inc.
    7577
     
    8486  case $1 in
    8587    --time-stamp | --time* | -t )
    86        echo "$timestamp" ; exit 0 ;;
     88       echo "$timestamp" ; exit ;;
    8789    --version | -v )
    88        echo "$version" ; exit 0 ;;
     90       echo "$version" ; exit ;;
    8991    --help | --h* | -h )
    90        echo "$usage"; exit 0 ;;
     92       echo "$usage"; exit ;;
    9193    -- )     # Stop option processing
    9294       shift; break ;;
     
    100102       # First pass through any local machine types.
    101103       echo $1
    102        exit 0;;
     104       exit ;;
    103105
    104106    * )
     
    119121maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
    120122case $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*)
     123  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
     124  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
     125  storm-chaos* | os2-emx* | rtmk-nova*)
    123126    os=-$maybe_os
    124127    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     
    146149        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
    147150        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
    148         -apple | -axis)
     151        -apple | -axis | -knuth | -cray)
    149152                os=
    150153                basic_machine=$1
     
    171174                os=-hiuxwe2
    172175                ;;
     176        -sco6)
     177                os=-sco5v6
     178                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     179                ;;
    173180        -sco5)
    174181                os=-sco3.2v5
     
    184191                ;;
    185192        -sco3.2v[4-9]*)
     193                # Don't forget version if it is 3.2v4 or newer.
     194                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     195                ;;
     196        -sco5v6*)
    186197                # Don't forget version if it is 3.2v4 or newer.
    187198                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     
    232243        | am33_2.0 \
    233244        | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
     245        | bfin \
    234246        | c4x | clipper \
    235247        | d10v | d30v | dlx | dsp16xx \
     
    238250        | i370 | i860 | i960 | ia64 \
    239251        | ip2k | iq2000 \
    240         | m32r | m68000 | m68k | m88k | mcore \
     252        | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
    241253        | mips | mipsbe | mipseb | mipsel | mipsle \
    242254        | mips16 \
     
    247259        | mips64vr4300 | mips64vr4300el \
    248260        | mips64vr5000 | mips64vr5000el \
     261        | mips64vr5900 | mips64vr5900el \
    249262        | mipsisa32 | mipsisa32el \
    250263        | mipsisa32r2 | mipsisa32r2el \
     
    255268        | mipstx39 | mipstx39el \
    256269        | mn10200 | mn10300 \
     270        | mt \
    257271        | msp430 \
     272        | nios | nios2 \
    258273        | ns16k | ns32k \
    259         | openrisc | or32 \
     274        | or32 \
    260275        | pdp10 | pdp11 | pj | pjl \
    261276        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
    262277        | pyramid \
    263         | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
     278        | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
    264279        | sh64 | sh64le \
    265         | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
     280        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
     281        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
    266282        | strongarm \
    267283        | tahoe | thumb | tic4x | tic80 | tron \
    268284        | v850 | v850e \
    269285        | we32k \
    270         | x86 | xscale | xstormy16 | xtensa \
     286        | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
    271287        | z8k)
     288                basic_machine=$basic_machine-unknown
     289                ;;
     290        m32c)
    272291                basic_machine=$basic_machine-unknown
    273292                ;;
     
    278297                ;;
    279298        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
     299                ;;
     300        ms1)
     301                basic_machine=mt-unknown
    280302                ;;
    281303
     
    299321        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
    300322        | avr-* \
    301         | bs2000-* \
     323        | bfin-* | bs2000-* \
    302324        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
    303         | clipper-* | cydra-* \
     325        | clipper-* | craynv-* | cydra-* \
    304326        | d10v-* | d30v-* | dlx-* \
    305327        | elxsi-* \
     
    309331        | i*86-* | i860-* | i960-* | ia64-* \
    310332        | ip2k-* | iq2000-* \
    311         | m32r-* \
     333        | m32r-* | m32rle-* \
    312334        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
    313         | m88110-* | m88k-* | mcore-* \
     335        | m88110-* | m88k-* | maxq-* | mcore-* \
    314336        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
    315337        | mips16-* \
     
    320342        | mips64vr4300-* | mips64vr4300el-* \
    321343        | mips64vr5000-* | mips64vr5000el-* \
     344        | mips64vr5900-* | mips64vr5900el-* \
    322345        | mipsisa32-* | mipsisa32el-* \
    323346        | mipsisa32r2-* | mipsisa32r2el-* \
     
    327350        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
    328351        | mipstx39-* | mipstx39el-* \
     352        | mmix-* \
     353        | mt-* \
    329354        | msp430-* \
    330         | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
     355        | nios-* | nios2-* \
     356        | none-* | np1-* | ns16k-* | ns32k-* \
    331357        | orion-* \
    332358        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
     
    334360        | pyramid-* \
    335361        | romp-* | rs6000-* \
    336         | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
     362        | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
    337363        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
    338         | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
    339         | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
     364        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
     365        | sparclite-* \
     366        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
    340367        | tahoe-* | thumb-* \
    341368        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
     
    343370        | v850-* | v850e-* | vax-* \
    344371        | we32k-* \
    345         | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
    346         | xtensa-* \
     372        | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
     373        | xstormy16-* | xtensa-* \
    347374        | ymp-* \
    348375        | z8k-*)
     376                ;;
     377        m32c-*)
    349378                ;;
    350379        # Recognize the various machine names and aliases which stand
     
    446475                os=-unicos
    447476                ;;
     477        craynv)
     478                basic_machine=craynv-cray
     479                os=-unicosmp
     480                ;;
    448481        cr16c)
    449482                basic_machine=cr16c-unknown
     
    453486                basic_machine=m68k-crds
    454487                ;;
     488        crisv32 | crisv32-* | etraxfs*)
     489                basic_machine=crisv32-axis
     490                ;;
    455491        cris | cris-* | etrax*)
    456492                basic_machine=cris-axis
     
    481517                basic_machine=m88k-motorola
    482518                os=-sysv3
     519                ;;
     520        djgpp)
     521                basic_machine=i586-pc
     522                os=-msdosdjgpp
    483523                ;;
    484524        dpx20 | dpx20-*)
     
    660700                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
    661701                ;;
    662         mmix*)
    663                 basic_machine=mmix-knuth
    664                 os=-mmixware
    665                 ;;
    666702        monitor)
    667703                basic_machine=m68k-rom68k
     
    675711                basic_machine=i386-pc
    676712                os=-msdos
     713                ;;
     714        ms1-*)
     715                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
    677716                ;;
    678717        mvs)
     
    744783                basic_machine=np1-gould
    745784                ;;
    746         nv1)
    747                 basic_machine=nv1-cray
    748                 os=-unicosmp
    749                 ;;
    750785        nsr-tandem)
    751786                basic_machine=nsr-tandem
     
    755790                os=-proelf
    756791                ;;
    757         or32 | or32-*)
     792        openrisc | openrisc-*)
    758793                basic_machine=or32-unknown
    759                 os=-coff
    760794                ;;
    761795        os400)
     
    788822                basic_machine=ns32k-pc532
    789823                ;;
     824        pc98)
     825                basic_machine=i386-pc
     826                ;;
     827        pc98-*)
     828                basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
     829                ;;
    790830        pentium | p5 | k5 | k6 | nexgen | viac3)
    791831                basic_machine=i586-pc
     
    844884                os=-pw32
    845885                ;;
     886        rdos)
     887                basic_machine=i386-pc
     888                os=-rdos
     889                ;;
    846890        rom68k)
    847891                basic_machine=m68k-rom68k
     
    10291073                basic_machine=hppa1.1-winbond
    10301074                os=-proelf
     1075                ;;
     1076        xbox)
     1077                basic_machine=i686-pc
     1078                os=-mingw32
    10311079                ;;
    10321080        xps | xps100)
     
    10601108                basic_machine=romp-ibm
    10611109                ;;
     1110        mmix)
     1111                basic_machine=mmix-knuth
     1112                ;;
    10621113        rs6000)
    10631114                basic_machine=rs6000-ibm
     
    10761127                basic_machine=we32k-att
    10771128                ;;
    1078         sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
     1129        sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
    10791130                basic_machine=sh-unknown
    10801131                ;;
    1081         sh64)
    1082                 basic_machine=sh64-unknown
    1083                 ;;
    1084         sparc | sparcv9 | sparcv9b)
     1132        sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
    10851133                basic_machine=sparc-sun
    10861134                ;;
     
    11551203              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
    11561204              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
    1157               | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
     1205              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
     1206              | -openbsd* | -solidbsd* \
    11581207              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
    11591208              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
     
    11621211              | -chorusos* | -chorusrdb* \
    11631212              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
    1164               | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
     1213              | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
     1214              | -uxpv* | -beos* | -mpeix* | -udk* \
    11651215              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
    11661216              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
     
    11681218              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
    11691219              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
    1170               | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
     1220              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
     1221              | -skyos* | -haiku* | -rdos*)
    11711222        # Remember, each alternative MUST END IN *, to match a version number.
    11721223                ;;
     
    11861237                ;;
    11871238        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
    1188               | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
     1239              | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
    11891240              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
    11901241                ;;
     
    12941345        -kaos*)
    12951346                os=-kaos
     1347                ;;
     1348        -zvmoe)
     1349                os=-zvmoe
    12961350                ;;
    12971351        -none)
     
    13721426                os=-beos
    13731427                ;;
     1428        *-haiku)
     1429                os=-haiku
     1430                ;;
    13741431        *-ibm)
    13751432                os=-aix
     1433                ;;
     1434        *-knuth)
     1435                os=-mmixware
    13761436                ;;
    13771437        *-wec)
     
    15401600
    15411601echo $basic_machine$os
    1542 exit 0
     1602exit
    15431603
    15441604# Local variables:
  • vendor/gnumake/current/config/depcomp

    • Property svn:executable set to *
    r152 r501  
    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 <[email protected]>.
    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"
  • vendor/gnumake/current/config/dospaths.m4

    r152 r501  
    11# Test if the system uses DOS-style pathnames (drive specs and backslashes)
    22# By Paul Smith <[email protected]>.  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
  • vendor/gnumake/current/config/install-sh

    • Property svn:executable set to *
    r152 r501  
    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
  • vendor/gnumake/current/config/missing

    • Property svn:executable set to *
    r152 r501  
    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 <[email protected]>, 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 <[email protected]>."
     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.
  • vendor/gnumake/current/config/mkinstalldirs

    • Property svn:executable set to *
  • vendor/gnumake/current/config/texinfo.tex

    r152 r501  
    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. [email protected]
    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.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette