[tin-dev] [tin 2.6.5] snapshots
Urs Janßen
urs at tin.org
Sun Aug 10 13:53:42 CEST 2025
In Urs Janßen <urs at tin.org> wrote:
> New Snapshots available.
if build with libcurl or liburiparser news-urls are no longer recognized
(as none of the libs does support them), this should fix the issue:
=== modified file 'src/cook.c'
--- old/src/cook.c 2025-07-31 07:07:00 +0000
+++ new/src/cook.c 2025-08-08 10:48:18 +0000
@@ -1862,22 +1862,21 @@
/* find and validate URIs */
CHECK_URI(url_regex, C_URL);
CHECK_URI(mail_regex, C_MAIL);
- CHECK_URI(news_regex, C_NEWS);
#else
# ifdef HAVE_LIBCURL
/* find and validate URIs */
CHECK_URI(url_regex, C_URL);
CHECK_URI(mail_regex, C_MAIL);
- CHECK_URI(news_regex, C_NEWS);
# else
if (MATCH_REGEX(url_regex, line, len))
flags |= C_URL;
if (MATCH_REGEX(mail_regex, line, len))
flags |= C_MAIL;
+# endif /* HAVE_LIBCURL */
+#endif /* HAVE_LIBURIPARSER */
+ /* see debian bug #687198 */
if (MATCH_REGEX(news_regex, line, len))
flags |= C_NEWS;
-# endif /* HAVE_LIBCURL */
-#endif /* HAVE_LIBURIPARSER */
if (expand_ctrl_chars(&line, &max_line_len, tabwidth))
flags |= C_CTRLL; /* Line contains form-feed */
=== modified file 'src/page.c'
--- old/src/page.c 2025-07-10 19:11:06 +0000
+++ new/src/page.c 2025-08-10 11:45:36 +0000
@@ -2695,52 +2695,54 @@
return FALSE;
}
-#ifdef HAVE_LIBURIPARSER
- /*
- * Syntax-Based Normalization RFC 3986 6.2.2
- *
- * We could keep the error code, but that would be likely
- * always URI_ERROR_SYNTAX, so no big win.
- * With -DDEBUG MISC|URI we would write some details
- * (uri.scheme, uri.hostText, ...) to a log.
- * And/or make use of uri(Une|E)scape* ...
- */
- state.uri = &uri;
- if (uriParseUriA(&state, url) == URI_SUCCESS) {
- if (uriNormalizeSyntaxA(&uri) == URI_SUCCESS) {
- if (uriToStringCharsRequiredA(&uri, &ulen) == URI_SUCCESS) {
- uri_norm = my_malloc(++ulen);
- if (uriToStringA(uri_norm, &uri, ulen, NULL) == URI_SUCCESS) {
+#if defined(HAVE_LIBURIPARSER) || defined(HAVE_LIBCURL)
+ if (!(MATCH_REGEX(news_regex, url, strlen(url)))) { /* normalize all but news */
+# ifdef HAVE_LIBURIPARSER
+ /*
+ * Syntax-Based Normalization RFC 3986 6.2.2
+ *
+ * We could keep the error code, but that would be likely
+ * always URI_ERROR_SYNTAX, so no big win.
+ * With -DDEBUG MISC|URI we would write some details
+ * (uri.scheme, uri.hostText, ...) to a log.
+ * And/or make use of uri(Une|E)scape* ...
+ */
+ state.uri = &uri;
+ if (uriParseUriA(&state, url) == URI_SUCCESS) {
+ if (uriNormalizeSyntaxA(&uri) == URI_SUCCESS) {
+ if (uriToStringCharsRequiredA(&uri, &ulen) == URI_SUCCESS) {
+ uri_norm = my_malloc(++ulen);
+ if (uriToStringA(uri_norm, &uri, ulen, NULL) == URI_SUCCESS) {
+ free(url);
+ url = uri_norm;
+ } else {
+ free(uri_norm);
+ ulen = -1;
+ }
+ }
+ }
+ uriFreeUriMembersA(&uri);
+ }
+# else
+# ifdef HAVE_LIBCURL
+ /* same as above but with libcurl, again no detailed error logging yet */
+ if ((curl = curl_url())) {
+ if (curl_url_set(curl, CURLUPART_URL, url, CURLU_URLENCODE) == CURLUE_OK) {
+ if (curl_url_get(curl, CURLUPART_URL, &uri_norm, 0) == CURLUE_OK) {
free(url);
url = uri_norm;
- } else {
- free(uri_norm);
- ulen = -1;
+ ulen = strlen(url);
}
}
- }
- uriFreeUriMembersA(&uri);
- }
-#else
-# ifdef HAVE_LIBCURL
- /* same as above but with libcurl, again no detailed error logging yet */
- if ((curl = curl_url())) {
- if (curl_url_set(curl, CURLUPART_URL, url, CURLU_URLENCODE) == CURLUE_OK) {
- if (curl_url_get(curl, CURLUPART_URL, &uri_norm, 0) == CURLUE_OK) {
- free(url);
- url = uri_norm;
- ulen = strlen(url);
- }
- }
- curl_url_cleanup(curl);
- }
-# endif /* HAVE_LIBCURL */
-#endif /* HAVE_LIBURIPARSER */
-#if defined(HAVE_LIBURIPARSER) || defined(HAVE_LIBCURL)
- if (ulen < 0) { /* should only happen if the URL was modified in the prompt above */
- error_message(2, "URI Normalization failed: %s", url); /* TODO: -> lang.c; _()? */
- free(url);
- return FALSE;
+ curl_url_cleanup(curl);
+ }
+# endif /* HAVE_LIBCURL */
+# endif /* HAVE_LIBURIPARSER */
+ if (ulen < 0) { /* should only happen if the URL was modified in the prompt above */
+ error_message(2, "URI Normalization failed: %s", url); /* TODO: -> lang.c; _()? */
+ free(url);
+ return FALSE;
+ }
}
#endif /* HAVE_LIBURIPARSER || HAVE_LIBCURL */
url_esc = escape_shell_meta(url, no_quote);
More information about the tin-dev
mailing list