about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>2024-03-13 20:52:04 +0000
committerThomas E. Dickey <dickey@invisible-island.net>2024-03-13 22:08:33 +0000
commit66e0a52ae6c09f8fc5a821f4374ed748de418155 (patch)
treed550aa536de882725afd1e7f64ecefa2e2dd9b6f
parent8ed5d3b5bf97f5a459c5bbe7f9264903cb728d88 (diff)
downloadlynx-snapshots-66e0a52ae6c09f8fc5a821f4374ed748de418155.tar.gz
snapshot of project "lynx", label v2-9-0a
-rw-r--r--CHANGES6
-rw-r--r--PACKAGE/debian/changelog6
-rw-r--r--PACKAGE/lynx.nsi6
-rw-r--r--PACKAGE/lynx.spec4
-rw-r--r--PACKAGE/version.iss2
-rwxr-xr-xconfig.guess7
-rwxr-xr-xconfig.sub27
-rwxr-xr-xconfigure4
-rw-r--r--configure.in6
-rw-r--r--lynx.cfg6
-rw-r--r--lynx.man5
-rw-r--r--src/LYIcon.rc10
-rw-r--r--src/LYMainLoop.c40
-rw-r--r--userdefs.h6
14 files changed, 77 insertions, 58 deletions
diff --git a/CHANGES b/CHANGES
index 6b8e03f8..3cd75c2a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,12 @@
--- $LynxId: CHANGES,v 1.1159 2024/01/15 21:41:51 tom Exp $
+-- $LynxId: CHANGES,v 1.1161 2024/03/13 16:23:10 tom Exp $
 ===============================================================================
 Changes since Lynx 2.8 release
 ===============================================================================
 
+2024-03-13 (2.9.0a)
+* fix special case of main status line on a page without links, broken by fix
+  for UBSAN/ASAN issue -TG
+
 2024-01-15 (2.9.0)
 * change version of OpenSSL used in Windows installers to 3.x and 1.1.1x,
   for new/old respectively -TD
diff --git a/PACKAGE/debian/changelog b/PACKAGE/debian/changelog
index 048e3cfd..69e763e1 100644
--- a/PACKAGE/debian/changelog
+++ b/PACKAGE/debian/changelog
@@ -1,8 +1,8 @@
-lynx-dev (2.9.0) unstable; urgency=high
+lynx-dev (2.9.1) unstable; urgency=low
 
-  * new release
+  * maintenance updates
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 14 Jan 2024 17:15:53 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Wed, 13 Mar 2024 12:45:26 -0400
 
 lynx-dev (2.8.8dev.16) unstable; urgency=high
 
diff --git a/PACKAGE/lynx.nsi b/PACKAGE/lynx.nsi
index 7071db25..130b39f9 100644
--- a/PACKAGE/lynx.nsi
+++ b/PACKAGE/lynx.nsi
@@ -1,4 +1,4 @@
-; $LynxId: lynx.nsi,v 1.63 2024/01/07 11:13:00 tom Exp $

+; $LynxId: lynx.nsi,v 1.64 2024/03/13 16:45:26 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 "9"

 !define VERSION_MINOR "0"

-!define VERSION_LEVEL "1013"

-!define VERSION_PATCH "dev.13"

+!define VERSION_LEVEL "2001"

+!define VERSION_PATCH "a"

 

 !define SUBKEY "Lynx"

 

diff --git a/PACKAGE/lynx.spec b/PACKAGE/lynx.spec
index a11a9a02..8806b548 100644
--- a/PACKAGE/lynx.spec
+++ b/PACKAGE/lynx.spec
@@ -1,7 +1,7 @@
-# $LynxId: lynx.spec,v 1.72 2024/01/15 11:47:26 tom Exp $
+# $LynxId: lynx.spec,v 1.73 2024/03/13 20:52:04 tom Exp $
 Summary: A text-based Web browser
 Name: lynx-dev
-Version: 2.9.0
+Version: 2.9.1
 Release: 1
 License: GPLv2
 Group: Applications/Internet
diff --git a/PACKAGE/version.iss b/PACKAGE/version.iss
index e3fe613b..8235a2bd 100644
--- a/PACKAGE/version.iss
+++ b/PACKAGE/version.iss
@@ -1,6 +1,6 @@
 ; version used for Inno Setup files.

 

-#define LYNX_VERSION "2.9.0"

+#define LYNX_VERSION "2.9.0a"

 

 #define MyAppProg "Lynx"

 #define MyAppName "Lynx - web browser"

diff --git a/config.guess b/config.guess
index cdfc4392..f47d666d 100755
--- a/config.guess
+++ b/config.guess
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2023-08-22'
+timestamp='2023-10-19'
 
 # 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
@@ -165,6 +165,8 @@ Linux|GNU|GNU/*)
 	LIBC=dietlibc
 	#elif defined(__GLIBC__)
 	LIBC=gnu
+	#elif defined(__LLVM_LIBC__)
+	LIBC=llvm
 	#else
 	#include <stdarg.h>
 	/* First heuristic to detect musl libc.  */
@@ -1593,6 +1595,9 @@ EOF
     *:Unleashed:*:*)
 	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
 	;;
+    *:Ironclad:*:*)
+	GUESS=$UNAME_MACHINE-unknown-ironclad
+	;;
 esac
 
 # Do we have a guess based on uname results?
diff --git a/config.sub b/config.sub
index 51394d32..e4c4e09b 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2023-09-15'
+timestamp='2023-12-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
@@ -1222,6 +1222,7 @@ case $cpu-$vendor in
 			| moxie \
 			| mt \
 			| msp430 \
+			| nanomips* \
 			| nds32 | nds32le | nds32be \
 			| nfp \
 			| nios | nios2 | nios2eb | nios2el \
@@ -1253,6 +1254,7 @@ case $cpu-$vendor in
 			| ubicom32 \
 			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
 			| vax \
+			| vc4 \
 			| visium \
 			| w65 \
 			| wasm32 | wasm64 \
@@ -1597,7 +1599,7 @@ case $cpu-$vendor in
 		os=
 		obj=elf
 		;;
-	mips*-*)
+	mips*-*|nanomips*-*)
 		os=
 		obj=elf
 		;;
@@ -1721,7 +1723,7 @@ fi
 
 case $os in
 	# Sometimes we do "kernel-libc", so those need to count as OSes.
-	musl* | newlib* | relibc* | uclibc*)
+	llvm* | musl* | newlib* | relibc* | uclibc*)
 		;;
 	# Likewise for "kernel-abi"
 	eabi* | gnueabi*)
@@ -1766,12 +1768,19 @@ case $os in
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* | mlibc* | cos* | mbr* )
+	     | fiwix* | mlibc* | cos* | mbr* | ironclad* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
 		# Don't forget version if it is 3.2v4 or newer.
 		;;
+	# This refers to builds using the UEFI calling convention
+	# (which depends on the architecture) and PE file format.
+	# Note that this is both a different calling convention and
+	# different file format than that of GNU-EFI
+	# (x86_64-w64-mingw32).
+	uefi)
+		;;
 	none)
 		;;
 	kernel* | msvc* )
@@ -1818,16 +1827,18 @@ esac
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
 case $kernel-$os-$obj in
-	linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \
-		   | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- )
+	linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+		    | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+		    | linux-relibc*- | linux-uclibc*- )
 		;;
 	uclinux-uclibc*- )
 		;;
 	managarm-mlibc*- | managarm-kernel*- )
 		;;
-	windows*-gnu*- | windows*-msvc*-)
+	windows*-msvc*-)
 		;;
-	-dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- )
+	-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+		    | -uclibc*- )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
 		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
diff --git a/configure b/configure
index 3de5c353..8ccfe0ae 100755
--- a/configure
+++ b/configure
@@ -191,8 +191,8 @@ mandir='${datarootdir}/man'
 # Identity of this package.
 PACKAGE_NAME='lynx'
 PACKAGE_TARNAME='lynx'
-PACKAGE_VERSION='2.9.0'
-PACKAGE_STRING='lynx 2.9.0'
+PACKAGE_VERSION='2.9.0a'
+PACKAGE_STRING='lynx 2.9.0a'
 PACKAGE_BUGREPORT='lynx-dev@nongnu.org'
 
 ac_prev=
diff --git a/configure.in b/configure.in
index 29081036..1e6fe579 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl $LynxId: configure.in,v 1.355 2024/01/14 22:24:38 tom Exp $
+dnl $LynxId: configure.in,v 1.356 2024/03/13 19:53:39 tom Exp $
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
@@ -27,10 +27,10 @@ dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 dnl ---------------------------------------------------------------------------
 dnl
-AC_REVISION($Revision: 1.355 $)
+AC_REVISION($Revision: 1.356 $)
 
 AC_PREREQ(2.52.20231210)
-AC_INIT(lynx,2.9.0,lynx-dev@nongnu.org)
+AC_INIT(lynx,2.9.0a,lynx-dev@nongnu.org)
 
 AC_CONFIG_SRCDIR(userdefs.h)
 
diff --git a/lynx.cfg b/lynx.cfg
index c92a39c7..aeb1c54f 100644
--- a/lynx.cfg
+++ b/lynx.cfg
@@ -1,10 +1,10 @@
-# $LynxId: lynx.cfg,v 1.335 2024/01/15 11:31:00 tom Exp $
+# $LynxId: lynx.cfg,v 1.337 2024/03/13 20:06:44 tom Exp $
 # lynx.cfg file.
 # The default placement for this file is /usr/local/lib/lynx.cfg (Unix)
 #                                     or Lynx_Dir:lynx.cfg (VMS)
 #
-# LYNX_VERSION "2.9.0"
-# LYNX_DATE    "15 Jan 2024"
+# LYNX_VERSION "2.9.0a"
+# LYNX_DATE    "13 Mar 2024"
 #
 # Definition pairs (configuration settings) are of the form
 #	VARIABLE:DEFINITION
diff --git a/lynx.man b/lynx.man
index 464078d2..bb02a349 100644
--- a/lynx.man
+++ b/lynx.man
@@ -1,7 +1,6 @@
-.\" $LynxId: lynx.man,v 1.147 2024/01/14 20:53:14 tom Exp $
+.\" $LynxId: lynx.man,v 1.149 2024/03/13 20:47:12 tom Exp $
 .\" **************************************************************************
-.TH LYNX 1 2024-01-14 "Lynx 2.9.0" "Lynx \(en the \fItext\fP web browser"
-.
+.TH LYNX 1 2024-03-13 "Lynx 2.9.0a" "Lynx \(en the \fItext\fP web browser"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
diff --git a/src/LYIcon.rc b/src/LYIcon.rc
index 001af562..d37abe73 100644
--- a/src/LYIcon.rc
+++ b/src/LYIcon.rc
@@ -1,12 +1,12 @@
-// $LynxId: LYIcon.rc,v 1.57 2024/01/07 11:13:00 tom Exp $
+// $LynxId: LYIcon.rc,v 1.58 2024/03/13 16:45:26 tom Exp $
 
 #include <windows.h>
 
 100	ICON	"../samples/lynx.ico"
 
 VS_VERSION_INFO VERSIONINFO
-FILEVERSION    2,9,0,1013
-PRODUCTVERSION 2,9,0,1013
+FILEVERSION    2,9,0,2001
+PRODUCTVERSION 2,9,0,2001
 FILEFLAGSMASK  VS_FFI_FILEFLAGSMASK
 FILEFLAGS      0
 FILEOS         VOS_NT_WINDOWS32
@@ -19,12 +19,12 @@ BEGIN
     BEGIN
       VALUE "CompanyName",      "https://invisible-island.net/lynx"
       VALUE "FileDescription",  "Lynx - web browser"
-      VALUE "FileVersion",      "2.9.0.1013"
+      VALUE "FileVersion",      "2.9.0.2001"
       VALUE "InternalName",     "Lynx"
       VALUE "LegalCopyright",   "©1997-2024 Thomas E. Dickey"
       VALUE "OriginalFilename", "lynx.exe"
       VALUE "ProductName",      "Lynx - web browser"
-      VALUE "ProductVersion",   "2.9.0.1013"
+      VALUE "ProductVersion",   "2.9.0.2001"
     END
   END
   BLOCK "VarFileInfo"
diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c
index 55be2054..d580c5da 100644
--- a/src/LYMainLoop.c
+++ b/src/LYMainLoop.c
@@ -1,5 +1,5 @@
 /*
- * $LynxId: LYMainLoop.c,v 1.254 2024/01/15 19:10:04 Gisle.Vanem Exp $
+ * $LynxId: LYMainLoop.c,v 1.255 2024/03/13 13:51:20 Thorsten.Glaser Exp $
  */
 #include <HTUtils.h>
 #include <HTAccess.h>
@@ -177,7 +177,7 @@ HTAtom *WWW_SOURCE = 0;
 
 static void exit_immediately_with_error_message(int state, int first_file);
 static void status_link(const char *curlink_name, int show_more, int show_indx);
-static void show_main_statusline(const LinkInfo curlink, int for_what);
+static void show_main_statusline(const LinkInfo *curlink, int for_what);
 static void form_noviceline(int);
 static int are_different(DocInfo *doc1, DocInfo *doc2);
 
@@ -1061,7 +1061,7 @@ static int handle_LYK_ACTIVATE(int *c,
 		F_TEXTLIKE(links[curdoc.link].l_form->type)) {
 
 		textinput_activated = TRUE;
-		show_main_statusline(links[curdoc.link], FOR_INPUT);
+		show_main_statusline(&links[curdoc.link], FOR_INPUT);
 		textfields_need_activation = textfields_activation_option;
 
 		return 0;
@@ -6769,8 +6769,8 @@ int mainloop(void)
 	 * If help is not on the screen, then put a message on the screen to
 	 * tell the user other misc info.
 	 */
-	if (!show_help && curdoc.link >= 0) {
-	    show_main_statusline(links[curdoc.link],
+	if (!show_help) {
+	    show_main_statusline(curdoc.link >= 0 ? &links[curdoc.link] : NULL,
 				 ((curlink_is_editable &&
 				   textinput_activated)
 				  ? FOR_INPUT
@@ -7109,13 +7109,13 @@ int mainloop(void)
 
 #ifdef TEXTFIELDS_MAY_NEED_ACTIVATION
 		if (textfields_need_activation) {
-		    show_main_statusline(links[curdoc.link], FOR_PANEL);
+		    show_main_statusline(&links[curdoc.link], FOR_PANEL);
 #ifdef INACTIVE_INPUT_STYLE_VH
 		    textinput_redrawn = FALSE;
 #endif
 		} else
 #endif
-		    show_main_statusline(links[curdoc.link], FOR_INPUT);
+		    show_main_statusline(&links[curdoc.link], FOR_INPUT);
 	    } else if (more_text) {
 		HTInfoMsg(MOREHELP);
 	    } else {
@@ -7930,7 +7930,7 @@ void HTAddGotoURL(char *url)
  * When help is not on the screen, put a message on the screen to tell the user
  * other misc info.
  */
-static void show_main_statusline(const LinkInfo curlink,
+static void show_main_statusline(const LinkInfo *curlink,
 				 int for_what)
 {
     /*
@@ -7954,16 +7954,16 @@ static void show_main_statusline(const LinkInfo curlink,
     } else if (lynx_mode == FORMS_LYNX_MODE && nlinks > 0) {
 #else
 #ifdef NORMAL_NON_FORM_LINK_STATUSLINES_FOR_ALL_USER_MODES
-    } else if (lynx_mode == FORMS_LYNX_MODE && nlinks > 0 &&
-	       !(curlink.type & WWW_LINK_TYPE)) {
+    } else if (lynx_mode == FORMS_LYNX_MODE && nlinks > 0 && curlink &&
+	       !(curlink->type & WWW_LINK_TYPE)) {
 #else
-    } else if (lynx_mode == FORMS_LYNX_MODE && nlinks > 0 &&
+    } else if (lynx_mode == FORMS_LYNX_MODE && nlinks > 0 && curlink &&
 	       !((user_mode == ADVANCED_MODE || user_mode == MINIMAL_MODE) &&
-		 (curlink.type & WWW_LINK_TYPE))) {
+		 (curlink->type & WWW_LINK_TYPE))) {
 #endif /* NORMAL_NON_FORM_LINK_STATUSLINES_FOR_ALL_USER_MODES */
 #endif /* INDICATE_FORMS_MODE_FOR_ALL_LINKS_ON_PAGE */
-	if (curlink.type == WWW_FORM_LINK_TYPE) {
-	    show_formlink_statusline(curlink.l_form, for_what);
+	if (curlink->type == WWW_FORM_LINK_TYPE) {
+	    show_formlink_statusline(curlink->l_form, for_what);
 	} else {
 	    statusline(NORMAL_LINK_MESSAGE);
 	}
@@ -7980,18 +7980,18 @@ static void show_main_statusline(const LinkInfo curlink,
 	    lynx_stop_reverse();
 	}
 
-    } else if ((user_mode == ADVANCED_MODE) && nlinks > 0) {
+    } else if ((user_mode == ADVANCED_MODE) && nlinks > 0 && curlink) {
 	/*
 	 * Show the URL or, for some internal links, the fragment
 	 */
 	char *cp = NULL;
 
-	if (curlink.type == WWW_INTERN_LINK_TYPE &&
-	    !isLYNXIMGMAP(curlink.lname)) {
-	    cp = findPoundSelector(curlink.lname);
+	if (curlink->type == WWW_INTERN_LINK_TYPE &&
+	    !isLYNXIMGMAP(curlink->lname)) {
+	    cp = findPoundSelector(curlink->lname);
 	}
 	if (!cp)
-	    cp = curlink.lname;
+	    cp = curlink->lname;
 	status_link(cp, more_text, is_www_index);
     } else if ((user_mode == MINIMAL_MODE) && nlinks > 0) {
 	/*
@@ -8037,7 +8037,7 @@ static void show_main_statusline(const LinkInfo curlink,
 void repaint_main_statusline(int for_what)
 {
     if (curdoc.link >= 0 && curdoc.link < nlinks)
-	show_main_statusline(links[curdoc.link], for_what);
+	show_main_statusline(&links[curdoc.link], for_what);
 }
 
 static void form_noviceline(int disabled)
diff --git a/userdefs.h b/userdefs.h
index 0c50d59f..5ea3883e 100644
--- a/userdefs.h
+++ b/userdefs.h
@@ -1,5 +1,5 @@
 /*
- * $LynxId: userdefs.h,v 1.373 2024/01/15 11:31:22 tom Exp $
+ * $LynxId: userdefs.h,v 1.375 2024/03/13 20:06:44 tom Exp $
  *
  * Lynx - Hypertext navigation system
  *
@@ -1451,10 +1451,10 @@
  */
 
 #define LYNX_NAME     "Lynx"
-#define LYNX_VERSION  "2.9.0"
+#define LYNX_VERSION  "2.9.0a"
 #define LYNX_WWW_HOME "https://lynx.invisible-island.net/"
 #define LYNX_WWW_DIST "https://lynx.invisible-island.net/current/"
-#define LYNX_DATE     "15 Jan 2024"
+#define LYNX_DATE     "13 Mar 2024"
 
 #ifdef UNICODE
 #define W32_STRING(s) L##s