diff options
| -rw-r--r-- | ChangeLog | 189 | ||||
| -rw-r--r-- | Makefile.in | 4 | ||||
| -rw-r--r-- | Str.c | 4 | ||||
| -rw-r--r-- | acinclude.m4 | 2 | ||||
| -rwxr-xr-x | config.guess | 1097 | ||||
| -rw-r--r-- | config.h.in | 4 | ||||
| -rwxr-xr-x | config.sub | 490 | ||||
| -rwxr-xr-x | configure | 2 | ||||
| -rw-r--r-- | doc-jp/MANUAL.html | 12 | ||||
| -rw-r--r-- | doc-jp/README | 5 | ||||
| -rw-r--r-- | doc-jp/w3m.1 | 15 | ||||
| -rw-r--r-- | doc/MANUAL.html | 12 | ||||
| -rw-r--r-- | doc/README | 5 | ||||
| -rw-r--r-- | doc/README.img | 2 | ||||
| -rw-r--r-- | doc/w3m.1 | 2 | ||||
| -rw-r--r-- | entity.c | 2 | ||||
| -rw-r--r-- | file.c | 69 | ||||
| -rw-r--r-- | fm.h | 6 | ||||
| -rw-r--r-- | html.h | 7 | ||||
| -rw-r--r-- | image.c | 33 | ||||
| -rw-r--r-- | indep.c | 105 | ||||
| -rw-r--r-- | indep.h | 23 | ||||
| -rw-r--r-- | istream.c | 234 | ||||
| -rw-r--r-- | istream.h | 13 | ||||
| -rw-r--r-- | local.c | 20 | ||||
| -rw-r--r-- | main.c | 110 | ||||
| -rw-r--r-- | mimehead.c | 61 | ||||
| -rw-r--r-- | proto.h | 8 | ||||
| -rw-r--r-- | scripts/w3mman/w3mman2html.cgi.in | 8 | ||||
| -rw-r--r-- | table.h | 2 | ||||
| -rw-r--r-- | terms.c | 5 | ||||
| -rw-r--r-- | url.c | 39 | ||||
| -rw-r--r-- | w3mimg/Makefile.in | 6 | 
33 files changed, 1725 insertions, 871 deletions
| @@ -1,3 +1,192 @@ +2013-10-13  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update to 0.5.3+debian-12 + +	* doc-jp/MANUAL.html, doc-jp/w3m.1, doc/MANUAL.html, doc/w3m.1: +	Update document for the -s option change +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=75527 + +	* terms.c: Do not fail when LANG is not set +	Check whether the value of LC_ALL, LC_CTYPE or LANG is not NULL in +	check_cygwin_console(). +	Bug: https://sourceforge.net/p/w3m/patches/66/ + +2013-10-12  Tatsuya Kinoshita  <tats@debian.org> + +	* table.h: Bump MAXCOL to 256 +	Bug: https://sourceforge.net/p/w3m/feature-requests/24/ + +2013-10-12  Laurence Richert  <laurencerichert@yahoo.de> + +	* main.c, proto.h: vim/-perator like handling +	- half page scrolling +	- jumping to elements numbered by getLinkNumberStr() from Karsten +	  Schoelzel +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724028 + +2013-10-12  Tatsuya Kinoshita  <tats@debian.org> + +	* doc-jp/README, doc/README: +	Mention project page rather than unavailable mailing lists + +2013-10-09  Rafael Laboissiere  <rafael@laboissiere.net> + +	* doc/README.img: Fix typo +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725892 + +2013-08-12  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update to 0.5.3+debian-11+ + +	* ChangeLog: Update ChangeLog to use contributor's name + +2013-08-08  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update to 0.5.3+debian-11 + +2013-08-04  Tatsuya Kinoshita  <tats@debian.org> + +	* Str.c: Check length for Strchop() + +	* main.c: Fix potentially segfault of execdict() + +	* version.c.in: Update to 0.5.3+debian-10+ + +	* file.c: Fix segfault of loadGeneralFile() +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718612 + +2013-08-02  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update to 0.5.3+debian-10 + +2013-08-02  Piotr P. Karwasz <piotr.p@karwasz.org> + +	* scripts/w3mman/w3mman2html.cgi.in: +	Correct underline processing and more UTF-8 support for w3mman2html.cgi +	Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/680202> +	on 2010-11-23. + +2013-08-01  Hilko Bengen  <bengen@debian.org> + +	* entity.c: Ignore SOFT HYPHEN to prevent drawing hyphens everywhere +	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441934> +	on 2011-03-01. + +2013-08-01  Tatsuya Kinoshita  <tats@debian.org> + +	* doc-jp/README, doc/README: Update contact list in README +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696209 + +2013-07-30  Tatsuya Kinoshita  <tats@debian.org> + +	* config.guess, config.sub: +	Update config.guess and config.sub to supprot aarch64 +	Updated with Debian autotools-dev version 20130515.1. + +2013-07-30  Conrad J.C. Hughes  <debbugs@xrad.org> + +	* main.c: Sort anchors by sequence number in -dump +	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657666> +	on 2012-01-27. + +2013-07-30  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update to 0.5.3+debian-9+ + +2013-07-29  Tatsuya Kinoshita  <tats@debian.org> + +	* version.c.in: Update version to w3m/0.5.3+debian-9 + +	* version.c.in: Set CURRENT_VERSION to debian version + +2013-07-28  Tatsuya Kinoshita  <tats@debian.org> + +	* file.c: Fix segfault of process_button() + +2013-04-08  AIDA Shinra  <shinra@j10n.org> + +	* file.c: One more patch for siteconf from [w3m-dev 04464] + +	* anchor.c, config.h.in, display.c, doc-jp/README.siteconf: +	* doc/README.siteconf, file.c, fm.h, form.c, frame.c, func.c: +	* history.c, indep.c, indep.h, linein.c, main.c, map.c, menu.c: +	* po/ja.po, proto.h, rc.c, url.c: Support the siteconf feature +	Patch to support the siteconf feature, from [w3m-dev 04463] +	on 2012-06-27. + +2013-04-08  Hayaki Saito  <user@zuse.jp> + +	* keybind.c, main.c, proto.h, terms.c: +	Support SGR 1006 mouse reporting +	Patch to support SGR 1006 mouse reporting, from [w3m-dev 04466] +	on 2012-07-15. + +2012-05-19  Hilko Bengen  <bengen@debian.org> + +	* form.c: Assume "text" if an input type is unknown +	Patch from <http://bugs.debian.org/615843> on 2011-03-01. + +2012-05-19  Simon Ruderich  <simon@ruderich.org> + +	* Makefile.in: Use $(CPPFLAGS) with $(CPP) +	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665491> +	on 2012-03-24. + +2012-05-03  Miroslav Ć ulc  <fordfrog@gentoo.org> + +	* w3mimg/Makefile.in: Fix parallel make issue +	Patch from Gentoo +	<http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-parallel-make.patch?revision=1.1&view=markup> +	<https://bugs.gentoo.org/show_bug.cgi?id=353390> on 2011-02-01. + +2012-05-03  MATSUU Takuto  <matsuu@gentoo.org> + +	* main.c: Support Boehm GC 7.2 +	Patch from Gentoo +	<http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.2-gc72.patch?revision=1.1&view=markup> +	on 2009-12-13. + +2012-05-02  Reinhard Tartler  <siretart@tauware.de> + +	* istream.c, istream.h: +	Fix that struct file_handle conflicts with glibc 2.14 +	Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/935540> +	on 2012-02-19. + +2011-10-30  Colin Watson  <cjwatson@ubuntu.com> + +	* acinclude.m4, configure, w3mbookmark.c: +	Appease gcc -Werror=format-security. +	Patch from 0.5.3-3ubuntu1 on 2011-10-23. +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646321 + +2011-06-19  Martin Pitt  <martin.pitt@ubuntu.com> + +	* Makefile.in: +	Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5 +	Patch from 0.5.2-10ubuntu1 on 2010-12-03. +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=605761 + +2011-06-19  Fumitoshi UKAI  <ukai@debian.or.jp> + +	* main.c: +	Change the -s option to "squeeze multiple blank lines" for pager +	Change the -s option from "display charset Shift_JIS" to "squeeze +	multiple blank lines" to work as /usr/bin/pager.  In addition, the +	options -j and -e are disabled.  To specify the display charset, +	use -O{s|j|e} instead. +	Patch from [w3m-dev 01275] on 2000-10-26. +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=75527 + +2011-06-19  Hiroyuki Ito  <ZXB01226@nifty.com> + +	* file.c, fm.h, html.c, html.h, proto.h, table.c, tagtable.tab: +	Support the button element as defined in HTML 4.01 +	Patch from upstream, [w3m-dev 04411] on 2010-09-17, to support the +	button element.  It is discussed upstream and incomplete, but enough +	to login Launchpad. +	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=136810 +  2012-05-22  Tatsuya Kinoshita <tats@vega.ocn.ne.jp>  	* [w3m-dev 04451] w3m/entity.h should be removed when `make clean' diff --git a/Makefile.in b/Makefile.in index 339c95e..8fa799e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -199,7 +199,7 @@ dummy.o: entity.c  	$(CC) $(CFLAGS) -DDUMMY -c -o $@ $?  $(IMGDISPLAY): w3mimgdisplay.o $(ALIB) w3mimg/w3mimg.a -	$(IMGLINK) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) -lX11 $(IMGLDFLAGS) +	$(IMGLINK) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) $(IMGLDFLAGS)  w3mimgdisplay.o: w3mimgdisplay.c w3mimg/w3mimg.h  	$(CC) $(CFLAGS) $(IMGCFLAGS) -o $@ -c $(srcdir)/w3mimgdisplay.c @@ -250,7 +250,7 @@ install-po:  	 (cd $$subdir && $(MAKE) install); \  	done -all-scripts: +all-scripts: funcname.tab  	for dir in $(SCRIPTSUBDIRS);	\  	do	\  		(cd $$dir && $(MAKE) $(MAKE_ARGS)); \ @@ -278,8 +278,8 @@ void  Strchop(Str s)  {      STR_LENGTH_CHECK(s); -    while ((s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r') && -	   s->length > 0) { +    while (s->length > 0 && +	   (s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r')) {  	s->length--;      }      s->ptr[s->length] = '\0'; diff --git a/acinclude.m4 b/acinclude.m4 index 52c8874..48e0ff8 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -706,7 +706,7 @@ AC_DEFUN([AC_W3M_IMAGE],       AC_DEFINE(USE_GDKPIXBUF)       AC_DEFINE(USE_GTK2)       IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" -     IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" +     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"     elif test x"$have_gdkpixbuf" = xyes; then       AC_DEFINE(USE_W3MIMG_X11)       IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" diff --git a/config.guess b/config.guess index 51fab47..b79252d 100755 --- a/config.guess +++ b/config.guess @@ -1,13 +1,12 @@  #! /bin/sh  # Attempt to guess a canonical system name. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003 Free Software Foundation, Inc. +#   Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2013-06-10'  # This file is free software; you can redistribute it and/or modify it  # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or  # (at your option) any later version.  #  # This program is distributed in the hope that it will be useful, but @@ -16,24 +15,22 @@ timestamp='2004-03-12'  # General Public License for more details.  #  # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>.  #  # As a special exception to the GNU General Public License, if you  # distribute this file as part of a program that contains a  # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>.  Submit a context -# diff and a properly formatted ChangeLog entry. +# the same distribution terms that you use for the rest of that +# program.  This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner.  # -# This script attempts to guess a canonical system name similar to -# config.sub.  If it succeeds, it prints the system name on stdout, and -# exits with 0.  Otherwise, it exits with 1. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD  # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. +  me=`echo "$0" | sed -e 's,.*/,,'` @@ -53,8 +50,7 @@ version="\  GNU config.guess ($timestamp)  Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc.  This is free software; see the source for copying conditions.  There is NO  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -66,11 +62,11 @@ Try \`$me --help' for more information."  while test $# -gt 0 ; do    case $1 in      --time-stamp | --time* | -t ) -       echo "$timestamp" ; exit 0 ;; +       echo "$timestamp" ; exit ;;      --version | -v ) -       echo "$version" ; exit 0 ;; +       echo "$version" ; exit ;;      --help | --h* | -h ) -       echo "$usage"; exit 0 ;; +       echo "$usage"; exit ;;      -- )     # Stop option processing         shift; break ;;      - )	# Use stdin as input. @@ -104,7 +100,7 @@ set_cc_for_build='  trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;  trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;  : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||   { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||   { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||   { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -123,7 +119,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in  	;;   ,,*)   CC_FOR_BUILD=$CC ;;   ,*,*)  CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;'  # This is needed to find uname on a Pyramid OSx when run in the BSD universe.  # (ghazi@noc.rutgers.edu 1994-08-24) @@ -136,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown  UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown  UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) +	# If the system lacks a compiler, then just pick glibc. +	# We could probably try harder. +	LIBC=gnu + +	eval $set_cc_for_build +	cat <<-EOF > $dummy.c +	#include <features.h> +	#if defined(__UCLIBC__) +	LIBC=uclibc +	#elif defined(__dietlibc__) +	LIBC=dietlibc +	#else +	LIBC=gnu +	#endif +	EOF +	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +	;; +esac +  # Note: order is significant - the case branches are not exclusive.  case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in      *:NetBSD:*:*)  	# NetBSD (nbsd) targets should (where applicable) match one or -	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, +	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,  	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently  	# switched to ELF, *-*-netbsd* would select the old  	# object file format.  This provides both forward @@ -158,6 +175,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	    arm*) machine=arm-unknown ;;  	    sh3el) machine=shl-unknown ;;  	    sh3eb) machine=sh-unknown ;; +	    sh5el) machine=sh5le-unknown ;;  	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;  	esac  	# The Operating System including object format, if it has switched @@ -166,7 +184,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)  		eval $set_cc_for_build  		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -			| grep __ELF__ >/dev/null +			| grep -q __ELF__  		then  		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).  		    # Return netbsd for either.  FIX? @@ -176,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  		fi  		;;  	    *) -	        os=netbsd +		os=netbsd  		;;  	esac  	# The OS release @@ -196,71 +214,34 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	# contains redundant information, the shorter form:  	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.  	echo "${machine}-${os}${release}" -	exit 0 ;; -    amd64:OpenBSD:*:*) -	echo x86_64-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    amiga:OpenBSD:*:*) -	echo m68k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    arc:OpenBSD:*:*) -	echo mipsel-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    cats:OpenBSD:*:*) -	echo arm-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    hp300:OpenBSD:*:*) -	echo m68k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    mac68k:OpenBSD:*:*) -	echo m68k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    macppc:OpenBSD:*:*) -	echo powerpc-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    mvme68k:OpenBSD:*:*) -	echo m68k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    mvme88k:OpenBSD:*:*) -	echo m88k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    mvmeppc:OpenBSD:*:*) -	echo powerpc-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    pegasos:OpenBSD:*:*) -	echo powerpc-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    pmax:OpenBSD:*:*) -	echo mipsel-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    sgi:OpenBSD:*:*) -	echo mipseb-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    sun3:OpenBSD:*:*) -	echo m68k-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; -    wgrisc:OpenBSD:*:*) -	echo mipsel-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; +	exit ;; +    *:Bitrig:*:*) +	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` +	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} +	exit ;;      *:OpenBSD:*:*) -	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -	exit 0 ;; +	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` +	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +	exit ;;      *:ekkoBSD:*:*)  	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -	exit 0 ;; +	exit ;; +    *:SolidBSD:*:*) +	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} +	exit ;;      macppc:MirBSD:*:*) -	echo powerppc-unknown-mirbsd${UNAME_RELEASE} -	exit 0 ;; +	echo powerpc-unknown-mirbsd${UNAME_RELEASE} +	exit ;;      *:MirBSD:*:*)  	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      alpha:OSF1:*:*)  	case $UNAME_RELEASE in  	*4.0)  		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`  		;;  	*5.*) -	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` +		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`  		;;  	esac  	# According to Compaq, /usr/sbin/psrinfo has been available on @@ -306,40 +287,46 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	# A Xn.n version is an unreleased experimental baselevel.  	# 1.2 uses "1.2" for uname -r.  	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -	exit 0 ;; -    Alpha*:OpenVMS:*:*) -	echo alpha-hp-vms -	exit 0 ;; +	# Reset EXIT trap before exiting to avoid spurious non-zero exit code. +	exitcode=$? +	trap '' 0 +	exit $exitcode ;;      Alpha\ *:Windows_NT*:*)  	# How do we know it's Interix rather than the generic POSIX subsystem?  	# Should we change UNAME_MACHINE based on the output of uname instead  	# of the specific Alpha model?  	echo alpha-pc-interix -	exit 0 ;; +	exit ;;      21064:Windows_NT:50:3)  	echo alpha-dec-winnt3.5 -	exit 0 ;; +	exit ;;      Amiga*:UNIX_System_V:4.0:*)  	echo m68k-unknown-sysv4 -	exit 0;; +	exit ;;      *:[Aa]miga[Oo][Ss]:*:*)  	echo ${UNAME_MACHINE}-unknown-amigaos -	exit 0 ;; +	exit ;;      *:[Mm]orph[Oo][Ss]:*:*)  	echo ${UNAME_MACHINE}-unknown-morphos -	exit 0 ;; +	exit ;;      *:OS/390:*:*)  	echo i370-ibm-openedition -	exit 0 ;; +	exit ;; +    *:z/VM:*:*) +	echo s390-ibm-zvmoe +	exit ;;      *:OS400:*:*) -        echo powerpc-ibm-os400 -	exit 0 ;; +	echo powerpc-ibm-os400 +	exit ;;      arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)  	echo arm-acorn-riscix${UNAME_RELEASE} -	exit 0;; +	exit ;; +    arm*:riscos:*:*|arm*:RISCOS:*:*) +	echo arm-unknown-riscos +	exit ;;      SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)  	echo hppa1.1-hitachi-hiuxmpp -	exit 0;; +	exit ;;      Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)  	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.  	if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -347,32 +334,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	else  		echo pyramid-pyramid-bsd  	fi -	exit 0 ;; +	exit ;;      NILE*:*:*:dcosx)  	echo pyramid-pyramid-svr4 -	exit 0 ;; +	exit ;;      DRS?6000:unix:4.0:6*)  	echo sparc-icl-nx6 -	exit 0 ;; -    DRS?6000:UNIX_SV:4.2*:7*) +	exit ;; +    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)  	case `/usr/bin/uname -p` in -	    sparc) echo sparc-icl-nx7 && exit 0 ;; +	    sparc) echo sparc-icl-nx7; exit ;;  	esac ;; +    s390x:SunOS:*:*) +	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +	exit ;;      sun4H:SunOS:5.*:*)  	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit 0 ;; +	exit ;;      sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)  	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit 0 ;; -    i86pc:SunOS:5.*:*) -	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit 0 ;; +	exit ;; +    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) +	echo i386-pc-auroraux${UNAME_RELEASE} +	exit ;; +    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) +	eval $set_cc_for_build +	SUN_ARCH="i386" +	# If there is a compiler, see if it is configured for 64-bit objects. +	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does. +	# This test works for both compilers. +	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ +		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +		grep IS_64BIT_ARCH >/dev/null +	    then +		SUN_ARCH="x86_64" +	    fi +	fi +	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +	exit ;;      sun4*:SunOS:6*:*)  	# According to config.sub, this is the proper way to canonicalize  	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but  	# it's likely to be more like Solaris than SunOS4.  	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit 0 ;; +	exit ;;      sun4*:SunOS:*:*)  	case "`/usr/bin/arch -k`" in  	    Series*|S4*) @@ -381,10 +387,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	esac  	# Japanese Language versions have a version number like `4.1.3-JL'.  	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -	exit 0 ;; +	exit ;;      sun3*:SunOS:*:*)  	echo m68k-sun-sunos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      sun*:*:4.2BSD:*)  	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`  	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -396,10 +402,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  		echo sparc-sun-sunos${UNAME_RELEASE}  		;;  	esac -	exit 0 ;; +	exit ;;      aushp:SunOS:*:*)  	echo sparc-auspex-sunos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      # The situation for MiNT is a little confusing.  The machine name      # can be virtually everything (everything which is not      # "atarist" or "atariste" at least should have a processor @@ -409,41 +415,41 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in      # MiNT.  But MiNT is downward compatible to TOS, so this should      # be no problem.      atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} -	exit 0 ;; +	echo m68k-atari-mint${UNAME_RELEASE} +	exit ;;      atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)  	echo m68k-atari-mint${UNAME_RELEASE} -        exit 0 ;; +	exit ;;      *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} -	exit 0 ;; +	echo m68k-atari-mint${UNAME_RELEASE} +	exit ;;      milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -        echo m68k-milan-mint${UNAME_RELEASE} -        exit 0 ;; +	echo m68k-milan-mint${UNAME_RELEASE} +	exit ;;      hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -        echo m68k-hades-mint${UNAME_RELEASE} -        exit 0 ;; +	echo m68k-hades-mint${UNAME_RELEASE} +	exit ;;      *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -        echo m68k-unknown-mint${UNAME_RELEASE} -        exit 0 ;; +	echo m68k-unknown-mint${UNAME_RELEASE} +	exit ;;      m68k:machten:*:*)  	echo m68k-apple-machten${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      powerpc:machten:*:*)  	echo powerpc-apple-machten${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      RISC*:Mach:*:*)  	echo mips-dec-mach_bsd4.3 -	exit 0 ;; +	exit ;;      RISC*:ULTRIX:*:*)  	echo mips-dec-ultrix${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      VAX*:ULTRIX*:*:*)  	echo vax-dec-ultrix${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      2020:CLIX:*:* | 2430:CLIX:*:*)  	echo clipper-intergraph-clix${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      mips:*:*:UMIPS | mips:*:*:RISCos)  	eval $set_cc_for_build  	sed 's/^	//' << EOF >$dummy.c @@ -467,35 +473,36 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	  exit (-1);  	}  EOF -	$CC_FOR_BUILD -o $dummy $dummy.c \ -	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -	  && exit 0 +	$CC_FOR_BUILD -o $dummy $dummy.c && +	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && +	  SYSTEM_NAME=`$dummy $dummyarg` && +	    { echo "$SYSTEM_NAME"; exit; }  	echo mips-mips-riscos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      Motorola:PowerMAX_OS:*:*)  	echo powerpc-motorola-powermax -	exit 0 ;; +	exit ;;      Motorola:*:4.3:PL8-*)  	echo powerpc-harris-powermax -	exit 0 ;; +	exit ;;      Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)  	echo powerpc-harris-powermax -	exit 0 ;; +	exit ;;      Night_Hawk:Power_UNIX:*:*)  	echo powerpc-harris-powerunix -	exit 0 ;; +	exit ;;      m88k:CX/UX:7*:*)  	echo m88k-harris-cxux7 -	exit 0 ;; +	exit ;;      m88k:*:4*:R4*)  	echo m88k-motorola-sysv4 -	exit 0 ;; +	exit ;;      m88k:*:3*:R3*)  	echo m88k-motorola-sysv3 -	exit 0 ;; +	exit ;;      AViiON:dgux:*:*) -        # DG/UX returns AViiON for all architectures -        UNAME_PROCESSOR=`/usr/bin/uname -p` +	# DG/UX returns AViiON for all architectures +	UNAME_PROCESSOR=`/usr/bin/uname -p`  	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]  	then  	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -508,29 +515,29 @@ EOF  	else  	    echo i586-dg-dgux${UNAME_RELEASE}  	fi - 	exit 0 ;; +	exit ;;      M88*:DolphinOS:*:*)	# DolphinOS (SVR3)  	echo m88k-dolphin-sysv3 -	exit 0 ;; +	exit ;;      M88*:*:R3*:*)  	# Delta 88k system running SVR3  	echo m88k-motorola-sysv3 -	exit 0 ;; +	exit ;;      XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)  	echo m88k-tektronix-sysv3 -	exit 0 ;; +	exit ;;      Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)  	echo m68k-tektronix-bsd -	exit 0 ;; +	exit ;;      *:IRIX*:*:*)  	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -	exit 0 ;; +	exit ;;      ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id -	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX ' +	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id +	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '      i*86:AIX:*:*)  	echo i386-ibm-aix -	exit 0 ;; +	exit ;;      ia64:AIX:*:*)  	if [ -x /usr/bin/oslevel ] ; then  		IBM_REV=`/usr/bin/oslevel` @@ -538,7 +545,7 @@ EOF  		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}  	fi  	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -	exit 0 ;; +	exit ;;      *:AIX:2:3)  	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then  		eval $set_cc_for_build @@ -553,15 +560,19 @@ EOF  			exit(0);  			}  EOF -		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -		echo rs6000-ibm-aix3.2.5 +		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` +		then +			echo "$SYSTEM_NAME" +		else +			echo rs6000-ibm-aix3.2.5 +		fi  	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then  		echo rs6000-ibm-aix3.2.4  	else  		echo rs6000-ibm-aix3.2  	fi -	exit 0 ;; -    *:AIX:*:[45]) +	exit ;; +    *:AIX:*:[4567])  	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`  	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then  		IBM_ARCH=rs6000 @@ -574,28 +585,28 @@ EOF  		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}  	fi  	echo ${IBM_ARCH}-ibm-aix${IBM_REV} -	exit 0 ;; +	exit ;;      *:AIX:*:*)  	echo rs6000-ibm-aix -	exit 0 ;; +	exit ;;      ibmrt:4.4BSD:*|romp-ibm:BSD:*)  	echo romp-ibm-bsd4.4 -	exit 0 ;; +	exit ;;      ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and  	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to -	exit 0 ;;                           # report: romp-ibm BSD 4.3 +	exit ;;                             # report: romp-ibm BSD 4.3      *:BOSX:*:*)  	echo rs6000-bull-bosx -	exit 0 ;; +	exit ;;      DPX/2?00:B.O.S.:*:*)  	echo m68k-bull-sysv3 -	exit 0 ;; +	exit ;;      9000/[34]??:4.3bsd:1.*:*)  	echo m68k-hp-bsd -	exit 0 ;; +	exit ;;      hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)  	echo m68k-hp-bsd4.4 -	exit 0 ;; +	exit ;;      9000/[34678]??:HP-UX:*:*)  	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`  	case "${UNAME_MACHINE}" in @@ -604,52 +615,52 @@ EOF  	    9000/[678][0-9][0-9])  		if [ -x /usr/bin/getconf ]; then  		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -                    case "${sc_cpu_version}" in -                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -                      532)                      # CPU_PA_RISC2_0 -                        case "${sc_kernel_bits}" in -                          32) HP_ARCH="hppa2.0n" ;; -                          64) HP_ARCH="hppa2.0w" ;; +		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +		    case "${sc_cpu_version}" in +		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +		      532)                      # CPU_PA_RISC2_0 +			case "${sc_kernel_bits}" in +			  32) HP_ARCH="hppa2.0n" ;; +			  64) HP_ARCH="hppa2.0w" ;;  			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20 -                        esac ;; -                    esac +			esac ;; +		    esac  		fi  		if [ "${HP_ARCH}" = "" ]; then  		    eval $set_cc_for_build -		    sed 's/^              //' << EOF >$dummy.c +		    sed 's/^		//' << EOF >$dummy.c -              #define _HPUX_SOURCE -              #include <stdlib.h> -              #include <unistd.h> +		#define _HPUX_SOURCE +		#include <stdlib.h> +		#include <unistd.h> -              int main () -              { -              #if defined(_SC_KERNEL_BITS) -                  long bits = sysconf(_SC_KERNEL_BITS); -              #endif -                  long cpu  = sysconf (_SC_CPU_VERSION); +		int main () +		{ +		#if defined(_SC_KERNEL_BITS) +		    long bits = sysconf(_SC_KERNEL_BITS); +		#endif +		    long cpu  = sysconf (_SC_CPU_VERSION); -                  switch (cpu) -              	{ -              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -              	case CPU_PA_RISC2_0: -              #if defined(_SC_KERNEL_BITS) -              	    switch (bits) -              		{ -              		case 64: puts ("hppa2.0w"); break; -              		case 32: puts ("hppa2.0n"); break; -              		default: puts ("hppa2.0"); break; -              		} break; -              #else  /* !defined(_SC_KERNEL_BITS) */ -              	    puts ("hppa2.0"); break; -              #endif -              	default: puts ("hppa1.0"); break; -              	} -                  exit (0); -              } +		    switch (cpu) +			{ +			case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +			case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +			case CPU_PA_RISC2_0: +		#if defined(_SC_KERNEL_BITS) +			    switch (bits) +				{ +				case 64: puts ("hppa2.0w"); break; +				case 32: puts ("hppa2.0n"); break; +				default: puts ("hppa2.0"); break; +				} break; +		#else  /* !defined(_SC_KERNEL_BITS) */ +			    puts ("hppa2.0"); break; +		#endif +			default: puts ("hppa1.0"); break; +			} +		    exit (0); +		}  EOF  		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`  		    test -z "$HP_ARCH" && HP_ARCH=hppa @@ -657,9 +668,19 @@ EOF  	esac  	if [ ${HP_ARCH} = "hppa2.0w" ]  	then -	    # avoid double evaluation of $set_cc_for_build -	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null +	    eval $set_cc_for_build + +	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating +	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler +	    # generating 64-bit code.  GNU and HP use different nomenclature: +	    # +	    # $ CC_FOR_BUILD=cc ./config.guess +	    # => hppa2.0w-hp-hpux11.23 +	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess +	    # => hppa64-hp-hpux11.23 + +	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | +		grep -q __LP64__  	    then  		HP_ARCH="hppa2.0w"  	    else @@ -667,11 +688,11 @@ EOF  	    fi  	fi  	echo ${HP_ARCH}-hp-hpux${HPUX_REV} -	exit 0 ;; +	exit ;;      ia64:HP-UX:*:*)  	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`  	echo ia64-hp-hpux${HPUX_REV} -	exit 0 ;; +	exit ;;      3050*:HI-UX:*:*)  	eval $set_cc_for_build  	sed 's/^	//' << EOF >$dummy.c @@ -699,340 +720,345 @@ EOF  	  exit (0);  	}  EOF -	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 +	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && +		{ echo "$SYSTEM_NAME"; exit; }  	echo unknown-hitachi-hiuxwe2 -	exit 0 ;; +	exit ;;      9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )  	echo hppa1.1-hp-bsd -	exit 0 ;; +	exit ;;      9000/8??:4.3bsd:*:*)  	echo hppa1.0-hp-bsd -	exit 0 ;; +	exit ;;      *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)  	echo hppa1.0-hp-mpeix -	exit 0 ;; +	exit ;;      hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )  	echo hppa1.1-hp-osf -	exit 0 ;; +	exit ;;      hp8??:OSF1:*:*)  	echo hppa1.0-hp-osf -	exit 0 ;; +	exit ;;      i*86:OSF1:*:*)  	if [ -x /usr/sbin/sysversion ] ; then  	    echo ${UNAME_MACHINE}-unknown-osf1mk  	else  	    echo ${UNAME_MACHINE}-unknown-osf1  	fi -	exit 0 ;; +	exit ;;      parisc*:Lites*:*:*)  	echo hppa1.1-hp-lites -	exit 0 ;; +	exit ;;      C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)  	echo c1-convex-bsd -        exit 0 ;; +	exit ;;      C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)  	if getsysinfo -f scalar_acc  	then echo c32-convex-bsd  	else echo c2-convex-bsd  	fi -        exit 0 ;; +	exit ;;      C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)  	echo c34-convex-bsd -        exit 0 ;; +	exit ;;      C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)  	echo c38-convex-bsd -        exit 0 ;; +	exit ;;      C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)  	echo c4-convex-bsd -        exit 0 ;; +	exit ;;      CRAY*Y-MP:*:*:*)  	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	exit ;;      CRAY*[A-Z]90:*:*:*)  	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \  	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \  	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \  	      -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	exit ;;      CRAY*TS:*:*:*)  	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	exit ;;      CRAY*T3E:*:*:*)  	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	exit ;;      CRAY*SV1:*:*:*)  	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	exit ;;      *:UNICOS/mp:*:*) -	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit 0 ;; +	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +	exit ;;      F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)  	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -        exit 0 ;; +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +	exit ;;      5000:UNIX_System_V:4.*:*) -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -	exit 0 ;; +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +	exit ;;      i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)  	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      sparc*:BSD/OS:*:*)  	echo sparc-unknown-bsdi${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:BSD/OS:*:*)  	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:FreeBSD:*:*) -	# Determine whether the default compiler uses glibc. -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#include <features.h> -	#if __GLIBC__ >= 2 -	LIBC=gnu -	#else -	LIBC= -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -	# GNU/KFreeBSD systems have a "k" prefix to indicate we are using -	# FreeBSD's kernel, but not the complete OS. -	case ${LIBC} in gnu) kernel_only='k' ;; esac -	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -	exit 0 ;; +	UNAME_PROCESSOR=`/usr/bin/uname -p` +	case ${UNAME_PROCESSOR} in +	    amd64) +		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; +	    *) +		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; +	esac +	exit ;;      i*:CYGWIN*:*)  	echo ${UNAME_MACHINE}-pc-cygwin -	exit 0 ;; -    i*:MINGW*:*) +	exit ;; +    *:MINGW64*:*) +	echo ${UNAME_MACHINE}-pc-mingw64 +	exit ;; +    *:MINGW*:*)  	echo ${UNAME_MACHINE}-pc-mingw32 -	exit 0 ;; +	exit ;; +    i*:MSYS*:*) +	echo ${UNAME_MACHINE}-pc-msys +	exit ;; +    i*:windows32*:*) +	# uname -m includes "-pc" on this system. +	echo ${UNAME_MACHINE}-mingw32 +	exit ;;      i*:PW*:*)  	echo ${UNAME_MACHINE}-pc-pw32 -	exit 0 ;; -    x86:Interix*:[34]*) -	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -	exit 0 ;; +	exit ;; +    *:Interix*:*) +	case ${UNAME_MACHINE} in +	    x86) +		echo i586-pc-interix${UNAME_RELEASE} +		exit ;; +	    authenticamd | genuineintel | EM64T) +		echo x86_64-unknown-interix${UNAME_RELEASE} +		exit ;; +	    IA64) +		echo ia64-unknown-interix${UNAME_RELEASE} +		exit ;; +	esac ;;      [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)  	echo i${UNAME_MACHINE}-pc-mks -	exit 0 ;; +	exit ;; +    8664:Windows_NT:*) +	echo x86_64-pc-mks +	exit ;;      i*:Windows_NT*:* | Pentium*:Windows_NT*:*)  	# How do we know it's Interix rather than the generic POSIX subsystem?  	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we  	# UNAME_MACHINE based on the output of uname instead of i386?  	echo i586-pc-interix -	exit 0 ;; +	exit ;;      i*:UWIN*:*)  	echo ${UNAME_MACHINE}-pc-uwin -	exit 0 ;; +	exit ;; +    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) +	echo x86_64-unknown-cygwin +	exit ;;      p*:CYGWIN*:*)  	echo powerpcle-unknown-cygwin -	exit 0 ;; +	exit ;;      prep*:SunOS:5.*:*)  	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit 0 ;; +	exit ;;      *:GNU:*:*)  	# the GNU system -	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -	exit 0 ;; +	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +	exit ;;      *:GNU/*:*:*)  	# other systems with GNU libc and userland -	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} +	exit ;;      i*86:Minix:*:*)  	echo ${UNAME_MACHINE}-pc-minix -	exit 0 ;; +	exit ;; +    aarch64:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    aarch64_be:Linux:*:*) +	UNAME_MACHINE=aarch64_be +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    alpha:Linux:*:*) +	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +	  EV5)   UNAME_MACHINE=alphaev5 ;; +	  EV56)  UNAME_MACHINE=alphaev56 ;; +	  PCA56) UNAME_MACHINE=alphapca56 ;; +	  PCA57) UNAME_MACHINE=alphapca56 ;; +	  EV6)   UNAME_MACHINE=alphaev6 ;; +	  EV67)  UNAME_MACHINE=alphaev67 ;; +	  EV68*) UNAME_MACHINE=alphaev68 ;; +	esac +	objdump --private-headers /bin/sh | grep -q ld.so.1 +	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    arc:Linux:*:* | arceb:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      arm*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	eval $set_cc_for_build +	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ +	    | grep -q __ARM_EABI__ +	then +	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	else +	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ +		| grep -q __ARM_PCS_VFP +	    then +		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi +	    else +		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf +	    fi +	fi +	exit ;; +    avr32*:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      cris:Linux:*:*) -	echo cris-axis-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-axis-linux-${LIBC} +	exit ;; +    crisv32:Linux:*:*) +	echo ${UNAME_MACHINE}-axis-linux-${LIBC} +	exit ;; +    frv:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    hexagon:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    i*86:Linux:*:*) +	echo ${UNAME_MACHINE}-pc-linux-${LIBC} +	exit ;;      ia64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      m32r*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      m68*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; -    mips:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    mips:Linux:*:* | mips64:Linux:*:*)  	eval $set_cc_for_build  	sed 's/^	//' << EOF >$dummy.c  	#undef CPU -	#undef mips -	#undef mipsel +	#undef ${UNAME_MACHINE} +	#undef ${UNAME_MACHINE}el  	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -	CPU=mipsel +	CPU=${UNAME_MACHINE}el  	#else  	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -	CPU=mips +	CPU=${UNAME_MACHINE}  	#else  	CPU=  	#endif  	#endif  EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 +	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` +	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }  	;; -    mips64:Linux:*:*) -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#undef CPU -	#undef mips64 -	#undef mips64el -	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -	CPU=mips64el -	#else -	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -	CPU=mips64 -	#else -	CPU= -	#endif -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -	;; -    ppc:Linux:*:*) -	echo powerpc-unknown-linux-gnu -	exit 0 ;; -    ppc64:Linux:*:*) -	echo powerpc64-unknown-linux-gnu -	exit 0 ;; -    alpha:Linux:*:*) -	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -	  EV5)   UNAME_MACHINE=alphaev5 ;; -	  EV56)  UNAME_MACHINE=alphaev56 ;; -	  PCA56) UNAME_MACHINE=alphapca56 ;; -	  PCA57) UNAME_MACHINE=alphapca56 ;; -	  EV6)   UNAME_MACHINE=alphaev6 ;; -	  EV67)  UNAME_MACHINE=alphaev67 ;; -	  EV68*) UNAME_MACHINE=alphaev68 ;; -        esac -	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -	exit 0 ;; +    or1k:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    or32:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    padre:Linux:*:*) +	echo sparc-unknown-linux-${LIBC} +	exit ;; +    parisc64:Linux:*:* | hppa64:Linux:*:*) +	echo hppa64-unknown-linux-${LIBC} +	exit ;;      parisc:Linux:*:* | hppa:Linux:*:*)  	# Look for CPU level  	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -	  PA7*) echo hppa1.1-unknown-linux-gnu ;; -	  PA8*) echo hppa2.0-unknown-linux-gnu ;; -	  *)    echo hppa-unknown-linux-gnu ;; +	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; +	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; +	  *)    echo hppa-unknown-linux-${LIBC} ;;  	esac -	exit 0 ;; -    parisc64:Linux:*:* | hppa64:Linux:*:*) -	echo hppa64-unknown-linux-gnu -	exit 0 ;; +	exit ;; +    ppc64:Linux:*:*) +	echo powerpc64-unknown-linux-${LIBC} +	exit ;; +    ppc:Linux:*:*) +	echo powerpc-unknown-linux-${LIBC} +	exit ;; +    ppc64le:Linux:*:*) +	echo powerpc64le-unknown-linux-${LIBC} +	exit ;; +    ppcle:Linux:*:*) +	echo powerpcle-unknown-linux-${LIBC} +	exit ;;      s390:Linux:*:* | s390x:Linux:*:*) -	echo ${UNAME_MACHINE}-ibm-linux -	exit 0 ;; +	echo ${UNAME_MACHINE}-ibm-linux-${LIBC} +	exit ;;      sh64*:Linux:*:*) -    	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      sh*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      sparc:Linux:*:* | sparc64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit 0 ;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    tile*:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    vax:Linux:*:*) +	echo ${UNAME_MACHINE}-dec-linux-${LIBC} +	exit ;;      x86_64:Linux:*:*) -	echo x86_64-unknown-linux-gnu -	exit 0 ;; -    i*86:Linux:*:*) -	# The BFD linker knows what the default object file format is, so -	# first see if it will tell us. cd to the root directory to prevent -	# problems with other programs or directories called `ld' in the path. -	# Set LC_ALL=C to ensure ld outputs messages in English. -	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -			 | sed -ne '/supported targets:/!d -				    s/[ 	][ 	]*/ /g -				    s/.*supported targets: *// -				    s/ .*// -				    p'` -        case "$ld_supported_targets" in -	  elf32-i386) -		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -		;; -	  a.out-i386-linux) -		echo "${UNAME_MACHINE}-pc-linux-gnuaout" -		exit 0 ;; -	  coff-i386) -		echo "${UNAME_MACHINE}-pc-linux-gnucoff" -		exit 0 ;; -	  "") -		# Either a pre-BFD a.out linker (linux-gnuoldld) or -		# one that does not give us useful --help. -		echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -		exit 0 ;; -	esac -	# Determine whether the default compiler is a.out or elf -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#include <features.h> -	#ifdef __ELF__ -	# ifdef __GLIBC__ -	#  if __GLIBC__ >= 2 -	LIBC=gnu -	#  else -	LIBC=gnulibc1 -	#  endif -	# else -	LIBC=gnulibc1 -	# endif -	#else -	#ifdef __INTEL_COMPILER -	LIBC=gnu -	#else -	LIBC=gnuaout -	#endif -	#endif -	#ifdef __dietlibc__ -	LIBC=dietlibc -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -	;; +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    xtensa*:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      i*86:DYNIX/ptx:4*:*)  	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  	# earlier versions are messed up and put the nodename in both  	# sysname and nodename.  	echo i386-sequent-sysv4 -	exit 0 ;; +	exit ;;      i*86:UNIX_SV:4.2MP:2.*) -        # Unixware is an offshoot of SVR4, but it has its own version -        # number series starting with 2... -        # I am not positive that other SVR4 systems won't match this, +	# Unixware is an offshoot of SVR4, but it has its own version +	# number series starting with 2... +	# I am not positive that other SVR4 systems won't match this,  	# I just have to hope.  -- rms. -        # Use sysv4.2uw... so that sysv4* matches it. +	# Use sysv4.2uw... so that sysv4* matches it.  	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -	exit 0 ;; +	exit ;;      i*86:OS/2:*:*)  	# If we were able to find `uname', then EMX Unix compatibility  	# is probably installed.  	echo ${UNAME_MACHINE}-pc-os2-emx -	exit 0 ;; +	exit ;;      i*86:XTS-300:*:STOP)  	echo ${UNAME_MACHINE}-unknown-stop -	exit 0 ;; +	exit ;;      i*86:atheos:*:*)  	echo ${UNAME_MACHINE}-unknown-atheos -	exit 0 ;; -	i*86:syllable:*:*) +	exit ;; +    i*86:syllable:*:*)  	echo ${UNAME_MACHINE}-pc-syllable -	exit 0 ;; -    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) +	exit ;; +    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)  	echo i386-unknown-lynxos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      i*86:*DOS:*:*)  	echo ${UNAME_MACHINE}-pc-msdosdjgpp -	exit 0 ;; +	exit ;;      i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)  	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`  	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -1040,15 +1066,16 @@ EOF  	else  		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}  	fi -	exit 0 ;; -    i*86:*:5:[78]*) +	exit ;; +    i*86:*:5:[678]*) +	# UnixWare 7.x, OpenUNIX and OpenServer 6.  	case `/bin/uname -X | grep "^Machine"` in  	    *486*)	     UNAME_MACHINE=i486 ;;  	    *Pentium)	     UNAME_MACHINE=i586 ;;  	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;  	esac  	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -	exit 0 ;; +	exit ;;      i*86:*:3.2:*)  	if test -f /usr/options/cb.name; then  		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` @@ -1066,73 +1093,86 @@ EOF  	else  		echo ${UNAME_MACHINE}-pc-sysv32  	fi -	exit 0 ;; +	exit ;;      pc:*:*:*)  	# Left here for compatibility: -        # uname -m prints for DJGPP always 'pc', but it prints nothing about -        # the processor, so we play safe by assuming i386. -	echo i386-pc-msdosdjgpp -        exit 0 ;; +	# uname -m prints for DJGPP always 'pc', but it prints nothing about +	# the processor, so we play safe by assuming i586. +	# Note: whatever this is, it MUST be the same as what config.sub +	# prints for the "djgpp" host, or else GDB configury will decide that +	# this is a cross-build. +	echo i586-pc-msdosdjgpp +	exit ;;      Intel:Mach:3*:*)  	echo i386-pc-mach3 -	exit 0 ;; +	exit ;;      paragon:*:*:*)  	echo i860-intel-osf1 -	exit 0 ;; +	exit ;;      i860:*:4.*:*) # i860-SVR4  	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then  	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4  	else # Add other i860-SVR4 vendors below as they are discovered.  	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4  	fi -	exit 0 ;; +	exit ;;      mini*:CTIX:SYS*5:*)  	# "miniframe"  	echo m68010-convergent-sysv -	exit 0 ;; +	exit ;;      mc68k:UNIX:SYSTEM5:3.51m)  	echo m68k-convergent-sysv -	exit 0 ;; +	exit ;;      M680?0:D-NIX:5.3:*)  	echo m68k-diab-dnix -	exit 0 ;; -    M68*:*:R3V[567]*:*) -	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -    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) +	exit ;; +    M68*:*:R3V[5678]*:*) +	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; +    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)  	OS_REL=''  	test -r /etc/.relid \  	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`  	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0 +	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }  	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; +	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;      3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -          && echo i486-ncr-sysv4 && exit 0 ;; +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +	  && { echo i486-ncr-sysv4; exit; } ;; +    NCR*:*:4.2:* | MPRAS*:*:4.2:*) +	OS_REL='.3' +	test -r /etc/.relid \ +	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; } +	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ +	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } +	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ +	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;      m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)  	echo m68k-unknown-lynxos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      mc68030:UNIX_System_V:4.*:*)  	echo m68k-atari-sysv4 -	exit 0 ;; +	exit ;;      TSUNAMI:LynxOS:2.*:*)  	echo sparc-unknown-lynxos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      rs6000:LynxOS:2.*:*)  	echo rs6000-unknown-lynxos${UNAME_RELEASE} -	exit 0 ;; -    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) +	exit ;; +    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)  	echo powerpc-unknown-lynxos${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      SM[BE]S:UNIX_SV:*:*)  	echo mips-dde-sysv${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      RM*:ReliantUNIX-*:*:*)  	echo mips-sni-sysv4 -	exit 0 ;; +	exit ;;      RM*:SINIX-*:*:*)  	echo mips-sni-sysv4 -	exit 0 ;; +	exit ;;      *:SINIX-*:*:*)  	if uname -p 2>/dev/null >/dev/null ; then  		UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1140,68 +1180,99 @@ EOF  	else  		echo ns32k-sni-sysv  	fi -	exit 0 ;; -    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -                      # says <Richard.M.Bartel@ccMail.Census.GOV> -        echo i586-unisys-sysv4 -        exit 0 ;; +	exit ;; +    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort +			# says <Richard.M.Bartel@ccMail.Census.GOV> +	echo i586-unisys-sysv4 +	exit ;;      *:UNIX_System_V:4*:FTX*)  	# From Gerald Hewes <hewes@openmarket.com>.  	# How about differentiating between stratus architectures? -djm  	echo hppa1.1-stratus-sysv4 -	exit 0 ;; +	exit ;;      *:*:*:FTX*)  	# From seanf@swdc.stratus.com.  	echo i860-stratus-sysv4 -	exit 0 ;; +	exit ;; +    i*86:VOS:*:*) +	# From Paul.Green@stratus.com. +	echo ${UNAME_MACHINE}-stratus-vos +	exit ;;      *:VOS:*:*)  	# From Paul.Green@stratus.com.  	echo hppa1.1-stratus-vos -	exit 0 ;; +	exit ;;      mc68*:A/UX:*:*)  	echo m68k-apple-aux${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      news*:NEWS-OS:6*:*)  	echo mips-sony-newsos6 -	exit 0 ;; +	exit ;;      R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)  	if [ -d /usr/nec ]; then -	        echo mips-nec-sysv${UNAME_RELEASE} +		echo mips-nec-sysv${UNAME_RELEASE}  	else -	        echo mips-unknown-sysv${UNAME_RELEASE} +		echo mips-unknown-sysv${UNAME_RELEASE}  	fi -        exit 0 ;; +	exit ;;      BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.  	echo powerpc-be-beos -	exit 0 ;; +	exit ;;      BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.  	echo powerpc-apple-beos -	exit 0 ;; +	exit ;;      BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.  	echo i586-pc-beos -	exit 0 ;; +	exit ;; +    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible. +	echo i586-pc-haiku +	exit ;; +    x86_64:Haiku:*:*) +	echo x86_64-unknown-haiku +	exit ;;      SX-4:SUPER-UX:*:*)  	echo sx4-nec-superux${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      SX-5:SUPER-UX:*:*)  	echo sx5-nec-superux${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      SX-6:SUPER-UX:*:*)  	echo sx6-nec-superux${UNAME_RELEASE} -	exit 0 ;; +	exit ;; +    SX-7:SUPER-UX:*:*) +	echo sx7-nec-superux${UNAME_RELEASE} +	exit ;; +    SX-8:SUPER-UX:*:*) +	echo sx8-nec-superux${UNAME_RELEASE} +	exit ;; +    SX-8R:SUPER-UX:*:*) +	echo sx8r-nec-superux${UNAME_RELEASE} +	exit ;;      Power*:Rhapsody:*:*)  	echo powerpc-apple-rhapsody${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:Rhapsody:*:*)  	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:Darwin:*:*) -	case `uname -p` in -	    *86) UNAME_PROCESSOR=i686 ;; -	    powerpc) UNAME_PROCESSOR=powerpc ;; -	esac +	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown +	eval $set_cc_for_build +	if test "$UNAME_PROCESSOR" = unknown ; then +	    UNAME_PROCESSOR=powerpc +	fi +	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +		grep IS_64BIT_ARCH >/dev/null +	    then +		case $UNAME_PROCESSOR in +		    i386) UNAME_PROCESSOR=x86_64 ;; +		    powerpc) UNAME_PROCESSOR=powerpc64 ;; +		esac +	    fi +	fi  	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:procnto*:*:* | *:QNX:[0123456789]*:*)  	UNAME_PROCESSOR=`uname -p`  	if test "$UNAME_PROCESSOR" = "x86"; then @@ -1209,22 +1280,28 @@ EOF  		UNAME_MACHINE=pc  	fi  	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:QNX:*:4*)  	echo i386-pc-qnx -	exit 0 ;; +	exit ;; +    NEO-?:NONSTOP_KERNEL:*:*) +	echo neo-tandem-nsk${UNAME_RELEASE} +	exit ;; +    NSE-*:NONSTOP_KERNEL:*:*) +	echo nse-tandem-nsk${UNAME_RELEASE} +	exit ;;      NSR-?:NONSTOP_KERNEL:*:*)  	echo nsr-tandem-nsk${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:NonStop-UX:*:*)  	echo mips-compaq-nonstopux -	exit 0 ;; +	exit ;;      BS2000:POSIX*:*:*)  	echo bs2000-siemens-sysv -	exit 0 ;; +	exit ;;      DS/*:UNIX_System_V:*:*)  	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -	exit 0 ;; +	exit ;;      *:Plan9:*:*)  	# "uname -m" is not consistent, so use $cputype instead. 386  	# is converted to i386 for consistency with other x86 @@ -1235,36 +1312,55 @@ EOF  	    UNAME_MACHINE="$cputype"  	fi  	echo ${UNAME_MACHINE}-unknown-plan9 -	exit 0 ;; +	exit ;;      *:TOPS-10:*:*)  	echo pdp10-unknown-tops10 -	exit 0 ;; +	exit ;;      *:TENEX:*:*)  	echo pdp10-unknown-tenex -	exit 0 ;; +	exit ;;      KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)  	echo pdp10-dec-tops20 -	exit 0 ;; +	exit ;;      XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)  	echo pdp10-xkl-tops20 -	exit 0 ;; +	exit ;;      *:TOPS-20:*:*)  	echo pdp10-unknown-tops20 -	exit 0 ;; +	exit ;;      *:ITS:*:*)  	echo pdp10-unknown-its -	exit 0 ;; +	exit ;;      SEI:*:*:SEIUX) -        echo mips-sei-seiux${UNAME_RELEASE} -	exit 0 ;; +	echo mips-sei-seiux${UNAME_RELEASE} +	exit ;;      *:DragonFly:*:*)  	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -	exit 0 ;; +	exit ;; +    *:*VMS:*:*) +	UNAME_MACHINE=`(uname -p) 2>/dev/null` +	case "${UNAME_MACHINE}" in +	    A*) echo alpha-dec-vms ; exit ;; +	    I*) echo ia64-dec-vms ; exit ;; +	    V*) echo vax-dec-vms ; exit ;; +	esac ;; +    *:XENIX:*:SysV) +	echo i386-pc-xenix +	exit ;; +    i*86:skyos:*:*) +	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' +	exit ;; +    i*86:rdos:*:*) +	echo ${UNAME_MACHINE}-pc-rdos +	exit ;; +    i*86:AROS:*:*) +	echo ${UNAME_MACHINE}-pc-aros +	exit ;; +    x86_64:VMkernel:*:*) +	echo ${UNAME_MACHINE}-unknown-esx +	exit ;;  esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -  eval $set_cc_for_build  cat >$dummy.c <<EOF  #ifdef _SEQUENT_ @@ -1282,16 +1378,16 @@ main ()  #include <sys/param.h>    printf ("m68k-sony-newsos%s\n",  #ifdef NEWSOS4 -          "4" +	"4"  #else -	  "" +	""  #endif -         ); exit (0); +	); exit (0);  #endif  #endif  #if defined (__arm) && defined (__acorn) && defined (__unix) -  printf ("arm-acorn-riscix"); exit (0); +  printf ("arm-acorn-riscix\n"); exit (0);  #endif  #if defined (hp300) && !defined (hpux) @@ -1380,11 +1476,12 @@ main ()  }  EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && +	{ echo "$SYSTEM_NAME"; exit; }  # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }  # Convex versions that predate uname can use getsysinfo(1) @@ -1393,22 +1490,22 @@ then      case `getsysinfo -f cpu_type` in      c1*)  	echo c1-convex-bsd -	exit 0 ;; +	exit ;;      c2*)  	if getsysinfo -f scalar_acc  	then echo c32-convex-bsd  	else echo c2-convex-bsd  	fi -	exit 0 ;; +	exit ;;      c34*)  	echo c34-convex-bsd -	exit 0 ;; +	exit ;;      c38*)  	echo c38-convex-bsd -	exit 0 ;; +	exit ;;      c4*)  	echo c4-convex-bsd -	exit 0 ;; +	exit ;;      esac  fi @@ -1419,7 +1516,9 @@ This script, last modified $timestamp, has failed to recognize  the operating system you are using. It is advised that you  download the most up to date version of the config scripts from -    ftp://ftp.gnu.org/pub/gnu/config/ +  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and +  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD  If the version you run ($0) is already up to date, please  send the following data and any information you think might be diff --git a/config.h.in b/config.h.in index 59997b4..a4110ea 100644 --- a/config.h.in +++ b/config.h.in @@ -210,6 +210,10 @@ typedef RETSIGTYPE MySignalHandler;  #define SUPPORT_WIN9X_CONSOLE_MBCS 1  #endif +#if defined(__CYGWIN__) && defined(__x86_64__) +#define DONT_CALL_GC_AFTER_FORK +#endif +  #if defined(__DJGPP__)  #define DEFAULT_TERM	"dosansi"  #else @@ -1,42 +1,40 @@  #! /bin/sh  # Configuration validation subroutine script. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003 Free Software Foundation, Inc. +#   Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2013-08-10' -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine.  It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or  # (at your option) any later version.  # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +# General Public License for more details.  #  # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# along with this program; if not, see <http://www.gnu.org/licenses/>. +#  # As a special exception to the GNU General Public License, if you  # distribute this file as part of a program that contains a  # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program.  This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to <config-patches@gnu.org>.  Submit a context -# diff and a properly formatted ChangeLog entry. + +# Please send patches with a ChangeLog entry to config-patches@gnu.org.  #  # Configuration subroutine to validate and canonicalize a configuration type.  # Supply the specified configuration type as an argument.  # If it is invalid, we print an error message on stderr and exit with code 1.  # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +  # This file is supposed to be the same for all GNU packages  # and recognize all the CPU types, system types and aliases  # that are meaningful with *any* GNU software. @@ -70,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."  version="\  GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc.  This is free software; see the source for copying conditions.  There is NO  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -83,11 +80,11 @@ Try \`$me --help' for more information."  while test $# -gt 0 ; do    case $1 in      --time-stamp | --time* | -t ) -       echo "$timestamp" ; exit 0 ;; +       echo "$timestamp" ; exit ;;      --version | -v ) -       echo "$version" ; exit 0 ;; +       echo "$version" ; exit ;;      --help | --h* | -h ) -       echo "$usage"; exit 0 ;; +       echo "$usage"; exit ;;      -- )     # Stop option processing         shift; break ;;      - )	# Use stdin as input. @@ -99,7 +96,7 @@ while test $# -gt 0 ; do      *local*)         # First pass through any local machine types.         echo $1 -       exit 0;; +       exit ;;      * )         break ;; @@ -118,11 +115,18 @@ esac  # Here we must recognize all the valid KERNEL-OS combinations.  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`  case $maybe_os in -  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ -  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) +  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +  knetbsd*-gnu* | netbsd*-gnu* | \ +  kopensolaris*-gnu* | \ +  storm-chaos* | os2-emx* | rtmk-nova*)      os=-$maybe_os      basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`      ;; +  android-linux) +    os=-linux-android +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +    ;;    *)      basic_machine=`echo $1 | sed 's/-[^-]*$//'`      if [ $basic_machine != $1 ] @@ -145,10 +149,13 @@ case $os in  	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\  	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \  	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -	-apple | -axis) +	-apple | -axis | -knuth | -cray | -microblaze*)  		os=  		basic_machine=$1  		;; +	-bluegene*) +		os=-cnk +		;;  	-sim | -cisco | -oki | -wec | -winbond)  		os=  		basic_machine=$1 @@ -163,13 +170,17 @@ case $os in  		os=-chorusos  		basic_machine=$1  		;; - 	-chorusrdb) - 		os=-chorusrdb +	-chorusrdb) +		os=-chorusrdb  		basic_machine=$1 - 		;; +		;;  	-hiux*)  		os=-hiuxwe2  		;; +	-sco6) +		os=-sco5v6 +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +		;;  	-sco5)  		os=-sco3.2v5  		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -186,6 +197,10 @@ case $os in  		# Don't forget version if it is 3.2v4 or newer.  		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`  		;; +	-sco5v6*) +		# Don't forget version if it is 3.2v4 or newer. +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +		;;  	-sco*)  		os=-sco3.2v2  		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -203,6 +218,12 @@ case $os in  	-isc*)  		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`  		;; +	-lynx*178) +		os=-lynxos178 +		;; +	-lynx*5) +		os=-lynxos5 +		;;  	-lynx*)  		os=-lynxos  		;; @@ -227,57 +248,106 @@ case $basic_machine in  	# Some are omitted here because they have special meanings below.  	1750a | 580 \  	| a29k \ +	| aarch64 | aarch64_be \  	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \  	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \  	| am33_2.0 \ -	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -	| c4x | clipper \ +	| arc | arceb \ +	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +	| avr | avr32 \ +	| be32 | be64 \ +	| bfin \ +	| c4x | c8051 | clipper \  	| d10v | d30v | dlx | dsp16xx \ -	| fr30 | frv \ +	| epiphany \ +	| fido | fr30 | frv \  	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +	| hexagon \  	| i370 | i860 | i960 | ia64 \  	| ip2k | iq2000 \ -	| m32r | m32rle | m68000 | m68k | m88k | mcore \ +	| le32 | le64 \ +	| lm32 \ +	| m32c | m32r | m32rle | m68000 | m68k | m88k \ +	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \  	| mips | mipsbe | mipseb | mipsel | mipsle \  	| mips16 \  	| mips64 | mips64el \ -	| mips64vr | mips64vrel \ +	| mips64octeon | mips64octeonel \  	| mips64orion | mips64orionel \ +	| mips64r5900 | mips64r5900el \ +	| mips64vr | mips64vrel \  	| mips64vr4100 | mips64vr4100el \  	| mips64vr4300 | mips64vr4300el \  	| mips64vr5000 | mips64vr5000el \ +	| mips64vr5900 | mips64vr5900el \  	| mipsisa32 | mipsisa32el \  	| mipsisa32r2 | mipsisa32r2el \  	| mipsisa64 | mipsisa64el \  	| mipsisa64r2 | mipsisa64r2el \  	| mipsisa64sb1 | mipsisa64sb1el \  	| mipsisa64sr71k | mipsisa64sr71kel \ +	| mipsr5900 | mipsr5900el \  	| mipstx39 | mipstx39el \  	| mn10200 | mn10300 \ +	| moxie \ +	| mt \  	| msp430 \ +	| nds32 | nds32le | nds32be \ +	| nios | nios2 | nios2eb | nios2el \  	| ns16k | ns32k \ -	| openrisc | or32 \ +	| open8 \ +	| or1k | or32 \  	| pdp10 | pdp11 | pj | pjl \ -	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ +	| powerpc | powerpc64 | powerpc64le | powerpcle \  	| pyramid \ -	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ +	| rl78 | rx \ +	| score \ +	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \  	| sh64 | sh64le \ -	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ -	| strongarm \ -	| tahoe | thumb | tic4x | tic80 | tron \ -	| v850 | v850e \ +	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +	| spu \ +	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +	| ubicom32 \ +	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \  	| we32k \ -	| x86 | xscale | xstormy16 | xtensa \ -	| z8k) +	| x86 | xc16x | xstormy16 | xtensa \ +	| z8k | z80)  		basic_machine=$basic_machine-unknown  		;; -	m6811 | m68hc11 | m6812 | m68hc12) -		# Motorola 68HC11/12. +	c54x) +		basic_machine=tic54x-unknown +		;; +	c55x) +		basic_machine=tic55x-unknown +		;; +	c6x) +		basic_machine=tic6x-unknown +		;; +	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)  		basic_machine=$basic_machine-unknown  		os=-none  		;;  	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)  		;; +	ms1) +		basic_machine=mt-unknown +		;; + +	strongarm | thumb | xscale) +		basic_machine=arm-unknown +		;; +	xgate) +		basic_machine=$basic_machine-unknown +		os=-none +		;; +	xscaleeb) +		basic_machine=armeb-unknown +		;; + +	xscaleel) +		basic_machine=armel-unknown +		;;  	# We use `pc' rather than `unknown'  	# because (1) that's what they normally are, and @@ -293,59 +363,82 @@ case $basic_machine in  	# Recognize the basic CPU types with company name.  	580-* \  	| a29k-* \ +	| aarch64-* | aarch64_be-* \  	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \  	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \  	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \ -	| avr-* \ -	| bs2000-* \ -	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -	| clipper-* | cydra-* \ +	| avr-* | avr32-* \ +	| be32-* | be64-* \ +	| bfin-* | bs2000-* \ +	| c[123]* | c30-* | [cjt]90-* | c4x-* \ +	| c8051-* | clipper-* | craynv-* | cydra-* \  	| d10v-* | d30v-* | dlx-* \  	| elxsi-* \ -	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ +	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \  	| h8300-* | h8500-* \  	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +	| hexagon-* \  	| i*86-* | i860-* | i960-* | ia64-* \  	| ip2k-* | iq2000-* \ -	| m32r-* | m32rle-* \ +	| le32-* | le64-* \ +	| lm32-* \ +	| m32c-* | m32r-* | m32rle-* \  	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -	| m88110-* | m88k-* | mcore-* \ +	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +	| microblaze-* | microblazeel-* \  	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \  	| mips16-* \  	| mips64-* | mips64el-* \ -	| mips64vr-* | mips64vrel-* \ +	| mips64octeon-* | mips64octeonel-* \  	| mips64orion-* | mips64orionel-* \ +	| mips64r5900-* | mips64r5900el-* \ +	| mips64vr-* | mips64vrel-* \  	| mips64vr4100-* | mips64vr4100el-* \  	| mips64vr4300-* | mips64vr4300el-* \  	| mips64vr5000-* | mips64vr5000el-* \ +	| mips64vr5900-* | mips64vr5900el-* \  	| mipsisa32-* | mipsisa32el-* \  	| mipsisa32r2-* | mipsisa32r2el-* \  	| mipsisa64-* | mipsisa64el-* \  	| mipsisa64r2-* | mipsisa64r2el-* \  	| mipsisa64sb1-* | mipsisa64sb1el-* \  	| mipsisa64sr71k-* | mipsisa64sr71kel-* \ +	| mipsr5900-* | mipsr5900el-* \  	| mipstx39-* | mipstx39el-* \ +	| mmix-* \ +	| mt-* \  	| msp430-* \ -	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ +	| nds32-* | nds32le-* | nds32be-* \ +	| nios-* | nios2-* | nios2eb-* | nios2el-* \ +	| none-* | np1-* | ns16k-* | ns32k-* \ +	| open8-* \  	| orion-* \  	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ +	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \  	| pyramid-* \ -	| romp-* | rs6000-* \ -	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ +	| rl78-* | romp-* | rs6000-* | rx-* \ +	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \  	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -	| tahoe-* | thumb-* \ +	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +	| sparclite-* \ +	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +	| tahoe-* \  	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +	| tile*-* \  	| tron-* \ -	| v850-* | v850e-* | vax-* \ +	| ubicom32-* \ +	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +	| vax-* \  	| we32k-* \ -	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -	| xtensa-* \ +	| x86-* | x86_64-* | xc16x-* | xps100-* \ +	| xstormy16-* | xtensa*-* \  	| ymp-* \ -	| z8k-*) +	| z8k-* | z80-*) +		;; +	# Recognize the basic CPU types without company name, with glob match. +	xtensa*) +		basic_machine=$basic_machine-unknown  		;;  	# Recognize the various machine names and aliases which stand  	# for a CPU type and a company and sometimes even an OS. @@ -363,7 +456,7 @@ case $basic_machine in  		basic_machine=a29k-amd  		os=-udi  		;; -    	abacus) +	abacus)  		basic_machine=abacus-unknown  		;;  	adobe68k) @@ -409,6 +502,10 @@ case $basic_machine in  		basic_machine=m68k-apollo  		os=-bsd  		;; +	aros) +		basic_machine=i386-pc +		os=-aros +		;;  	aux)  		basic_machine=m68k-apple  		os=-aux @@ -417,10 +514,35 @@ case $basic_machine in  		basic_machine=ns32k-sequent  		os=-dynix  		;; +	blackfin) +		basic_machine=bfin-unknown +		os=-linux +		;; +	blackfin-*) +		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +		os=-linux +		;; +	bluegene*) +		basic_machine=powerpc-ibm +		os=-cnk +		;; +	c54x-*) +		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;; +	c55x-*) +		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;; +	c6x-*) +		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;;  	c90)  		basic_machine=c90-cray  		os=-unicos  		;; +	cegcc) +		basic_machine=arm-unknown +		os=-cegcc +		;;  	convex-c1)  		basic_machine=c1-convex  		os=-bsd @@ -445,13 +567,20 @@ case $basic_machine in  		basic_machine=j90-cray  		os=-unicos  		;; -	cr16c) -		basic_machine=cr16c-unknown +	craynv) +		basic_machine=craynv-cray +		os=-unicosmp +		;; +	cr16 | cr16-*) +		basic_machine=cr16-unknown  		os=-elf  		;;  	crds | unos)  		basic_machine=m68k-crds  		;; +	crisv32 | crisv32-* | etraxfs*) +		basic_machine=crisv32-axis +		;;  	cris | cris-* | etrax*)  		basic_machine=cris-axis  		;; @@ -481,6 +610,14 @@ case $basic_machine in  		basic_machine=m88k-motorola  		os=-sysv3  		;; +	dicos) +		basic_machine=i686-pc +		os=-dicos +		;; +	djgpp) +		basic_machine=i586-pc +		os=-msdosdjgpp +		;;  	dpx20 | dpx20-*)  		basic_machine=rs6000-bull  		os=-bosx @@ -592,7 +729,6 @@ case $basic_machine in  	i370-ibm* | ibm*)  		basic_machine=i370-ibm  		;; -# I'm not sure what "Sysv32" means.  Should this be sysv3.2?  	i*86v32)  		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`  		os=-sysv32 @@ -631,6 +767,14 @@ case $basic_machine in  		basic_machine=m68k-isi  		os=-sysv  		;; +	m68knommu) +		basic_machine=m68k-unknown +		os=-linux +		;; +	m68knommu-*) +		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +		os=-linux +		;;  	m88k-omron*)  		basic_machine=m88k-omron  		;; @@ -642,10 +786,21 @@ case $basic_machine in  		basic_machine=ns32k-utek  		os=-sysv  		;; +	microblaze*) +		basic_machine=microblaze-xilinx +		;; +	mingw64) +		basic_machine=x86_64-pc +		os=-mingw64 +		;;  	mingw32) -		basic_machine=i386-pc +		basic_machine=i686-pc  		os=-mingw32  		;; +	mingw32ce) +		basic_machine=arm-unknown +		os=-mingw32ce +		;;  	miniframe)  		basic_machine=m68000-convergent  		;; @@ -659,10 +814,6 @@ case $basic_machine in  	mips3*)  		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown  		;; -	mmix*) -		basic_machine=mmix-knuth -		os=-mmixware -		;;  	monitor)  		basic_machine=m68k-rom68k  		os=-coff @@ -675,10 +826,21 @@ case $basic_machine in  		basic_machine=i386-pc  		os=-msdos  		;; +	ms1-*) +		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` +		;; +	msys) +		basic_machine=i686-pc +		os=-msys +		;;  	mvs)  		basic_machine=i370-ibm  		os=-mvs  		;; +	nacl) +		basic_machine=le32-unknown +		os=-nacl +		;;  	ncr3000)  		basic_machine=i486-ncr  		os=-sysv4 @@ -743,9 +905,11 @@ case $basic_machine in  	np1)  		basic_machine=np1-gould  		;; -	nv1) -		basic_machine=nv1-cray -		os=-unicosmp +	neo-tandem) +		basic_machine=neo-tandem +		;; +	nse-tandem) +		basic_machine=nse-tandem  		;;  	nsr-tandem)  		basic_machine=nsr-tandem @@ -754,9 +918,8 @@ case $basic_machine in  		basic_machine=hppa1.1-oki  		os=-proelf  		;; -	or32 | or32-*) +	openrisc | openrisc-*)  		basic_machine=or32-unknown -		os=-coff  		;;  	os400)  		basic_machine=powerpc-ibm @@ -778,6 +941,14 @@ case $basic_machine in  		basic_machine=i860-intel  		os=-osf  		;; +	parisc) +		basic_machine=hppa-unknown +		os=-linux +		;; +	parisc-*) +		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +		os=-linux +		;;  	pbd)  		basic_machine=sparc-tti  		;; @@ -787,6 +958,12 @@ case $basic_machine in  	pc532 | pc532-*)  		basic_machine=ns32k-pc532  		;; +	pc98) +		basic_machine=i386-pc +		;; +	pc98-*) +		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +		;;  	pentium | p5 | k5 | k6 | nexgen | viac3)  		basic_machine=i586-pc  		;; @@ -816,9 +993,10 @@ case $basic_machine in  		;;  	power)	basic_machine=power-ibm  		;; -	ppc)	basic_machine=powerpc-unknown +	ppc | ppcbe)	basic_machine=powerpc-unknown  		;; -	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +	ppc-* | ppcbe-*) +		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`  		;;  	ppcle | powerpclittle | ppc-le | powerpc-little)  		basic_machine=powerpcle-unknown @@ -843,6 +1021,14 @@ case $basic_machine in  		basic_machine=i586-unknown  		os=-pw32  		;; +	rdos | rdos64) +		basic_machine=x86_64-pc +		os=-rdos +		;; +	rdos32) +		basic_machine=i386-pc +		os=-rdos +		;;  	rom68k)  		basic_machine=m68k-rom68k  		os=-coff @@ -869,6 +1055,10 @@ case $basic_machine in  	sb1el)  		basic_machine=mipsisa64sb1el-unknown  		;; +	sde) +		basic_machine=mipsisa32-sde +		os=-elf +		;;  	sei)  		basic_machine=mips-sei  		os=-seiux @@ -880,6 +1070,9 @@ case $basic_machine in  		basic_machine=sh-hitachi  		os=-hms  		;; +	sh5el) +		basic_machine=sh5le-unknown +		;;  	sh64)  		basic_machine=sh64-unknown  		;; @@ -901,6 +1094,9 @@ case $basic_machine in  		basic_machine=i860-stratus  		os=-sysv4  		;; +	strongarm-* | thumb-*) +		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` +		;;  	sun2)  		basic_machine=m68000-sun  		;; @@ -957,17 +1153,9 @@ case $basic_machine in  		basic_machine=t90-cray  		os=-unicos  		;; -	tic54x | c54x*) -		basic_machine=tic54x-unknown -		os=-coff -		;; -	tic55x | c55x*) -		basic_machine=tic55x-unknown -		os=-coff -		;; -	tic6x | c6x*) -		basic_machine=tic6x-unknown -		os=-coff +	tile*) +		basic_machine=$basic_machine-unknown +		os=-linux-gnu  		;;  	tx39)  		basic_machine=mipstx39-unknown @@ -1029,9 +1217,16 @@ case $basic_machine in  		basic_machine=hppa1.1-winbond  		os=-proelf  		;; +	xbox) +		basic_machine=i686-pc +		os=-mingw32 +		;;  	xps | xps100)  		basic_machine=xps100-honeywell  		;; +	xscale-* | xscalee[bl]-*) +		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` +		;;  	ymp)  		basic_machine=ymp-cray  		os=-unicos @@ -1040,6 +1235,10 @@ case $basic_machine in  		basic_machine=z8k-unknown  		os=-sim  		;; +	z80-*-coff) +		basic_machine=z80-unknown +		os=-sim +		;;  	none)  		basic_machine=none-none  		os=-none @@ -1059,6 +1258,9 @@ case $basic_machine in  	romp)  		basic_machine=romp-ibm  		;; +	mmix) +		basic_machine=mmix-knuth +		;;  	rs6000)  		basic_machine=rs6000-ibm  		;; @@ -1075,13 +1277,10 @@ case $basic_machine in  	we32k)  		basic_machine=we32k-att  		;; -	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) +	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)  		basic_machine=sh-unknown  		;; -	sh64) -		basic_machine=sh64-unknown -		;; -	sparc | sparcv8 | sparcv9 | sparcv9b) +	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)  		basic_machine=sparc-sun  		;;  	cydra) @@ -1125,9 +1324,12 @@ esac  if [ x"$os" != x"" ]  then  case $os in -        # First match some system type aliases -        # that might get confused with valid system types. +	# First match some system type aliases +	# that might get confused with valid system types.  	# -solaris* is a basic system type, with this one exception. +	-auroraux) +		os=-auroraux +		;;  	-solaris1 | -solaris1.*)  		os=`echo $os | sed -e 's|solaris1|sunos4|'`  		;; @@ -1148,26 +1350,31 @@ case $os in  	# Each alternative MUST END IN A *, to match a version number.  	# -sysv* is not here because it comes later, after sysvr4.  	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ -	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ +	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +	      | -sym* | -kopensolaris* | -plan9* \  	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -	      | -aos* \ +	      | -aos* | -aros* \  	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \  	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ +	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +	      | -bitrig* | -openbsd* | -solidbsd* \  	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \  	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \  	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \  	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -	      | -chorusos* | -chorusrdb* \ -	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ +	      | -chorusos* | -chorusrdb* | -cegcc* \ +	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ +	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \ +	      | -uxpv* | -beos* | -mpeix* | -udk* \  	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \  	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \  	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \  	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \  	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) +	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)  	# Remember, each alternative MUST END IN *, to match a version number.  		;;  	-qnx*) @@ -1185,7 +1392,7 @@ case $os in  		os=`echo $os | sed -e 's|nto|nto-qnx|'`  		;;  	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ +	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \  	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)  		;;  	-mac*) @@ -1206,7 +1413,7 @@ case $os in  	-opened*)  		os=-openedition  		;; -        -os400*) +	-os400*)  		os=-os400  		;;  	-wince*) @@ -1255,7 +1462,7 @@ case $os in  	-sinix*)  		os=-sysv4  		;; -        -tpf*) +	-tpf*)  		os=-tpf  		;;  	-triton*) @@ -1291,8 +1498,13 @@ case $os in  	-aros*)  		os=-aros  		;; -	-kaos*) -		os=-kaos +	-zvmoe) +		os=-zvmoe +		;; +	-dicos*) +		os=-dicos +		;; +	-nacl*)  		;;  	-none)  		;; @@ -1316,6 +1528,12 @@ else  # system, and we'll never get to this point.  case $basic_machine in +	score-*) +		os=-elf +		;; +	spu-*) +		os=-elf +		;;  	*-acorn)  		os=-riscix1.2  		;; @@ -1325,9 +1543,24 @@ case $basic_machine in  	arm*-semi)  		os=-aout  		;; -    c4x-* | tic4x-*) -        os=-coff -        ;; +	c4x-* | tic4x-*) +		os=-coff +		;; +	c8051-*) +		os=-elf +		;; +	hexagon-*) +		os=-elf +		;; +	tic54x-*) +		os=-coff +		;; +	tic55x-*) +		os=-coff +		;; +	tic6x-*) +		os=-coff +		;;  	# This must come before the *-dec entry.  	pdp10-*)  		os=-tops20 @@ -1346,19 +1579,22 @@ case $basic_machine in  		;;  	m68000-sun)  		os=-sunos3 -		# This also exists in the configure program, but was not the -		# default. -		# os=-sunos4  		;;  	m68*-cisco)  		os=-aout  		;; +	mep-*) +		os=-elf +		;;  	mips*-cisco)  		os=-elf  		;;  	mips*-*)  		os=-elf  		;; +	or1k-*) +		os=-elf +		;;  	or32-*)  		os=-coff  		;; @@ -1371,9 +1607,15 @@ case $basic_machine in  	*-be)  		os=-beos  		;; +	*-haiku) +		os=-haiku +		;;  	*-ibm)  		os=-aix  		;; +	*-knuth) +		os=-mmixware +		;;  	*-wec)  		os=-proelf  		;; @@ -1476,7 +1718,7 @@ case $basic_machine in  			-sunos*)  				vendor=sun  				;; -			-aix*) +			-cnk*|-aix*)  				vendor=ibm  				;;  			-beos*) @@ -1539,7 +1781,7 @@ case $basic_machine in  esac  echo $basic_machine$os -exit 0 +exit  # Local variables:  # eval: (add-hook 'write-file-hooks 'time-stamp) @@ -6927,7 +6927,7 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed.  Install Imlib2 (version >=       $as_echo "#define USE_GTK2 1" >>confdefs.h       IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" -     IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" +     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"     elif test x"$have_gdkpixbuf" = xyes; then       $as_echo "#define USE_W3MIMG_X11 1" >>confdefs.h diff --git a/doc-jp/MANUAL.html b/doc-jp/MANUAL.html index 41d70f1..f197cfb 100644 --- a/doc-jp/MANUAL.html +++ b/doc-jp/MANUAL.html @@ -51,15 +51,9 @@ w3m €ÏĄ€„Æ„„č„È„ÙĄŒ„č€Î„ÚĄŒ„ž„ă/WWW„ք鄊„¶€Ç€čĄ„€ł€ì€ò»È€Š€ÈĄ€kterm €Ê€É€Î„„ă  <dt>-l čÔżô  <dd>ÉžœàÆțÎÏ€ÎÆâÍÆ€òÉœŒš€č€ë€È€€ËÊĘž€”€ì€ëșÇÂçčÔżô€ò»ŰÄê€č  €ëĄ„„DŽՄ©„ë„È€Ï 10000Ą„ -<dt>-s -<dd>Shift_JIS „łĄŒ„É€ÇÉœŒš€č€ëĄ„ -<dt>-e -<dd>EUC „łĄŒ„É€ÇÉœŒš€č€ëĄ„ -<dt>-j -<dd>JIS(ISO-2022-JP) „łĄŒ„É€ÇÉœŒš€č€ëĄ„ -<dt>-O e|s|j|N|m|n +<dt>-O Êž»ú„łĄŒ„É  <dd>ÉœŒš€ËÍŃ€€€ëÊž»ú„łĄŒ„É€ò»ŰÄê€č€ëĄ„ -<dt>-I e|s +<dt>-I Êž»ú„łĄŒ„É  <dd>ÆțÎÏÊžœń€ÎÊž»ú„łĄŒ„É€ò»ŰÄê€č€ëĄ„  <dt>-T „ż„€„Ś  <dd>ÉœŒš€č€ëÊžœń€Î„ż„€„Ś€ò»ŰÄê€č€ëĄ„€ł€Î»ŰÄê€Ź€Ê€€Ÿìč祀„Ő„Ą„€„ë @@ -89,7 +83,7 @@ HTML„Ő„Ą„€„ë€Î„œĄŒ„č€òÉœŒš€č€ë  <dd>„«„éĄŒÉœŒš€ò€·€Ê€€Ą„  <dt>-F  <dd>„Ő„ìĄŒ„à€òŒ«Æ°ÉœŒš€č€ëĄ„ -<dt>-S +<dt>-s  <dd>ÏąÂł€č€ë¶őčÔ€ò1čԀˀȚ€È€á€ÆÉœŒš€č€ëĄ„  <dt>-X  <dd>w3mœȘλ»ț€ËĄ€°ÊÁ°€ÎČèÌÌ€ËÌá€é€Ê€€Ą„ diff --git a/doc-jp/README b/doc-jp/README index 074766f..e5e59b1 100644 --- a/doc-jp/README +++ b/doc-jp/README @@ -122,7 +122,6 @@ w3m €ÎĂűșîžą€ÏĄ€°ËÆŁŸŽÂ§€Ë°€·€Æ€€€Ț€čĄ„  	ĆìËÌÂçłŰɱĄ  	satodai@w3m.jp -€Ž°Őž«Ą€€ŽŽ¶ÁÛ€òML€Ț€Ç€ȘŽó€»€Ż€À€”€€Ą„ -	w3m-dev@sic.med.tohoku.ac.jp (ÆüËÜžì) -	w3m-dev-en@sic.med.tohoku.ac.jp (±Ńžì) +€Ž°Őž«Ą€€ŽŽ¶ÁÛ€ò€ȘŽó€»€Ż€À€”€€Ą„  	http://w3m.sourceforge.net/ +	https://sourceforge.net/projects/w3m/ diff --git a/doc-jp/w3m.1 b/doc-jp/w3m.1 index 89aacb6..099a803 100644 --- a/doc-jp/w3m.1 +++ b/doc-jp/w3m.1 @@ -39,19 +39,10 @@ text/plain€ÎÊžœń€òÉœŒš€č€ëŸìč祀œĆ€ÍÂÇ€Á€Ë€è€ë¶ŻÄŽÊž»ú€òÉœŒš€·€Ê€€Ą„  ÉžœàÆțÎÏ€ÎÆâÍÆ€òÉœŒš€č€ë€È€€ËÊĘž€”€ì€ëșÇÂçčÔżô€ò»ŰÄê€č€ëĄ„  „DŽՄ©„ë„È€Ï10000Ą„  .TP -.B \-s -Shift_JIS„łĄŒ„É€ÇÉœŒš€č€ëĄ„ -.TP -.B \-e -EUC„łĄŒ„É€ÇÉœŒš€č€ëĄ„ -.TP -.B \-j -JIS (ISO-2022-JP)„łĄŒ„É€ÇÉœŒš€č€ëĄ„ -.TP -.BI \-O\  e|s|j|N|m +.BI \-O\  Êž»ú„łĄŒ„É  ÉœŒš€Ë»È€ŠÊž»ú„łĄŒ„É€ò»ŰÄê€č€ë.  .TP -.BI \-I\  e|s +.BI \-I\  Êž»ú„łĄŒ„É  ÆțÎÏÊžœń€ÎÊž»ú„łĄŒ„É€ò»ŰÄê€č€ëĄ„  .TP  .BI \-T\  „ż„€„Ś @@ -90,7 +81,7 @@ Bookmark €Î„Ő„Ą„€„ë€ò»ŰÄê€č€ëĄ„  .B \-F  „Ő„ìĄŒ„à€òŒ«Æ°ÉœŒš€č€ëĄ„  .TP -.B \-S +.B \-s  ÏąÂł€č€ë¶őčÔ€ò1čԀˀȚ€È€á€ÆÉœŒš€č€ëĄ„  .TP  .B \-X diff --git a/doc/MANUAL.html b/doc/MANUAL.html index aff0189..0a00b59 100644 --- a/doc/MANUAL.html +++ b/doc/MANUAL.html @@ -55,12 +55,10 @@ If you don't specify this option,  <dt>-l number  <dd>Specify line number preserved internally when reading text/plain document  fron standard input. Default is 10000. -<dt>-s -<dd>Display documents with Shift_JIS code. -<dt>-e -<dd>Display documents with EUC_JP code. -<dt>-j -<dd>Display documents with ISO-2022-JP code. +<dt>-O charset +<dd>Specify display/output charset. +<dt>-I charset +<dd>Specify document charset.  <dt>-T type  <dd>Specify document type. Without this option, document type  is determined from extension of a file. If the determination @@ -90,7 +88,7 @@ It is useful when reading E-mail or NetNews messages.  <dd>Monochrome display mode.  <dt>-F  <dd>Automatically render frame. -<dt>-S +<dt>-s  <dd>Squeeze blank lines.  <dt>-X  <dd>Upon exit, do not display preserved screen. @@ -115,7 +115,6 @@ Current Maintainer  	Tohoku University Hospital  	satodai@w3m.jp -Feel free to send your opinion to the w3m mailing-lists. -	w3m-dev@sic.med.tohoku.ac.jp (Japanese) -	w3m-dev-en@sic.med.tohoku.ac.jp (English) +Feel free to send your opinion to:  	http://w3m.sourceforge.net/ +	https://sourceforge.net/projects/w3m/ diff --git a/doc/README.img b/doc/README.img index 0c10114..f11362f 100644 --- a/doc/README.img +++ b/doc/README.img @@ -41,7 +41,7 @@ Key functions    Specify the following keymaps in ~/.w3m/keymap.        keymap  X    DISPLAY_IMAGE        keymap  C-c  STOP_IMAGE -      keyamp  t    SET_OPTION  display_image=toggle +      keymap  t    SET_OPTION  display_image=toggle  Commandline options @@ -143,7 +143,7 @@ use graphic character  .B -no-graph  don't use graphic character  .TP -.B -S +.B -s  squeeze multiple blank lines  .TP  .B -W @@ -44,6 +44,8 @@ conv_entity(unsigned int c)  	return " ";      if (c == 0xa0)  	return NBSP; +    if (c == 0xad)		/* SOFT HYPHEN */ +        return "";      if (c < 0x100) {		/* Latin1 (ISO 8859-1) */  	if (UseAltEntity)  	    return alt_latin1[c - 0xa0]; @@ -677,6 +677,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)  #endif  		    init_stream(&f, SCM_LOCAL, newStrStream(src));  		    loadHTMLstream(&f, newBuf, NULL, TRUE); +		    UFclose(&f);  		    for (l = newBuf->lastLine; l && l->real_linenumber;  			 l = l->prev)  			l->real_linenumber = 0; @@ -2267,10 +2268,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,      if (header_string)  	header_string = NULL;  #ifdef USE_NNTP -    if (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS) +    if (b && b != NO_BUFFER && (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS))  	reAnchorNewsheader(b);  #endif -    preFormUpdateBuffer(b); +    if (b && b != NO_BUFFER) +	preFormUpdateBuffer(b);      TRAP_OFF;      return b;  } @@ -4339,15 +4341,15 @@ getMetaRefreshParam(char *q, Str *refresh_uri)      while (*q) {  	if (!strncasecmp(q, "url=", 4)) {  	    q += 4; -	    if (*q == '\"')	/* " */ +	    if (*q == '\"' || *q == '\'')	/* " or ' */  		q++;  	    r = q;  	    while (*r && !IS_SPACE(*r) && *r != ';')  		r++;  	    s_tmp = Strnew_charp_n(q, r - q); -	    if (s_tmp->ptr[s_tmp->length - 1] == '\"') {	/* "  -								 */ +	    if (s_tmp->ptr[s_tmp->length - 1] == '\"'          /* " */ +	       || s_tmp->ptr[s_tmp->length - 1] == '\'') {     /* ' */  		s_tmp->length--;  		s_tmp->ptr[s_tmp->length] = '\0';  	    } @@ -7237,16 +7239,17 @@ loadHTMLString(Str page)      MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;      Buffer *newBuf; +    init_stream(&f, SCM_LOCAL, newStrStream(page)); +      newBuf = newBuffer(INIT_BUFFER_WIDTH);      if (SETJMP(AbortLoading) != 0) {  	TRAP_OFF;  	discardBuffer(newBuf); +	UFclose(&f);  	return NULL;      }      TRAP_ON; -    init_stream(&f, SCM_LOCAL, newStrStream(page)); -  #ifdef USE_M17N      newBuf->document_charset = InnerCharset;  #endif @@ -7256,6 +7259,7 @@ loadHTMLString(Str page)  #endif      TRAP_OFF; +    UFclose(&f);      newBuf->topLine = newBuf->firstLine;      newBuf->lastLine = newBuf->currentLine;      newBuf->currentLine = newBuf->firstLine; @@ -7485,15 +7489,13 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)  	!stat(cache->file, &st))  	goto image_buffer; -    TRAP_ON;      if (IStype(uf->stream) != IST_ENCODED)  	uf->stream = newEncodedStream(uf->stream, uf->encoding); +    TRAP_ON;      if (save2tmp(*uf, cache->file) < 0) { -	UFclose(uf);  	TRAP_OFF;  	return NULL;      } -    UFclose(uf);      TRAP_OFF;      cache->loaded = IMG_FLAG_LOADED; @@ -7513,6 +7515,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)      init_stream(&f, SCM_LOCAL, newStrStream(tmp));      loadHTMLstream(&f, newBuf, src, TRUE); +    UFclose(&f);      if (src)  	fclose(src); @@ -7908,6 +7911,8 @@ save2tmp(URLFile uf, char *tmpf)      clen_t linelen = 0, trbyte = 0;      MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;      static JMP_BUF env_bak; +    volatile int retval = 0; +    char *volatile buf = NULL;      ff = fopen(tmpf, "wb");      if (ff == NULL) { @@ -7944,25 +7949,25 @@ save2tmp(URLFile uf, char *tmpf)      else  #endif				/* USE_NNTP */      { -	Str buf = Strnew_size(SAVE_BUF_SIZE); -	while (UFread(&uf, buf, SAVE_BUF_SIZE)) { -	    if (Strfputs(buf, ff) != buf->length) { -		bcopy(env_bak, AbortLoading, sizeof(JMP_BUF)); -		TRAP_OFF; -		fclose(ff); -		current_content_length = 0; -		return -2; +	int count; + +	buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); +	while ((count = ISread_n(uf.stream, buf, SAVE_BUF_SIZE)) > 0) { +	    if (fwrite(buf, 1, count, ff) != count) { +		retval = -2; +		goto _end;  	    } -	    linelen += buf->length; +	    linelen += count;  	    showProgress(&linelen, &trbyte);  	}      }    _end:      bcopy(env_bak, AbortLoading, sizeof(JMP_BUF));      TRAP_OFF; +    xfree(buf);      fclose(ff);      current_content_length = 0; -    return 0; +    return retval;  }  Buffer * @@ -8073,7 +8078,8 @@ _MoveFile(char *path1, char *path2)      FILE *f2;      int is_pipe;      clen_t linelen = 0, trbyte = 0; -    Str buf; +    char *buf = NULL; +    int count;      f1 = openIS(path1);      if (f1 == NULL) @@ -8091,12 +8097,13 @@ _MoveFile(char *path1, char *path2)  	return -1;      }      current_content_length = 0; -    buf = Strnew_size(SAVE_BUF_SIZE); -    while (ISread(f1, buf, SAVE_BUF_SIZE)) { -	Strfputs(buf, f2); -	linelen += buf->length; +    buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); +    while ((count = ISread_n(f1, buf, SAVE_BUF_SIZE)) > 0) { +	fwrite(buf, 1, count, f2); +	linelen += count;  	showProgress(&linelen, &trbyte);      } +    xfree(buf);      ISclose(f1);      if (is_pipe)  	pclose(f2); @@ -8455,21 +8462,23 @@ uncompress_stream(URLFile *uf, char **src)  	}  	if (pid2 == 0) {  	    /* child2 */ -	    Str buf = Strnew_size(SAVE_BUF_SIZE); +	    char *buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); +	    int count;  	    FILE *f = NULL;  	    setup_child(TRUE, 2, UFfileno(uf));  	    if (tmpf)  		f = fopen(tmpf, "wb"); -	    while (UFread(uf, buf, SAVE_BUF_SIZE)) { -		if (Strfputs(buf, stdout) < 0) +	    while ((count = ISread_n(uf->stream, buf, SAVE_BUF_SIZE)) > 0) { +		if (fwrite(buf, 1, count, stdout) != count) +		    break; +		if (f && fwrite(buf, 1, count, f) != count)  		    break; -		if (f) -		    Strfputs(buf, f);  	    }  	    UFclose(uf);  	    if (f)  		fclose(f); +	    xfree(buf);  	    exit(0);  	}  	/* child1 */ @@ -76,6 +76,7 @@ typedef int wc_ces;	/* XXX: not used */  #include "textlist.h"  #include "funcname1.h"  #include "terms.h" +#include "istream.h"  #ifndef HAVE_BCOPY  void bcopy(const void *, void *, int); @@ -288,8 +289,6 @@ extern int REV_LB[];  #define inputFilenameHist(p,d,h)	inputLineHist(p,d,IN_FILENAME,h)  #define inputChar(p)		inputLine(p,"",IN_CHAR) -#define free(x)  GC_free(x)	/* let GC do it. */ -  #ifdef __EMX__  #define HAVE_STRCASECMP  #define strcasecmp	stricmp @@ -895,6 +894,9 @@ global char *index_file init(NULL);  global char *CurrentDir;  global int CurrentPid; +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +global char *MyProgramName init("w3m"); +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */  /*   * global Buffer *Currentbuf;   * global Buffer *Firstbuf; @@ -1,19 +1,17 @@  /* $Id: html.h,v 1.31 2010/08/14 01:29:40 htrb Exp $ */  #ifndef _HTML_H  #define _HTML_H +#include "config.h"  #ifdef USE_SSL  #include <openssl/bio.h>  #include <openssl/x509.h>  #include <openssl/ssl.h>  #endif				/* USE_SSL */ -#include "istream.h" -  #define StrUFgets(f) StrISgets((f)->stream)  #define StrmyUFgets(f) StrmyISgets((f)->stream)  #define UFgetc(f) ISgetc((f)->stream)  #define UFundogetc(f) ISundogetc((f)->stream) -#define UFread(f,buf,len) ISread((f)->stream,buf,len)  #define UFclose(f) (void)(ISclose((f)->stream) == 0 && ((f)->stream = NULL))  #define UFfileno(f) ISfileno((f)->stream) @@ -62,11 +60,12 @@ typedef struct _ParsedURL {      int is_nocache;  } ParsedURL; +union input_stream;  typedef struct {      unsigned char scheme;      char is_cgi;      char encoding; -    InputStream stream; +    union input_stream *stream;      char *ext;      int compression;      int content_encoding; @@ -90,17 +90,18 @@ termImage()  static int  openImgdisplay()  { +    char *cmd; + +    if (!strchr(Imgdisplay, '/')) +	cmd = Strnew_m_charp(w3m_auxbin_dir(), "/", Imgdisplay, NULL)->ptr; +    else +	cmd = Imgdisplay;      Imgdisplay_pid = open_pipe_rw(&Imgdisplay_rf, &Imgdisplay_wf);      if (Imgdisplay_pid < 0)  	goto err0;      if (Imgdisplay_pid == 0) {  	/* child */ -	char *cmd;  	setup_child(FALSE, 2, -1); -	if (!strchr(Imgdisplay, '/')) -	    cmd = Strnew_m_charp(w3m_auxbin_dir(), "/", Imgdisplay, NULL)->ptr; -	else -	    cmd = Imgdisplay;  	myExec(cmd);  	/* XXX: ifdef __EMX__, use start /f ? */      } @@ -333,6 +334,9 @@ loadImage(Buffer *buf, int flag)      struct stat st;      int i, draw = FALSE;      /* int wait_st; */ +#ifdef DONT_CALL_GC_AFTER_FORK +    char *loadargs[7]; +#endif      if (maxLoadImage > MAX_LOAD_IMAGE)  	maxLoadImage = MAX_LOAD_IMAGE; @@ -433,6 +437,24 @@ loadImage(Buffer *buf, int flag)  	image_cache[i] = cache;  	flush_tty(); +#ifdef DONT_CALL_GC_AFTER_FORK +	loadargs[0] = MyProgramName; +	loadargs[1] = "-$$getimage"; +	loadargs[2] = conv_to_system(cache->url); +	loadargs[3] = conv_to_system(parsedURL2Str(cache->current)->ptr); +	loadargs[4] = cache->file; +	loadargs[5] = cache->touch; +	loadargs[6] = NULL; +	if ((cache->pid = fork()) == 0) { +	    setup_child(FALSE, 0, -1); +	    execvp(MyProgramName, loadargs); +	    exit(1); +	} +	else if (cache->pid < 0) { +	    cache->pid = 0; +	    return; +	} +#else /* !DONT_CALL_GC_AFTER_FORK */  	if ((cache->pid = fork()) == 0) {  	    Buffer *b;  	    /* @@ -458,6 +480,7 @@ loadImage(Buffer *buf, int flag)  	    cache->pid = 0;  	    return;  	} +#endif /* !DONT_CALL_GC_AFTER_FORK */      }  } @@ -721,6 +721,111 @@ shell_quote(char *str)      return str;  } +void * +xrealloc(void *ptr, size_t size) +{ +    void *newptr = realloc(ptr, size); +    if (newptr == NULL) { +	fprintf(stderr, "Out of memory\n"); +	exit(-1); +    } +    return newptr; +} + +/* Define this as a separate function in case the free() has + * an incompatible prototype. */ +void +xfree(void *ptr) +{ +    free(ptr); +} + +void * +w3m_GC_realloc_atomic(void *ptr, size_t size) +{ +    return ptr ? GC_REALLOC(ptr, size) : GC_MALLOC_ATOMIC(size); +} + +void +w3m_GC_free(void *ptr) +{ +    GC_FREE(ptr); +} + +void +growbuf_init(struct growbuf *gb) +{ +    gb->ptr = NULL; +    gb->length = 0; +    gb->area_size = 0; +    gb->realloc_proc = &w3m_GC_realloc_atomic; +    gb->free_proc = &w3m_GC_free; +} + +void +growbuf_init_without_GC(struct growbuf *gb) +{ +    gb->ptr = NULL; +    gb->length = 0; +    gb->area_size = 0; +    gb->realloc_proc = &xrealloc; +    gb->free_proc = &xfree; +} + +void +growbuf_clear(struct growbuf *gb) +{ +    (*gb->free_proc) (gb->ptr); +    gb->ptr = NULL; +    gb->length = 0; +    gb->area_size = 0; +} + +Str +growbuf_to_Str(struct growbuf *gb) +{ +    Str s; + +    if (gb->free_proc == &w3m_GC_free) { +	growbuf_reserve(gb, gb->length + 1); +	gb->ptr[gb->length] = '\0'; +	s = New(struct _Str); +	s->ptr = gb->ptr; +	s->length = gb->length; +	s->area_size = gb->area_size; +    } else { +	s = Strnew_charp_n(gb->ptr, gb->length); +	(*gb->free_proc) (gb->ptr); +    } +    gb->ptr = NULL; +    gb->length = 0; +    gb->area_size = 0; +    return s; +} + +void +growbuf_reserve(struct growbuf *gb, int leastarea) +{ +    int newarea; + +    if (gb->area_size < leastarea) { +	newarea = gb->area_size * 3 / 2; +	if (newarea < leastarea) +	    newarea = leastarea; +	newarea += 16; +	gb->ptr = (*gb->realloc_proc) (gb->ptr, newarea); +	gb->area_size = newarea; +    } +} + +void +growbuf_append(struct growbuf *gb, const char *src, int len) +{ +    growbuf_reserve(gb, gb->length + len); +    memcpy(&gb->ptr[gb->length], src, len); +    gb->length += len; +} +  static char *  w3m_dir(const char *name, char *dft)  { @@ -12,6 +12,14 @@  #define FALSE 0  #endif				/* FALSE */ +struct growbuf { +    char *ptr; +    int length; +    int area_size; +    void *(*realloc_proc) (void *, size_t); +    void (*free_proc) (void *); +}; +  #define RAW_MODE	0  #define PAGER_MODE	1  #define HTML_MODE	2 @@ -65,6 +73,18 @@ extern Str Str_url_unquote(Str x, int is_form, int safe);  extern Str Str_form_quote(Str x);  #define Str_form_unquote(x) Str_url_unquote((x), TRUE, FALSE)  extern char *shell_quote(char *str); +#define xmalloc(s) xrealloc(NULL, s) +extern void *xrealloc(void *ptr, size_t size); +extern void xfree(void *ptr); +extern void *w3m_GC_realloc_atomic(void *ptr, size_t size); +extern void w3m_GC_free(void *ptr); +extern void growbuf_init(struct growbuf *gb); +extern void growbuf_init_without_GC(struct growbuf *gb); +extern void growbuf_clear(struct growbuf *gb); +extern Str growbuf_to_Str(struct growbuf *gb); +extern void growbuf_reserve(struct growbuf *gb, int leastarea); +extern void growbuf_append(struct growbuf *gb, const char *src, int len); +#define GROWBUF_ADD_CHAR(gb,ch) ((((gb)->length>=(gb)->area_size)?growbuf_reserve(gb,(gb)->length+1):(void)0),(void)((gb)->ptr[(gb)->length++] = (ch)))  extern char *w3m_auxbin_dir();  extern char *w3m_lib_dir(); @@ -77,5 +97,8 @@ extern char *w3m_help_dir();  #define New_N(type,n)	((type*)GC_MALLOC((n)*sizeof(type)))  #define NewAtom_N(type,n)	((type*)GC_MALLOC_ATOMIC((n)*sizeof(type)))  #define New_Reuse(type,ptr,n)   ((type*)GC_REALLOC((ptr),(n)*sizeof(type))) +#define NewWithoutGC(type)	((type*)xmalloc(sizeof(type))) +#define NewWithoutGC_N(type,n)	((type*)xmalloc((n)*sizeof(type))) +#define NewWithoutGC_Reuse(type,ptr,n)	((type*)xrealloc(ptr,(n)*sizeof(type)))  #endif				/* INDEP_H */ @@ -35,12 +35,14 @@ static int ssl_read(struct ssl_handle *handle, char *buf, int len);  static int ens_read(struct ens_handle *handle, char *buf, int len);  static void ens_close(struct ens_handle *handle); +static void memchop(char *p, int *len); +  static void  do_update(BaseStream base)  {      int len;      base->stream.cur = base->stream.next = 0; -    len = base->read(base->handle, base->stream.buf, base->stream.size); +    len = (*base->read) (base->handle, base->stream.buf, base->stream.size);      if (len <= 0)  	base->iseos = TRUE;      else @@ -66,12 +68,12 @@ init_buffer(BaseStream base, char *buf, int bufsize)      StreamBuffer sb = &base->stream;      sb->size = bufsize;      sb->cur = 0; +    sb->buf = NewWithoutGC_N(uchar, bufsize);      if (buf) { -	sb->buf = (uchar *) buf; +	memcpy(sb->buf, buf, bufsize);  	sb->next = bufsize;      }      else { -	sb->buf = NewAtom_N(uchar, bufsize);  	sb->next = 0;      }      base->iseos = FALSE; @@ -95,10 +97,10 @@ newInputStream(int des)      InputStream stream;      if (des < 0)  	return NULL; -    stream = New(union input_stream); +    stream = NewWithoutGC(union input_stream);      init_base_stream(&stream->base, STREAM_BUF_SIZE);      stream->base.type = IST_BASIC; -    stream->base.handle = New(int); +    stream->base.handle = NewWithoutGC(int);      *(int *)stream->base.handle = des;      stream->base.read = (int (*)())basic_read;      stream->base.close = (void (*)())basic_close; @@ -111,10 +113,10 @@ newFileStream(FILE * f, void (*closep) ())      InputStream stream;      if (f == NULL)  	return NULL; -    stream = New(union input_stream); +    stream = NewWithoutGC(union input_stream);      init_base_stream(&stream->base, STREAM_BUF_SIZE);      stream->file.type = IST_FILE; -    stream->file.handle = New(struct io_file_handle); +    stream->file.handle = NewWithoutGC(struct io_file_handle);      stream->file.handle->f = f;      if (closep)  	stream->file.handle->close = closep; @@ -131,10 +133,10 @@ newStrStream(Str s)      InputStream stream;      if (s == NULL)  	return NULL; -    stream = New(union input_stream); +    stream = NewWithoutGC(union input_stream);      init_str_stream(&stream->base, s);      stream->str.type = IST_STR; -    stream->str.handle = s; +    stream->str.handle = NULL;      stream->str.read = (int (*)())str_read;      stream->str.close = NULL;      return stream; @@ -147,10 +149,10 @@ newSSLStream(SSL * ssl, int sock)      InputStream stream;      if (sock < 0)  	return NULL; -    stream = New(union input_stream); +    stream = NewWithoutGC(union input_stream);      init_base_stream(&stream->base, SSL_BUF_SIZE);      stream->ssl.type = IST_SSL; -    stream->ssl.handle = New(struct ssl_handle); +    stream->ssl.handle = NewWithoutGC(struct ssl_handle);      stream->ssl.handle->ssl = ssl;      stream->ssl.handle->sock = sock;      stream->ssl.read = (int (*)())ssl_read; @@ -166,14 +168,14 @@ newEncodedStream(InputStream is, char encoding)      if (is == NULL || (encoding != ENC_QUOTE && encoding != ENC_BASE64 &&  		       encoding != ENC_UUENCODE))  	return is; -    stream = New(union input_stream); +    stream = NewWithoutGC(union input_stream);      init_base_stream(&stream->base, STREAM_BUF_SIZE);      stream->ens.type = IST_ENCODED; -    stream->ens.handle = New(struct ens_handle); +    stream->ens.handle = NewWithoutGC(struct ens_handle);      stream->ens.handle->is = is;      stream->ens.handle->pos = 0;      stream->ens.handle->encoding = encoding; -    stream->ens.handle->s = NULL; +    growbuf_init_without_GC(&stream->ens.handle->gb);      stream->ens.read = (int (*)())ens_read;      stream->ens.close = (void (*)())ens_close;      return stream; @@ -187,8 +189,10 @@ ISclose(InputStream stream)  	stream->base.type & IST_UNCLOSE)  	return -1;      prevtrap = mySignal(SIGINT, SIG_IGN); -    stream->base.close(stream->base.handle); +    stream->base.close (stream->base.handle);      mySignal(SIGINT, prevtrap); +    xfree(stream->base.stream.buf); +    xfree(stream);      return 0;  } @@ -218,122 +222,97 @@ ISundogetc(InputStream stream)      return -1;  } -#define MARGIN_STR_SIZE 10  Str -StrISgets(InputStream stream) +StrISgets2(InputStream stream, char crnl)  { -    BaseStream base; -    StreamBuffer sb; -    Str s = NULL; -    uchar *p; -    int len; +    struct growbuf gb;      if (stream == NULL) -	return '\0'; -    base = &stream->base; -    sb = &base->stream; - -    while (!base->iseos) { -	if (MUST_BE_UPDATED(base)) { -	    do_update(base); -	} -	else { -	    if ((p = memchr(&sb->buf[sb->cur], '\n', sb->next - sb->cur))) { -		len = p - &sb->buf[sb->cur] + 1; -		if (s == NULL) -		    s = Strnew_size(len); -		Strcat_charp_n(s, (char *)&sb->buf[sb->cur], len); -		sb->cur += len; -		return s; -	    } -	    else { -		if (s == NULL) -		    s = Strnew_size(sb->next - sb->cur + MARGIN_STR_SIZE); -		Strcat_charp_n(s, (char *)&sb->buf[sb->cur], -			       sb->next - sb->cur); -		sb->cur = sb->next; -	    } -	} -    } - -    if (s == NULL) -	return Strnew(); -    return s; +	return NULL; +    growbuf_init(&gb); +    ISgets_to_growbuf(stream, &gb, crnl); +    return growbuf_to_Str(&gb);  } -Str -StrmyISgets(InputStream stream) +void +ISgets_to_growbuf(InputStream stream, struct growbuf *gb, char crnl)  { -    BaseStream base; -    StreamBuffer sb; -    Str s = NULL; -    int i, len; +    BaseStream base = &stream->base; +    StreamBuffer sb = &base->stream; +    int i; -    if (stream == NULL) -	return '\0'; -    base = &stream->base; -    sb = &base->stream; +    gb->length = 0;      while (!base->iseos) {  	if (MUST_BE_UPDATED(base)) {  	    do_update(base); +	    continue;  	} -	else { -	    if (s && Strlastchar(s) == '\r') { -		if (sb->buf[sb->cur] == '\n') -		    Strcat_char(s, (char)sb->buf[sb->cur++]); -		return s; +	if (crnl && gb->length > 0  && gb->ptr[gb->length - 1] == '\r') { +	    if (sb->buf[sb->cur] == '\n') { +		GROWBUF_ADD_CHAR(gb, '\n'); +		++sb->cur;  	    } -	    for (i = sb->cur; -		 i < sb->next && sb->buf[i] != '\n' && sb->buf[i] != '\r'; -		 i++) ; -	    if (i < sb->next) { -		len = i - sb->cur + 1; -		if (s == NULL) -		    s = Strnew_size(len + MARGIN_STR_SIZE); -		Strcat_charp_n(s, (char *)&sb->buf[sb->cur], len); -		sb->cur = i + 1; -		if (sb->buf[i] == '\n') -		    return s; -	    } -	    else { -		if (s == NULL) -		    s = Strnew_size(sb->next - sb->cur + MARGIN_STR_SIZE); -		Strcat_charp_n(s, (char *)&sb->buf[sb->cur], -			       sb->next - sb->cur); -		sb->cur = sb->next; +	    break; +	} +	for (i = sb->cur; i < sb->next; ++i) { +	    if (sb->buf[i] == '\n' || (crnl && sb->buf[i] == '\r')) { +		++i; +		break;  	    }  	} +	growbuf_append(gb, &sb->buf[sb->cur], i - sb->cur); +	sb->cur = i; +	if (gb->length > 0 && gb->ptr[gb->length - 1] == '\n') +	    break;      } -    if (s == NULL) -	return Strnew(); -    return s; +    growbuf_reserve(gb, gb->length + 1); +    gb->ptr[gb->length] = '\0'; +    return;  } +#ifdef unused  int  ISread(InputStream stream, Str buf, int count)  { -    int rest, len; +    int len; + +    if (count + 1 > buf->area_size) { +	char *newptr = GC_MALLOC_ATOMIC(count + 1); +	memcpy(newptr, buf->ptr, buf->length); +	newptr[buf->length] = '\0'; +	buf->ptr = newptr; +	buf->area_size = count + 1; +    } +    len = ISread_n(stream, buf->ptr, count); +    buf->length = (len > 0) ? len : 0; +    buf->ptr[buf->length] = '\0'; +    return (len > 0) ? 1 : 0; +} +#endif + +int +ISread_n(InputStream stream, char *dst, int count) +{ +    int len, l;      BaseStream base; -    if (stream == NULL || (base = &stream->base)->iseos) +    if (stream == NULL || count <= 0) +	return -1; +    if ((base = &stream->base)->iseos)  	return 0; -    len = buffer_read(&base->stream, buf->ptr, count); -    rest = count - len; +    len = buffer_read(&base->stream, dst, count);      if (MUST_BE_UPDATED(base)) { -	len = base->read(base->handle, &buf->ptr[len], rest); -	if (len <= 0) { +	l = (*base->read) (base->handle, &dst[len], count - len); +	if (l <= 0) {  	    base->iseos = TRUE; -	    len = 0; +	} else { +	    len += l;  	} -	rest -= len;      } -    Strtruncate(buf, count - rest); -    if (buf->length > 0) -	return 1; -    return 0; +    return len;  }  int @@ -645,6 +624,7 @@ basic_close(int *handle)  #else      close(*(int *)handle);  #endif +    xfree(handle);  }  static int @@ -661,6 +641,7 @@ static void  file_close(struct io_file_handle *handle)  {      handle->close(handle->f); +    xfree(handle);  }  static int @@ -682,6 +663,7 @@ ssl_close(struct ssl_handle *handle)      close(handle->sock);      if (handle->ssl)  	SSL_free(handle->ssl); +    xfree(handle);  }  static int @@ -717,38 +699,60 @@ static void  ens_close(struct ens_handle *handle)  {      ISclose(handle->is); +    growbuf_clear(&handle->gb); +    xfree(handle);  }  static int  ens_read(struct ens_handle *handle, char *buf, int len)  { -    if (handle->s == NULL || handle->pos == handle->s->length) { +    if (handle->pos == handle->gb.length) {  	char *p; -	handle->s = StrmyISgets(handle->is); -	if (handle->s->length == 0) +	struct growbuf gbtmp; + +	ISgets_to_growbuf(handle->is, &handle->gb, TRUE); +	if (handle->gb.length == 0)  	    return 0; -	cleanup_line(handle->s, PAGER_MODE);  	if (handle->encoding == ENC_BASE64) -	    Strchop(handle->s); +	    memchop(handle->gb.ptr, &handle->gb.length);  	else if (handle->encoding == ENC_UUENCODE) { -	    if (!strncmp(handle->s->ptr, "begin", 5)) -		handle->s = StrmyISgets(handle->is); -	    Strchop(handle->s); +	    if (handle->gb.length >= 5 && +		!strncmp(handle->gb.ptr, "begin", 5)) +		ISgets_to_growbuf(handle->is, &handle->gb, TRUE); +	    memchop(handle->gb.ptr, &handle->gb.length);  	} -	p = handle->s->ptr; +	growbuf_init_without_GC(&gbtmp); +	p = handle->gb.ptr;  	if (handle->encoding == ENC_QUOTE) -	    handle->s = decodeQP(&p); +	    decodeQP_to_growbuf(&gbtmp, &p);  	else if (handle->encoding == ENC_BASE64) -	    handle->s = decodeB(&p); +	    decodeB_to_growbuf(&gbtmp, &p);  	else if (handle->encoding == ENC_UUENCODE) -	    handle->s = decodeU(&p); +	    decodeU_to_growbuf(&gbtmp, &p); +	growbuf_clear(&handle->gb); +	handle->gb = gbtmp;  	handle->pos = 0;      } -    if (len > handle->s->length - handle->pos) -	len = handle->s->length - handle->pos; +    if (len > handle->gb.length - handle->pos) +	len = handle->gb.length - handle->pos; -    bcopy(&handle->s->ptr[handle->pos], buf, len); +    memcpy(buf, &handle->gb.ptr[handle->pos], len);      handle->pos += len;      return len;  } + +static void +memchop(char *p, int *len) +{ +    char *q; + +    for (q = p + *len; q > p; --q) { +	if (q[-1] != '\n' && q[-1] != '\r') +	    break; +    } +    if (q != p + *len) +	*q = '\0'; +    *len = q - p; +    return; +} @@ -2,13 +2,13 @@  #ifndef IO_STREAM_H  #define IO_STREAM_H +#include "indep.h"  #include <stdio.h>  #ifdef USE_SSL  #include <openssl/bio.h>  #include <openssl/x509.h>  #include <openssl/ssl.h>  #endif -#include "Str.h"  #include <sys/types.h>  #include <sys/stat.h>  #include <fcntl.h> @@ -36,7 +36,7 @@ union input_stream;  struct ens_handle {      union input_stream *is; -    Str s; +    struct growbuf gb;      int pos;      char encoding;  }; @@ -119,9 +119,14 @@ extern InputStream newEncodedStream(InputStream is, char encoding);  extern int ISclose(InputStream stream);  extern int ISgetc(InputStream stream);  extern int ISundogetc(InputStream stream); -extern Str StrISgets(InputStream stream); -extern Str StrmyISgets(InputStream stream); +extern Str StrISgets2(InputStream stream, char crnl); +#define StrISgets(stream) StrISgets2(stream, FALSE) +#define StrmyISgets(stream) StrISgets2(stream, TRUE) +void ISgets_to_growbuf(InputStream stream, struct growbuf *gb, char crnl); +#ifdef unused  extern int ISread(InputStream stream, Str buf, int count); +#endif +int ISread_n(InputStream stream, char *dst, int bufsize);  extern int ISfileno(InputStream stream);  extern int ISeos(InputStream stream);  #ifdef USE_SSL @@ -109,6 +109,7 @@ loadLocalDir(char *dname)  	    n++;  	}      } +    closedir(d);      if (multicolList) {  	l = COLS / (maxlen + 2); @@ -359,6 +360,10 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)      int status;      pid_t pid;      char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL; +#ifdef HAVE_CHDIR +    char *cgi_dir; +#endif +    char *cgi_basename;  #ifdef __MINGW32_VERSION      return NULL; @@ -373,7 +378,14 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)  	if (!fw)  	    return NULL;      } +    if (qstr) +	uri = Strnew_m_charp(uri, "?", qstr, NULL)->ptr; +#ifdef HAVE_CHDIR +    cgi_dir = mydirname(file); +#endif +    cgi_basename = mybasename(file);      pid = open_pipe_rw(&fr, NULL); +    /* Don't invoke gc after here, or the program might crash in some platforms */      if (pid < 0)  	return NULL;      else if (pid) { @@ -383,8 +395,6 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)      }      setup_child(TRUE, 2, fw ? fileno(fw) : -1); -    if (qstr) -	uri = Strnew_m_charp(uri, "?", qstr, NULL)->ptr;      set_cgi_environ(name, file, uri);      if (path_info)  	set_environ("PATH_INFO", path_info); @@ -415,11 +425,11 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)      }  #ifdef HAVE_CHDIR		/* ifndef __EMX__ ? */ -    chdir(mydirname(file)); +    chdir(cgi_dir);  #endif -    execl(file, mybasename(file), NULL); +    execl(file, cgi_basename, NULL);      fprintf(stderr, "execl(\"%s\", \"%s\", NULL): %s\n", -	    file, mybasename(file), strerror(errno)); +	    file, cgi_basename, strerror(errno));      exit(1);      return NULL;  #endif @@ -11,6 +11,9 @@  #include <sys/wait.h>  #endif  #include <time.h> +#if defined(__CYGWIN__) && defined(USE_BINMODE_STREAM) +#include <io.h> +#endif  #include "terms.h"  #include "myctype.h"  #include "regex.h" @@ -407,6 +410,10 @@ main(int argc, char **argv, char **envp)      wc_ces CodePage;  #endif  #endif +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +    char **getimage_args = NULL; +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ +      GC_INIT();  #if defined(ENABLE_NLS) || (defined(USE_M17N) && defined(HAVE_LANGINFO_CODESET))      setlocale(LC_ALL, ""); @@ -428,6 +435,10 @@ main(int argc, char **argv, char **envp)      CurrentDir = currentdir();      CurrentPid = (int)getpid(); +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +    if (argv[0] && *argv[0]) +	MyProgramName = argv[0]; +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */      BookmarkFile = NULL;      config_file = NULL; @@ -751,6 +762,15 @@ main(int argc, char **argv, char **envp)  	    else if (!strcmp("-reqlog",argv[i])) {  		w3m_reqlog=rcFile("request.log");  	    } +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +	    else if (!strcmp("-$$getimage", argv[i])) { +		++i; +		getimage_args = argv + i; +		i += 4; +		if (i > argc) +		    usage(); +	    } +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */  	    else {  		usage();  	    } @@ -839,6 +859,30 @@ main(int argc, char **argv, char **envp)      if (w3m_backend)  	backend(); +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +    if (getimage_args) { +	char *image_url = conv_from_system(getimage_args[0]); +	char *base_url = conv_from_system(getimage_args[1]); +	ParsedURL base_pu; +	 +	parseURL2(base_url, &base_pu, NULL); +	image_source = getimage_args[2]; +	newbuf = loadGeneralFile(image_url, &base_pu, NULL, 0, NULL); +	if (!newbuf || !newbuf->real_type || +	    strncasecmp(newbuf->real_type, "image/", 6)) +	    unlink(getimage_args[2]); +#if defined(HAVE_SYMLINK) && defined(HAVE_LSTAT) +	symlink(getimage_args[2], getimage_args[3]); +#else +	{ +	    FILE *f = fopen(getimage_args[3], "w"); +	    if (f) +		fclose(f); +	} +#endif +	w3m_exit(0); +    } +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */      if (w3m_dump)  	mySignal(SIGINT, SIG_IGN); @@ -1269,6 +1313,12 @@ dump_extra(Buffer *buf)  #endif  } +static int +cmp_anchor_hseq(const void *a, const void *b) +{ +    return (*((const Anchor **) a))->hseq - (*((const Anchor **) b))->hseq; +} +  static void  do_dump(Buffer *buf)  { @@ -1289,15 +1339,20 @@ do_dump(Buffer *buf)  	int i;  	saveBuffer(buf, stdout, FALSE);  	if (displayLinkNumber && buf->href) { +	    int nanchor = buf->href->nanchor;  	    printf("\nReferences:\n\n"); -	    for (i = 0; i < buf->href->nanchor; i++) { -	        ParsedURL pu; +	    Anchor **in_order = New_N(Anchor *, buf->href->nanchor); +	    for (i = 0; i < nanchor; i++) +		in_order[i] = buf->href->anchors + i; +	    qsort(in_order, nanchor, sizeof(Anchor *), cmp_anchor_hseq); +	    for (i = 0; i < nanchor; i++) { +		ParsedURL pu;  		char *url; -		if (buf->href->anchors[i].slave) +		if (in_order[i]->slave)  		    continue; -	        parseURL2(buf->href->anchors[i].url, &pu, baseURL(buf)); +		parseURL2(in_order[i]->url, &pu, baseURL(buf));  		url = url_decode2(parsedURL2Str(&pu)->ptr, Currentbuf); -	        printf("[%d] %s\n", buf->href->anchors[i].hseq + 1, url); +		printf("[%d] %s\n", in_order[i]->hseq + 1, url);  	    }  	}      } @@ -1586,6 +1641,18 @@ DEFUN(pgBack, PREV_PAGE, "Move to previous page")  		  * (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL);  } +/* Move half page forward */ +DEFUN(hpgFore, NEXT_HALF_PAGE, "Scroll down half page") +{ +	nscroll(searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); +} + +/* Move half page backward */ +DEFUN(hpgBack, PREV_HALF_PAGE, "Scroll up half page") +{ +	nscroll(-searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); +} +  /* 1 line up */  DEFUN(lup1, UP, "Scroll up one line")  { @@ -1864,6 +1931,10 @@ srch_nxtprv(int reverse)      result = srchcore(SearchString, routine[reverse]);      if (result & SR_FOUND)  	clear_mark(Currentbuf->currentLine); +    else { +	if (reverse == 0) +	    Currentbuf->pos -= 1; +    }      displayBuffer(Currentbuf, B_NORMAL);      disp_srchresult(result, (reverse ? "Backward: " : "Forward: "),  		    SearchString); @@ -3591,6 +3662,33 @@ DEFUN(lastA, LINK_END, "Go to the last link")      displayBuffer(Currentbuf, B_NORMAL);  } +/* go to the nth anchor */ +DEFUN(nthA, LINK_N, "Go to the nth link") +{ +    HmarkerList *hl = Currentbuf->hmarklist; +	BufferPoint *po; +	Anchor *an; + +	int n = searchKeyNum(); +	if (n < 0 || n > hl->nmark) return; + +	if (Currentbuf->firstLine == NULL) +		return; +    if (!hl || hl->nmark == 0) +		return; + +	po = hl->marks + n-1; +	an = retrieveAnchor(Currentbuf->href, po->line, po->pos); +	if (an == NULL) +		an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos); +	if (an == NULL) return; + +    gotoLine(Currentbuf, po->line); +    Currentbuf->pos = po->pos; +    arrangeCursor(Currentbuf); +    displayBuffer(Currentbuf, B_NORMAL); +} +  /* go to the next anchor */  DEFUN(nextA, NEXT_LINK, "Move to next link")  { @@ -5672,7 +5770,7 @@ execdict(char *word)  	disp_message("Execution failed", TRUE);  	return;      } -    else { +    else if (buf != NO_BUFFER) {  	buf->filename = w;  	buf->buffername = Sprintf("%s %s", DICTBUFFERNAME, word)->ptr;  	if (buf->type == NULL) @@ -64,12 +64,22 @@ ha2d(char x, char y)  Str  decodeB(char **ww)  { +    struct growbuf gb; + +    growbuf_init(&gb); +    decodeB_to_growbuf(&gb, ww); +    return growbuf_to_Str(&gb); +} + +void +decodeB_to_growbuf(struct growbuf *gb, char **ww) +{      unsigned char c[4];      char *wp = *ww;      char d[3];      int i, n_pad; -    Str ap = Strnew_size(strlen(wp)); +    growbuf_reserve(gb, strlen(wp) + 1);      n_pad = 0;      while (1) {  	for (i = 0; i < 4; i++) { @@ -93,39 +103,50 @@ decodeB(char **ww)  	for (i = 0; i < 4; i++) {  	    c[i] = c2e(c[i]);  	    if (c[i] == BAD_BASE64) { -		*ww = wp; -		return ap; +		goto last;  	    }  	}  	d[0] = ((c[0] << 2) | (c[1] >> 4));  	d[1] = ((c[1] << 4) | (c[2] >> 2));  	d[2] = ((c[2] << 6) | c[3]);  	for (i = 0; i < 3 - n_pad; i++) { -	    Strcat_char(ap, d[i]); +	    GROWBUF_ADD_CHAR(gb, d[i]);  	}  	if (n_pad || *wp == '\0' || *wp == '?')  	    break;      } +last: +    growbuf_reserve(gb, gb->length + 1); +    gb->ptr[gb->length] = '\0';      *ww = wp; -    return ap; +    return;  }  Str  decodeU(char **ww)  { +    struct growbuf gb; + +    growbuf_init(&gb); +    decodeU_to_growbuf(&gb, ww); +    return growbuf_to_Str(&gb); +} + +void +decodeU_to_growbuf(struct growbuf *gb, char **ww) +{      unsigned char c1, c2;      char *w = *ww;      int n, i; -    Str a;      if (*w <= 0x20 || *w >= 0x60) -	return Strnew_size(0); +	return;      n = *w - 0x20; -    a = Strnew_size(n); +    growbuf_reserve(gb, n + 1);      for (w++, i = 2; *w != '\0' && n; n--) {  	c1 = (w[0] - 0x20) % 0x40;  	c2 = (w[1] - 0x20) % 0x40; -	Strcat_char(a, (c1 << i) | (c2 >> (6 - i))); +	gb->ptr[gb->length++] = (c1 << i) | (c2 >> (6 - i));  	if (i == 6) {  	    w += 2;  	    i = 2; @@ -135,7 +156,8 @@ decodeU(char **ww)  	    i += 2;  	}      } -    return a; +    gb->ptr[gb->length] = '\0'; +    return;  }  /* RFC2047 (4.2. The "Q" encoding) */ @@ -165,9 +187,19 @@ decodeQ(char **ww)  Str  decodeQP(char **ww)  { +    struct growbuf gb; + +    growbuf_init(&gb); +    decodeQP_to_growbuf(&gb, ww); +    return growbuf_to_Str(&gb); +} + +void +decodeQP_to_growbuf(struct growbuf *gb, char **ww) +{      char *w = *ww; -    Str a = Strnew_size(strlen(w)); +    growbuf_reserve(gb, strlen(w) + 1);      for (; *w != '\0'; w++) {  	if (*w == '=') {  	    w++; @@ -180,15 +212,16 @@ decodeQP(char **ww)  	    else {  		if (*w == '\0' || *(w + 1) == '\0')  		    break; -		Strcat_char(a, ha2d(*w, *(w + 1))); +		gb->ptr[gb->length++] = ha2d(*w, *(w + 1));  		w++;  	    }  	}  	else -	    Strcat_char(a, *w); +	    gb->ptr[gb->length++] = *w;      } +    gb->ptr[gb->length] = '\0';      *ww = w; -    return a; +    return;  }  #ifdef USE_M17N @@ -11,6 +11,8 @@ extern void pushEvent(int cmd, void *data);  extern MySignalHandler intTrap(SIGNAL_ARG);  extern void pgFore(void);  extern void pgBack(void); +extern void hpgFore(void); +extern void hpgBack(void);  extern void lup1(void);  extern void ldown1(void);  extern void ctrCsrV(void); @@ -61,6 +63,7 @@ extern void submitForm(void);  extern void followForm(void);  extern void topA(void);  extern void lastA(void); +extern void nthA(void);  extern void onA(void);  extern void nextA(void); @@ -604,9 +607,12 @@ extern char *getAnchorText(Buffer *buf, AnchorList *al, Anchor *a);  extern Buffer *link_list_panel(Buffer *buf);  extern Str decodeB(char **ww); +extern void decodeB_to_growbuf(struct growbuf *gb, char **ww);  extern Str decodeQ(char **ww);  extern Str decodeQP(char **ww); +extern void decodeQP_to_growbuf(struct growbuf *gb, char **ww);  extern Str decodeU(char **ww); +extern void decodeU_to_growbuf(struct growbuf *gb, char **ww);  #ifdef USE_M17N  extern Str decodeWord(char **ow, wc_ces * charset);  extern Str decodeMIME(Str orgstr, wc_ces * charset); @@ -808,5 +814,3 @@ extern void dispVer(void);  void srand48(long);  long lrand48(void);  #endif - -#include "indep.h" diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index f430307..2e3576c 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -126,12 +126,14 @@ while(<F>) {    s/\&/\&/g;    s/\</\</g;    s/\>/\>/g; +  # non ASCII UTF-8 codepoint +  my $utf8="[\300-\337][\200-\277]|[\340-\357][\200-\277]{2}|[\360-\367][\200-\277]{3}|[\370-\373][\200-\277]{4}|[\374\375][\200-\277]{5}"; -  s@([\200-\377].)(\010{1,2}\1)+@<b>$1</b>@g; +  s@($utf8)(\010\1)+@<b>$1</b>@g;    s@(\&\w+;|.)(\010\1)+@<b>$1</b>@g; -  s@__\010{1,2}((\<b\>)?[\200-\377].(\</b\>)?)@<u>$1</u>@g; +  s@_\010((\<b\>)?($utf8)(\</b\>)?)@<u>$1</u>@g;    s@_\010((\<b\>)?(\&\w+\;|.)(\</b\>)?)@<u>$1</u>@g; -  s@((\<b\>)?[\200-\377].(\</b\>)?)\010{1,2}__@<u>$1</u>@g; +  s@((\<b\>)?($utf8)(\</b\>)?)\010_@<u>$1</u>@g;    s@((\<b\>)?(\&\w+\;|.)(\</b\>)?)\010_@<u>$1</u>@g;    s@.\010(.)@$1@g; @@ -17,7 +17,7 @@  #define MAX_TABLE_N 20		/* maximum number of table in same level */  #define MAXROW 50 -#define MAXCOL 50 +#define MAXCOL 256  #define MAX_WIDTH 80 @@ -222,6 +222,7 @@ static void  check_cygwin_console(void)  {      char *term = getenv("TERM"); +    char *ctype;      HANDLE hWnd;      if (term == NULL) @@ -236,7 +237,9 @@ check_cygwin_console(void)  		isLocalConsole = 1;  	    }  	} -	if (strncmp(getenv("LANG"), "ja", 2) == 0) { +	if (((ctype = getenv("LC_ALL")) || +	     (ctype = getenv("LC_CTYPE")) || +	     (ctype = getenv("LANG"))) && strncmp(ctype, "ja", 2) == 0) {  	    isWinConsole = TERM_CYGWIN_RESERVE_IME;  	}  #ifdef SUPPORT_WIN9X_CONSOLE_MBCS @@ -121,6 +121,7 @@ static struct table2 DefaultGuess[] = {  };  static void add_index_file(ParsedURL *pu, URLFile *uf); +static char * schemeNumToName(int scheme);  /* #define HTTP_DEFAULT_FILE    "/index.html" */ @@ -337,7 +338,15 @@ openSSLHandle(int sock, char *hostname, char **p_cert)  	    if (strchr(ssl_forbid_method, 'T'))  		option |= SSL_OP_NO_TLSv1;  	} +#ifdef SSL_OP_NO_COMPRESSION +	option |= SSL_OP_NO_COMPRESSION; +#endif  	SSL_CTX_set_options(ssl_ctx, option); + +#ifdef SSL_MODE_RELEASE_BUFFERS +	SSL_CTX_set_mode (ssl_ctx, SSL_MODE_RELEASE_BUFFERS); +#endif +  #ifdef USE_SSL_VERIFY  	/* derived from openssl-0.9.5/apps/s_{client,cb}.c */  #if 1				/* use SSL_get_verify_result() to verify cert */ @@ -1285,6 +1294,18 @@ getURLScheme(char **url)  }  static char * +schemeNumToName(int scheme) +{ +    int i; + +    for (i = 0; schemetable[i].cmdname != NULL; i++) { +	if (schemetable[i].cmd == scheme) +	    return schemetable[i].cmdname; +    } +    return NULL; +} + +static char *  otherinfo(ParsedURL *target, ParsedURL *current, char *referer)  {      Str s = Strnew(); @@ -1616,7 +1637,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    pu->host != NULL && !check_no_proxy(pu->host)) {  	    hr->flag |= HR_FLAG_PROXY;  	    sock = openSocket(FTP_proxy_parsed.host, -			      schemetable[FTP_proxy_parsed.scheme].cmdname, +			      schemeNumToName(FTP_proxy_parsed.scheme),  			      FTP_proxy_parsed.port);  	    if (sock < 0)  		return uf; @@ -1658,15 +1679,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    }  	    else if (pu->scheme == SCM_HTTPS) {  		sock = openSocket(HTTPS_proxy_parsed.host, -				  schemetable[HTTPS_proxy_parsed.scheme]. -				  cmdname, HTTPS_proxy_parsed.port); +				  schemeNumToName(HTTPS_proxy_parsed.scheme), +				  HTTPS_proxy_parsed.port);  		sslh = NULL;  	    }  	    else {  #endif				/* USE_SSL */  		sock = openSocket(HTTP_proxy_parsed.host, -				  schemetable[HTTP_proxy_parsed.scheme]. -				  cmdname, HTTP_proxy_parsed.port); +				  schemeNumToName(HTTP_proxy_parsed.scheme), +				  HTTP_proxy_parsed.port);  #ifdef USE_SSL  		sslh = NULL;  	    } @@ -1698,8 +1719,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    }  	}  	else { -	    sock = openSocket(pu->host, -			      schemetable[pu->scheme].cmdname, pu->port); +	    sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);  	    if (sock < 0) {  		*status = HTST_MISSING;  		return uf; @@ -1763,7 +1783,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    pu->host != NULL && !check_no_proxy(pu->host)) {  	    hr->flag |= HR_FLAG_PROXY;  	    sock = openSocket(GOPHER_proxy_parsed.host, -			      schemetable[GOPHER_proxy_parsed.scheme].cmdname, +			      schemeNumToName(GOPHER_proxy_parsed.scheme),  			      GOPHER_proxy_parsed.port);  	    if (sock < 0)  		return uf; @@ -1771,8 +1791,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    tmp = HTTPrequest(pu, current, hr, extra_header);  	}  	else { -	    sock = openSocket(pu->host, -			      schemetable[pu->scheme].cmdname, pu->port); +	    sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);  	    if (sock < 0)  		return uf;  	    if (pu->file == NULL) diff --git a/w3mimg/Makefile.in b/w3mimg/Makefile.in index 0a964a1..8e2ad73 100644 --- a/w3mimg/Makefile.in +++ b/w3mimg/Makefile.in @@ -16,14 +16,12 @@ IMGCFLAGS=@IMGX11CFLAGS@ @IMGFBCFLAGS@ @IMGWINCFLAGS@  IMGOBJS=@IMGOBJS@  .PHONY: $(SUBDIRS) -all: @IMGTARGETS@ w3mimg.a +all: w3mimg.a -w3mimg.a: $(IMGOBJS) +w3mimg.a: w3mimg.o @IMGTARGETS@  	$(AR) rv $@ $(IMGOBJS)  	$(RANLIB) $@ -$(IMGOBJS): @IMGTARGETS@ -  w3mimg.o: w3mimg.c  	$(CC) $(CFLAGS) -c $< | 
