<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/8c41ca7c752b29a6df48fc7ebf14b8a80aa43d57">https://github.com/macports/macports-base/commit/8c41ca7c752b29a6df48fc7ebf14b8a80aa43d57</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 8c41ca7 Enable cURL's automatic decompression
</span>8c41ca7 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 8c41ca7c752b29a6df48fc7ebf14b8a80aa43d57
</span>Author: David Gilman <davidgilman1@gmail.com>
AuthorDate: Fri Dec 27 22:34:21 2019 -0600
<span style='display:block; white-space:pre;color:#404040;'> Enable cURL's automatic decompression
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/55011
</span>---
src/pextlib1.0/curl.c | 25 ++++++++++++++++++++++++-
src/pextlib1.0/tests/curl.tcl | 26 ++++++++++++++++++++++----
2 files changed, 46 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/curl.c b/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 70d3e81..b160618 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,6 +59,12 @@
</span> #define _CURL_MINIMUM_XFER_TIMEOUT ((long)(60)) /* 1 minute */
#define _CURL_MINIMUM_PROGRESS_INTERVAL ((double)(0.2)) /* 0.2 seconds */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined CURLOPT_ACCEPT_ENCODING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _CURL_ENCODING CURLOPT_ACCEPT_ENCODING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#elif defined CURLOPT_ENCODING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _CURL_ENCODING CURLOPT_ENCODING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* ========================================================================= **
* Definitions
* ========================================================================= */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -150,7 +156,7 @@ SetResultFromCurlMErrorCode(Tcl_Interp *interp, CURLMcode inErrorCode)
</span> /**
* curl fetch subcommand entry point.
*
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * syntax: curl fetch [--disable-epsv] [--ignore-ssl-cert] [--remote-time] [-u userpass] [--effective-url lasturlvar] [--progress "builtin"|callback] url filename
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * syntax: curl fetch [--disable-epsv] [--ignore-ssl-cert] [--remote-time] [-u userpass] [--effective-url lasturlvar] [--progress "builtin"|callback] [--disable-compression] url filename
</span> *
* @param interp current interpreter
* @param objc number of parameters
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -191,6 +197,7 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span> struct curl_slist *headers = NULL;
struct CURLMsg *info = NULL;
int running; /* number of running transfers */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ char* acceptEncoding = "";
</span>
/* we might have options and then the url and the file */
/* let's process the options first */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -276,6 +283,8 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span> theResult = TCL_ERROR;
break;
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (strcmp(theOption, "--disable-compression") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ acceptEncoding = NULL;
</span> } else {
Tcl_ResetResult(interp);
Tcl_AppendResult(interp, "curl fetch: unknown option ", theOption, NULL);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -487,6 +496,20 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* we want compression by default, but can optionally disable it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * a CURLOPT_ACCEPT_ENCODING of "" means to let cURL write the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Accept-Encoding header for you, based on what the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * was compiled to support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * A value of NULL disables all attemps at decompressing responses.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef _CURL_ENCODING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ theCurlCode = curl_easy_setopt(theHandle, _CURL_ENCODING, acceptEncoding);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (theCurlCode != CURLE_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ theResult = SetResultFromCurlErrorCode(interp, theCurlCode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* Clear the Pragma: no-cache header */
headers = curl_slist_append(headers, "Pragma:");
/* Append any optional headers */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/tests/curl.tcl b/src/pextlib1.0/tests/curl.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index f91bb3b..0d55a84 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/tests/curl.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/tests/curl.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,14 +32,32 @@ proc main {pextlibname} {
</span> #curl fetch -u "I accept www.opensource.org/licenses/cpl:." http://www.research.att.com/~gsf/download/tgz/sfio.2005-02-01.tgz $tempfile
#test {[md5 file $tempfile] == "48f45c7c77c23ab0ccca48c22b3870de"}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ curl fetch https://www.whatsmyip.org/http-compression-test/ $tempfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grepper $tempfile {gz_yes}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ curl fetch --disable-compression https://www.whatsmyip.org/http-compression-test/ $tempfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grepper $tempfile {gz_no}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> file delete -force $tempfile
}
proc test {args} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[catch {uplevel 1 expr $args} result] || !$result} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts "[uplevel 1 subst -nocommands $args] == $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- exit 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[catch {uplevel 1 expr $args} result] || !$result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts "[uplevel 1 subst -nocommands $args] == $result"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc grepper {filepath regex} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set hasMatch 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set fd [open $filepath]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while {[gets $fd line] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[regexp $regex $line all]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set hasMatch 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close $fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test {$hasMatch == 1}
</span> }
main $argv
</pre><pre style='margin:0'>
</pre>