sfeed

Simple RSS and Atom feed parser
git clone https://git.sinitax.com/codemadness/sfeed
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

commit 4c2b939bbb1991aaff9ad71d5aa0456793f2e787
parent 789cc616a95f8ab841df5a007cf1115f9d63117f
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Tue, 27 Apr 2021 19:36:27 +0200

use the last href attribute value if there are multiple set

Input to reproduce:

	<entry>
	<link href="https://codemadness.org/a" href="https://codemadness.org/b"/>
	</entry>

Old value:

	"https://codemadness.org/ahttps://codemadness.org/b"

New value:

	"https://codemadness.org/b"

same with RSS <enclosure url="" />

Diffstat:
Msfeed.c | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/sfeed.c b/sfeed.c @@ -785,12 +785,18 @@ xmlattrstart(XMLParser *p, const char *t, size_t tl, const char *n, size_t nl) } return; } + if (attrispermalink.len && isattr(n, nl, STRP("ispermalink"))) string_clear(&attrispermalink); else if (attrrel.len && isattr(n, nl, STRP("rel"))) string_clear(&attrrel); else if (attrtype.len && isattr(n, nl, STRP("type"))) string_clear(&attrtype); + else if (tmpstr.len && + (isattr(n, nl, STRP("href")) || + isattr(n, nl, STRP("term")) || + isattr(n, nl, STRP("url")))) + string_clear(&tmpstr); /* use the last value for multiple attribute values */ } /* NOTE: this handler can be called multiple times if the data in this