Commit cac725f0 authored by Axel Beckert's avatar Axel Beckert

New upstream version 2.8.9dev10

parent d404a949
-- $LynxId: CHANGES,v 1.845 2016/04/26 09:25:09 tom Exp $
-- $LynxId: CHANGES,v 1.859 2016/11/08 09:38:27 tom Exp $
===============================================================================
Changes since Lynx 2.8 release
===============================================================================
2016-11-08 (2.8.9dev.10)
* improved fix for OpenSSL 1.1 (Taketo Kabe).
* improve warning message when stripping user/password from URL; report on
http://seclists.org/oss-sec/2016/q4/322 treated as a Lynx parsing error the
punctuation such as "?" which is permitted by RFC-1738 in a user or password
field. RFC-3986 subsequently modified this. The improved message points out
the possible confusion by users when these fields contain punctuation -TD
* build-fix for OpenSSL 1.1 (Kamil Dudka)
* begin work to parse gopher extension "link to URL" -TD
* remove an obsolete comment in the manual page about -dump versus -force_html
(report by Peter Schmitt).
* modify samples/oldlynx to provide an empty ".lss" file as a better default
than providing an empty "-lss" option -TD
* amend change made in 2.8.8dev.17 to permit multiple COLOR_STYLE items to
restore the ability to cancel the color-style by providing an explicitly
empty configuration item (in lynx.cfg, -lss or $LYNX_LSS). In lynx.cfg, it
is possible to follow the empty COLOR_STYLE with other data, but the -lss
option overrides everything, and if that is not found, $LYNX_LSS overrides
lynx.cfg -TD
* correct ifdef so that if the "news" parsing is disabled at compile time,
HTTP.c interprets https:// links correctly when a https_proxy is set up
(patch by Al Walker).
* add a limit-check in case colspan is given as zero for non-nested-table case
(report by Sami Liedes) -TD
* update nl.po, sl.po from
http://translationproject.org/latest/lynx
2016-04-26 (2.8.9dev.9)
* add workaround for servers such as https://www.xing.com which fail to close
the connection when they finish sending compressed data. This relies on
......@@ -40,7 +67,7 @@ Changes since Lynx 2.8 release
(suggested by TG) -TD
* fix some typos found by lintian -Axel Beckert
* correct buffer size in pretty_html() function of LYKeymap.c -TG
* add support for some HTML5 elements -Kihara Hideto
* add support for some HTML5 elements -Kihara Hideto
Using this change, you can jump to <section id="speakers">.
(The addition in src{0,1}_HTMLDTD.txt is copied from DIV.)
<section>, <article>, <main>, <aside>, <header>, <footer>, <nav>, <figure>
......@@ -123,7 +150,7 @@ Changes since Lynx 2.8 release
* correct shortcut for "Send To" link used in Inno Setup script, broken in
2.8.8dev.15 -TD
* amend change made in 2.8.8dev.10 to LYLocal.c get_filename(), ensuring that
the bstring parameter can be (re)allocated within that function's call to
the bstring parameter can be (re)allocated within that function's call to
LYgetBString() (report by Raoul Megelas) -TG
* build-fixes for djgpp 2.04 and gcc 4.8.4 using Watt-32 -GV
......@@ -5917,7 +5944,7 @@ recently, FreeBSD 4.1, NetBSD 1.5 and OpenBSD 2.8 (curses/ncurses).
* remove a couple of duplicate includes -JB (John Bley <jbley@cs.cmu.edu>)
* fix some missing ifdef's for win32 versus DOS, as well as change calls to
strcasecomp() to strncasecmp() -SH
* undo spurious change from win32 integration in dev.5 to HTSprint0() which
* undo spurious change from win32 integration in dev.5 to HTSprintf0() which
causes a memory leak (reported by John Bley, analysis KW) -TD
* prevent embedded "%s" in generated messages from causing a core dump in
exit_immediately_with_error_message by using fputs rather than fprintf/printf
......@@ -7923,7 +7950,7 @@ recently, FreeBSD 4.1, NetBSD 1.5 and OpenBSD 2.8 (curses/ncurses).
autoconf 2.13 - TD
1999-01-18 (2.8.2dev.14)
* use HTSprint0 in LYCurses.c, LYForms.c, LYGetFile.c, LYJump.c - TD
* use HTSprintf0 in LYCurses.c, LYForms.c, LYGetFile.c, LYJump.c - TD
* modify LYCheckMail so it does not continue to report new mail when the mail
file's modification time differs from its access time (reported by LV) - TD
* add check for inet_addr function, and (preferred) inet_aton. The first
......
lynx-dev (2.8.9dev.9) unstable; urgency=low
lynx-dev (2.8.9dev.10) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 10 Apr 2016 20:23:19 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Sep 2016 07:22:22 -0400
lynx-dev (2.8.8dev.16) unstable; urgency=high
......
......@@ -6,5 +6,5 @@ Abstract: This manual describes what lynx-dev is
Section: Network/Web Browsing
Format: HTML
Index: /usr/share/doc/lynx-dev/lynx_help/lynx_help_main.html.gz
Files: /usr/share/doc/lynx-dev/lynx_help/*.html.gz
Index: /usr/share/doc/lynx-dev/help_dir/lynx_help_main.html.gz
Files: /usr/share/doc/lynx-dev/help_dir/*.html.gz
; $LynxId: lynx.nsi,v 1.29 2016/04/11 00:42:41 tom Exp $
; $LynxId: lynx.nsi,v 1.30 2016/09/10 11:22:22 tom Exp $
; Script originally generated with the Venis Install Wizard, but customized.
; The Inno Setup script is preferred; but this can be built via cross-compiling.
......@@ -9,8 +9,8 @@
!define VERSION_EPOCH "2"
!define VERSION_MAJOR "8"
!define VERSION_MINOR "9"
!define VERSION_LEVEL "1009"
!define VERSION_PATCH "dev.9"
!define VERSION_LEVEL "1010"
!define VERSION_PATCH "dev.10"
!define SUBKEY "Lynx"
......
# $LynxId: lynx.spec,v 1.36 2016/04/11 00:23:19 tom Exp $
# $LynxId: lynx.spec,v 1.37 2016/09/10 11:22:22 tom Exp $
Summary: A text-based Web browser
Name: lynx
Version: 2.8.9
Release: dev.9
Release: dev.10
License: GPLv2
Group: Applications/Internet
Source: lynx%{version}%{release}.tgz
......
; version used for Inno Setup files.
; $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$
#define LYNX_VERSION "2.8.9dev.9"
#define LYNX_VERSION "2.8.9dev.10"
; most-recent full release and target
#define LYNX_RELEASE "2.8.9"
......
/*
* $LynxId: HTGopher.c,v 1.62 2015/12/16 01:17:53 tom Exp $
* $LynxId: HTGopher.c,v 1.63 2016/10/15 01:11:44 tom Exp $
*
* GOPHER ACCESS HTGopher.c
* =============
......@@ -1688,6 +1688,36 @@ static int HTLoadCSO(const char *arg,
return HT_LOADED;
}
static char *link_to_URL(const char *arg)
{
char *result;
char *next;
char *temp = 0;
StrAllocCopy(temp, arg);
HTUnEscape(temp);
result = temp;
/* skip past method://host */
if ((next = strstr(result, "://")) != 0) {
result = next + 3;
}
if ((next = strchr(result, '/')) != 0) {
result = next + 1;
}
/* check if the selector is the special html one */
if (!strncmp(result, "hURL:", 5)) {
result += 5;
next = result;
result = temp;
while ((*temp++ = *next++) != 0) ;
} else {
FREE(temp);
result = 0;
}
return result;
}
/* Load by name. HTLoadGopher
* =============
*
......@@ -1697,6 +1727,7 @@ static int HTLoadGopher(const char *arg,
HTFormat format_out,
HTStream *sink)
{
char *hURL;
char *command; /* The whole command */
int status; /* tcp return */
char gtype; /* Gopher Node type */
......@@ -1843,6 +1874,13 @@ static int HTLoadGopher(const char *arg,
*p++ = LF;
*p = '\0';
}
/*
* Check for link to URL
*/
if ((hURL = link_to_URL(arg)) != 0) {
CTRACE((tfp, "gopher found link to URL '%s'\n", hURL));
free(hURL);
}
/*
* Set up a socket to the server for the data.
......
/*
* $LynxId: HTTP.c,v 1.153 2016/04/11 00:40:38 tom Exp $
* $LynxId: HTTP.c,v 1.159 2016/11/08 09:38:27 tom Exp $
*
* HyperText Tranfer Protocol - Client implementation HTTP.c
* ==========================
......@@ -498,28 +498,152 @@ int ws_netread(int fd, char *buf, int len)
}
#endif /* _WINDOWS */
/*
* RFC-1738 says we can have user/password using these ASCII characters
* safe = "$" | "-" | "_" | "." | "+"
* extra = "!" | "*" | "'" | "(" | ")" | ","
* hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
* "a" | "b" | "c" | "d" | "e" | "f"
* escape = "%" hex hex
* unreserved = alpha | digit | safe | extra
* uchar = unreserved | escape
* user = *[ uchar | ";" | "?" | "&" | "=" ]
* password = *[ uchar | ";" | "?" | "&" | "=" ]
* and we cannot have a password without user, i.e., no leading ":"
* and ":", "@", "/" must be encoded, i.e., will not appear as such.
*
* However, in a URL
* //<user>:<password>@<host>:<port>/<url-path>
* valid characters in the host are different, not allowing most of those
* punctuation characters.
*
* RFC-3986 amends this, using
* userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
* reserved = gen-delims / sub-delims
* gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
* / "*" / "+" / "," / ";" / "="
* and
* host = IP-literal / IPv4address / reg-name
* reg-name = *( unreserved / pct-encoded / sub-delims )
*/
#define RFC_3986_UNRESERVED(c) (isalnum(UCH(c)) || strchr("-._~", UCH(c)) != 0)
#define RFC_3986_GEN_DELIMS(c) ((c) != 0 && strchr(":/?#[]@", UCH(c)) != 0)
#define RFC_3986_SUB_DELIMS(c) ((c) != 0 && strchr("!$&'()*+,;=", UCH(c)) != 0)
static char *skip_user_passwd(char *host)
{
char *result = 0;
char *s = host;
int pass = 0;
int ch;
int last = -1;
while ((ch = UCH(*s)) != '\0') {
if (ch == '\0') {
break;
} else if (ch == ':') {
if (pass++)
break;
} else if (ch == '@') {
if (s != host && last != ':')
result = s;
break;
} else if (RFC_3986_GEN_DELIMS(ch)) {
if (!RFC_3986_GEN_DELIMS(s[1]))
break;
} else if (ch == '%') {
if (!(isxdigit(UCH(s[1])) && isxdigit(UCH(s[2]))))
break;
} else if (!(RFC_3986_UNRESERVED(ch) ||
RFC_3986_SUB_DELIMS(ch))) {
break;
}
++s;
last = ch;
}
return result;
}
static char *fake_hostname(char *auth)
{
char *result = NULL;
char *colon = NULL;
StrAllocCopy(result, auth);
if ((colon = strchr(result, ':')) != 0)
*colon = '\0';
if (strchr(result, '.') == 0)
FREE(result);
return result;
}
/*
* Strip any username from the given string so we retain only the host.
*/
static void strip_userid(char *host)
{
char *p1 = host;
char *p2 = StrChr(host, '@');
char *fake;
char *p2 = skip_user_passwd(host);
if (p2 != 0) {
char *msg = NULL;
char *auth = NULL;
char *save = NULL;
char *fake = NULL;
char *p3 = p2;
int gen_delims = 0;
int sub_delims = 0;
int my_delimit = UCH(*p2);
int do_trimming = (my_delimit == '@');
*p2++ = '\0';
if ((fake = HTParse(host, "", PARSE_HOST)) != NULL) {
char *msg = NULL;
CTRACE((tfp, "parsed:%s\n", fake));
HTSprintf0(&msg, gettext("Address contains a username: %s"), host);
HTAlert(msg);
FREE(msg);
StrAllocCopy(auth, host);
/*
* Trailing "gen-delims" demonstrates that there is no user/password.
*/
while ((p3 != host) && RFC_3986_GEN_DELIMS(p3[-1])) {
++gen_delims;
*(--p3) = '\0';
}
while ((*p1++ = *p2++) != '\0') {
;
/*
* While legal, punctuation-only user/password is questionable.
*/
while ((p3 != host) && RFC_3986_SUB_DELIMS(p3[-1])) {
++sub_delims;
*(--p3) = '\0';
}
CTRACE((tfp, "trimmed:%s\n", host));
StrAllocCopy(save, host);
if (gen_delims || strcmp(save, auth)) {
HTSprintf0(&msg,
gettext("User/password may appear to be a hostname: '%s' (e.g, '%s')"),
auth, save);
do_trimming = !gen_delims;
} else if (*host == '\0' && sub_delims) {
HTSprintf0(&msg,
gettext("User/password contains only punctuation: %s"),
auth);
} else if ((fake = fake_hostname(host)) != NULL) {
HTSprintf0(&msg,
gettext("User/password may be confused with hostname: '%s' (e.g, '%s')"),
auth, fake);
}
if (msg != 0)
HTAlert(msg);
if (do_trimming) {
while ((*p1++ = *p2++) != '\0') {
;
}
}
FREE(fake);
FREE(save);
FREE(auth);
FREE(msg);
}
}
......@@ -802,7 +926,11 @@ static int HTLoadHTTP(const char *arg,
#elif SSLEAY_VERSION_NUMBER >= 0x0900
#ifndef USE_NSS_COMPAT_INCL
if (!try_tls) {
handle->options |= SSL_OP_NO_TLSv1;
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
SSL_set_min_proto_version(handle, TLS1_1_VERSION);
#else
SSL_set_options(handle, SSL_OP_NO_TLSv1);
#endif
CTRACE((tfp, "...adding SSL_OP_NO_TLSv1\n"));
}
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
......@@ -1979,7 +2107,7 @@ static int HTLoadHTTP(const char *arg,
* > 206 is unknown.
* All should return something to display.
*/
#if defined(USE_SSL) && !defined(DISABLE_NEWS)
#if defined(USE_SSL) /* && !defined(DISABLE_NEWS) _H */
if (do_connect) {
CTRACE((tfp,
"HTTP: Proxy tunnel to '%s' established.\n",
......@@ -1988,6 +2116,7 @@ static int HTLoadHTTP(const char *arg,
url = connect_url;
FREE(line_buffer);
FREE(line_kept_clean);
#ifndef DISABLE_NEWS
if (!StrNCmp(connect_url, "snews", 5)) {
CTRACE((tfp,
" Will attempt handshake and snews connection.\n"));
......@@ -1995,6 +2124,7 @@ static int HTLoadHTTP(const char *arg,
format_out, sink);
goto done;
}
#endif /* DISABLE_NEWS */
did_connect = TRUE;
already_retrying = TRUE;
eol = 0;
......
......@@ -1274,7 +1274,7 @@ rm conftest.sed
PACKAGE=lynx
# $Format: "VERSION=$ProjectVersion$"$
VERSION=2.8.9dev.9
VERSION=2.8.9dev.10
echo "$as_me:1279: checking for DESTDIR" >&5
echo $ECHO_N "checking for DESTDIR... $ECHO_C" >&6
dnl $LynxId: configure.in,v 1.282 2016/04/11 00:42:00 tom Exp $
dnl $LynxId: configure.in,v 1.283 2016/09/10 11:22:22 tom Exp $
dnl
dnl Process this file with autoconf to produce a configure script.
dnl
......@@ -29,7 +29,7 @@ dnl ---------------------------------------------------------------------------
dnl
dnl ask PRCS to plug-in the project-version for the configure-script.
dnl $Format: "AC_REVISION($ProjectVersion$)"$
AC_REVISION(2.8.9dev.9)
AC_REVISION(2.8.9dev.10)
# Save the original $CFLAGS so we can distinguish whether the user set those
# in the environment, or whether autoconf added -O and -g options:
......@@ -64,7 +64,7 @@ AC_ARG_PROGRAM
PACKAGE=lynx
dnl ask PRCS to plug-in the project-version for the packages.
# $Format: "VERSION=$ProjectVersion$"$
VERSION=2.8.9dev.9
VERSION=2.8.9dev.10
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
......
# $LynxId: lynx.cfg,v 1.272 2016/04/11 00:23:19 tom Exp $
# $LynxId: lynx.cfg,v 1.273 2016/09/10 11:22:22 tom Exp $
# lynx.cfg file.
# The default placement for this file is /usr/local/lib/lynx.cfg (Unix)
# or Lynx_Dir:lynx.cfg (VMS)
#
# $Format: "#PRCS LYNX_VERSION \"$ProjectVersion$\""$
#PRCS LYNX_VERSION "2.8.9dev.9"
#PRCS LYNX_VERSION "2.8.9dev.10"
#
# $Format: "#PRCS LYNX_DATE \"$ProjectDate$\""$
#PRCS LYNX_DATE "Sun, 10 Apr 2016 20:23:19 -0400"
#PRCS LYNX_DATE "Sat, 10 Sep 2016 07:22:22 -0400"
#
# Definition pairs are of the form VARIABLE:DEFINITION
# NO spaces are allowed between the pair items.
......
This diff is collapsed.
.\" $LynxId: lynx.man,v 1.112 2015/10/08 00:19:45 tom Exp $
.\" $LynxId: lynx.man,v 1.113 2016/10/14 08:59:24 tom Exp $
.\" **************************************************************************
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds AQ \(aq
......@@ -346,9 +346,6 @@ non-HTML type, such as \*(``.txt\*('' for plain text files).
\*(``.sht\*('', and
\*(``.shtml\*(''.
.RE
.IP
The \fB\-force_html\fP option does not apply to non-interactive
options such as \fB\-dump\fP or \fB\-crawl\fP.
.TP
.B \-force_secure
toggles forcing of the secure flag for SSL cookies.
......
# $LynxId: makefile.in,v 1.156 2016/04/11 00:23:19 tom Exp $
# $LynxId: makefile.in,v 1.157 2016/09/10 11:22:22 tom Exp $
##makefile for lynx
SHELL = @CONFIG_SHELL@
......@@ -46,7 +46,7 @@ TAR_UP = $(TAR) @TAR_UP_OPTIONS@ @TAR_PIPE_OPTIONS@
TAR_DOWN = $(TAR) @TAR_DOWN_OPTIONS@ @TAR_PIPE_OPTIONS@
# $Format: "LYNX_VERSION = $ProjectVersion$"$
LYNX_VERSION = 2.8.9dev.9
LYNX_VERSION = 2.8.9dev.10
## This is the version which we are developing (or, upon release, make this
## the same). Use no dots in the name, since it must work on VMS and MS-DOS.
......
......@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -13,6 +13,7 @@ msgstr ""
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Toomas Soome <tsoome@me.com>\n"
"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
"Language: et\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
......
......@@ -22,6 +22,7 @@ msgstr ""
"Last-Translator: Juhani Numminen <juhaninumminen0@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -33,6 +33,7 @@ msgstr ""
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
This diff is collapsed.
This diff is collapsed.
# Slovenian translation of Lynx WWW browser.
# Copyright (C) 1999 Free Software Foundation, Inc.
# Roman Maurer <roman.maurer@hermes.si>, 1999.
# $Id: sl.po,v 1.42 2015/04/09 20:37:00 tom Exp $
# $Source: /usr/build/lynx/lynx2.8.9dev.9/po/RCS/sl.po,v $
# $Id: sl.po,v 1.43 2016/10/14 23:33:23 tom Exp $
#
msgid ""
msgstr ""
......
......@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Eyüp Hakan Duran <hakan_duran@hotmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"Language: tr\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -15,6 +15,7 @@ msgstr ""
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -9,6 +9,7 @@ msgstr ""
"PO-Revision-Date: 2002-10-15 15:13+0800\n"
"Last-Translator: Wang Jian <lark@linux.net.cn>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
......
......@@ -3,7 +3,10 @@
# non-color-style scheme -TD
my_cfg=${TMPDIR:-/tmp}/lynxcfg$$
trap "rm -f $my_cfg" 0 1 2 5 15
my_lss=${TMPDIR:-/tmp}/lynxlss$$
trap "rm -f $my_lss $my_cfg" 0 1 2 5 15
echo >$my_lss
rm -f "$my_cfg"
echo "DEFAULT_COLORS:off" >>$my_cfg
......@@ -15,6 +18,7 @@ echo "NESTED_TABLES:off" >>$my_cfg
LYNX_CFG=$my_cfg
export LYNX_CFG
unset LYNX_LSS
LYNX_LSS=$my_lss
export LYNX_LSS
${LYNX_PROG-lynx} "$@"
/* $LynxId: LYCurses.c,v 1.180 2014/07/24 22:08:24 tom Exp $ */
/* $LynxId: LYCurses.c,v 1.181 2016/11/04 21:54:57 tom Exp $ */
#include <HTUtils.h>
#include <HTAlert.h>
......@@ -3232,7 +3232,7 @@ long LYgetattrs(WINDOW * win)
* FIXME: this ignores the color-pair, which for most implementations is
* not stored in the attribute value.
*/
(void) wattr_get(win, &attrs, &pair, NULL);
(void) (wattr_get) (win, &attrs, &pair, NULL);
result = (long) attrs;
#endif
return result;
......
/* $LynxId: LYCurses.h,v 1.94 2013/10/22 08:10:43 tom Exp $ */
/* $LynxId: LYCurses.h,v 1.95 2016/10/11 23:43:51 tom Exp $ */
#ifndef LYCURSES_H
#define LYCURSES_H
......@@ -501,6 +501,7 @@ extern "C" {
#if defined(USE_COLOR_STYLE)
extern void add_to_lss_list(const char *source, const char *resolved);
extern void clear_lss_list(void);
extern void curses_css(char *name, int dir);
extern void curses_style(int style, int dir);
extern void curses_w_style(WINDOW * win, int style, int dir);
......
// $LynxId: LYIcon.rc,v 1.23 2016/04/11 00:43:06 tom Exp $
// $LynxId: LYIcon.rc,v 1.24 2016/09/10 11:22:22 tom Exp $
#include <windows.h>
100 ICON "../samples/lynx.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,8,9,1009
PRODUCTVERSION 2,8,9,1009
FILEVERSION 2,8,9,1010
PRODUCTVERSION 2,8,9,1010
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
......@@ -19,12 +19,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "http://invisible-island.net/lynx"
VALUE "FileDescription", "Lynx - web browser"
VALUE "FileVersion", "2.8.9.1009"
VALUE "FileVersion", "2.8.9.1010"
VALUE "InternalName", "Lynx"
VALUE "LegalCopyright", "1997-2016 Thomas E. Dickey"
VALUE "OriginalFilename", "lynx.exe"
VALUE "ProductName", "Lynx - web browser"
VALUE "ProductVersion", "2.8.9.1009"
VALUE "ProductVersion", "2.8.9.1010"
END
END
BLOCK "VarFileInfo"
......
/*
* $LynxId: LYReadCFG.c,v 1.187 2015/12/18 01:58:34 tom Exp $
* $LynxId: LYReadCFG.c,v 1.188 2016/10/11 23:44:06 tom Exp $
*/
#ifndef NO_RULES
#include <HTRules.h>
......@@ -655,7 +655,12 @@ static int color_fun(char *value)
#ifdef USE_COLOR_STYLE
static int lynx_lss_file_fun(char *value)
{
add_to_lss_list(value, NULL);
CTRACE((tfp, "lynx_lss_file_fun '%s'\n", NonNull(value)));
if (isEmpty(value)) {
clear_lss_list();
} else {
add_to_lss_list(value, NULL);
}
return 0;
}
#endif
......
/*
* $LynxId: LYStyle.c,v 1.96 2014/01/09 21:01:22 tom Exp $
* $LynxId: LYStyle.c,v 1.97 2016/10/12 00:50:05 tom Exp $
*
* character level styles for Lynx
* (c) 1996 Rob Partington -- donated to the Lyncei (if they want it :-)
......@@ -47,6 +47,7 @@ static HTList *lss_styles = NULL;
static unsigned *cached_styles_ptr = NULL;
static int cached_styles_rows = 0;
static int cached_styles_cols = 0;
static BOOL empty_lss_list = FALSE; /* true if list explicitly emptied */
/* stack of attributes during page rendering */
int last_styles[MAX_LAST_STYLES + 1] =
......@@ -413,8 +414,7 @@ static void style_deleteStyleList(void)
lss_styles = NULL;
}
#ifdef LY_FIND_LEAKS
static void free_colorstyle_leaks(void)
static void free_lss_list(void)
{
LSS_NAMES *obj;
......@@ -429,7 +429,6 @@ static void free_colorstyle_leaks(void)
}
HTList_delete(list_of_lss_files);
}
#endif
static void free_colorstylestuff(void)
{
......@@ -840,6 +839,13 @@ static char *find_lss_file(const char *nominal)
return LYFindConfigFile(nominal, LYNX_LSS_FILE);
}
void clear_lss_list(void)
{
CTRACE((tfp, "clear_lss_list()\n"));
free_lss_list();
empty_lss_list = TRUE;
}
/*
* Add an entry to the lss-list, and cache the resolved filename if known.
*/
......@@ -880,6 +886,7 @@ void add_to_lss_list(const char *source, const char *resolved)
StrAllocCopy(obj->given, source);
StrAllocCopy(obj->actual, resolved);
HTList_appendObject(list_of_lss_files, obj);
empty_lss_list = FALSE;
}
}
......@@ -889,12 +896,27 @@ void add_to_lss_list(const char *source, const char *resolved)
*/
void init_color_styles(char **from_cmdline, const char *default_styles)
{
char *user_lss_file = *from_cmdline;
char *cp;
/*
* If we read no COLOR_STYLE data from lynx.cfg, build a default list now.
* If a command-line "-lss" option was given, or if an environment variable
* is found, use that in preference to data from lynx.cfg
*/
if (list_of_lss_files == 0) {
if (user_lss_file == 0)
user_lss_file = LYGetEnv("LYNX_LSS");
if (user_lss_file == 0)
user_lss_file = LYGetEnv("lynx_lss");
if (user_lss_file != 0)
empty_lss_list = (*user_lss_file == '\0');
/*
* If the color-style is explicitly emptied, go no further.
*/
if (empty_lss_list) {
CTRACE((tfp, "init_color_styles: overridden/empty\n"));
return;
} else if (list_of_lss_files == 0) {
char *source = 0;
char *config;
......@@ -910,17 +932,10 @@ void init_color_styles(char **from_cmdline, const char *default_styles)
FREE(source);
}