<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/2742db6af032e73b294d91ae38cb6a3a94727c8e">https://github.com/macports/macports-base/commit/2742db6af032e73b294d91ae38cb6a3a94727c8e</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 2742db6af Replace `mkstemp` with Tcl 8.6 `file tempfile`
</span>2742db6af is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 2742db6af032e73b294d91ae38cb6a3a94727c8e
</span>Author: Christopher Chavez <chrischavez@gmx.us>
AuthorDate: Wed Nov 15 05:33:19 2023 -0600
<span style='display:block; white-space:pre;color:#404040;'> Replace `mkstemp` with Tcl 8.6 `file tempfile`
</span>---
doc/INTERNALS | 2 +-
doc/portfile.7 | 5 -----
src/pextlib1.0/Pextlib.c | 1 -
src/pextlib1.0/mktemp.c | 29 -----------------------------
src/pextlib1.0/mktemp.h | 1 -
src/port1.0/portbump.tcl | 12 +++---------
src/port1.0/portutil.tcl | 7 +------
7 files changed, 5 insertions(+), 52 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/INTERNALS b/doc/INTERNALS
</span><span style='display:block; white-space:pre;color:#808080;'>index b6afabb3e..ce0898aa2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/INTERNALS
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/INTERNALS
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,4 +53,4 @@ supplies all these procedures, all of which are generated at run-time using
</span> the "options" procedure in portutil.tcl.
The "pextlib" TCL library provides a variety of otherwise unavailable TCL
<span style='display:block; white-space:pre;background:#ffe0e0;'>-procedures, such as an interface to flock(2) and mkstemp(3).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+procedures, such as an interface to flock(2).
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/portfile.7 b/doc/portfile.7
</span><span style='display:block; white-space:pre;color:#808080;'>index e48f2908f..4935606d7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2686,11 +2686,6 @@ Create a temporary file using a
</span> .Ar template .
See
.Xr mktemp 3 .
<span style='display:block; white-space:pre;background:#ffe0e0;'>-.It Ic mkstemp Ar template
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Create a temporary file securely using a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-.Ar template .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-See
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-.Xr mkstemp 3 .
</span> .It Ic mkdtemp Ar template
Create a temporary directory using a
.Ar template .
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/Pextlib.c b/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 77b31168d..f9c88e8a5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1076,7 +1076,6 @@ int Pextlib_Init(Tcl_Interp *interp)
</span> Tcl_CreateObjCommand(interp, "adv-flock", AdvFlockCmd, NULL, NULL);
Tcl_CreateObjCommand(interp, "readdir", ReaddirCmd, NULL, NULL);
Tcl_CreateObjCommand(interp, "strsed", StrsedCmd, NULL, NULL);
<span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_CreateObjCommand(interp, "mkstemp", MkstempCmd, NULL, NULL);
</span> Tcl_CreateObjCommand(interp, "mktemp", MktempCmd, NULL, NULL);
Tcl_CreateObjCommand(interp, "mkdtemp", MkdtempCmd, NULL, NULL);
Tcl_CreateObjCommand(interp, "existsuser", ExistsuserCmd, NULL, NULL);
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/mktemp.c b/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 83b5257fa..a671fb6ae 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -101,32 +101,3 @@ int MktempCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Ob
</span> free(template);
return TCL_OK;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-int MkstempCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_Channel channel;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- char *template, *channelname;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int fd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (objc != 2) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_WrongNumArgs(interp, 1, objv, "template");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- template = strdup(Tcl_GetString(objv[1]));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (template == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ((fd = mkstemp(template)) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_AppendResult(interp, "mkstemp failed: ", strerror(errno), NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free(template);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- channel = Tcl_MakeFileChannel((ClientData)(intptr_t)fd, TCL_READABLE|TCL_WRITABLE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_RegisterChannel(interp, channel);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- channelname = (char *)Tcl_GetChannelName(channel);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Tcl_AppendResult(interp, channelname, " ", template, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- free(template);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TCL_OK;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/mktemp.h b/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 431421176..85ffda088 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,4 +31,3 @@
</span>
int MkdtempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int MktempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int MkstempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portbump.tcl b/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 69c1d4a58..5486a1b69 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,18 +189,12 @@ proc portbump::bump_main {args} {
</span> # root -> owner id
exec_as_uid $owneruid {
# Create temporary Portfile.bump.XXXXXX
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[catch {set tmpfile [mkstemp "${portpath}/Portfile.bump.XXXXXX"]} error]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[catch {set tmpfd [file tempfile tmpfile "${portpath}/Portfile.bump.XXXXXX"]} error]} {
</span> ui_debug $::errorInfo
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "mkstemp: $error"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -code error "mkstemp failed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "file tempfile: $error"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "file tempfile failed"
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Extract the Tcl Channel number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set tmpfd [lindex $tmpfile 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Set tmpfile to only the file name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set tmpfile [join [lrange $tmpfile 1 end]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Get Portfile attributes
set attributes [file attributes $portfile]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 0aa20e5e1..2eabf6d31 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1087,15 +1087,10 @@ proc reinplace {args} {
</span> # absolute path, otherwise it is $dir/$file
set file [file join $dir $file]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[catch {set tmpfile [mkstemp "${tempdir}/[file tail $file].sed.XXXXXXXX"]} error]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[catch {set tmpfd [file tempfile tmpfile "${tempdir}/[file tail $file].sed.XXXXXXXX"]} error]} {
</span> ui_debug $::errorInfo
ui_error "reinplace: $error"
return -code error "reinplace failed"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Extract the Tcl Channel number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set tmpfd [lindex $tmpfile 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Set tmpfile to only the file name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set tmpfile [join [lrange $tmpfile 1 end]]
</span> }
set cmdline [list]
</pre><pre style='margin:0'>
</pre>