diff -ur src/ne_uri.c --- src/ne_uri.c 2020-02-07 10:49:58.764417840 +0000 +++ src/ne_uri.c 2020-02-07 10:51:33.675627141 +0000 @@ -87,7 +87,9 @@ /* pchar = unreserved / pct-encoded / sub-delims / ":" / "@" */ #define URI_PCHAR (URI_UNRESERVED | PC | URI_SUBDELIM | CL | AT) /* invented: segchar = pchar / "/" */ -#define URI_SEGCHAR (URI_PCHAR | FS) +/* allow OT characters to parse SharePoint 2016 href IRIs (breaking the spec + * of href XML Element: "MUST contain a URI or a relative reference." */ +#define URI_SEGCHAR (URI_PCHAR | FS | OT) /* query = *( pchar / "/" / "?" ) */ #define URI_QUERY (URI_PCHAR | FS | QU) /* fragment == query */ @@ -237,7 +238,7 @@ p = s; - while (uri_lookup(*p) & URI_SEGCHAR) + while (uri_lookup(*p) & URI_SEGCHAR && *p != '\0') p++; /* => p = [ "?" query ] [ "#" fragment ] */