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 | Summary: A text-based Web browser | ||||||
| Name: lynx | Name: lynx | ||||||
| Version: 2.9.0 | Version: 2.9.0 | ||||||
| Release: %{devrel}.1%{?dist}.1 | Release: %{devrel}.2%{?dist} | ||||||
| License: GPLv2 | License: GPLv2 | ||||||
| Source: https://invisible-mirror.net/archives/lynx/tarballs/lynx%{version}%{devrel}.tar.bz2 | Source: https://invisible-mirror.net/archives/lynx/tarballs/lynx%{version}%{devrel}.tar.bz2 | ||||||
| URL: https://lynx.invisible-island.net/ | URL: https://lynx.invisible-island.net/ | ||||||
| @ -20,6 +20,9 @@ Patch1: lynx-2.8.9-build.patch | |||||||
| # [CVE-2008-4690] | # [CVE-2008-4690] | ||||||
| Patch2: lynx-CVE-2008-4690.patch | Patch2: lynx-CVE-2008-4690.patch | ||||||
| 
 | 
 | ||||||
|  | # add presentation type for xhtml | ||||||
|  | Patch3: lynx-2.9.0dev.10-xhtml.patch | ||||||
|  | 
 | ||||||
| Provides: webclient | Provides: webclient | ||||||
| Provides: text-www-browser | Provides: text-www-browser | ||||||
| BuildRequires: dos2unix | BuildRequires: dos2unix | ||||||
| @ -51,6 +54,7 @@ exits quickly and swiftly displays web pages. | |||||||
| %patch0 -p1 | %patch0 -p1 | ||||||
| %patch1 -p1 | %patch1 -p1 | ||||||
| %patch2 -p1 | %patch2 -p1 | ||||||
|  | %patch3 -p1 | ||||||
| 
 | 
 | ||||||
| %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} | %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} | ||||||
| sed -e "s,^HELPFILE:.*,HELPFILE:file://localhost%{_pkgdocdir}/lynx_help/lynx_help_main.html,g" -i lynx.cfg | 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 | %config(noreplace,missingok) %{_sysconfdir}/lynx-site.cfg | ||||||
| 
 | 
 | ||||||
| %changelog | %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 | * 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 | - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user