Description: Git master branch of Debian's w3m Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git diff --git a/Bonus/goodict.cgi b/Bonus/goodict.cgi index 8f443c1..5fb6581 100755 --- a/Bonus/goodict.cgi +++ b/Bonus/goodict.cgi @@ -1,14 +1,20 @@ #!/usr/bin/perl # ~/.w3m/urimethodmap -# e: file:/cgi-bin/goodict.cgi?%s -# w: file:/cgi-bin/goodict.cgi?%s -# j: file:/cgi-bin/goodict.cgi?%s +# e: file:/cgi-bin/goodict.cgi?%s Englich-Japanese +# w: file:/cgi-bin/goodict.cgi?%s Japanese-English +# j: file:/cgi-bin/goodict.cgi?%s Japanese +# a: file:/cgi-bin/goodict.cgi?%s All +# +# e:0:word start with word +# e:1:word perfect match +# e:2:word end with word +# e:3:word search body text +# e:6:word search title +# e:word perfect match -use NKF; -#$mode = 0; # substring -$mode = 1; # perfect match -#$mode = 3; # search body text +use Encode; +use Encode::Guess qw/euc-jp utf8/; $url = "http://dictionary.goo.ne.jp"; $_ = $ENV{"QUERY_STRING"}; if (/^e:/) { @@ -17,14 +23,22 @@ if (/^e:/) { $kind = 'je'; } elsif (/^j:/) { $kind = 'jn'; +} elsif (/^a:/) { + $kind = 'all' +} +s@^[ewja]:@@ && s@^//@@ && s@/$@@; +if (/^([01236]):/) { + $mode=$1; + s/^[01236]://; +}else{ + $mode="1"; } -s@^[ewjs]:@@ && s@^//@@ && s@/$@@; if ($_) { s/\+/ /g; s/%([\da-f][\da-f])/pack('C', hex($1))/egi; - $_ = nkf("-e", $_); + $_ = encode("utf8", decode("Guess", $_)); s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg; - $url .= "/search.php?MT=$_&kind=$kind&mode=$mode"; + $url .= "/srch/$kind/$_/m$mode"."u/"; } else { $input = "w3m-control: GOTO_LINK"; } diff --git a/ChangeLog b/ChangeLog index 88358ef..f7f9a06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1050 @@ +2016-07-18 Tatsuya Kinoshita + + * NEWS: Update NEWS. + + * fm.h: Set default_url to 1 by default. + +2016-06-20 Tatsuya Kinoshita + + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Trim trailing spaces. + +2016-06-20 Markus Hiereth + + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Update German help messages. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#47 + +2016-06-19 Tatsuya Kinoshita + + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Convert German help messages to UTF-8. + + * main.c: Update description of SOURCE and VIEW. + +2016-06-19 Markus Hiereth + + * doc-de/README.func, doc/README.func: + Update description of SOURCE and VIEW. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#37 + +2016-06-19 Tatsuya Kinoshita + + * NEWS: Update NEWS. + + * doc-de/README.func: Update German messages. + + * doc/README.func, main.c, menu.c: Update English messages. + + * doc-jp/README.func, scripts/w3mhelp-funcdesc.ja.pl.in: + Update Japanese help messages. + +2016-06-19 Markus Hiereth + + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Update German help messages. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682 + + * doc/README.func, scripts/w3mhelp-funcdesc.en.pl.in: + * scripts/w3mhelp.cgi.in: Update English help messages. + +2016-05-11 Tatsuya Kinoshita + + * config.guess, config.sub: + Update config.* with autotools-dev 20160430.1. + +2016-04-14 Tatsuya Kinoshita + + * doc-de/README.func, doc-jp/README.func, doc/README.func: + * w3m-doc/sample/keymap.cgi: Cleanup obsolete INIT_MAILCAP. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820902 + + * NEWS: Update NEWS. + +2016-04-08 Tatsuya Kinoshita + + * libwc/johab.c: Fix segfault on bogus text for wc_N_to_johab1. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820373 + +2016-04-07 Tatsuya Kinoshita + + * libwc/map/big5_ucs.map, libwc/map/cns11643_ucs.map: + * libwc/map/gb12345_ucs.map, libwc/map/gb2312_ucs.map: + * libwc/map/gbk_ucs.map, libwc/map/hkscs_ucs.map: + * libwc/map/jisx0208x0212x0213_ucs.map, libwc/map/ksx1001_ucs.map: + * libwc/map/sjis_ext_ucs.map, libwc/map/uhc_ucs.map, libwc/ucs.c: + * libwc/ucs.map: Fix segfault on bogus text for wc_any_to_ucs. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820162 + +2016-04-03 Tatsuya Kinoshita + + * doc/FAQ.html, doc/MANUAL.html: Update English documents. + +2016-04-03 Markus Hiereth + + * doc/FAQ.html, doc/MANUAL.html: Update English documents. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#25 + +2016-04-02 Tatsuya Kinoshita + + * configure, configure.ac, doc-de/README.func, scripts/Makefile.in: + * scripts/w3mhelp-funcdesc.de.pl.in, scripts/w3mhelp.cgi.in: + Support German translated help messages (translation is in progress). + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682 + + * doc-jp/w3m.1, doc/w3m.1: Update manpage footers to w3m 0.5.3. + + * doc-jp/MANUAL.html, doc-jp/w3m.1, w3m-doc/outline.html.in: + * w3mhelp-lynx_ja.html.in, w3mhelp-w3m_ja.html.in: + Update Japanese documents for extbrowser4..9. + +2016-04-02 Justin B Rye + + * doc/FAQ.html, doc/MANUAL.html, doc/README.func, doc/menu.submenu: + * main.c, menu.c, scripts/w3mhelp-funcdesc.ja.pl.in: + * scripts/w3mhelp.cgi.in, w3mhelp-lynx_en.html.in: + * w3mhelp-w3m_en.html.in: English fixes. + cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#15 + Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00002.html + Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00030.html + Origin: https://lists.debian.org/debian-l10n-english/2015/02/msg00011.html + +2016-03-30 Leo Famulari + + * url.c: Disable RC4. + Origin: http://git.savannah.gnu.org/cgit/guix.git/commit/?id=62339e2d493bf87a3aabe12e45458581e9705d83 + +2016-03-29 Tatsuya Kinoshita + + * url.c: Fix variable is reassigned a value before the old one has + been used. + + * regex.c: Fix printf format specifier mismatch when REGEX_DEBUG. + + * w3mimg/fb/fb.c: Fix invalid braces when not Linux or FreeBSD. + + * local.c: Fix uninitialized variable when not HAVE_PUTENV. + + * w3mimgdisplay.c: Fix realloc mistake for DrawImage. + + * file.c: Fix mistake of unescape spaces for _doFileCopy. + cf. [w3m-dev-en 00751], [w3m-dev-en 00752] on 2002-06-09 + + * url.c: Fix style of array index is used before limits check. + Bug: https://sourceforge.net/p/w3m/feature-requests/25/ + +2016-03-22 Tatsuya Kinoshita + + * menu.c, proto.h: Fix build failure when not USE_MOUSE for sgrmouse. + cf. https://twitter.com/naota344/status/711541592167854081 + +2016-03-20 Tatsuya Kinoshita + + * rc.c: Fix reverse ordered config parameters. + +2016-03-19 Tatsuya Kinoshita + + * doc/FAQ.html: Update FAQ for extbrowser. + +2016-03-14 Tatsuya Kinoshita + + * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po, rc.c: + Update PO strings for extbrowser2..9. + +2016-03-13 Tatsuya Kinoshita + + * acinclude.m4, configure: + Set firefox instead of mozilla to default browser. + + * po/Makefile.in.in, po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po: + * po/zh_TW.po: Update PO strings for extbrowser4..9. + + * doc-jp/MANUAL.html, doc/MANUAL.html, fm.h, main.c, rc.c: + Add extbrowser4, extbrowser5, ..., and extbrowser9. + e.g. + - extbrowser8 url=%s && printf %s "$url" | xsel && printf %s "$url" | xsel -b + - extbrowser9 mpv %s & + cf. https://github.com/spcmd/w3m + +2016-02-28 Tatsuya Kinoshita + + * menu.c: Fix SIGFPE for ACCESSKEY. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092 + + * doc/README.func, main.c: Typo fix for ACCESSKEY. + cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092#5 + +2015-12-20 Franz Thoma + + * w3mimg/x11/x11_w3mimg.c: Fix semi-transparent artifacts in w3m-img + when used with 32-bit color (e.g. urxvt). + imlib_render_image_on_drawable_at_size() tended to leave nasty + semi-transparent artifacts in 32-bit mode. Apparently, resizing an + image in 32-bit mode affects the alpha channel even if there is no + transparency in the image. With this patch, resizing is done in + 24-bit mode (or whatever depth the original image has) before + converting the image to 32-bit and rendering it on the display. + Origin: https://gist.github.com/fmthoma/f76a1b44e00d5ca972bb + cf. https://github.com/hut/ranger/issues/86#issuecomment-166027119 + +2015-12-17 Tatsuya Kinoshita + + * w3mimg/x11/x11_w3mimg.c: + Wrap render_pixbuf_to_pixmap_32() in USE_GTK2. + +2015-12-17 Araki Ken + + * w3mimg/x11/x11_w3mimg.c: + w3mimgdisplay supports 32 bit depth screen. (e.g. gnome-terminal) + Origin: https://bitbucket.org/arakiken/w3m/commits/f9c22db8cfd1aaba9bb7301ef9ba51ed88d8bb40 + +2015-12-17 Tatsuya Kinoshita + + * w3mimg/x11/x11_w3mimg.c: + Revert "Fix handling visuals and colormaps incorrectly". + This reverts commit e24b4064daf3e022e370788a8c7267db40c37dda. + +2015-11-19 Tatsuya Kinoshita + + * fm.h: Accept cookies by default. + + * fm.h: Set argv_is_url to 1 by default. + Bug-Arch: https://bugs.archlinux.org/task/47102 + +2015-11-18 Tatsuya Kinoshita + + * config.guess, config.sub: + Update config.* with autotools-dev 20150820.1. + +2015-11-11 Mingye Wang (Arthur2e5) + + * po/LINGUAS, po/zh_CN.po, po/zh_TW.po: + Add zh_CN and zh_TW translations. + Please note that the zh_TW translation is machine-converted using + OpenCC from zh_CN, and needs to be further polished by actual zh_TW + speakers. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804732#10 + +2015-10-24 BwackNinja + + * w3mimg/x11/x11_w3mimg.c: + Fix handling visuals and colormaps incorrectly. + cf. https://github.com/hut/ranger/issues/86 + Origin: https://gist.github.com/BwackNinja/60a344730170f9ce2163 + Bug-Arch: https://bugs.archlinux.org/task/46836 + Bug: https://sourceforge.net/p/w3m/patches/72/ + +2015-10-10 Tatsuya Kinoshita + + * cookie.c: Remove incomplete special_domain tests. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=385702 + +2015-10-04 Gaetan Bisson + + * scripts/w3mhelp.cgi.in: Do not use defined(%hash). + Origin: https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/w3m&id=d9e0a4f0b461c9e2177cd9e64a10581386650503 + Bug-Arch: https://bugs.archlinux.org/task/45608 + +2015-09-06 Tatsuya Kinoshita + + * file.c: Do not use C99-style comments. + +2015-09-06 David Crosby + + * file.c: Mitigate issue #16 found by @kcwu. + * table.c: Fix stack overflow found by @kcwu. + Origin: https://github.com/dafyddcrosby/sw3m + Bug-sw3m: https://github.com/dafyddcrosby/sw3m/issues/16 + +2015-08-21 Tatsuya Kinoshita + + * doc-jp/keymap.lynx, doc/keymap.lynx: Fix unknown key. + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/265144 + Bug: https://sourceforge.net/p/w3m/bugs/48/ + +2015-08-11 David Crosby + + Fix resource leaks, dead assignments, divide-by-zero, and so on. + Origin: https://github.com/dafyddcrosby/sw3m + + * buffer.c: Check for presence of prevl before using. + + * html.h: Adjust UFclose to remove false positive of CWE-481. + + * ftp.c: Move sockent for splint. + + * cookie.c: Use unsigned int for max_count. + + * libwc/iso2022.c: Add missing comparision that made if always true. + + * Str.c: Use fgetc in while loops, use int instead of char. + + * mailcap.c: Adjust len to size_t. + + * history.c: Check return value of rename. + + * main.c: Adjust while loop. + + * news.c: Check dup call for errors. + + * file.c: Remove unused value. + + * ftp.c: dup can give a negative value. + + * main.c: Use int for c. + + * table.c: Initialize new_tabwidth at declaration. + + * local.c: Remove overflow on readlink. + + * anchor.c, file.c, istream.c, main.c, menu.c, rc.c, table.c, terms.c: + * url.c: Remove dead assignments flagged by Clang static analysis. + + * w3mbookmark.c: + Move fclose to fix dereference after null check (Coverity). + + * file.c: Fix resource leak in AuthDigestCred. + + * buffer.c: Fix resource leak in readBufferCache. + + * cookie.c: Fix resource leak in load_cookies. + + * frame.c: Fix resource leak. + + * w3mhelperpanel.c: Fix resource leak. + + * w3mbookmark.c: Fix resource leak and a null return value dereference. + + * linein.c: Fix a divide-by-zero. + + * cookie.c: Change total_dot_number to unsigned int. + + * cookie.c: Free tmp. + + * local.c: Remove unreachable return. + +2015-08-10 Alan Grow + + * url.c (HTTPrequest): + - Use Content-Type instead of Content-type. + - Use Content-Length instead of Content-length. + Origin: https://github.com/acg/w3m/commit/5946c2784d4eae46ec06e52390e43a874b3395fc + +2015-08-09 Egmont Koblinger + + * terms.c: Support sgrmouse for skip_escseq. + * menu.c: Adjust comments for keymaps. + Origin: https://sourceforge.net/p/w3m/patches/65/#e2aa + +2015-08-09 Tatsuya Kinoshita + + * keybind_lynx.c: Support sgrmouse for Lynx-like key binding. + cf. https://sourceforge.net/p/w3m/patches/65/ + +2015-08-09 IWAMOTO Kouichi + + * menu.c: Support SGR style mouse handler for menu. + cf. https://github.com/tats/w3m/issues/5 + Origin: https://gist.github.com/ttdoda/83fbcf676a21da28432b + Bug: https://sourceforge.net/p/w3m/patches/65/ + +2015-08-06 Richard Quirk + + Fix problems reported by cppcheck, clang --analyze and gcc warnings. + Origin: https://github.com/tats/w3m/pull/6 + + * Str.c, Str.h: Strnew_charp and co do not modify the char* input. + + * local.c: Close temp file if pipe open fails. + + * rc.c: Avoid passing null to strlen. + + * file.c: Initialise hidden_input to NULL. + This prevents a possible use of garbage value on line 3017. + + * file.c: Use pclose for pipe. + +2015-08-05 IWAMOTO Kouichi + + * main.c: Fix that SGR style mouse handler has off-by-one problem. + cf. https://github.com/tats/w3m/issues/5 + Origin: https://gist.github.com/ttdoda/30c189a63d483beeb207 + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1390768 + Bug: https://sourceforge.net/p/w3m/patches/65/ + +2015-07-31 yshl + + * Bonus/goodict.cgi: + - Use Encode.pm instead of NKF. + - Update to the current URL. + - Enable to select search mode. + Origin: https://github.com/tats/w3m/pull/4 + +2015-07-20 Tatsuya Kinoshita + + * README: Add short description. + + * doc-jp/FAQ.html, doc/FAQ.html: Mention GOPHER_PROXY and FTP_PROXY. + +2015-07-05 Tatsuya Kinoshita + + * doc-jp/FAQ.html, doc/FAQ.html: Mention HTTPS_PROXY. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791425 + +2015-06-27 yshl + + * doc-jp/README.SSL: Modify certdata2pem.rb to assume the encoding + of the certdata.txt to be UTF-8. + Origin: https://github.com/tats/w3m/pull/3 + +2015-06-23 Daniel Schepler + + * terms.c: Wrap the functions used by image.c in USE_IMAGE. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789539 + +2015-05-09 Tatsuya Kinoshita + + * doc-jp/README.siteconf, doc/README.siteconf: + Update examples of siteconf for twitter.com. + +2015-05-03 Tatsuya Kinoshita + + * main.c: Correct GC version confirmation. + +2015-05-02 yshl + + * main.c: Correct GC version confirmation. + Origin: https://github.com/tats/w3m/pull/2 + +2015-04-29 Markus Hiereth + + * po/de.po: Update German translation. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=783383 + +2015-04-29 Tatsuya Kinoshita + + * po/Makevars, po/de.po, po/ja.po, po/w3m.pot, rc.c: + Update PO strings for display_borders. + +2015-04-26 yshl + + * main.c: Use GC_oom_fn instead of GC_set_oom_fn for gc-7.1. + Origin: https://github.com/tats/w3m/pull/1 + +2015-02-03 Tatsuya Kinoshita + + * po/de.po, po/ja.po, po/w3m.pot: Update PO. + +2015-02-02 Tatsuya Kinoshita + + * file.c, fm.h, rc.c: + New option "display_borders" to display 0 pixel table borders. + cf. http://d.hatena.ne.jp/rubikitch/20101120 + +2015-01-24 Tatsuya Kinoshita + + * acinclude.m4, configure, version.c.in: + Update to 0.5.3+gitYYYYMMDD (generate from ChangeLog). + +2015-01-15 Tatsuya Kinoshita + + * alloc.h, main.c: Drop C99 features. + +2015-01-15 Scarlett + + Add overflow detection. + Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2 + * main.c: Call exit(1) when out of memory to avoid dereferencing null + pointers when gc's malloc fails. + * alloc.h: Replacements for w3m's allocation macros which add + overflow detection and concentrate the macros in one file. + * indep.h, libwc/charset.c, libwc/status.c, matrix.c: Use the + overflow-detecting allocation macros from alloc.h. + +2015-01-15 Tatsuya Kinoshita + + * Str.c, cookie.c, map.c: + Do not use C99 printf format specifiers and asprintf. + +2015-01-15 Scarlett + + Correct printf arguments and use asprintf. + Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2 + * Str.c: Use asprintf() instead of rolling our own printf string + length detection. + * cookie.c: Pass the char pointer in the string struct to printf %s + instead of the string struct itself. + Print time_t using %lld instead of %ld to allow for 64-bit time_t. + * main.c: Print a long int using the correct format specifier. + * map.c: Print size_t using the correct format specifier. + +2014-12-06 Araki Ken + + Support OSC 5379 remote imaging and sixel graphics. + Origin: https://bitbucket.org/arakiken/w3m/branch/remoteimg (2014-11-16) + + * doc/README.sixel, terms.c: Add README.sixel. W3M_IMG2SIXEL + environmental variable enables to specify options of img2sixel. + + * image.c, terms.c: + Add n_terminal_image argument to put_image_{sixel|osc5379}(). + Use struct winsize to calculate ppc and ppl. + + * terms.c: If SCREEN_VARIANT=sixel on GNU screen, exec img2sixel + without -P option. + + * terms.c: ttymode_set() -> ttymode_reset(). + + * terms.c: Fix. + + * terms.c: Support GNU screen. + + * terms.c: Show GIF (except animation GIF) correctly. + + * main.c, terms.c: img2sixel exits by Ctrl+C. Enable GIF Animation if + 'I' is pressed to show it. + + * image.c: Add declaration of get_pixel_per_cell(). + + * terms.c: Show the first frame of animation gif files. + + * terms.c: system() -> fork()&execvp() + + * display.c: Draw underline on anchor which contains cboth text and + images. + + * etc.c: Remove close_tty() from setup_child() because close_tty() + sometimes interrupts loadGeneralFile() in loadImage() and corrupt + image data can be cached in ~/.w3m. + + * image.c: Minor fix. + + * image.c: Cache image files if at all possible and convert them to + sixel when -sixel option is specified. + + * image.c: Init pixel_per_{char|line}_i if get_pixel_per_cell() fails. + + * display.c, file.c, fm.h, image.c, main.c, terms.c: + Add -sixel option which supports image processing by img2sixel. + + * image.c: Don't download image files whose size is specified in + tag. + + * image.c: Minor fixes of parseImageHeader(). + + * image.c: Determine the format of an image file by its header data + not by its file name suffix. + + * image.c: Read width and height from jpeg, png and gif files directly + instead of executing w3mimgdisplay -size. + + * display.c: display.c: Draw underline on anchor text which is not + overlapped with any image. + + * terms.c: Clear fd_set by FD_ZERO() before select(). + + * file.c: nw and ni are rounded up instead of rounded off to show + every corner of images. + + * terms.c: Change time to wait for the response of "\x1b[14t\x1b[18t" + from 0.1 sec to 0.5 sec. + + * image.c: + - clearImage() works. + - Use cached image files created by w3m in getImage(). + + * file.c: Hack for alignment. + + * fm.h, image.c, terms.c: + - Adjust the image size to the terminal cell size. + - If the image size is specified in html source, skip to load the image. + + * display.c, fm.h, image.c, main.c, terms.c, w3mimg/x11/x11_w3mimg.c: + Support remote image by OSC 5379 show_picture sequence. + +2014-12-06 Olaf Hering + + * parsetagx.c: Fix crash in parse_tag() during every start. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-parsetagx-crash.patch?expand=1 + + * fm.h: Change the default to alt_entity=0. + Change the default for the option "Use ASCII equivalents to + display entities" from YES to NO. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-0.5.1-no-ASCII-equivalents-by-default.patch?expand=1 + Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=247397 + + * anchor.c, libwc/gb18030.c, libwc/ucs.c, regex.c: + Fix a few harmless uninitialized variables. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-uninitialized.patch?expand=1 + +2014-12-06 Peter Poeml + + * terms.c: Prevent segfault when editing a textarea field with vi. + Add fix for segfault that can occur when editing a textarea field + with vi, and returning to w3m (it seems to happen if the terminal + is not writable, as when using w3m after 'su - some_user') + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-0.4.1-textarea-segfault.dif?expand=1 + +2014-12-04 Tatsuya Kinoshita + + * acinclude.m4: Follow updated configure. + +2014-12-03 Yusuke Baba + + * configure, w3mimg/fb/fb.c, w3mimg/fb/fb.h, w3mimg/fb/fb_w3mimg.c: + Support FreeBSD framebuffer. + Origin: http://www.ac.auone-net.jp/~baba/w3m-img/index.html + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=122673 + +2014-12-02 Naohiro Aota + + * acinclude.m4, configure, w3mimg/fb/fb_gdkpixbuf.c: + * w3mimg/x11/x11_w3mimg.c: + Depend on gdk-pixbuf instead of gtk when gtk2. + Origin: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch?revision=1.1 + +2014-12-02 Jeroen Roovers + + * acinclude.m4, configure: Add tinfo to with_termlib. + Fix building against sys-libs/ncurses[tinfo]. + Origin: https://504588.bugs.gentoo.org/attachment.cgi?id=372650 + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=504588 + +2014-12-01 OBATA Akio + + * acinclude.m4, configure: + Assume defined PKG_CONFIG points right location when gtk2. + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-aa?rev=1.13&content-type=text/x-cvsweb-markup + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-ak?rev=1.1&content-type=text/x-cvsweb-markup + +2014-12-01 Vsevolod Stakhov + + * config.h.in: Disable USE_EGD for LibreSSL. + Disable use of RAND_egd as it is absent in FreeBSD. + This also fixes build error with LibreSSL. + Origin: https://bz-attachments.freebsd.org/attachment.cgi?id=144635 + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191852 + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191956 + +2014-12-01 zimous + + * po/ja.po: Set Language tag properly for Japanese translation. + Origin: https://512722.bugs.gentoo.org/attachment.cgi?id=378452 + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=512722 + +2014-11-30 Tatsuya Kinoshita + + * doc/w3m.1: Typo fix. + +2014-11-30 Markus Hiereth + + * doc/w3m.1: Miscellaneous changes to improve English manpage. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + +2014-11-29 Markus Hiereth + + * doc/w3m.1: Improve FILES. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403634 + + * doc/w3m.1: Improve EXAMPLES. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380560 + + * doc/w3m.1: Improve explanation about option -N. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345084 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530468 + + * doc/w3m.1: Note that -cols only affects when HTML is rendered. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=285251 + + * doc/w3m.1: Add more info on configuration. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=268211 + +2014-11-29 Justin B Rye + + * scripts/w3mman/w3mman.1.in: Tweak for W3MMAN_W3M. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771003#5 + + * scripts/w3mman/w3mman.1.in: English fixes. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#25 + +2014-11-29 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-19+. + +2014-11-29 Justin B Rye + + * scripts/w3mman/w3mman2html.cgi.in: Fix Perl warnings. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771004 + +2014-10-21 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-19 + + * po/LINGUAS: Correct LINGUAS to a whitespace separated list + +2014-10-21 Markus Hiereth + + * po/LINGUAS, po/de.po: Add German translation + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763964 + +2014-10-15 Tatsuya Kinoshita + + * 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 + + * 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 + + * version.c.in: Update to 0.5.3+debian-17+ + +2014-10-04 Tatsuya Kinoshita + + * libwc/ambwidth_map.awk, libwc/map/ucs_ambwidth.map: + Fix incorrect generation of ucs_ambwidth_map + +2014-08-22 Tatsuya Kinoshita + + * 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 + + * 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 + + * 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 + + * 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 + + * version.c.in: Update to 0.5.3+debian-15 + +2014-01-03 Tatsuya Kinoshita + + * 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 + + * 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 + + * version.c.in: Update to 0.5.3+debian-13 + +2013-12-14 Tatsuya Kinoshita + + * 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 + + * 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 + + * main.c: Fix crash after SEARCH_NEXT. + Patch from , + [w3m-dev:04473] on 2013-12-07. + +2013-11-11 Paul Boekholt + + * file.c: Add support for single quoted meta refresh URL + Bug: https://sourceforge.net/p/w3m/patches/53/ + Bug-NetBSD: http://gnats.netbsd.org/42400 + +2013-11-07 Cristian Rodriguez + + * 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 + + * 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 + + * url.c: Define schemeNumToName() to fix scheme bug. + Patch from , + [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 , + [w3m-dev:04469] on 2013-10-14. + +2013-10-14 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-12+ + +2013-10-14 Jarek Czekalski + + * terms.c: Fix paren in check_cygwin_console() + Bug: https://sourceforge.net/p/w3m/patches/66/ + +2013-10-13 Tatsuya Kinoshita + + * 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 + + * table.h: Bump MAXCOL to 256 + Bug: https://sourceforge.net/p/w3m/feature-requests/24/ + +2013-10-12 Laurence Richert + + * 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 + + * doc-jp/README, doc/README: + Mention project page rather than unavailable mailing lists + +2013-10-09 Rafael Laboissiere + + * doc/README.img: Fix typo + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725892 + +2013-08-12 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-11+ + + * ChangeLog: Update ChangeLog to use contributor's name + +2013-08-08 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-11 + +2013-08-04 Tatsuya Kinoshita + + * 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 + + * version.c.in: Update to 0.5.3+debian-10 + +2013-08-02 Piotr P. Karwasz + + * scripts/w3mman/w3mman2html.cgi.in: + Correct underline processing and more UTF-8 support for w3mman2html.cgi. + Patch from + on 2010-11-23. + +2013-08-01 Hilko Bengen + + * entity.c: Ignore SOFT HYPHEN to prevent drawing hyphens everywhere. + Patch from + on 2011-03-01. + +2013-08-01 Tatsuya Kinoshita + + * 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 + + * 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 + + * main.c: Sort anchors by sequence number in -dump. + Patch from + on 2012-01-27. + +2013-07-30 Tatsuya Kinoshita + + * version.c.in: Update to 0.5.3+debian-9+ + +2013-07-29 Tatsuya Kinoshita + + * 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 + + * file.c: Fix segfault of process_button() + +2013-04-08 AIDA Shinra + + * 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 + + * keybind.c, main.c, proto.h, terms.c: + Support SGR 1006 mouse reporting. + cf. [w3m-dev 04466] on 2012-07-15 + Origin: https://gist.github.com/3114255 + Bug: https://sourceforge.net/p/w3m/patches/65/ + +2012-05-19 Hilko Bengen + + * form.c: Assume "text" if an input type is unknown. + Patch from on 2011-03-01. + +2012-05-19 Simon Ruderich + + * Makefile.in: Use $(CPPFLAGS) with $(CPP). + Patch from + on 2012-03-24. + +2012-05-03 Miroslav Šulc + + * w3mimg/Makefile.in: Fix parallel make issue. + Patch from Gentoo + + on 2011-02-01. + +2012-05-03 MATSUU Takuto + + * main.c: Support Boehm GC 7.2. + Patch from Gentoo + + on 2009-12-13. + +2012-05-02 Reinhard Tartler + + * istream.c, istream.h: + Fix that struct file_handle conflicts with glibc 2.14. + Patch from + on 2012-02-19. + +2011-10-30 Colin Watson + + * 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 + + * 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 + + * main.c: Change the -s option to "squeeze multiple blank lines". + 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 + + * 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 + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/628755 + 2012-05-22 Tatsuya Kinoshita * [w3m-dev 04451] w3m/entity.h should be removed when `make clean' diff --git a/Makefile.in b/Makefile.in index 7d692f9..8fa799e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -150,7 +150,7 @@ parsetagx.o: html.c funcname.tab: $(DEFUNS) (echo '#define DEFUN(x,y,z) x y';\ - sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) - | \ + sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) $(CPPFLAGS) - | \ awk '$$1 ~ /^[_A-Za-z]/ { \ for (i=2;i<=NF;i++) { print $$i, $$1} \ }' > $@.tmp @@ -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)); \ diff --git a/NEWS b/NEWS index 66e309d..c55e929 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,39 @@ +w3m X.X.X - YYYY-MM-DD + +* new features + - support OSC 5379 remote imaging and sixel graphics + - support SGR style mouse handler + - support 32-bit color images + - support FreeBSD framebuffer + - support button element + - support meta charset + - add extbrowser4..9 + - add display_borders to display 0 pixel table borders + - add siteconf feature + - add German translation for options setting panel + - add translations for de, zh_CN and zh_TW +* bug fixes + - fix segfaults with malformed text + - disable SSLv2 and SSLv3 by default [CVE-2014-3566] + - set ssl_verify_server to 1 by default + - disable RC4, export ciphers, and keys < 128 bits + - use SSL_OP_NO_COMPRESSION due to "CRIME attack" [CVE-2012-4929] + - use SSL_MODE_RELEASE_BUFFERS + - disable USE_EGD for LibreSSL + - appease gcc -Werror=format-security + - option -s is now "squeeze multiple blank lines" to work as pager, and + -j and -e are obsolete, so use -O{s|j|e} to specify display charset + - accept single quoted meta refresh URL + - assume "text" if a form input type is unknown + - accept cookies by default + - set default_url to 1 by default + - set argv_is_url to 1 by default + - set alt_entity to 0 by default + - fix build problems with Boehm GC 7.2, imlib2 1.4.6 and glibc 2.14 + - fix parallel make failure + - fix incorrect ucs_ambwidth_map + - and many fixes + w3m 0.5.3 - 2011-01-15 * security fix diff --git a/README b/README index 8778d80..765c996 100644 --- a/README +++ b/README @@ -1,3 +1,9 @@ +w3m: WWW wo Miru Tool +===================== + +w3m is a pager with WWW capability. It IS a pager, but it can be used +as a text-mode WWW browser. + If you can read English, see doc/*. If you can read Japanese, see doc-jp/*. If you can read both, read both and correct English. :-) diff --git a/Str.c b/Str.c index e5a0982..70e9957 100644 --- a/Str.c +++ b/Str.c @@ -56,7 +56,7 @@ Strnew_size(int n) } Str -Strnew_charp(char *p) +Strnew_charp(const char *p) { Str x; int n; @@ -73,7 +73,7 @@ Strnew_charp(char *p) } Str -Strnew_m_charp(char *p, ...) +Strnew_m_charp(const char *p, ...) { va_list ap; Str r = Strnew(); @@ -87,7 +87,7 @@ Strnew_m_charp(char *p, ...) } Str -Strnew_charp_n(char *p, int n) +Strnew_charp_n(const char *p, int n) { Str x; @@ -140,7 +140,7 @@ Strcopy(Str x, Str y) } void -Strcopy_charp(Str x, char *y) +Strcopy_charp(Str x, const char *y) { int len; @@ -160,7 +160,7 @@ Strcopy_charp(Str x, char *y) } void -Strcopy_charp_n(Str x, char *y, int n) +Strcopy_charp_n(Str x, const char *y, int n) { int len = n; @@ -180,7 +180,7 @@ Strcopy_charp_n(Str x, char *y, int n) } void -Strcat_charp_n(Str x, char *y, int n) +Strcat_charp_n(Str x, const char *y, int n) { int newlen; @@ -209,7 +209,7 @@ Strcat(Str x, Str y) } void -Strcat_charp(Str x, char *y) +Strcat_charp(Str x, const char *y) { if (y == NULL) return; @@ -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'; @@ -301,7 +301,7 @@ Strinsert_char(Str s, int pos, char c) } void -Strinsert_charp(Str s, int pos, char *p) +Strinsert_charp(Str s, int pos, const char *p) { STR_LENGTH_CHECK(s); while (*p) @@ -530,11 +530,8 @@ Str Strfgets(FILE * f) { Str s = Strnew(); - char c; - while (1) { - c = fgetc(f); - if (feof(f) || ferror(f)) - break; + int c; + while ((c = fgetc(f)) != EOF) { Strcat_char(s, c); if (c == '\n') break; @@ -546,11 +543,8 @@ Str Strfgetall(FILE * f) { Str s = Strnew(); - char c; - while (1) { - c = fgetc(f); - if (feof(f) || ferror(f)) - break; + int c; + while ((c = fgetc(f)) != EOF) { Strcat_char(s, c); } return s; diff --git a/Str.h b/Str.h index f345c74..248815d 100644 --- a/Str.h +++ b/Str.h @@ -30,22 +30,22 @@ typedef struct _Str { Str Strnew(void); Str Strnew_size(int); -Str Strnew_charp(char *); -Str Strnew_charp_n(char *, int); -Str Strnew_m_charp(char *, ...); +Str Strnew_charp(const char *); +Str Strnew_charp_n(const char *, int); +Str Strnew_m_charp(const char *, ...); Str Strdup(Str); void Strclear(Str); void Strfree(Str); void Strcopy(Str, Str); -void Strcopy_charp(Str, char *); -void Strcopy_charp_n(Str, char *, int); -void Strcat_charp_n(Str, char *, int); +void Strcopy_charp(Str, const char *); +void Strcopy_charp_n(Str, const char *, int); +void Strcat_charp_n(Str, const char *, int); void Strcat(Str, Str); -void Strcat_charp(Str, char *); +void Strcat_charp(Str, const char *); void Strcat_m_charp(Str, ...); Str Strsubstr(Str, int, int); void Strinsert_char(Str, int, char); -void Strinsert_charp(Str, int, char *); +void Strinsert_charp(Str, int, const char *); void Strdelete(Str, int, int); void Strtruncate(Str, int); void Strlower(Str); diff --git a/acinclude.m4 b/acinclude.m4 index e4ccc3d..ed1035d 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -6,7 +6,8 @@ dnl w3m autoconf macros AC_DEFUN([AC_W3M_VERSION], [AC_SUBST(CURRENT_VERSION) cvsver=`$AWK '\$[1] ~ /Id:/ { print \$[3]}' $srcdir/ChangeLog` - sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + ymdver=`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` + sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c CURRENT_VERSION=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c`]) # # ---------------------------------------------------------------- @@ -330,10 +331,10 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")]) # ---------------------------------------------------------------- AC_DEFUN([AC_W3M_EXT_BROWSER], [AC_SUBST(DEF_EXT_BROWSER) -w3m_browser="/usr/bin/mozilla" +w3m_browser="/usr/bin/firefox" AC_MSG_CHECKING(which external browser is used by default) AC_ARG_WITH(browser, - [ --with-browser=BROWSER default browser (/usr/bin/mozilla)], + [ --with-browser=BROWSER default browser (/usr/bin/firefox)], [w3m_browser="$with_browser"]) AC_MSG_RESULT($w3m_browser) AC_DEFINE_UNQUOTED(DEF_EXT_BROWSER, "$w3m_browser")]) @@ -400,10 +401,10 @@ AC_DEFUN([AC_W3M_TERMLIB], AC_ARG_WITH(termlib, [ --with-termlib[=LIBS] terminal library LIBS is space separated list of: - terminfo mytinfo termcap ncurses curses],, + terminfo mytinfo termcap tinfo ncurses curses],, [with_termlib="yes"]) AC_MSG_RESULT($with_termlib) - test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses" + test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses" for lib in $with_termlib; do AC_CHECK_LIB($lib, tgetent, [W3M_LIBS="$W3M_LIBS -l$lib"; break]) done @@ -600,7 +601,7 @@ AC_DEFUN([AC_W3M_IMAGE], if test x"$enable_image" = xyes; then enable_image=x11 case "`uname -s`" in - Linux|linux|LINUX) + Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) if test -c /dev/fb0; then enable_image=x11,fb fi;; @@ -649,6 +650,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;; @@ -661,8 +665,6 @@ AC_DEFUN([AC_W3M_IMAGE], with_gtk2="yes" if test x"$PKG_CONFIG" = x; then PKG_CONFIG=pkg-config - else - PKG_CONFIG=: fi;; esac done @@ -705,8 +707,8 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="x11" 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`" + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" elif test x"$have_gdkpixbuf" = xyes; then AC_DEFINE(USE_W3MIMG_X11) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" @@ -728,7 +730,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 @@ -740,8 +742,8 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_GDKPIXBUF) AC_DEFINE(USE_GTK2) - IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" - IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" elif test x"$have_gdkpixbuf" = xyes; then AC_DEFINE(USE_W3MIMG_FB) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" @@ -756,7 +758,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 @@ -866,7 +868,7 @@ AC_MSG_CHECKING(for sys_errlist) AC_TRY_COMPILE( changequote(<<,>>)dnl <>, -<>, +<>, changequote([,])dnl [have_sys_errlist="yes"; AC_DEFINE(HAVE_SYS_ERRLIST)], [have_sys_errlist="no"]) diff --git a/alloc.h b/alloc.h new file mode 100644 index 0000000..fa0d391 --- /dev/null +++ b/alloc.h @@ -0,0 +1,39 @@ +/* + * by Scarlett. public domain. + * replacements for w3m's allocation macros which add overflow + * detection and concentrate the macros in one file + */ +#ifndef W3_ALLOC_H +#define W3_ALLOC_H +#include +#include +#include +#include + +static inline size_t +z_mult_no_oflow_(size_t n, size_t size) +{ + if (size != 0 && n > ULONG_MAX / size) { + fprintf(stderr, + "w3m: overflow in malloc, %lu*%lu\n", (unsigned long)n, (unsigned long)size); + exit(1); + } + return n * size; +} + +#define New(type) \ + (GC_MALLOC(sizeof(type))) + +#define NewAtom(type) \ + (GC_MALLOC_ATOMIC(sizeof(type))) + +#define New_N(type, n) \ + (GC_MALLOC(z_mult_no_oflow_((n), sizeof(type)))) + +#define NewAtom_N(type, n) \ + (GC_MALLOC_ATOMIC(z_mult_no_oflow_((n), sizeof(type)))) + +#define New_Reuse(type, ptr, n) \ + (GC_REALLOC((ptr), z_mult_no_oflow_((n), sizeof(type)))) + +#endif /* W3_ALLOC_H */ diff --git a/anchor.c b/anchor.c index 27bbd56..2d21bfa 100644 --- a/anchor.c +++ b/anchor.c @@ -11,7 +11,7 @@ putAnchor(AnchorList *al, char *url, char *target, Anchor **anchor_return, { int n, i, j; Anchor *a; - BufferPoint bp; + BufferPoint bp = { 0 }; if (al == NULL) { al = New(AnchorList); al->anchors = NULL; @@ -200,10 +200,11 @@ _put_anchor_news(Buffer *buf, char *p1, char *p2, int line, int pos) if (*(p2 - 1) == '>') p2--; } - tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, - buf->document_charset); - tmp = Sprintf("news:%s", file_quote(tmp->ptr)); - return registerHref(buf, tmp->ptr, NULL, NO_REFERER, NULL, '\0', line, + tmp = Strnew_charp("news:"); + Strcat_charp_n(tmp, p1, p2 - p1); + return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), + buf->document_charset), + NULL, NO_REFERER, NULL, '\0', line, pos); } #endif /* USE_NNTP */ @@ -213,9 +214,10 @@ _put_anchor_all(Buffer *buf, char *p1, char *p2, int line, int pos) { Str tmp; - tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, - buf->document_charset); - return registerHref(buf, url_quote(tmp->ptr), NULL, NO_REFERER, NULL, + tmp = Strnew_charp_n(p1, p2 - p1); + return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), + buf->document_charset), + NULL, NO_REFERER, NULL, '\0', line, pos); } @@ -641,7 +643,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) { int i, j, k, col, ecol, pos; Anchor a_form, *a; - FormItemList *fi; Line *l, *ls; if (al == NULL || al->nanchor == 0) @@ -668,7 +669,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) if (!ls) continue; } - fi = (FormItemList *)a_form.url; col = COLPOS(ls, a_form.start.pos); ecol = COLPOS(ls, a_form.end.pos); for (j = 0; l && j < a_form.rows; l = l->next, j++) { @@ -756,7 +756,7 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; } @@ -787,7 +787,7 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; t = getAnchorText(buf, al, a); @@ -809,16 +809,13 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; if (a->title && *a->title) t = html_quote(a->title); - else if (DecodeURL) - t = html_quote(url_unquote_conv - (a->url, buf->document_charset)); else - t = html_quote(a->url); + t = html_quote(url_decode2(a->url, buf)); Strcat_m_charp(tmp, "
  • ", t, "
    ", p, "\n", NULL); a = retrieveAnchor(buf->formitem, a->start.line, a->start.pos); @@ -842,19 +839,13 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, - buf-> - document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; if (m->alt && *m->alt) t = html_quote(m->alt); - else if (DecodeURL) - t = html_quote(url_unquote_conv(m->url, - buf-> - document_charset)); else - t = html_quote(m->url); + t = html_quote(url_decode2(m->url, buf)); Strcat_m_charp(tmp, "
  • ", t, "
    ", p, "\n", NULL); } diff --git a/buffer.c b/buffer.c index 5afc26a..3b2352a 100644 --- a/buffer.c +++ b/buffer.c @@ -705,6 +705,7 @@ readBufferCache(Buffer *buf) cache = fopen(buf->savecache, "r"); if (cache == NULL || fread1(clnum, cache) || fread1(tlnum, cache)) { + fclose(cache); buf->savecache = NULL; return -1; } @@ -760,8 +761,10 @@ readBufferCache(Buffer *buf) } #endif } - buf->lastLine = prevl; - buf->lastLine->next = NULL; + if (prevl) { + buf->lastLine = prevl; + buf->lastLine->next = NULL; + } fclose(cache); unlink(buf->savecache); buf->savecache = NULL; diff --git a/config.guess b/config.guess index 51fab47..0967f2a 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-2016 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2016-04-02' # 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 . # # 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 . -# Please send patches to . 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; maintained since 2000 by Ben Elliston. # -# 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 # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# Please send patches to . + 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-2016 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 + #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 @@ -151,22 +168,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|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 +201,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release @@ -189,78 +221,48 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # 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 ;; + echo "${machine}-${os}${release}${abi}" + 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 ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${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 ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + 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 @@ -270,76 +272,82 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - 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 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # 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 +355,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,13 +408,13 @@ 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 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -396,10 +423,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 +436,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 +494,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 +536,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 +566,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,49 +581,54 @@ 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 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else 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,74 +637,84 @@ 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" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + 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 fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include + #define _HPUX_SOURCE + #include + #include - 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` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + 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" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 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 +742,351 @@ 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_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 ;; 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 - #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 "[:upper:]" "[:lower:]"``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 ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-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 ;; + k1om:Linux:*:*) + 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 - #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}-pc-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 +1094,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' /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,278 +1208,203 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # 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 ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-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 + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 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 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else 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 ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + 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 < -# include -#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 - 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 -# 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 <. +# # 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 . Submit a context -# diff and a properly formatted ChangeLog entry. + +# Please send patches to . # # 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 + # 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. @@ -55,8 +53,7 @@ timestamp='2004-03-12' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -70,8 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2016 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 +79,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 +95,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,11 +114,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* | netbsd*-eabi* | \ + 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 +148,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 +169,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 +196,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 +217,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 +247,114 @@ 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 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | 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[234]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 \ + | visium \ | 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 + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + 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 +370,89 @@ 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-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | e2k-* | elxsi-* \ + | 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-* \ + | riscv32-* | riscv64-* \ + | 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-* \ + | visium-* \ | 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 +470,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -409,6 +516,13 @@ case $basic_machine in basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -417,10 +531,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 +584,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 +627,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 +746,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 +784,17 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + 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 +806,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 +834,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 +842,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 +929,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 +942,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 +965,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 +982,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 +1017,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 +1045,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 +1079,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 +1094,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -901,6 +1118,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 +1177,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 +1241,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 +1259,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 +1282,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1075,13 +1301,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 +1348,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 +1374,32 @@ 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* | -cloudabi* | -sortix* \ | -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* | -libertybsd* \ | -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* \ + | -onefs* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1185,7 +1417,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 +1438,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1255,7 +1487,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1291,8 +1523,15 @@ case $os in -aros*) os=-aros ;; - -kaos*) - os=-kaos + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) ;; -none) ;; @@ -1316,6 +1555,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 +1570,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 +1606,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 +1631,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1476,7 +1742,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) @@ -1539,7 +1805,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/configure b/configure index 4c1bc06..9cb3074 100755 --- a/configure +++ b/configure @@ -1486,11 +1486,11 @@ Optional Packages: --with-migemo=MIGEMO_COMMAND migemo command --with-editor=EDITOR default editor (/usr/bin/vi) --with-mailer=MAILER default mailer (/usr/bin/mail) - --with-browser=BROWSER default browser (/usr/bin/mozilla) + --with-browser=BROWSER default browser (/usr/bin/firefox) --with-ssl=PREFIX support https protocol --with-termlib=LIBS terminal library LIBS is space separated list of: - terminfo mytinfo termcap ncurses curses + terminfo mytinfo termcap tinfo ncurses curses --with-gc=PREFIX libgc PREFIX Some influential environment variables: @@ -6755,7 +6755,7 @@ $as_echo "$enable_image" >&6; } if test x"$enable_image" = xyes; then enable_image=x11 case "`uname -s`" in - Linux|linux|LINUX) + Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) if test -c /dev/fb0; then enable_image=x11,fb fi;; @@ -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;; @@ -6823,8 +6826,6 @@ $as_echo "$with_imagelib" >&6; } with_gtk2="yes" if test x"$PKG_CONFIG" = x; then PKG_CONFIG=pkg-config - else - PKG_CONFIG=: fi;; esac done @@ -6926,8 +6927,8 @@ $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`" + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" elif test x"$have_gdkpixbuf" = xyes; then $as_echo "#define USE_W3MIMG_X11 1" >>confdefs.h @@ -6955,7 +6956,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;} @@ -6971,8 +6972,8 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} $as_echo "#define USE_GTK2 1" >>confdefs.h - IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" - IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" elif test x"$have_gdkpixbuf" = xyes; then $as_echo "#define USE_W3MIMG_FB 1" >>confdefs.h @@ -6991,7 +6992,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;} @@ -7344,7 +7345,7 @@ cat >>confdefs.h <<_ACEOF _ACEOF -w3m_browser="/usr/bin/mozilla" +w3m_browser="/usr/bin/firefox" { $as_echo "$as_me:${as_lineno-$LINENO}: checking which external browser is used by default" >&5 $as_echo_n "checking which external browser is used by default... " >&6; } @@ -7977,7 +7978,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_termlib" >&5 $as_echo "$with_termlib" >&6; } - test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses" + test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses" for lib in $with_termlib; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_tgetent" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -l$lib" >&5 @@ -8986,7 +8987,7 @@ extern char *sys_errlist[]; int main () { -printf(sys_errlist[0]); +printf("%s", sys_errlist[0]); ; return 0; } @@ -9076,7 +9077,7 @@ RC_DIR="~/.$PACKAGE" $as_echo "#define RC_DIR \"\$RC_DIR\"" >>confdefs.h -DOCDIRS="doc:en_English doc-jp:ja_Japanese" +DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German" cat >>confdefs.h <<_ACEOF #define DOCDIRS "$DOCDIRS" _ACEOF @@ -9084,7 +9085,8 @@ _ACEOF cvsver=`$AWK '\$1 ~ /Id:/ { print \$3}' $srcdir/ChangeLog` - sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + ymdver=`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` + sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c CURRENT_VERSION=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c` ac_config_files="$ac_config_files Makefile posubst po/Makefile.in scripts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scripts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 scripts/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-w3m_en.html w3mhelp-w3m_ja.html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html" diff --git a/configure.ac b/configure.ac index 7308fc6..3332251 100644 --- a/configure.ac +++ b/configure.ac @@ -172,7 +172,7 @@ AC_SUBST(RC_DIR) RC_DIR="~/.$PACKAGE" AC_DEFINE(RC_DIR, "$RC_DIR") AC_SUBST(DOCDIRS) -DOCDIRS="doc:en_English doc-jp:ja_Japanese" +DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German" AC_DEFINE_UNQUOTED(DOCDIRS, "$DOCDIRS") AC_W3M_VERSION diff --git a/cookie.c b/cookie.c index 8020f6d..705e277 100644 --- a/cookie.c +++ b/cookie.c @@ -22,10 +22,10 @@ static int is_saved = 1; #define contain_no_dots(p, ep) (total_dot_number((p),(ep),1)==0) -static int -total_dot_number(char *p, char *ep, int max_count) +static unsigned int +total_dot_number(char *p, char *ep, unsigned int max_count) { - int count = 0; + unsigned int count = 0; if (!ep) ep = p + strlen(p); @@ -105,6 +105,7 @@ make_portlist(Str port) pl->next = first; first = pl; } + Strfree(tmp); return first; } @@ -247,16 +248,12 @@ find_cookie(ParsedURL *pu) Strcat(tmp, Sprintf("; $Domain=\"%s\"", p1->domain->ptr)); if (p1->portl) Strcat(tmp, - Sprintf("; $Port=\"%s\"", portlist2str(p1->portl))); + Sprintf("; $Port=\"%s\"", portlist2str(p1->portl)->ptr)); } } return tmp; } -char *special_domain[] = { - ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL -}; - int check_avoid_wrong_number_of_dots_domain( Str domain ) { @@ -324,7 +321,7 @@ add_cookie(ParsedURL *pu, Str name, Str value, if (version == 0) { /* [NETSCAPE] rule */ - int n = total_dot_number(domain->ptr, + unsigned int n = total_dot_number(domain->ptr, domain->ptr + domain->length, 3); if (n < 2) { @@ -332,19 +329,6 @@ add_cookie(ParsedURL *pu, Str name, Str value, COOKIE_ERROR(COO_ESPECIAL); } } - else if (n == 2) { - char **sdomain; - int ok = 0; - for (sdomain = special_domain; !ok && *sdomain; sdomain++) { - int offset = domain->length - strlen(*sdomain); - if (offset >= 0 && - strcasecmp(*sdomain, &domain->ptr[offset]) == 0) - ok = 1; - } - if (!ok && ! check_avoid_wrong_number_of_dots_domain(domain)) { - COOKIE_ERROR(COO_ESPECIAL); - } - } } else { /* [DRAFT 12] s. 4.3.2 case 2 */ @@ -463,7 +447,7 @@ save_cookies(void) continue; fprintf(fp, "%s\t%s\t%s\t%ld\t%s\t%s\t%d\t%d\t%s\t%s\t%s\n", parsedURL2Str(&p->url)->ptr, - p->name->ptr, p->value->ptr, p->expires, + p->name->ptr, p->value->ptr, (long)p->expires, p->domain->ptr, p->path->ptr, p->flag, p->version, str2charp(p->comment), (p->portl) ? portlist2str(p->portl)->ptr : "", @@ -517,36 +501,36 @@ load_cookies(void) cookie->commentURL = NULL; parseURL(readcol(&str)->ptr, &cookie->url, NULL); if (!*str) - return; + break; cookie->name = readcol(&str); if (!*str) - return; + break; cookie->value = readcol(&str); if (!*str) - return; + break; cookie->expires = (time_t) atol(readcol(&str)->ptr); if (!*str) - return; + break; cookie->domain = readcol(&str); if (!*str) - return; + break; cookie->path = readcol(&str); if (!*str) - return; + break; cookie->flag = atoi(readcol(&str)->ptr); if (!*str) - return; + break; cookie->version = atoi(readcol(&str)->ptr); if (!*str) - return; + break; cookie->comment = readcol(&str); if (cookie->comment->length == 0) cookie->comment = NULL; if (!*str) - return; + break; cookie->portl = make_portlist(readcol(&str)); if (!*str) - return; + break; cookie->commentURL = readcol(&str); if (cookie->commentURL->length == 0) cookie->commentURL = NULL; diff --git a/display.c b/display.c index e00eb0c..d4f336a 100644 --- a/display.c +++ b/display.c @@ -257,7 +257,7 @@ make_lastline_link(Buffer *buf, char *title, char *url) parseURL2(url, &pu, baseURL(buf)); u = parsedURL2Str(&pu); if (DecodeURL) - u = Strnew_charp(url_unquote_conv(u->ptr, buf->document_charset)); + u = Strnew_charp(url_decode2(u->ptr, buf)); #ifdef USE_M17N u = checkType(u, &pr, NULL); #endif @@ -487,7 +487,7 @@ displayBuffer(Buffer *buf, int mode) term_title(conv_to_system(buf->buffername)); refresh(); #ifdef USE_IMAGE - if (activeImage && displayImage && buf->img) { + if (activeImage && displayImage && buf->img && buf->image_loaded) { drawImage(); } #endif @@ -521,7 +521,15 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq, break; } if (hseq >= 0 && an->hseq == hseq) { + int start_pos = an->start.pos; + int end_pos = an->end.pos; for (i = an->start.pos; i < an->end.pos; i++) { + if (enable_inline_image && (l->propBuf[i] & PE_IMAGE)) { + if (start_pos == i) + start_pos = i + 1; + else if (end_pos == an->end.pos) + end_pos = i - 1; + } if (l->propBuf[i] & (PE_IMAGE | PE_ANCHOR | PE_FORM)) { if (active) l->propBuf[i] |= PE_ACTIVE; @@ -529,9 +537,9 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq, l->propBuf[i] &= ~PE_ACTIVE; } } - if (active) + if (active && start_pos < end_pos) redrawLineRegion(buf, l, l->linenumber - tline + buf->rootY, - an->start.pos, an->end.pos); + start_pos, end_pos); } else if (prevhseq >= 0 && an->hseq == prevhseq) { if (active) @@ -855,14 +863,16 @@ redrawLineImage(Buffer *buf, Line *l, int i) y = (int)(i * pixel_per_line); sx = (int)((rcol - COLPOS(l, a->start.pos)) * pixel_per_char); sy = (int)((l->linenumber - image->y) * pixel_per_line); - if (sx == 0 && x + image->xoffset >= 0) - x += image->xoffset; - else - sx -= image->xoffset; - if (sy == 0 && y + image->yoffset >= 0) - y += image->yoffset; - else - sy -= image->yoffset; + if (! enable_inline_image) { + if (sx == 0 && x + image->xoffset >= 0) + x += image->xoffset; + else + sx -= image->xoffset; + if (sy == 0 && y + image->yoffset >= 0) + y += image->yoffset; + else + sy -= image->yoffset; + } if (image->width > 0) w = image->width - sx; else diff --git a/doc-de/README.func b/doc-de/README.func new file mode 100644 index 0000000..72d7d45 --- /dev/null +++ b/doc-de/README.func @@ -0,0 +1,146 @@ +ABORT Sofort beenden +ACCESSKEY Öffne Zugangstasten-Menü +ADD_BOOKMARK Lege für aktuelle Seite Lesezeichen an +ALARM Alarm einrichten +BACK Schließe aktuellen Puffer und kehre zu dem im Stapel darunterliegenden zurück +BEGIN Gehe zur ersten Zeile +BOOKMARK Lesezeichen ansehen +CENTER_H Um Cursor herum horizontal zentrieren +CENTER_V Um Cursor herum vertikal zentrieren +CHARSET Ändere die Zeichenkodierung für das aktuelle Dokument +CLOSE_TAB Schließe Reiter +CLOSE_TAB_MOUSE Schließe Reiter bei Mauszeiger +COMMAND Rufe w3m Funktion(en) auf +COOKIE Cookie-Liste ansehen +DEFAULT_CHARSET Ändere die Voreinstellung für die Zeichenkodierung +DEFINE_KEY Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando +DELETE_PREVBUF Lösche vorherigen Puffer (hauptsächlich für lokale CGI-Skripte) +DICT_WORD Führe eine Wörterbuch-Funktion aus (siehe README.dict) +DICT_WORD_AT Benutze Wörterbuch für Wort unter Cursor +DISPLAY_IMAGE Starte das Laden und die Erstellung von Bildern erneut +DOWN Scrolle den Anzeigebereich eine Zeile abwärts +DOWNLOAD Dokument-Quellcode speichern +DOWNLOAD_LIST Die Übersicht heruntergeladener Dateien zeigen +EDIT Bearbeite lokales Quelldokument +EDIT_SCREEN Bearbeite eine Kopie des verarbeiteten Dokuments +END Gehe zur letzten Zeile +EXEC_SHELL Führe Shell-Befehl aus und zeige Ausgabe an +EXIT Sofort beenden +EXTERN Verwende externen Browser zur Anzeige +EXTERN_LINK Verwende externen Browser zur Anzeige des Linkziels +FRAME Wechsle zwischen Kennung und Umsetzung von HTML-Frames +GOTO Öffne angegebenes Dokument in neuem Puffer +GOTO_LINE Gehe zur angebenen Zeile +GOTO_LINK Folge dem aktuellen Hyperlink in neuem Puffer +GOTO_RELATIVE Gehe zu relativer Adresse +HELP Zeige Hilfe-Übersicht +HISTORY Chronik aufgesuchter Dokumente +INFO Zeige Informationen über dieses Dokument +INTERRUPT w3m zum Hintergrundprozess machen +ISEARCH Inkrementelle Suche vorwärts +ISEARCH_BACK Inkrementelle Suche rückwärts +LEFT Anzeigebereich um eine Spalte nach links verschieben +LINE_BEGIN Gehe zum Zeilenanfang +LINE_END Gehe zum Zeilenende +LINE_INFO Zeige aktuelle Position im Dokument an +LINK_BEGIN Gehe zum ersten Hyperlink +LINK_END Gehe zum letzten Hyperlink +LINK_MENU Öffne Menü mit den Link-Elementen +LIST Zeige alle referenzierten URLs +LIST_MENU Öffne Menü mit aufsuchbaren Hyperlinks +LOAD Öffne lokale Datei in einem neuen Puffer +MAIN_MENU Öffne Menü +MARK Setze/Lösche Markierung +MARK_MID Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks +MARK_URL Wandle URL-artige Zeichenketten um in Hyperlinks +MARK_WORD Wandle aktuelles Wort in Hyperlink um +MENU Öffne Menü +MENU_MOUSE Öffne Menü beim Mauszeiger +MOUSE_TOGGLE Schalte Mausbedienung an oder ab +MOVE_DOWN Cursor abwärts +MOVE_DOWN1 Cursor abwärts; am Rand gleitend bewegen +MOVE_LEFT Cursor nach links +MOVE_LEFT1 Cursor nach links; am Rand gleitend bewegen +MOVE_LIST_MENU Öffne Menü mit vorhandenen Hyperlinks +MOVE_MOUSE Cursor auf Mauszeigerposition setzen +MOVE_RIGHT Cursor nach rechts +MOVE_RIGHT1 Cursor nach rechts; am Rand gleitend bewegen +MOVE_UP Cursor aufwärts +MOVE_UP1 Cursor aufwärts; am Rand gleitend bewegen +MSGS Zeige Fehlermeldungen an +NEW_TAB Öffne neuen Reiter (mit aktuellem Dokument) +NEXT Schalte zum nächsten Puffer +NEXT_DOWN Gehe abwärts zum nächsten Hyperlink +NEXT_HALF_PAGE Scrolle eine halbe Seite abwärts +NEXT_LEFT Gehe zum nächsten Hyperlink links +NEXT_LEFT_UP Gehe zum nächsten Hyperlink links oder oberhalb +NEXT_LINK Gehe zum nächsten Hyperlink +NEXT_MARK Gehe zur nächsten Markierung +NEXT_PAGE Eine Seite abwärts +NEXT_RIGHT Gehe zum nächsten Hyperlink rechts +NEXT_RIGHT_DOWN Gehe zum nächsten Hyperlink rechts oder unterhalb +NEXT_TAB Schalte zum nächsten Reiter +NEXT_UP Gehe zum nächsten Hyperlink oberhalb +NEXT_VISITED Gehe zum nächsten besuchten Hyperlink +NEXT_WORD Gehe zum nächsten Wort +NOTHING Tue nichts +NULL Tue nichts +OPTIONS Zeige Einstellungen für Änderungen +PEEK Zeige aktuelle Adresse an +PEEK_IMG Zeige Adresse des Bildes +PEEK_LINK Zeige Zieladresse +PIPE_BUF Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Ausgabe an +PIPE_SHELL Führe Shell-Befehl aus und zeige Ausgabe an +PREV Schalte zum vorherigen Puffer +PREV_HALF_PAGE Scrolle eine halbe Seite aufwärts +PREV_LINK Gehe zum vorangegangen Hyperlink +PREV_MARK Gehe zur vorherigen Markierung +PREV_PAGE Eine Seite aufwärts +PREV_TAB Schalte zum vorherigen Reiter +PREV_VISITED Gehe zum vorherigen besuchten Hyperlink +PREV_WORD Gehe zum vorherigen Wort +PRINT Speichere verarbeitetes Dokument +QUIT Mit Bestätigungsfrage beenden +READ_SHELL Führe Shell-Befehl aus und zeige Ausgabe an +REDO Den letzten Rücknahmebefehl zurücknehmen +REDRAW Bildschirmanzeige neu aufbauen +REG_MARK Zu einem Muster passenden Zeichenfolgen überall markieren +REINIT Konfigurationsdatei erneut laden +RELOAD Aktuelles Dokument erneut laden +RESHAPE Dokument nochmals verarbeiten +RIGHT Anzeigebereich um eine Spalte nach rechts verschieben +SAVE Dokument-Quellcode speichern +SAVE_IMAGE Speichere Bild +SAVE_LINK Speichere Ziel des Hyperlinks +SAVE_SCREEN Speichere verarbeitetes Dokument +SEARCH Suche vorwärts +SEARCH_BACK Suche rückwärts +SEARCH_FORE Suche vorwärts +SEARCH_NEXT Setze Suche vorwärts fort +SEARCH_PREV Setze Suche rückwärts fort +SELECT Zeige Puffferstapel-Übersicht +SELECT_MENU Öffne Puffferstapel-Menü +SETENV Setze Umgebungsvariable +SET_OPTION Setze Option +SHELL Führe Shell-Befehl aus und zeige Ausgabe an +SHIFT_LEFT Anzeigebereich nach links versetzen +SHIFT_RIGHT Anzeigebereich nach rechts versetzen +SOURCE Wechsle zwischen HTML-Wiedergabe und -Verarbeitung +STOP_IMAGE Bilder nicht mehr laden und anzeigen +SUBMIT Formular übermitteln +SUSPEND w3m zum Hintergrundprozess machen +TAB_GOTO Öffne das angegebene Dokument in einem neuen Reiter +TAB_GOTO_RELATIVE Öffne relative Adresse in einem neuen Reiter +TAB_LEFT Einen Reiter weiter nach links gehen +TAB_LINK Folge dem aktuellen Hyperlink in einem neuen Reiter +TAB_MENU Öffne das Reiter-Auswahl-Menü +TAB_MOUSE Wähle per Maus Reiter aus +TAB_RIGHT Einen Reiter weiter nach rechts gehen +UNDO Nimm die letzte Cursorbewegung zurück +UP Scrolle den Anzeigebereich eine Zeile aufwärts +VERSION Zeige die Version von w3m an +VIEW Wechsle zwischen HTML-Wiedergabe und -Verarbeitung +VIEW_BOOKMARK Lesezeichen ansehen +VIEW_IMAGE Zeige Bild in Betrachter +WHEREIS Suche vorwärts +WRAP_TOGGLE Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen diff --git a/doc-jp/FAQ.html b/doc-jp/FAQ.html index e16a986..86ef05a 100644 --- a/doc-jp/FAQ.html +++ b/doc-jp/FAQ.html @@ -176,7 +176,7 @@ w3m ¸ޤ¸ ESC I Ǥ

    ץϤɤΡ -
    Ķѿ HTTP_proxy ꤹ뤫"o" ޥɤΥץѥͥ +
    Ķѿ HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY, FTP_PROXY ꤹ뤫"o" ޥɤΥץѥͥ ꤷޤ㤨 proxy.hogege.com ȤۥȤ 8000֥ݡȤ Ѥ硤

    diff --git a/doc-jp/MANUAL.html b/doc-jp/MANUAL.html index 41d70f1..66fdc6e 100644 --- a/doc-jp/MANUAL.html +++ b/doc-jp/MANUAL.html @@ -51,15 +51,9 @@ w3m

    -l Կ
    ɸϤƤɽȤ¸Կꤹ 롥ǥեȤ 10000 -
    -s -
    Shift_JIS ɤɽ롥 -
    -e -
    EUC ɤɽ롥 -
    -j -
    JIS(ISO-2022-JP) ɤɽ롥 -
    -O e|s|j|N|m|n +
    -O ʸ
    ɽѤʸɤꤹ롥 -
    -I e|s +
    -I ʸ
    ʸʸɤꤹ롥
    -T
    ɽʸΥפꤹ롥λ꤬ʤ硤ե @@ -89,7 +83,7 @@ HTML
    顼ɽ򤷤ʤ
    -F
    ե졼ưɽ롥 -
    -S +
    -s
    Ϣ³Ԥ1ԤˤޤȤɽ롥
    -X
    w3mλˡβ̤ʤ @@ -211,9 +205,9 @@ HTMLʸ F<FRAMESET>ޤʸɽƤȤˡ<FRAME> λؤʣʸ1ĤʸѴɽޤ M߸Ƥڡ򡤳֥饦Ȥäɽޤ -2M, 3M 2ܤ3ܤΥ֥饦Ȥޤ +2M, 3M, ..., 9M 2ܡ3ܡ9ܤΥ֥饦Ȥޤ ESC MߤΥ򡤳֥饦Ȥäɽޤ -2ESC M, 3ESC M 2ܤ3ܤΥ֥饦Ȥޤ +2ESC M, 3ESC M, ..., 9ESC M 2ܡ3ܡ9ܤΥ֥饦Ȥޤ

    եURLط

    @@ -349,9 +343,9 @@ Lynx F<FRAMESET>ޤʸɽƤȤˡ<FRAME> λؤʣʸ1ĤʸѴɽޤ M߸Ƥڡ򡤳֥饦Ȥäɽޤ -2M, 3M 2ܤ3ܤΥ֥饦Ȥޤ +2M, 3M, ..., 9M 2ܡ3ܡ9ܤΥ֥饦Ȥޤ ESC MߤΥ򡤳֥饦Ȥäɽޤ -2ESC M, 3ESC M 2ܤ3ܤΥ֥饦Ȥޤ +2ESC M, 3ESC M, ..., 9ESC M 2ܡ3ܡ9ܤΥ֥饦Ȥޤ

    եURLط

    @@ -489,8 +483,7 @@ w3m w3mȤСHTTPФʤCGIץȤư뤳ȤǤޤ ΤȤw3mФΤդ򤷤ƥץȤưνϤ ɤߤɽ櫓Ǥ -֥åޡϿ -ӥ塼Խ +֥åޡϿȳӥ塼Խ ϡ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..47d5fd6 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) - (ǥեȤ). + (ǥեȤ2, 3). ssl_verify_server ON/OFF - SSLΥǧڤԤ(ǥեȤOFF). + SSLΥǧڤԤ(ǥեȤON). ssl_cert_file ե̾ SSLΥ饤PEMե(ǥեȤ). ssl_key_file ե̾ @@ -85,6 +85,9 @@ SSL # # certdata2pem.rb +if RUBY_VERSION>="1.9" + Encoding.default_external="UTF-8" +end while line = $stdin.gets next if line =~ /^#/ next if line =~ /^\s*$/ diff --git a/doc-jp/README.func b/doc-jp/README.func index 542aaa9..8a5f821 100644 --- a/doc-jp/README.func +++ b/doc-jp/README.func @@ -1,7 +1,7 @@ ABORT ǧw3mλޤ ACCESSKEY Accesskey ˥塼Ω夲ޤ -ALARM 顼ꤷޤ ADD_BOOKMARK ߸Ƥڡ֥åޡɲäޤ +ALARM 顼ꤷޤ BACK ΥХåեɽޤ BEGIN ʸΤФιԤ˰ưޤ BOOKMARK ֥åޡɤ߹ߤޤ @@ -36,7 +36,6 @@ GOTO_RELATIVE HELP إץեɽޤ HISTORY URLɽޤ INFO ߤʸ˴ؤɽޤ -INIT_MAILCAP mailcap ɤ߹ߤޤ( local-CGI ) INTERRUPT ʸɤ߹ߤǤޤ ISEARCH եˤफäƥ󥯥󥿥륵ޤ ISEARCH_BACK եƬˤफäƥ󥯥󥿥륵ޤ @@ -72,6 +71,7 @@ MSGS NEW_TAB ֤򳫤ޤ NEXT ΥХåեɽޤ NEXT_DOWN β¦ˤ󥯤˰ưޤ +NEXT_HALF_PAGE Ⱦڡ˥뤷ޤ NEXT_LEFT κ¦ˤ󥯤˰ưޤ NEXT_LEFT_UP κ¦(̵ι԰)ˤ󥯤˰ưޤ NEXT_LINK Υ󥯤˰ưޤ @@ -92,6 +92,7 @@ PEEK_LINK PIPE_BUF ХåեƤѥפϤޤ PIPE_SHELL ޥɤ¹Ԥ̤ɤߤߤʤɽޤ PREV ΥХåեɽޤ +PREV_HALF_PAGE Ⱦڡ˥뤷ޤ PREV_LINK Υ󥯤˰ưޤ PREV_MARK Υޡ˰ưޤ PREV_PAGE Υڡɽޤ diff --git a/doc-jp/README.siteconf b/doc-jp/README.siteconf new file mode 100644 index 0000000..90066f7 --- /dev/null +++ b/doc-jp/README.siteconf @@ -0,0 +1,60 @@ +siteconf: ̥ޥ + +siteconf ϡ URL Υѥȡɳդ줿꤫ޤ +siteconf Ȥȡʸɤꤷ "decode_url" +νϤꡢ Google Υ쥯򱪲󤷤ǽ +ץ饤Х夵ꤹ뤳ȤǤޤ + +ǥեȤǤ siteconf ~/.w3m/siteconf ɤ߹ޤޤ + +===== ʸ ===== + +url |//|m@@i [exact] +substitute_url "" +url_charset +no_referer_from on|off +no_referer_to on|off + +˽񤫤줿Τͥ褵ޤ + +===== ===== + +url "https://twitter.com/" +substitute_url "https://mobile.twitter.com/" + +twitter.com Х륵Ȥžޤ + +url "http://your.bookmark.net/" +no_referer_from on + +your.bookmark.net ĥä󥯤éݤˡ HTTP referer +ʤ褦ˤޤ + +url "http://www.google.com/url?" exact +substitute_url "file:///cgi-bin/your-redirector.cgi?" + +Google Υ쥯 local CGI žޤ + +url /^http:\/\/[a-z]*\.wikipedia\.org\// +url_charset utf-8 + +Ʊ "decode_url" ץ򥪥ˤȡ Wikipedia ؤ +󥯤 UTF-8 Ȥƥǥɤɽޤ + +===== ɽˤĤ ===== + +ɽϤƱ̣ɽޤ + +/http:\/\/www\.example\.com\// +m/http:\/\/www\.example\.com\// +m@http://www\.example\.com/@ +m!http://www\.example\.com/! + +Ǹ 'i' Ҥդȡʸʸ̤˾ȹԤޤ +㤨С m@^http://www\.example\.com/abc/@i ϰʲΤȤפޤ + +http://www.example.com/abc/ +http://www.example.com/Abc/ +http://www.example.com/ABC/ + +ۥ̾ʬϾ˾ʸѴƤӤޤ diff --git a/doc-jp/keymap.lynx b/doc-jp/keymap.lynx index 869c716..e4085c8 100644 --- a/doc-jp/keymap.lynx +++ b/doc-jp/keymap.lynx @@ -46,7 +46,7 @@ keymap - PREV_PAGE keymap . RIGHT keymap / SEARCH keymap : MARK_URL -keymap ; MARK_WORD +keymap ";" MARK_WORD keymap < SHIFT_LEFT keymap = INFO keymap > SHIFT_RIGHT diff --git a/doc-jp/w3m.1 b/doc-jp/w3m.1 index 89aacb6..a54e078 100644 --- a/doc-jp/w3m.1 +++ b/doc-jp/w3m.1 @@ -1,5 +1,5 @@ .\" -.TH W3M 1 "Jun 6 2000" "UNIX" +.TH W3M 1 "2016-04-02" "w3m 0.5.3" .SH NAME .B w3m \- text base pager/WWW browser @@ -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 @@ -327,13 +318,13 @@ URL .TP .B M ߸Ƥڡ򡤳֥饦Ȥäɽޤ -.B 2M, 3M -2ܤ3ܤΥ֥饦Ȥޤ +.B 2M, 3M, ..., 9M +2ܡ3ܡ9ܤΥ֥饦Ȥޤ .TP .B "ESC M" ߤΥ򡤳֥饦Ȥäɽޤ -.B "2ESC M", "3ESC M" -2ܤ3ܤΥ֥饦Ȥޤ +.B "2ESC M", "3ESC M", ..., "9ESC M" +2ܡ3ܡ9ܤΥ֥饦Ȥޤ .SS եURLط .TP .B U diff --git a/doc/FAQ.html b/doc/FAQ.html index ed2a704..34da9f1 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html @@ -1,151 +1,423 @@ - - -W3M FAQ - - -

      -

    Frequently Asked Questions and Answers about w3m

    -
    -Akinori Ito
    -aito@fw.ipsj.or.jp
    -Corrected by Tom Berger <tom.be@gmx.net> -
    -

    -

    Index
    -

    -
    -