<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/d1085cc474e59bc74673104e0ffa8ea1838fb1dc">https://github.com/macports/macports-base/commit/d1085cc474e59bc74673104e0ffa8ea1838fb1dc</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit d1085cc474e59bc74673104e0ffa8ea1838fb1dc
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Apr 18 00:30:55 2025 +1000
<span style='display:block; white-space:pre;color:#404040;'> curl getsize: support -u option
</span>---
src/pextlib1.0/curl.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
<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 1ac46b88c..948492f93 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;'>@@ -1038,6 +1038,7 @@ CurlGetSizeCmd(Tcl_Interp* interp, int objc, Tcl_Obj* const objv[])
</span> int ignoresslcert = 0;
char theSizeString[32];
const char* theURL;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* theUserPassString = NULL;
</span> CURLcode theCurlCode;
double theFileSize;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1049,6 +1050,18 @@ CurlGetSizeCmd(Tcl_Interp* interp, int objc, Tcl_Obj* const objv[])
</span>
if (strcmp(theOption, "--ignore-ssl-cert") == 0) {
ignoresslcert = 1;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (strcmp(theOption, "-u") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* check we also have the parameter */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (optioncrsr < lastoption) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optioncrsr++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ theUserPassString = Tcl_GetString(objv[optioncrsr]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Tcl_SetResult(interp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "curl getsize: -u option requires a parameter",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TCL_STATIC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ theResult = TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> } else {
Tcl_ResetResult(interp);
Tcl_AppendResult(interp, "curl getsize: unknown option ", theOption, NULL);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1065,7 +1078,7 @@ CurlGetSizeCmd(Tcl_Interp* interp, int objc, Tcl_Obj* const objv[])
</span> }
/* first (second) parameter is the url */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if (objc < 3 || objc > 4) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (objc < 3 || objc > 6) {
</span> Tcl_WrongNumArgs(interp, 1, objv, "getsize [--ignore-ssl-cert] url");
theResult = TCL_ERROR;
break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1167,6 +1180,15 @@ CurlGetSizeCmd(Tcl_Interp* interp, int objc, Tcl_Obj* const objv[])
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* set the l/p, if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (theUserPassString) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ theCurlCode = curl_easy_setopt(theHandle, CURLOPT_USERPWD, theUserPassString);
</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;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* skip the header data */
theCurlCode = curl_easy_setopt(theHandle, CURLOPT_HEADER, 0);
if (theCurlCode != CURLE_OK) {
</pre><pre style='margin:0'>
</pre>