diff options
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 351 | ||||
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | Str.c | 4 | ||||
-rw-r--r-- | acinclude.m4 | 9 | ||||
-rwxr-xr-x | config.guess | 1231 | ||||
-rw-r--r-- | config.h.in | 4 | ||||
-rwxr-xr-x | config.sub | 498 | ||||
-rwxr-xr-x | configure | 9 | ||||
-rw-r--r-- | doc-jp/MANUAL.html | 15 | ||||
-rw-r--r-- | doc-jp/README | 5 | ||||
-rw-r--r-- | doc-jp/README.SSL | 4 | ||||
-rw-r--r-- | doc-jp/w3m.1 | 15 | ||||
-rw-r--r-- | doc/HISTORY | 12 | ||||
-rw-r--r-- | doc/MANUAL.html | 15 | ||||
-rw-r--r-- | doc/README | 5 | ||||
-rw-r--r-- | doc/README.cookie | 2 | ||||
-rw-r--r-- | doc/README.img | 2 | ||||
-rw-r--r-- | doc/README.m17n | 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 | 10 | ||||
-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-- | libwc/ambwidth_map.awk | 32 | ||||
-rw-r--r-- | libwc/map/ucs_ambwidth.map | 109 | ||||
-rw-r--r-- | local.c | 20 | ||||
-rw-r--r-- | main.c | 115 | ||||
-rw-r--r-- | mimehead.c | 61 | ||||
-rw-r--r-- | po/LINGUAS | 2 | ||||
-rw-r--r-- | po/de.po | 903 | ||||
-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 | 40 | ||||
-rw-r--r-- | w3mimg/Makefile.in | 6 |
41 files changed, 2914 insertions, 1082 deletions
@@ -1,3 +1,354 @@ +2014-10-15 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-18 + + * doc-jp/README.SSL: Update README.SSL to follow default values + + * config.sub: Update config.sub with autotools-dev 20140911.1 + + * fm.h: Disable SSLv3 by default [CVE-2014-3566] + cf. https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/ + +2014-10-15 Ludwig Nussel <ludwig.nussel@suse.de> + + * fm.h: Force ssl_verify_server on and disable SSLv2 support + Origin: http://www.openwall.com/lists/oss-security/2010/06/14/4 + +2014-10-13 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-17+ + +2014-10-04 Tatsuya Kinoshita <tats@debian.org> + + * libwc/ambwidth_map.awk, libwc/map/ucs_ambwidth.map: + Fix incorrect generation of ucs_ambwidth_map + +2014-08-22 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-17 + + * config.guess: + Update config.guess to 2014-03-23 with autotools-dev 20140510.1 + + * config.sub: + Update config.sub to 2014-05-01 with autotools-dev 20140510.1 + +2014-08-22 Micah Cowan <micah@addictivecode.org> + + * main.c: Support Boehm GC 7.2 + Replace Gentoo's patch to prevent segfaults due to infinite recursion. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=080_gc72.patch;att=1;bug=758831 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758831 + Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=555467 + Bug: http://sourceforge.net/p/w3m/patches/63/ + Bug: http://sourceforge.net/p/w3m/patches/59/ + +2014-08-22 Tatsuya Kinoshita <tats@debian.org> + + * main.c: + Revert "Support Boehm GC 7.2" (w3m-0.5.2-gc72.patch from Gentoo) + This reverts commit 4331db3e3e673ac4dbfe8e9f2b42a8e0478dc98a. + +2014-06-23 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-16 + + * url.c: Disable ciphers that use keys smaller than 128 bits + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1325674 + +2014-01-04 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-15 + +2014-01-03 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-14 + + * acinclude.m4, configure: Use pkg-config to build with imlib2 1.4.6 + + * doc/HISTORY, doc/README.cookie, doc/README.m17n: + Prefer US-ASCII rathar than Japanese encodings in English documents + +2013-12-27 Tatsuya Kinoshita <tats@debian.org> + + * doc-jp/MANUAL.html, doc/MANUAL.html: + Cleanup unusable links in MANUAL.html + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517315 + + * version.c.in: Update to 0.5.3+debian-13+ + +2013-12-17 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-13 + +2013-12-14 Tatsuya Kinoshita <tats@debian.org> + + * config.guess: + Update config.guess to 2013-06-10 with autotools-dev 20130810.1 + + * config.sub: + Update config.sub to 2013-08-10 with autotools-dev 20130810.1 + +2013-12-07 Reinhard Max <max@suse.de> + + * local.c: Fix a directory descriptor leak in loadLocalDir + Patch from openSUSE on 2009-09-07. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-closedir.patch + Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=531675 + +2013-12-07 AIDA Shinra <shinra@j10n.org> + + * main.c: Fix crash after SEARCH_NEXT + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-search-next.patch>, + [w3m-dev:04473] on 2013-12-07. + +2013-11-11 Paul Boekholt <p.boekholt@gmail.com> + + * file.c: Add support for single quoted meta refresh URL + Bug: https://sourceforge.net/p/w3m/patches/53/ + +2013-11-07 Cristian Rodriguez <crrodriguez@opensuse.org> + + * url.c: Use SSL_OP_NO_COMPRESSION if available + Due to the "CRIME attack" (CVE-2012-4929) HTTPS clients that + negotiate TLS-level compression can be abused for MITM attacks. + * url.c: Use SSL_MODE_RELEASE_BUFFERS if available + Patch from openSUSE on 2012-11-12: + https://build.opensuse.org/request/show/141054 + +2013-10-15 Tatsuya Kinoshita <tats@debian.org> + + * Makefile.in: + Depend on funcname.tab to fix parallel make issue of scripts + Bug: https://sourceforge.net/p/w3m/patches/64/ + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=362249 + + * w3mimg/Makefile.in: + Avoid prerequisite $(IMGOBJS) to fix parallel make issue of w3mimg + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726188 + + * acinclude.m4, configure: + Explicitly add -lX11 to IMGX11LDFLAGS only when gtk2 + Bug: https://sourceforge.net/p/w3m/patches/57/ + + * w3mimg/Makefile.in: Revert "Fix parallel make issue" + This reverts commit aa6f871c6dcc108118142bcc786e4a6ac3d46867. + + * Makefile.in: + Revert "Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5" + This reverts commit 7410954066d68ac2ad6aea638801714447321fec. + +2013-10-14 AIDA Shinra <shinra@j10n.org> + + * url.c: Define schemeNumToName() to fix scheme bug + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-schemebug.patch>, + [w3m-dev:04470] on 2013-10-14. + Bug: https://sourceforge.net/p/w3m/patches/60/ + + * config.h.in, file.c, fm.h, html.h, image.c, indep.c, indep.h: + * istream.c, istream.h, local.c, main.c, mimehead.c, proto.h: + Workaround of GC crash on Cygwin64 + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-win64gc.patch>, + [w3m-dev:04469] on 2013-10-14. + +2013-10-14 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-12+ + +2013-10-14 Jarek Czekalski <jarekczek@poczta.onet.pl> + + * terms.c: Fix paren in check_cygwin_console() + Bug: https://sourceforge.net/p/w3m/patches/66/ + +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..c1d112b 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -649,6 +649,9 @@ AC_DEFUN([AC_W3M_IMAGE], fi;; imlib2) with_imlib2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + fi if test x"$IMLIB2_CONFIG" = x; then IMLIB2_CONFIG=imlib2-config fi;; @@ -706,7 +709,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" @@ -728,7 +731,7 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="x11" AC_DEFINE(USE_IMLIB2) IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`" else AC_MSG_WARN([unable to build w3mimgdisplay with X11 support]) fi @@ -756,7 +759,7 @@ AC_DEFUN([AC_W3M_IMAGE], AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`" else AC_MSG_WARN([unable to build w3mimgdisplay with FB support]) fi diff --git a/config.guess b/config.guess index 51fab47..1f5c50c 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-2014 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2014-03-23' # 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-2014 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' | sed 's, ,,g'` + ;; +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 ;; + *: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 ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*: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,109 @@ 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 test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + 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 + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + 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 +1290,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,183 +1322,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_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include <sys/param.h> -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - cat >&2 <<EOF $0: unable to guess system type @@ -1419,7 +1378,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-2014 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2014-09-11' -# 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-2014 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,109 @@ 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 \ + | k1om \ + | 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 \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | 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 | or1knd | 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 \ + | riscv32 | riscv64 \ + | 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 | nvptx | 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 +366,86 @@ 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-* \ + | k1om-* \ + | 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-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | 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-* \ + | or1k*-* \ | 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 +463,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -409,6 +509,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 +521,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 +574,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 +617,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 +736,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 +774,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 +793,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 +821,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 @@ -671,14 +829,29 @@ case $basic_machine in basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) 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 +916,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 +929,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 +952,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 +969,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 +1004,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 +1032,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 +1066,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 +1081,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -901,6 +1105,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 +1164,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 +1228,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 +1246,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 +1269,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1075,13 +1288,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 +1335,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 +1361,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* | -moxiebox* \ | -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* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1185,7 +1403,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 +1424,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1255,7 +1473,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1291,8 +1509,13 @@ case $os in -aros*) os=-aros ;; - -kaos*) - os=-kaos + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) ;; -none) ;; @@ -1316,6 +1539,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 +1554,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,13 +1590,13 @@ 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 ;; @@ -1371,9 +1615,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1476,7 +1726,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) @@ -1539,7 +1789,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) @@ -6811,6 +6811,9 @@ $as_echo "$with_imagelib" >&6; } fi;; imlib2) with_imlib2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + fi if test x"$IMLIB2_CONFIG" = x; then IMLIB2_CONFIG=imlib2-config fi;; @@ -6927,7 +6930,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 @@ -6955,7 +6958,7 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed. Install Imlib2 (version >= $as_echo "#define USE_IMLIB2 1" >>confdefs.h IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with X11 support" >&5 $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} @@ -6991,7 +6994,7 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with FB support" >&5 $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with FB support" >&2;} diff --git a/doc-jp/MANUAL.html b/doc-jp/MANUAL.html index 41d70f1..a8623e2 100644 --- a/doc-jp/MANUAL.html +++ b/doc-jp/MANUAL.html @@ -51,15 +51,9 @@ w3m ¤Ï¡¤¥Æ¥¥¹¥È¥Ù¡¼¥¹¤Î¥Ú¡¼¥¸¥ã/WWW¥Ö¥é¥¦¥¶¤Ç¤¹¡¥¤³¤ì¤ò»È¤¦¤È¡¤kterm ¤Ê¤É¤Î¥¥ã <dt>-l ¹Ô¿ô <dd>ɸ½àÆþÎϤÎÆâÍƤòɽ¼¨¤¹¤ë¤È¤¤ËÊݸ¤µ¤ì¤ëºÇÂç¹Ô¿ô¤ò»ØÄꤹ ¤ë¡¥¥Ç¥Õ¥©¥ë¥È¤Ï 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½ªÎ»»þ¤Ë¡¤°ÊÁ°¤Î²èÌ̤ËÌá¤é¤Ê¤¤¡¥ @@ -489,8 +483,7 @@ w3m¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡¥¥Þ¥¦¥¹¤¬»È¤¨¤ë¤Î¤Ï¡¤xterm/kterm/rxvt w3m¤ò»È¤¨¤Ð¡¤HTTP¥µ¡¼¥Ð¤Ê¤·¤ÇCGI¥¹¥¯¥ê¥×¥È¤òµ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡¥ ¤³¤Î¤È¤¡¤w3m¤¬¥µ¡¼¥Ð¤Î¤Õ¤ê¤ò¤·¤Æ¥¹¥¯¥ê¥×¥È¤òµ¯Æ°¤·¡¤¤½¤Î½ÐÎϤò Æɤߤ³¤ó¤Çɽ¼¨¤¹¤ë¤ï¤±¤Ç¤¹¡¥ -<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÎÅÐÏ¿</a>¤È -<a href="file:///$LIB/w3mhelperpanel?mode=panel">³°Éô¥Ó¥å¡¼¥¢¤ÎÊÔ½¸</a> +¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÎÅÐÏ¿¤È³°Éô¥Ó¥å¡¼¥¢¤ÎÊÔ½¸ ¤Ï¡¤local CGI¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥ local CGI¤ò»È¤¨¤Ð¡¤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/README.SSL b/doc-jp/README.SSL index 4aedfde..670ed5f 100644 --- a/doc-jp/README.SSL +++ b/doc-jp/README.SSL @@ -25,9 +25,9 @@ SSL ¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ ssl_forbid_method »È¤ï¤Ê¤¤SSL¥á¥½¥Ã¥É¤Î¥ê¥¹¥È(2: SSLv2, 3: SSLv3, t: TLSv1) - (¥Ç¥Õ¥©¥ë¥È¤Ï<NULL>). + (¥Ç¥Õ¥©¥ë¥È¤Ï2, 3). ssl_verify_server ON/OFF - SSL¤Î¥µ¡¼¥Ðǧ¾Ú¤ò¹Ô¤¦(¥Ç¥Õ¥©¥ë¥È¤ÏOFF). + SSL¤Î¥µ¡¼¥Ðǧ¾Ú¤ò¹Ô¤¦(¥Ç¥Õ¥©¥ë¥È¤ÏON). ssl_cert_file ¥Õ¥¡¥¤¥ë̾ SSL¤Î¥¯¥é¥¤¥¢¥ó¥ÈÍÑPEM·Á¼°¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë(¥Ç¥Õ¥©¥ë¥È¤Ï<NULL>). ssl_key_file ¥Õ¥¡¥¤¥ë̾ 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¤Îʸ½ñ¤òɽ¼¨¤¹¤ë¾ì¹ç¡¤½Å¤ÍÂǤÁ¤Ë¤è¤ë¶¯Ä´Ê¸»ú¤òɽ¼¨¤·¤Ê¤¤¡¥ ɸ½àÆþÎϤÎÆâÍƤòɽ¼¨¤¹¤ë¤È¤¤ËÊݸ¤µ¤ì¤ëºÇÂç¹Ô¿ô¤ò»ØÄꤹ¤ë¡¥ ¥Ç¥Õ¥©¥ë¥È¤Ï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/HISTORY b/doc/HISTORY index b8f5b94..7f7ae2b 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -588,7 +588,7 @@ From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> * space characters in a buffer are mapped into 0x80-0x9f. * unprintable characters (0x80-0xa0) are displayed as \xxx. -From: Tsutomu Okada ($B2,ED(B $BJY(B) <okada@furuno.co.jp> +From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01354] minimize when #undef USE_GOPHER or USE_NNTP 2000/11/16 @@ -1422,7 +1422,7 @@ HTML4.0 ID attribute support. From: Okabe Katsuya <okabe@fphy.hep.okayama-u.ac.jp> table get weird when it contains <input type=hidden>. -$B=$@5!%(B +Fixed. 2000.2.12 From: Rogue Metal - Jake Moorman <roguemtl@stampede.org> @@ -1649,15 +1649,15 @@ From: patakuti If an <input type=button> tag has no `name' attribute, w3m adds it an inappropriate name attribute. -From: $B$d$^(B +From: Yama Now w3m can handle a frameset that has both ROWS and COLS. From: aito Now bookmarking is done by a separate command w3mbookmark. -C-s $B$G2hLLI=<($,;_$^$C$F$$$?%P%0$N=$@5!%(B +Bug fix that C-s hangs. -$BJ8;zF~NO;~$K(B C-g $B$GCf;_$G$-$k$h$&$K$7$?!%(B +Enable C-g to quit for keyboard input. From: hovav@cs.stanford.edu When downloading a file, an attempt to save it to a non-exist @@ -1699,7 +1699,7 @@ Menu behavior is changed. * Clicking outside the menu causes cancellation of sub-menu. * <, >, +, - abandoned -From: $B$*$+$@(B <okada@furuno.co.jp> +From: Okada <okada@furuno.co.jp> Now C-a/C-e are bound to 'jump to the first/last item in menu.' From: "OMAE, jun" <jun-o@osb.att.ne.jp> diff --git a/doc/MANUAL.html b/doc/MANUAL.html index aff0189..8353f33 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. @@ -468,8 +466,7 @@ and <a href="keymap.lynx">keymap.lynx</a>) as examples. You can run CGI scripts using w3m, without any HTTP server. It means that w3m behaves like an HTTP server and activates CGI script, then w3m reads the output of the script and display it. The -<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">bookmark registration</a> -and <a href="file:///$LIB/w3mhelperpanel?mode=panel">helper-app editor</a> +bookmark registration and helper-app editor are realized as local CGI scripts. Using local CGI, w3m can be used as a general purpose form interface. <P> @@ -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.cookie b/doc/README.cookie index 56cca50..da16947 100644 --- a/doc/README.cookie +++ b/doc/README.cookie @@ -37,7 +37,7 @@ cookie support of w3m (HDN: host domain name) - ¡¦ If the number of "." in domain name is lesser than 2, it is + * If the number of "." in domain name is lesser than 2, it is assumed as invalid cookie (cf. RFC 2109 4.3.2), however, you can use cookie_avoid_wrong_number_of_dots to avoid this restriction. You can set this in "Domains to avoid [wrong number 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 diff --git a/doc/README.m17n b/doc/README.m17n index c064d76..da5408b 100644 --- a/doc/README.m17n +++ b/doc/README.m17n @@ -49,7 +49,7 @@ Supported encoding schemes (character set) * Thai TIS-620 (ISO-8859-11), CP874 * Other - US_ASCII, ISO-8859-1 ¡Á 10, 13 ¡Á 15, + US_ASCII, ISO-8859-1 - 10, 13 - 15, KOI8-R, KOI8-U, NeXT, CP437, CP737, CP775, CP850, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP869, CP1006, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257 @@ -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; @@ -1157,7 +1159,7 @@ global int view_unseenobject init(TRUE); #endif #if defined(USE_SSL) && defined(USE_SSL_VERIFY) -global int ssl_verify_server init(FALSE); +global int ssl_verify_server init(TRUE); global char *ssl_cert_file init(NULL); global char *ssl_key_file init(NULL); global char *ssl_ca_path init(NULL); @@ -1166,7 +1168,7 @@ global int ssl_path_modified init(FALSE); #endif /* defined(USE_SSL) && * defined(USE_SSL_VERIFY) */ #ifdef USE_SSL -global char *ssl_forbid_method init(NULL); +global char *ssl_forbid_method init("2, 3"); #endif global int is_redisplay init(FALSE); @@ -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 diff --git a/libwc/ambwidth_map.awk b/libwc/ambwidth_map.awk index 8544f58..1d9d25f 100644 --- a/libwc/ambwidth_map.awk +++ b/libwc/ambwidth_map.awk @@ -3,9 +3,15 @@ BEGIN { i = 0; } $2 == "A" { - code = sprintf("0x%s", $1); - if (strtonum(code) < 0x10000) { - map[i] = code + code = code2 = strtonum(sprintf("0x%s", $1)) + if (match($1, /[.]+[0-9A-Fa-f]+/)) { + s = substr($1, RSTART, RLENGTH) + sub(/[.]+/, "0x", s) + code2 = strtonum(s) + } + for (; code <= code2; code++) { + if (code >= 0x10000) { break } + map[i] = sprintf("0x%04X", code) i++; } } @@ -15,28 +21,14 @@ END { prev = strtonum(map[0]); for (j = 1; j < i; j++) { cur = strtonum(map[j]); - if (match(map[j], "[.]+")) { + if (cur - prev > 1) { map2[n] = sprintf("%s, %s", start, map[j - 1]); n++; - gsub("[.]+", ", 0x", map[j]) - map2[n] = map[j]; - n++; - start = map[j + 1]; - cur = strtonum(start); - } else { - if (cur - prev > 2) { - map2[n] = sprintf("%s, %s", start, map[j - 1]); - start = map[j]; - n++; - } - - if (j == i - 1) { - map2[n] = sprintf("%s, %s", start, map[j]); - n++; - } + start = map[j]; } prev = cur; } + if (i > 0) { map2[n] = sprintf("%s, %s", start, map[i - 1]); n++ } printf("static wc_map ucs_ambwidth_map[] = {\n"); for (j = 0; j < n; j++) { diff --git a/libwc/map/ucs_ambwidth.map b/libwc/map/ucs_ambwidth.map index 6f03ba8..35ceedb 100644 --- a/libwc/map/ucs_ambwidth.map +++ b/libwc/map/ucs_ambwidth.map @@ -1,50 +1,82 @@ static wc_map ucs_ambwidth_map[] = { { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, - { 0x00A7, 0x00AA }, - { 0x00AD, 0x00BF }, + { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, + { 0x00AD, 0x00AE }, + { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, + { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, - { 0x00E6, 0x00ED }, - { 0x00F0, 0x00F3 }, - { 0x00F7, 0x00FE }, + { 0x00E6, 0x00E6 }, + { 0x00E8, 0x00EA }, + { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, + { 0x00F2, 0x00F3 }, + { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, + { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, - { 0x0111, 0x0113 }, + { 0x0111, 0x0111 }, + { 0x0113, 0x0113 }, { 0x011B, 0x011B }, { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, { 0x0138, 0x0138 }, - { 0x013F, 0x0144 }, - { 0x0148, 0x014D }, + { 0x013F, 0x0142 }, + { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, + { 0x014D, 0x014D }, { 0x0152, 0x0153 }, { 0x0166, 0x0167 }, { 0x016B, 0x016B }, - { 0x01CE, 0x01DC }, + { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, + { 0x01D2, 0x01D2 }, + { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, + { 0x01D8, 0x01D8 }, + { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, { 0x02C4, 0x02C4 }, - { 0x02C7, 0x02CD }, + { 0x02C7, 0x02C7 }, + { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, - { 0x02D8, 0x02DF }, + { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, + { 0x02DF, 0x02DF }, { 0x0300, 0x036F }, - { 0x0391, 0x03A9 }, - { 0x03B1, 0x03C9 }, + { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, + { 0x03B1, 0x03C1 }, + { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 }, - { 0x0410, 0x0451 }, + { 0x0410, 0x044F }, + { 0x0451, 0x0451 }, { 0x2010, 0x2010 }, - { 0x2013, 0x2019 }, + { 0x2013, 0x2016 }, + { 0x2018, 0x2019 }, { 0x201C, 0x201D }, - { 0x2020, 0x2027 }, - { 0x2030, 0x2035 }, + { 0x2020, 0x2022 }, + { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, + { 0x2032, 0x2033 }, + { 0x2035, 0x2035 }, { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, - { 0x207F, 0x2084 }, + { 0x207F, 0x207F }, + { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, - { 0x2103, 0x2105 }, + { 0x2103, 0x2103 }, + { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, @@ -52,21 +84,28 @@ static wc_map ucs_ambwidth_map[] = { { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, - { 0x215B, 0x216B }, + { 0x215B, 0x215E }, + { 0x2160, 0x216B }, { 0x2170, 0x2179 }, { 0x2189, 0x2189 }, { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, - { 0x21D2, 0x21D4 }, + { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, - { 0x2200, 0x2203 }, + { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, - { 0x220F, 0x2211 }, + { 0x220F, 0x220F }, + { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 }, - { 0x2223, 0x222E }, + { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, + { 0x2227, 0x222C }, + { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, @@ -83,11 +122,13 @@ static wc_map ucs_ambwidth_map[] = { { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, - { 0x2460, 0x254B }, + { 0x2460, 0x24E9 }, + { 0x24EB, 0x254B }, { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, - { 0x25A0, 0x25A9 }, + { 0x25A0, 0x25A1 }, + { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, @@ -101,12 +142,20 @@ static wc_map ucs_ambwidth_map[] = { { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, - { 0x261C, 0x261E }, - { 0x2640, 0x2642 }, - { 0x2660, 0x266F }, + { 0x261C, 0x261C }, + { 0x261E, 0x261E }, + { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, + { 0x2660, 0x2661 }, + { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, + { 0x266C, 0x266D }, + { 0x266F, 0x266F }, { 0x269E, 0x269F }, { 0x26BE, 0x26BF }, - { 0x26C4, 0x26E3 }, + { 0x26C4, 0x26CD }, + { 0x26CF, 0x26E1 }, + { 0x26E3, 0x26E3 }, { 0x26E8, 0x26FF }, { 0x273D, 0x273D }, { 0x2757, 0x2757 }, @@ -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" @@ -317,11 +320,7 @@ wrap_GC_warn_proc(char *msg, GC_word arg) lock = 0; } } -#if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2 - else if (orig_GC_warn_proc = GC_get_warn_proc()) -#else else if (orig_GC_warn_proc) -#endif orig_GC_warn_proc(msg, arg); else fprintf(stderr, msg, (unsigned long)arg); @@ -407,6 +406,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 +431,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 +758,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 +855,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); @@ -850,6 +890,7 @@ main(int argc, char **argv, char **envp) #endif #if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2 + orig_GC_warn_proc = GC_get_warn_proc(); GC_set_warn_proc(wrap_GC_warn_proc); #else orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc); @@ -1269,6 +1310,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 +1336,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 +1638,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 +1928,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 +3659,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 +5767,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 @@ -1,2 +1,2 @@ # Set of available languages. -ja +ja de diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..5e84022 --- /dev/null +++ b/po/de.po @@ -0,0 +1,903 @@ +# German translation of w3m +# Copyright (C) 2014 Fumitoshi UKAI +# This file is distributed under the same license as the w3m package. +# Markus Hiereth <markus.hiereth@freenet.de>, 2014. +msgid "" +msgstr "" +"Project-Id-Version: w3m 0.5.3\n" +"Report-Msgid-Bugs-To: satodai@w3m.jp\n" +"POT-Creation-Date: 2010-08-20 18:44+0900\n" +"PO-Revision-Date: 2014-10-19 11:15+0200\n" +"Last-Translator: Markus Hiereth <markus.hiereth@freenet.de>\n" +"Language-Team: German <debian-l10n-german@lists.debian.org>\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: menu.c:267 +msgid " Back (b) " +msgstr " Zurück (b) " + +#: menu.c:268 +msgid " Select Buffer(s) " +msgstr " Puffer auswählen (s) " + +#: menu.c:270 +msgid " Select Tab (t) " +msgstr " Reiter auswählen (t) " + +#: menu.c:272 +msgid " View Source (v) " +msgstr " Codeansicht (v) " + +#: menu.c:273 +msgid " Edit Source (e) " +msgstr " Code bearbeiten (e) " + +#: menu.c:274 +msgid " Save Source (S) " +msgstr " Code speichern (S) " + +#: menu.c:275 +msgid " Reload (r) " +msgstr " Erneut laden (r) " + +#: menu.c:276 menu.c:283 menu.c:287 +msgid " ---------------- " +msgstr " ---------------------- " + +#: menu.c:277 +msgid " Go Link (a) " +msgstr " Ziel öffnen.. (a) " + +#: menu.c:278 +msgid " on New Tab (n) " +msgstr " ..in neuem Reiter (n) " + +#: menu.c:279 +msgid " Save Link (A) " +msgstr " Ziel speichern (A) " + +#: menu.c:280 +msgid " View Image (i) " +msgstr " Bild anzeigen (i) " + +#: menu.c:281 +msgid " Save Image (I) " +msgstr " Bild speichern (I) " + +#: menu.c:282 +msgid " View Frame (f) " +msgstr " Frames zeigen (f) " + +#: menu.c:284 +msgid " Bookmark (B) " +msgstr " Lesezeichen (B) " + +#: menu.c:285 +msgid " Help (h) " +msgstr " Hilfe (h) " + +#: menu.c:286 +msgid " Option (o) " +msgstr " Einstellungen (o) " + +#: menu.c:288 +msgid " Quit (q) " +msgstr " Programm verlassen (q) " + +#: rc.c:60 +msgid "External Viewer Setup" +msgstr "Konfiguration für externe Anzeigeprogramme" + +#: rc.c:61 +msgid "Tab width in characters" +msgstr "Tabulatorbreite in Zeichen" + +#: rc.c:62 +msgid "Indent for HTML rendering" +msgstr "Einzug bei HTML-Darstellung" + +#: rc.c:63 +msgid "Number of pixels per character (4.0...32.0)" +msgstr "Anzahl von Pixeln pro Zeichen (4.0 bis 32.0)" + +#: rc.c:64 +msgid "Number of pixels per line (4.0...64.0)" +msgstr "Anzahl von Pixeln pro Zeile (4.0 bis 64.0)" + +#: rc.c:65 +#entsprechend Bescheibung aus MANUAL.html, mh 14.10.2014 +msgid "Number of remembered lines when used as a pager" +msgstr "Anzahl gemerkter, über die Standardeingabe erhaltener Zeilen" + +#: rc.c:66 +msgid "Use URL history" +msgstr "URL-Chronik verwenden" + +#: rc.c:67 +msgid "Number of remembered URL" +msgstr "Anzahl von URLs in Chronik" + +#: rc.c:68 +msgid "Save URL history" +msgstr "URL-Chronik speichern" + +#: rc.c:69 +msgid "Render frames automatically" +msgstr "Frames selbstständig darstellen" + +#: rc.c:70 +msgid "Treat argument without scheme as URL" +msgstr "Eingabe ohne Protokoll-Präfix als URL auffassen" + +#: rc.c:71 +msgid "Use _self as default target" +msgstr "_self als Standard-Zielfenster verwenden" + +#: rc.c:72 +msgid "Open link on new tab if target is _blank or _new" +msgstr "Link in neuem Reiter öffnen, falls für Zielfenster _blank oder _new definiert ist" + +#: rc.c:73 +msgid "Open download list panel on new tab" +msgstr "Downloadliste in neuem Reiter öffnen" + +#: rc.c:74 +msgid "Display link URL automatically" +msgstr "URL der Links selbstständig anzeigen" + +#: rc.c:75 +msgid "Display link numbers" +msgstr "Linknummern anzeigen" + +#: rc.c:76 +msgid "Display decoded URL" +msgstr "URL entschlüsselt anzeigen" + +#: rc.c:77 +msgid "Display current line number" +msgstr "Aktuelle Zeilennummer anzeigen" + +#: rc.c:78 +msgid "Display inline images" +msgstr "Eingebettete Bilder anzeigen" + +#: rc.c:79 +msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" +msgstr "Pseudo-ALTs zu eingebetteten Bildern ohne ALT oder TITLE anzeigen" + +#: rc.c:81 +msgid "Load inline images automatically" +msgstr "Eingebettete Bilder selbstständig laden" + +#: rc.c:82 +msgid "Maximum processes for parallel image loading" +msgstr "Anzahl zulässiger Prozesse zum gleichzeitigen Laden von Bildern" + +#: rc.c:83 +msgid "Use external image viewer" +msgstr "Externen Bildbetrachter verwenden" + +#: rc.c:84 +msgid "Scale of image (%)" +msgstr "Bilder prozentual skalieren" + +#: rc.c:85 +msgid "External command to display image" +msgstr "Befehl für externen Bildbetrachter" + +#: rc.c:86 +msgid "Use link list of image map" +msgstr "Bei Grafiken mit eingebetteten Links Ziele auflisten" + +#: rc.c:88 +msgid "Display file names in multi-column format" +msgstr "Dateinamen auf Spalten verteilt anzeigen" + +#: rc.c:89 +msgid "Use ASCII equivalents to display entities" +msgstr "ASCII-Ersatz für in HTML benannte Zeichen verwenden" + +#: rc.c:90 +msgid "Character type for border of table and menu" +msgstr "Zeichen zum Einrahmen von Tabellen und Menüs" + +#: rc.c:91 +msgid "Fold lines in TEXTAREA" +msgstr "In Eingabefeldern vom Typ TEXTAREA Texte umbrechen" + +#: rc.c:92 +msgid "Display INS, DEL, S and STRIKE element" +msgstr "Umsetzung der Elemente INS, DEL, S und STRIKE" + +#: rc.c:93 +msgid "Display with color" +msgstr "In Farbe anzeigen" + +#: rc.c:94 +msgid "Color of normal character" +msgstr "Farbe für normalen Text" + +#: rc.c:95 +msgid "Color of anchor" +msgstr "Farbe für Links / Element A" + +#: rc.c:96 +msgid "Color of image link" +msgstr "Farbe für Bilder / Element IMG" + +#: rc.c:97 +msgid "Color of form" +msgstr "Farbe für Eingaben / Element INPUT" + +#: rc.c:98 +msgid "Enable coloring of active link" +msgstr "Aktiven Link farblich hervorheben" + +#: rc.c:99 +msgid "Color of currently active link" +msgstr "Farbe des derzeit aktiven Links " + +#: rc.c:100 +msgid "Use visited link color" +msgstr "Besuchte Links farblich hervorheben" + +#: rc.c:101 +msgid "Color of visited link" +msgstr "Farbe für besuchte Links" + +#: rc.c:102 +msgid "Color of background" +msgstr "Hintergrundfarbe" + +#: rc.c:103 +msgid "Color of mark" +msgstr "Farbe für Textmarken" +#msgstr "Farbe für Textmarkierungen" + +#: rc.c:104 +msgid "Use proxy" +msgstr "Proxy verwenden" + +#: rc.c:105 +msgid "URL of HTTP proxy host" +msgstr "URL des HTTP-Proxy-Hosts" + +#: rc.c:107 +msgid "URL of HTTPS proxy host" +msgstr "URL des HTTPS-Proxy-Hosts" + +#: rc.c:110 +msgid "URL of GOPHER proxy host" +msgstr "URL des GOPHER-Proxy-Hosts" + +#: rc.c:112 +msgid "URL of FTP proxy host" +msgstr "URL des FTP-Proxy-Hosts" + +#: rc.c:113 +msgid "Domains to be accessed directly (no proxy)" +msgstr "Ohne Proxy, direkt zu kontaktierende Domains" + +#: rc.c:114 +msgid "Check noproxy by network address" +msgstr "Direkten Datentransfer ohne Proxy mittels Netzwerkadresse sicherstellen" + +#: rc.c:115 +msgid "Disable cache" +msgstr "Zwischenspeicherung deaktivieren" + +#: rc.c:117 +msgid "News server" +msgstr "News-Server" + +#: rc.c:118 +msgid "Mode of news server" +msgstr "Modus des News-Servers" + +#: rc.c:119 +msgid "Number of news messages" +msgstr "News-Anzahl" + +#: rc.c:121 +msgid "Order of name resolution" +msgstr "Reihenfolge der Namens-Auflösung" + +#: rc.c:122 +msgid "Directory corresponding to / (document root)" +msgstr "Wurzelverzeichnis für Dokumente (/)" + +#: rc.c:123 +msgid "Directory corresponding to /~user" +msgstr "Pfad zum Benutzerverzeichnis (~)" + +#: rc.c:124 +msgid "Directory corresponding to /cgi-bin" +msgstr "Verzeichnis für ausführbare Skripte (cgi-bin)" + +#: rc.c:125 +msgid "Confirm when quitting with q" +msgstr "Das Programm erst nach Bestätigung verlassen" + +#: rc.c:126 +msgid "Close tab if buffer is last when back" +msgstr "Reiter mit nur einem Puffer auf Zurück-Befehl hin schließen" + +#: rc.c:128 +msgid "Enable mark operations" +msgstr "Arbeit mit Textmarken ermöglichen" +#msgstr "Arbeit mit Textmarkierungen ermöglichen" + +#: rc.c:130 +msgid "Enable Emacs-style line editing" +msgstr "Zeilen wie in Emacs bearbeiten" + +#: rc.c:131 +msgid "Enable vi-like numeric prefix" +msgstr "Vorangestellte Zahlen wie in vi aktivieren" + +#: rc.c:132 +msgid "Move cursor to top line when going to label" +msgstr "Labels nach Aufsuchen immer oben positionieren" + +#: rc.c:133 +msgid "Move cursor to top line when moving to next page" +msgstr "Beim Umblättern Eingabemarke nach oben setzen" + +#: rc.c:134 +msgid "Fold lines of plain text file" +msgstr "Zeilen in Textdateien umbrechen" + +#: rc.c:135 +msgid "Show line numbers" +msgstr "Zeilennummern anzeigen" + +#: rc.c:136 +msgid "Show search string" +msgstr "Suchbegriff anzeigen" + +#: rc.c:137 +msgid "List of mime.types files" +msgstr "Liste der mime.types-Dateien" + +#: rc.c:138 +msgid "List of mailcap files" +msgstr "Liste der mailcap-Dateien" + +#: rc.c:139 +msgid "List of urimethodmap files" +msgstr "Liste von Dateien mit URI-Methode-Zuordnungen" + +#: rc.c:140 +msgid "Editor" +msgstr "Editor" + +#: rc.c:141 +msgid "Mailer" +msgstr "Mail-Programm" + +#: rc.c:142 +# korrespondiert mit Pulldown-Menü, daher verkürzt. mh 09.10.2014 +msgid "How to call Mailer for mailto URLs with options" +msgstr "Umgang mit mailto-URLs" + +#: rc.c:143 +msgid "External Browser" +msgstr "Externer Browser" + +#: rc.c:144 +msgid "Second External Browser" +msgstr "Zweiter externer Browser" + +#: rc.c:145 +msgid "Third External Browser" +msgstr "Dritter externer Browser" + +#: rc.c:146 +# entsprechend file:///usr/share/doc/w3m/README.passwd +# Prüfung beanstandete auch passwd_file mit Zugriffbytes 600, mh, 05.10.2014 +msgid "Disable secret file security check" +msgstr "Keine Prüfung der Sicherheit bei Dateien mit geheimem Inhalt" + +#: rc.c:147 +msgid "Password file" +msgstr "Passwort-Datei" + +#: rc.c:148 +msgid "File for setting form on loading" +msgstr "Datei mit vordefinierten Eingaben für Formulare" + +#: rc.c:149 +msgid "Password for anonymous FTP (your mail address)" +msgstr "Passwort für anonyme FTP-Anmeldung (Ihre Mailadresse)" + +#: rc.c:150 +msgid "Generate domain part of password for FTP" +msgstr "Domain-Teil des FTP-Passwortes erzeugen" + +#: rc.c:151 +msgid "User-Agent identification string" +msgstr "Browserkennung übermitteln" + +#: rc.c:152 +msgid "Accept-Encoding header" +msgstr "Accept-Encoding-Kopfzeile" + +#: rc.c:153 +msgid "Accept header" +msgstr "Accept-Kopfzeile" + +#: rc.c:154 +msgid "Accept-Language header" +msgstr "Accept-Language-Kopfzeile" + +#: rc.c:155 +msgid "Treat URL-like strings as links in all pages" +msgstr "URL-artige Zeichenketten auf allen Seiten als Links auffassen" + +#: rc.c:156 +msgid "Wrap search" +msgstr "Im Dokument umlaufend suchen" + +#: rc.c:157 +msgid "Display unseen objects (e.g. bgimage tag)" +msgstr "Nicht gezeigte Objekte melden (z.B. Hintergrundbild)" + +#: rc.c:158 +msgid "Uncompress compressed data automatically when downloading" +msgstr "Komprimierte Daten beim Download selbstständig dekomprimieren" + +#: rc.c:160 +# String nicht in Optionen-Menü gefunden. mh, 05.10.2014 +msgid "Run external viewer in a separate session" +msgstr "Externe Anzeigeprogramme in eigener Sitzung laufen lassen" + +#: rc.c:162 +msgid "Run external viewer in the background" +msgstr "Externe Anzeigeprogramme im Hintergrund laufen lassen" + +#: rc.c:164 +msgid "Use external program for directory listing" +msgstr "Externes Programm zum Auflisten von Verzeichnissen verwenden" + +#: rc.c:165 +msgid "URL of directory listing command" +msgstr "URL des Befehls zum Auflisten von Verzeichnissen" + +#: rc.c:167 +msgid "Enable dictionary lookup through CGI" +msgstr "Wörterbuchabfrage mittels CGI aktivieren" + +#: rc.c:168 +msgid "URL of dictionary lookup command" +msgstr "URL des Befehls zur Wörterbuch-Abfrage" + +#: rc.c:170 +msgid "Display link name for images lacking ALT" +msgstr "Bei Bildern ohne ALT-Angabe Linkziel anzeigen" + +#: rc.c:171 +msgid "Index file for directories" +msgstr "Indexdatei für Verzeichnisse" + +#: rc.c:172 +msgid "Prepend http:// to URL automatically" +msgstr "Ziel-Eingaben gegebenenfalls http:// voranstellen" + +#: rc.c:173 +msgid "Default value for open-URL command" +msgstr "Vorgabewert bei der Adresseneingabe" + +#: rc.c:174 +msgid "Decode Content-Transfer-Encoding when saving" +msgstr "Beim Speichern entsprechend Content-Transfer-Encoding entschlüsseln" + +#: rc.c:175 +msgid "Preserve timestamp when saving" +msgstr "Zeitstempel beim Speichern erhalten" + +#: rc.c:177 +msgid "Enable mouse" +msgstr "Maus aktivieren" + +#: rc.c:178 +msgid "Scroll in reverse direction of mouse drag" +msgstr "Mausbewegungen entgegengesetzt scrollen" + +#: rc.c:179 +msgid "Behavior of wheel scroll speed" +msgstr "Umsetzung der Mausradbewegung" + +#: rc.c:180 +msgid "(A only)Scroll by # (%) of screen" +msgstr "(nur A) Um # % des Fensters scrollen" + +#: rc.c:181 +msgid "(B only)Scroll by # lines" +msgstr "(nur B) Um # Zeilen scrollen" + +#: rc.c:183 +msgid "Free memory of undisplayed buffers" +msgstr "Speicherplatz nicht angezeigter Puffer freigeben" + +#: rc.c:184 +msgid "Suppress `Referer:' header" +msgstr "Referer-Kopfzeile unterdrücken" + +#: rc.c:185 +msgid "Search case-insensitively" +msgstr "Groß- und Kleinschreibung beim Suchen ignorieren" + +#: rc.c:186 +msgid "Use LESSOPEN" +msgstr "LESSOPEN verwenden" + +#: rc.c:189 +msgid "Perform SSL server verification" +msgstr "SSL-Server-Verifizierung durchführen" + +#: rc.c:190 +msgid "PEM encoded certificate file of client" +msgstr "PEM-kodierte Zertifikatsdatei des Clients" + +#: rc.c:191 +msgid "PEM encoded private key file of client" +msgstr "PEM-kodierte private Schlüsseldatei des Clients" + +#: rc.c:192 +msgid "Path to directory for PEM encoded certificates of CAs" +msgstr "Pfad zum Verzeichnis für PEM-kodierte Zertifikate von CAs" + +#: rc.c:193 +msgid "File consisting of PEM encoded certificates of CAs" +msgstr "Datei mit PEM-kodierten Zertifikaten von CAs" + +#: rc.c:195 +msgid "List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t:TLSv1)" +msgstr "Liste unzulässiger SSL-Verfahren (2: SSLv2, 3: SSLv3, t: TLSv1)" + +#: rc.c:198 +msgid "Enable cookie processing" +msgstr "Cookie-Verarbeitung aktivieren" + +#: rc.c:199 +msgid "Print a message when receiving a cookie" +msgstr "Den Empfang von Cookies melden" + +#: rc.c:200 +msgid "Accept cookies" +msgstr "Cookies akzeptieren" + +#: rc.c:201 +msgid "Action to be taken on invalid cookie" +msgstr "Reaktion auf ungültiges Cookie" + +#: rc.c:202 +msgid "Domains to reject cookies from" +msgstr "Domains, deren Cookies abzulehnen sind" + +#: rc.c:203 +msgid "Domains to accept cookies from" +msgstr "Domains, deren Cookies akzeptiert werden" + +#: rc.c:204 +# Variable vom Typ String im Abschnitt Cookies-Einstellungen, mh 10.10.2014 +#, fuzzy +msgid "Domains to avoid [wrong number of dots]" +msgstr "Zu meidende Domains (falsche Anzahl von Punkten)" + +#: rc.c:206 +msgid "Number of redirections to follow" +msgstr "Anzahl zu akzeptierender Umleitungen" + +# Konfigurationsvariable vom Typ string, mh, 05.10.2014 +#: rc.c:207 +msgid "Enable processing of meta-refresh tag" +msgstr "Meta-Refresh-Element verarbeiten" + +#: rc.c:210 +msgid "Enable Migemo (Roma-ji search)" +msgstr "Romaji-Suche mittels Migemo aktivieren" + +#: rc.c:211 +msgid "Migemo command" +msgstr "Migemo-Befehl" + +#: rc.c:215 +msgid "Display charset" +msgstr "Zeichenkodierung der Anzeige" + +#: rc.c:216 +msgid "Default document charset" +msgstr "Zeichenkodierungs-Vorgabe für Dokumente" + +#: rc.c:217 +msgid "Automatic charset detect when loading" +msgstr "Selbstständige Erkennung der Zeichenkodierung beim Laden" + +#: rc.c:218 +msgid "System charset" +msgstr "Zeichenkodierung des Systems" + +#: rc.c:219 +msgid "System charset follows locale(LC_CTYPE)" +msgstr "Zeichenkodierung des Systems entsprechend Locale (LC_CTYPE)" + +#: rc.c:220 +# war zuvor +# msgstr "Halfdump mit der zur Anzeige benutzten Zeichenkodierung exportieren" +msgid "Output halfdump with display charset" +msgstr "Halfdump in der zur Anzeige benutzten Kodierung" + +#: rc.c:221 +# Konfigurationsvariable vom Typ boolean, mh, 05.10.2014 +#, fuzzy +msgid "Use multi column characters" +msgstr "Spaltenübergreifende Zeichen verwenden" + +#: rc.c:222 +msgid "Use combining characters" +msgstr "Kombinationszeichen verwenden" + +#: rc.c:223 +msgid "Use double width for some Unicode characters" +msgstr "Einzelnen Unicode-Zeichen zwei Spalten einräumen" + +#: rc.c:224 +msgid "Use Unicode language tags" +msgstr "Unicode-Sprach-Tags verwenden" + +#: rc.c:225 +msgid "Charset conversion using Unicode map" +msgstr "Zeichen in Unicode kodieren" + +#: rc.c:226 +msgid "Charset conversion when loading" +msgstr "Zeichenkodierung beim Laden anpassen" + +#: rc.c:227 +msgid "Adjust search string for document charset" +msgstr "Zu suchende Zeichenkette der Kodierung des Dokumentes anpassen" + +#: rc.c:228 +msgid "Fix character width when conversion" +msgstr "Bei Umwandlung an der Breite von Zeichen festhalten" + +#: rc.c:229 +msgid "Use GB 12345 Unicode map instead of GB 2312's" +msgstr "GB-12345-Unicode statt GB 2312 verwenden" + +#: rc.c:230 +msgid "Use JIS X 0201 Roman for ISO-2022-JP" +msgstr "JIS X 0201 Roman statt ISO-2022-JP verwenden" + +#: rc.c:231 +msgid "Use JIS C 6226:1978 for ISO-2022-JP" +msgstr "JIS C 6226:1978 statt ISO-2022-JP verwenden" + +#: rc.c:232 +msgid "Use JIS X 0201 Katakana" +msgstr "JIS X 0201 Katakana verwenden" + +#: rc.c:233 +msgid "Use JIS X 0212:1990 (Supplemental Kanji)" +msgstr "JIS X 0212:1990 verwenden (ergänzendes Kanji)" + +#: rc.c:234 +msgid "Use JIS X 0213:2000 (2000JIS)" +msgstr "JIS X 0213:2000 verwenden (2000JIS)" + +#: rc.c:235 +msgid "Strict ISO-2022-JP/KR/CN" +msgstr "Striktes ISO-2022-JP/KR/CN" + +#: rc.c:236 +msgid "Treat 4 bytes char. of GB18030 as Unicode" +msgstr "4-Byte-Zeichen von GB 18030 als Unicode auffassen" + +#: rc.c:237 +msgid "Simple Preserve space" +msgstr "Einfache Platzerhaltung" + +#: rc.c:240 +msgid "keymap file" +msgstr "Tastaturbelegungs-Datei" + +#: rc.c:257 +msgid "black" +msgstr "schwarz" + +#: rc.c:258 +msgid "red" +msgstr "rot" + +#: rc.c:259 +msgid "green" +msgstr "grün" + +#: rc.c:260 +msgid "yellow" +msgstr "gelb" + +#: rc.c:261 +msgid "blue" +msgstr "blau" + +#: rc.c:262 +msgid "magenta" +msgstr "magenta" + +#: rc.c:263 +msgid "cyan" +msgstr "cyan" + +#: rc.c:264 +msgid "white" +msgstr "weiß" + +#: rc.c:265 +msgid "terminal" +msgstr "wie Terminal" + +#: rc.c:284 +msgid "none" +msgstr "keiner" + +#: rc.c:285 +msgid "current URL" +msgstr "aktuelle URL" + +#: rc.c:286 +msgid "link URL" +msgstr "Link-URL" + +#: rc.c:291 +msgid "simple" +msgstr "einfach" + +#: rc.c:292 +msgid "use tag" +msgstr "durch Tags" + +#: rc.c:293 +msgid "fontify" +msgstr "hervorgehoben" + +#: rc.c:299 +msgid "A:relative to screen height" +msgstr "A: relativ zu Fensterhöhe" + +#: rc.c:300 +msgid "B:fixed speed" +msgstr "B: feste Geschwindigkeit" + +#: rc.c:307 +msgid "unspecified" +msgstr "nicht spezifiziert" + +#: rc.c:308 +msgid "inet inet6" +msgstr "inet inet6" + +#: rc.c:309 +msgid "inet6 inet" +msgstr "inet6 inet" + +#: rc.c:310 +msgid "inet only" +msgstr "nur inet" + +#: rc.c:311 +msgid "inet6 only" +msgstr "nur inet6" + +#: rc.c:318 +msgid "discard" +msgstr "verwerfen" + +#: rc.c:320 +msgid "accept" +msgstr "annehmen" + +#: rc.c:322 +msgid "ask" +msgstr "nachfragen" + +#: rc.c:329 +# gehört zu rc.c:142 +# erscheint in Pulldown-Menü, daher verkürzt. mh 09.10.2014 +msgid "use internal mailer instead" +msgstr "Mail intern erstellen" + +#: rc.c:331 +# gehört zu rc.c:142 +# erscheint in Pulldown-Menü, daher verkürzt. mh 09.10.2014 +msgid "ignore options and use only the address" +msgstr "Optionen ignorieren" + +#: rc.c:332 +# gehört zu rc.c:142 +# erscheint in Pulldown-Menü, daher verkürzt. mh 09.10.2014 +msgid "use full mailto URL" +msgstr "komplett verwenden" + +#: rc.c:341 +msgid "OFF" +msgstr "AUS" + +#: rc.c:342 +msgid "Only ISO 2022" +msgstr "Nur ISO-2022" + +#: rc.c:343 +msgid "ON" +msgstr "AN" + +#: rc.c:349 +# Wert aus einem Set zur Wiedergabe von Rändern, mh, 05.10.2014 +msgid "ASCII" +msgstr "ASCII" + +#: rc.c:350 +# Wert aus einem Set zur Wiedergabe von Rändern, mh, 05.10.2014 +# hier ist "Zeichensatz" akzeptabel mh, 09.10.2014 +msgid "charset specific" +msgstr "zeichensatzspezifisch" + +#: rc.c:351 +# Wert aus einem Set zur Wiedergabe von Rändern, mh, 05.10.2014 +msgid "DEC special graphics" +msgstr "mit DEC-Grafiken" + +#: rc.c:714 +msgid "Display Settings" +msgstr "Einstellungen zur Anzeige" + +#: rc.c:716 +msgid "Color Settings" +msgstr "Farbeinstellungen" + +#: rc.c:718 +msgid "Miscellaneous Settings" +msgstr "Weitere Einstellungen" + +#: rc.c:719 +msgid "Directory Settings" +msgstr "Verzeichnis-Einstellungen" + +#: rc.c:720 +msgid "External Program Settings" +msgstr "Einstellungen für externe Programme" + +#: rc.c:721 +msgid "Network Settings" +msgstr "Netzwerk-Einstellungen" + +#: rc.c:722 +msgid "Proxy Settings" +msgstr "Proxy-Einstellungen" + +#: rc.c:724 +msgid "SSL Settings" +msgstr "SSL-Einstellungen" + +#: rc.c:727 +msgid "Cookie Settings" +msgstr "Cookie-Einstellungen" + +#: rc.c:730 +msgid "Charset Settings" +msgstr "Zeichenkodierungs-Einstellungen" + +#. TRANSLATORS: +#. * AcceptLang default: this is used in Accept-Language: HTTP request +#. * header. For example, ja.po should translate it as +#. * "ja;q=1.0, en;q=0.5" like that. +#. +#: rc.c:1209 +msgid "en;q=1.0" +msgstr "de;q=1.0, en;q=0.5" @@ -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" */ @@ -326,6 +327,7 @@ openSSLHandle(int sock, char *hostname, char **p_cert) SSL_load_error_strings(); if (!(ssl_ctx = SSL_CTX_new(SSLv23_client_method()))) goto eend; + SSL_CTX_set_cipher_list(ssl_ctx, "DEFAULT:!LOW:!EXP"); option = SSL_OP_ALL; if (ssl_forbid_method) { if (strchr(ssl_forbid_method, '2')) @@ -337,7 +339,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 +1295,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 +1638,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 +1680,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 +1720,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 +1784,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 +1792,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 $< |