add presentation type for xhtml
... as discussed in the follow pull request: https://src.fedoraproject.org/rpms/lynx/pull-request/4
This commit is contained in:
parent
8fee99599a
commit
b94f091fb9
165
lynx-2.9.0dev.10-xhtml.patch
Normal file
165
lynx-2.9.0dev.10-xhtml.patch
Normal file
@ -0,0 +1,165 @@
|
||||
From efc075db2309c3dee59b80b6a8488d5f429c0297 Mon Sep 17 00:00:00 2001
|
||||
From: "Thomas E. Dickey" <dickey@invisible-island.net>
|
||||
Date: Mon, 13 Jun 2022 00:23:57 +0000
|
||||
Subject: [PATCH] add presentation type for xhtml
|
||||
|
||||
...related state information to better handle things
|
||||
such as "<script src=foo />" -Sholmi Fish, TD
|
||||
|
||||
snapshot of project "lynx", label v2-9-0dev_10h
|
||||
|
||||
Upstream-commit: 6308534d913fccf7c0a17d592b9584e15fac455c
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
WWW/Library/Implementation/SGML.c | 16 +++++++++++-----
|
||||
WWW/Library/Implementation/SGML.h | 4 +++-
|
||||
src/HTInit.c | 2 +-
|
||||
src/HTML.c | 18 ++++++++++++++----
|
||||
src/HTML.h | 5 +++++
|
||||
5 files changed, 34 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/WWW/Library/Implementation/SGML.c b/WWW/Library/Implementation/SGML.c
|
||||
index d120644..e211b2a 100644
|
||||
--- a/WWW/Library/Implementation/SGML.c
|
||||
+++ b/WWW/Library/Implementation/SGML.c
|
||||
@@ -1621,7 +1621,8 @@ static BOOL ignore_when_empty(HTTag * tag)
|
||||
&& !(tag->flags & Tgf_mafse)
|
||||
&& tag->contents != SGML_EMPTY
|
||||
&& tag->tagclass != Tgc_Plike
|
||||
- && (tag->tagclass == Tgc_SELECTlike
|
||||
+ && (tag->tagclass == Tgc_APPLETlike
|
||||
+ || tag->tagclass == Tgc_SELECTlike
|
||||
|| (tag->contains && tag->icontains))) {
|
||||
result = TRUE;
|
||||
}
|
||||
@@ -3644,9 +3645,9 @@ static void SGML_character(HTStream *me, int c_in)
|
||||
case S_attr:
|
||||
if (WHITE(c) || (c == '>') || (c == '=')) { /* End of word */
|
||||
if ((c == '>')
|
||||
- && (string->size == 1)
|
||||
- && (string->data[0] == '/')) {
|
||||
- if (me->extended_html
|
||||
+ && (string->size >= 1)
|
||||
+ && (string->data[string->size - 1] == '/')) {
|
||||
+ if ((LYxhtml_parsing || me->extended_html)
|
||||
&& ignore_when_empty(me->current_tag)) {
|
||||
discard_empty(me);
|
||||
}
|
||||
@@ -4590,7 +4591,8 @@ const HTStreamClass SGMLParser =
|
||||
|
||||
HTStream *SGML_new(const SGML_dtd * dtd,
|
||||
HTParentAnchor *anchor,
|
||||
- HTStructured * target)
|
||||
+ HTStructured * target,
|
||||
+ int extended_html)
|
||||
{
|
||||
HTStream *me = typecalloc(struct _HTStream);
|
||||
|
||||
@@ -4660,6 +4662,10 @@ HTStream *SGML_new(const SGML_dtd * dtd,
|
||||
sgml_in_psrc_was_initialized = TRUE;
|
||||
}
|
||||
#endif
|
||||
+ if (extended_html)
|
||||
+ {
|
||||
+ me->extended_html = TRUE;
|
||||
+ }
|
||||
|
||||
sgml_offset = 0;
|
||||
return me;
|
||||
diff --git a/WWW/Library/Implementation/SGML.h b/WWW/Library/Implementation/SGML.h
|
||||
index 8b6445f..2ddef5f 100644
|
||||
--- a/WWW/Library/Implementation/SGML.h
|
||||
+++ b/WWW/Library/Implementation/SGML.h
|
||||
@@ -281,7 +281,9 @@ Create an SGML parser
|
||||
*/
|
||||
extern HTStream *SGML_new(const SGML_dtd * dtd,
|
||||
HTParentAnchor *anchor,
|
||||
- HTStructured * target);
|
||||
+ HTStructured * target,
|
||||
+ int extended_html)
|
||||
+ ;
|
||||
|
||||
extern const HTStreamClass SGMLParser;
|
||||
|
||||
diff --git a/src/HTInit.c b/src/HTInit.c
|
||||
index c451762..bd41dee 100644
|
||||
--- a/src/HTInit.c
|
||||
+++ b/src/HTInit.c
|
||||
@@ -178,7 +178,7 @@ void HTFormatInit(void)
|
||||
* application/xhtml+xml
|
||||
* text/html
|
||||
*/
|
||||
- SET_INTERNL("application/xhtml+xml", "www/present", HTMLPresent, 1.0);
|
||||
+ SET_INTERNL("application/xhtml+xml", "www/present", XHTMLPresent, 1.0);
|
||||
SET_INTERNL("application/xhtml+xml", "www/source", HTPlainPresent, 1.0);
|
||||
SET_INTERNL("text/css", "www/present", HTPlainPresent, 1.0);
|
||||
SET_INTERNL(STR_HTML, "www/present", HTMLPresent, 1.0);
|
||||
diff --git a/src/HTML.c b/src/HTML.c
|
||||
index a012466..9ec15c2 100644
|
||||
--- a/src/HTML.c
|
||||
+++ b/src/HTML.c
|
||||
@@ -7957,7 +7957,7 @@ HTStream *HTMLToPlain(HTPresentation *pres,
|
||||
CTRACE((tfp, "HTMLToPlain calling CacheThru_new\n"));
|
||||
return CacheThru_new(anchor,
|
||||
SGML_new(&HTML_dtd, anchor,
|
||||
- HTML_new(anchor, pres->rep_out, sink)));
|
||||
+ HTML_new(anchor, pres->rep_out, sink), FALSE));
|
||||
}
|
||||
|
||||
/* HTConverter for HTML source to plain text
|
||||
@@ -8020,7 +8020,7 @@ HTStream *HTMLParsedPresent(HTPresentation *pres,
|
||||
CTRACE((tfp, "HTMLParsedPresent calling CacheThru_new\n"));
|
||||
return CacheThru_new(anchor,
|
||||
SGML_new(&HTML_dtd, anchor,
|
||||
- HTMLGenerator(intermediate)));
|
||||
+ HTMLGenerator(intermediate), FALSE));
|
||||
}
|
||||
|
||||
/* HTConverter for HTML to C code
|
||||
@@ -8048,7 +8048,7 @@ HTStream *HTMLToC(HTPresentation *pres GCC_UNUSED,
|
||||
HTML_put_string(html, html->comment_start);
|
||||
CTRACE((tfp, "HTMLToC calling CacheThru_new\n"));
|
||||
return CacheThru_new(anchor,
|
||||
- SGML_new(&HTML_dtd, anchor, html));
|
||||
+ SGML_new(&HTML_dtd, anchor, html, FALSE));
|
||||
}
|
||||
|
||||
/* Presenter for HTML
|
||||
@@ -8067,7 +8067,17 @@ HTStream *HTMLPresent(HTPresentation *pres GCC_UNUSED,
|
||||
CTRACE((tfp, "HTMLPresent calling CacheThru_new\n"));
|
||||
return CacheThru_new(anchor,
|
||||
SGML_new(&HTML_dtd, anchor,
|
||||
- HTML_new(anchor, WWW_PRESENT, NULL)));
|
||||
+ HTML_new(anchor, WWW_PRESENT, NULL), FALSE));
|
||||
+}
|
||||
+
|
||||
+HTStream *XHTMLPresent(HTPresentation *pres GCC_UNUSED,
|
||||
+ HTParentAnchor *anchor,
|
||||
+ HTStream *sink GCC_UNUSED)
|
||||
+{
|
||||
+ CTRACE((tfp, "XHTMLPresent calling CacheThru_new\n"));
|
||||
+ return CacheThru_new(anchor,
|
||||
+ SGML_new(&HTML_dtd, anchor,
|
||||
+ HTML_new(anchor, WWW_PRESENT, NULL), TRUE));
|
||||
}
|
||||
#endif /* !GUI */
|
||||
|
||||
diff --git a/src/HTML.h b/src/HTML.h
|
||||
index 9f5d1d5..0baa23e 100644
|
||||
--- a/src/HTML.h
|
||||
+++ b/src/HTML.h
|
||||
@@ -251,6 +251,11 @@ extern "C" {
|
||||
HTParentAnchor *anchor,
|
||||
HTStream *sink);
|
||||
|
||||
+ extern HTStream *XHTMLPresent(HTPresentation *pres,
|
||||
+ HTParentAnchor *anchor,
|
||||
+ HTStream *sink);
|
||||
+
|
||||
+
|
||||
extern HTStructured *HTML_new(HTParentAnchor *anchor,
|
||||
HTFormat format_out,
|
||||
HTStream *target);
|
||||
--
|
||||
2.35.3
|
||||
|
@ -3,7 +3,7 @@
|
||||
Summary: A text-based Web browser
|
||||
Name: lynx
|
||||
Version: 2.9.0
|
||||
Release: %{devrel}.1%{?dist}.1
|
||||
Release: %{devrel}.2%{?dist}
|
||||
License: GPLv2
|
||||
Source: https://invisible-mirror.net/archives/lynx/tarballs/lynx%{version}%{devrel}.tar.bz2
|
||||
URL: https://lynx.invisible-island.net/
|
||||
@ -20,6 +20,9 @@ Patch1: lynx-2.8.9-build.patch
|
||||
# [CVE-2008-4690]
|
||||
Patch2: lynx-CVE-2008-4690.patch
|
||||
|
||||
# add presentation type for xhtml
|
||||
Patch3: lynx-2.9.0dev.10-xhtml.patch
|
||||
|
||||
Provides: webclient
|
||||
Provides: text-www-browser
|
||||
BuildRequires: dos2unix
|
||||
@ -51,6 +54,7 @@ exits quickly and swiftly displays web pages.
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||
sed -e "s,^HELPFILE:.*,HELPFILE:file://localhost%{_pkgdocdir}/lynx_help/lynx_help_main.html,g" -i lynx.cfg
|
||||
@ -128,6 +132,9 @@ EOF
|
||||
%config(noreplace,missingok) %{_sysconfdir}/lynx-site.cfg
|
||||
|
||||
%changelog
|
||||
* Thu Jul 07 2022 Kamil Dudka <kdudka@redhat.com> - 2.9.0dev.10.2
|
||||
- add presentation type for xhtml
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.0-dev.10.1.1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user