summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authoroehhar <harald.oehlmann@elmicron.de>2023-11-02 17:00:55 (GMT)
committeroehhar <harald.oehlmann@elmicron.de>2023-11-02 17:00:55 (GMT)
commit27bbe3b5e064f2f59c33401a0b613054db151642 (patch)
treefc25af316218a7ca1c7fa32df0226a6ec184e21a /unix
parent35d2a8013960a923e171c730d36430400813aa76 (diff)
parent7d470ebdeae5cee9052c1cf794696f2968941110 (diff)
downloadtcl-27bbe3b5e064f2f59c33401a0b613054db151642.zip
tcl-27bbe3b5e064f2f59c33401a0b613054db151642.tar.gz
tcl-27bbe3b5e064f2f59c33401a0b613054db151642.tar.bz2
Merge main
Diffstat (limited to 'unix')
-rw-r--r--unix/Makefile.in13
-rwxr-xr-xunix/configure7
-rw-r--r--unix/configure.ac8
-rw-r--r--unix/dltest/pkgb.c2
-rw-r--r--unix/dltest/pkgooa.c6
-rw-r--r--unix/tclLoadDl.c2
-rw-r--r--unix/tclLoadDyld.c2
-rw-r--r--unix/tclLoadNext.c2
-rw-r--r--unix/tclLoadOSF.c2
-rw-r--r--unix/tclUnixChan.c56
-rw-r--r--unix/tclUnixFCmd.c6
-rw-r--r--unix/tclUnixInit.c6
-rw-r--r--unix/tclUnixPipe.c18
-rw-r--r--unix/tclUnixSock.c8
-rw-r--r--unix/tclUnixTest.c32
-rw-r--r--unix/tclUnixThrd.c4
-rw-r--r--unix/tclXtTest.c2
17 files changed, 112 insertions, 64 deletions
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 0601c4d..83728bd 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -235,7 +235,7 @@ PKGS_DIR = $(TOP_DIR)/pkgs
# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below.
DLTEST_DIR = @TCL_SRC_DIR@/unix/dltest
# Must be absolute to so the corresponding tcltest's tcl_library is absolute.
-TCL_BUILDTIME_LIBRARY = @TCL_SRC_DIR@/library
+TCL_BUILDTIME_LIBRARY = @TCL_BUILDTIME_LIBRARY@
ZLIB_DIR = ${COMPAT_DIR}/zlib
ZLIB_INCLUDE = @ZLIB_INCLUDE@
@@ -888,13 +888,22 @@ SHELL_ENV = @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@} \
TCLLIBPATH="@abs_builddir@/pkgs" \
TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"
-${TCLTEST_EXE}: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${TCL_STUB_LIB_FILE} ${BUILD_DLTEST}
+${TCLTEST_EXE}: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${TCL_STUB_LIB_FILE} ${BUILD_DLTEST} ${TCL_ZIP_FILE}
$(MAKE) tcltest-real LIB_RUNTIME_DIR="`pwd`"
tcltest-real:
${CC} ${CFLAGS} ${LDFLAGS} ${TCLTEST_OBJS} \
@TCL_BUILD_LIB_SPEC@ ${TCL_STUB_LIB_FILE} ${LIBS} @EXTRA_TCLSH_LIBS@ \
${CC_SEARCH_FLAGS} -o ${TCLTEST_EXE}
+ @if test "${ZIPFS_BUILD}" = "2" ; then \
+ if test "x$(MACHER)" = "x" ; then \
+ cat ${TCL_ZIP_FILE} >> ${TCLTEST_EXE}; \
+ else $(MACHER) append ${TCLTEST_EXE} ${TCL_ZIP_FILE} /tmp/macher_output; \
+ mv /tmp/macher_output ${TCLTEST_EXE}; chmod u+x ${TCLTEST_EXE}; \
+ fi; \
+ ${NATIVE_ZIP} -A ${TCLTEST_EXE} \
+ || echo 'ignore zip-error by adjust sfx process (not executable?)'; \
+ fi
# Note, in the targets below TCL_LIBRARY needs to be set or else "make test"
# won't work in the case where the compilation directory isn't the same as the
diff --git a/unix/configure b/unix/configure
index a47e33d..87c7948 100755
--- a/unix/configure
+++ b/unix/configure
@@ -691,6 +691,7 @@ TCL_PATCH_LEVEL
TCL_MINOR_VERSION
TCL_MAJOR_VERSION
TCL_VERSION
+TCL_BUILDTIME_LIBRARY
INSTALL_MSGS
INSTALL_LIBRARIES
TCL_ZIP_FILE
@@ -10964,6 +10965,12 @@ INSTALL_LIBRARIES=install-libraries
INSTALL_MSGS=install-msgs
fi
+# Point to tcl script library if we are not embedding it.
+if test "${ZIPFS_BUILD}" = 0; then
+TCL_BUILDTIME_LIBRARY=${TCL_SRC_DIR}/library
+fi
+
+
diff --git a/unix/configure.ac b/unix/configure.ac
index 633b568..33e7a32 100644
--- a/unix/configure.ac
+++ b/unix/configure.ac
@@ -868,11 +868,17 @@ AC_MSG_RESULT([no])
INSTALL_LIBRARIES=install-libraries
INSTALL_MSGS=install-msgs
fi
+
+# Point to tcl script library if we are not embedding it.
+if test "${ZIPFS_BUILD}" = 0; then
+TCL_BUILDTIME_LIBRARY=${TCL_SRC_DIR}/library
+fi
+
AC_SUBST(ZIPFS_BUILD)
AC_SUBST(TCL_ZIP_FILE)
AC_SUBST(INSTALL_LIBRARIES)
AC_SUBST(INSTALL_MSGS)
-
+AC_SUBST(TCL_BUILDTIME_LIBRARY)
#--------------------------------------------------------------------
# The statements below define the symbol TCL_PACKAGE_PATH, which
diff --git a/unix/dltest/pkgb.c b/unix/dltest/pkgb.c
index be4c680..ca64a11 100644
--- a/unix/dltest/pkgb.c
+++ b/unix/dltest/pkgb.c
@@ -52,7 +52,7 @@ Pkgb_SubObjCmd(
|| (Tcl_GetIntFromObj(interp, objv[2], &second) != TCL_OK)) {
char buf[TCL_INTEGER_SPACE];
snprintf(buf, sizeof(buf), "%d", Tcl_GetErrorLine(interp));
- Tcl_AppendResult(interp, " in line: ", buf, NULL);
+ Tcl_AppendResult(interp, " in line: ", buf, (void *)NULL);
return TCL_ERROR;
}
Tcl_SetObjResult(interp, Tcl_NewIntObj(first - second));
diff --git a/unix/dltest/pkgooa.c b/unix/dltest/pkgooa.c
index e0aa45c..60e3864 100644
--- a/unix/dltest/pkgooa.c
+++ b/unix/dltest/pkgooa.c
@@ -108,18 +108,18 @@ Pkgooa_Init(
}
if (tclStubsPtr == NULL) {
Tcl_AppendResult(interp, "Tcl stubs are not initialized, "
- "did you compile using -DUSE_TCL_STUBS? ", NULL);
+ "did you compile using -DUSE_TCL_STUBS? ", (void *)NULL);
return TCL_ERROR;
}
if (Tcl_OOInitStubs(interp) == NULL) {
return TCL_ERROR;
}
if (tclOOStubsPtr == NULL) {
- Tcl_AppendResult(interp, "TclOO stubs are not initialized", NULL);
+ Tcl_AppendResult(interp, "TclOO stubs are not initialized", (void *)NULL);
return TCL_ERROR;
}
if (tclOOIntStubsPtr == NULL) {
- Tcl_AppendResult(interp, "TclOO internal stubs are not initialized", NULL);
+ Tcl_AppendResult(interp, "TclOO internal stubs are not initialized", (void *)NULL);
return TCL_ERROR;
}
diff --git a/unix/tclLoadDl.c b/unix/tclLoadDl.c
index 743e94f..ee92318 100644
--- a/unix/tclLoadDl.c
+++ b/unix/tclLoadDl.c
@@ -232,7 +232,7 @@ FindSymbol(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"cannot find symbol \"%s\": %s", symbol, errorStr));
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol,
- NULL);
+ (void *)NULL);
}
}
return proc;
diff --git a/unix/tclLoadDyld.c b/unix/tclLoadDyld.c
index 67e1682..7525abe 100644
--- a/unix/tclLoadDyld.c
+++ b/unix/tclLoadDyld.c
@@ -418,7 +418,7 @@ FindSymbol(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"cannot find symbol \"%s\": %s", symbol, errMsg));
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol,
- NULL);
+ (void *)NULL);
}
return (void *)proc;
}
diff --git a/unix/tclLoadNext.c b/unix/tclLoadNext.c
index 527e893..5acd397 100644
--- a/unix/tclLoadNext.c
+++ b/unix/tclLoadNext.c
@@ -153,7 +153,7 @@ FindSymbol(
if (proc == NULL && interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"cannot find symbol \"%s\"", symbol));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol, NULL);
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol, (void *)NULL);
}
return proc;
}
diff --git a/unix/tclLoadOSF.c b/unix/tclLoadOSF.c
index 79a869b..43f29c8 100644
--- a/unix/tclLoadOSF.c
+++ b/unix/tclLoadOSF.c
@@ -170,7 +170,7 @@ FindSymbol(
if (proc == NULL && interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"cannot find symbol \"%s\"", symbol));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol, NULL);
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LOAD_SYMBOL", symbol, (void *)NULL);
}
return proc;
}
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c
index eea1453..59e4f47 100644
--- a/unix/tclUnixChan.c
+++ b/unix/tclUnixChan.c
@@ -112,7 +112,7 @@ typedef struct {
if (interp) { \
Tcl_SetObjResult(interp, Tcl_ObjPrintf( \
"%s not supported for this platform", (detail))); \
- Tcl_SetErrorCode(interp, "TCL", "UNSUPPORTED", NULL); \
+ Tcl_SetErrorCode(interp, "TCL", "UNSUPPORTED", (void *)NULL); \
}
/*
@@ -278,7 +278,7 @@ FileInputProc(
*/
do {
- bytesRead = read(fsPtr->fd, buf, (size_t)toRead);
+ bytesRead = read(fsPtr->fd, buf, toRead);
} while ((bytesRead < 0) && (errno == EINTR));
if (bytesRead < 0) {
@@ -327,7 +327,7 @@ FileOutputProc(
return 0;
}
- written = write(fsPtr->fd, buf, (size_t)toWrite);
+ written = write(fsPtr->fd, buf, toWrite);
if (written >= 0) {
return written;
}
@@ -480,6 +480,20 @@ FileWideSeekProc(
*----------------------------------------------------------------------
*/
+/*
+ * Bug ad5a57f2f271: Tcl_NotifyChannel is not a Tcl_FileProc,
+ * so do not pass it to directly to Tcl_CreateFileHandler.
+ * Instead, pass a wrapper which is a Tcl_FileProc.
+ */
+static void
+FileWatchNotifyChannelWrapper(
+ void *clientData,
+ int mask)
+{
+ Tcl_Channel channel = (Tcl_Channel)clientData;
+ Tcl_NotifyChannel(channel, mask);
+}
+
static void
FileWatchProc(
void *instanceData, /* The file state. */
@@ -490,15 +504,13 @@ FileWatchProc(
FileState *fsPtr = (FileState *)instanceData;
/*
- * Make sure we only register for events that are valid on this file. Note
- * that we are passing Tcl_NotifyChannel directly to Tcl_CreateFileHandler
- * with the channel pointer as the client data.
+ * Make sure we only register for events that are valid on this file.
*/
mask &= fsPtr->validMask;
if (mask) {
Tcl_CreateFileHandler(fsPtr->fd, mask,
- (Tcl_FileProc *) Tcl_NotifyChannel, fsPtr->channel);
+ FileWatchNotifyChannelWrapper, fsPtr->channel);
} else {
Tcl_DeleteFileHandler(fsPtr->fd);
}
@@ -829,7 +841,7 @@ TtySetOptionProc(
"bad value for -handshake: must be one of"
" xonxoff, rtscts, dtrdsr or none", -1));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "FCONFIGURE",
- "VALUE", NULL);
+ "VALUE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -850,7 +862,7 @@ TtySetOptionProc(
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"bad value for -xchar: should be a list of"
" two elements with each a single 8-bit character", -1));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "XCHAR", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "XCHAR", (void *)NULL);
}
Tcl_Free(argv);
return TCL_ERROR;
@@ -916,7 +928,7 @@ TtySetOptionProc(
"bad value for -ttycontrol: should be a list of"
" signal,value pairs", -1));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "FCONFIGURE",
- "VALUE", NULL);
+ "VALUE", (void *)NULL);
}
Tcl_Free(argv);
return TCL_ERROR;
@@ -958,7 +970,7 @@ TtySetOptionProc(
"bad signal \"%s\" for -ttycontrol: must be"
" DTR, RTS or BREAK", argv[i]));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "FCONFIGURE",
- "VALUE", NULL);
+ "VALUE", (void *)NULL);
}
Tcl_Free(argv);
return TCL_ERROR;
@@ -990,7 +1002,7 @@ TtySetOptionProc(
"bad mode \"%s\" for -closemode: must be"
" default, discard, or drain", value));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "FCONFIGURE",
- "VALUE", NULL);
+ "VALUE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1048,7 +1060,7 @@ TtySetOptionProc(
"bad mode \"%s\" for -inputmode: must be"
" normal, password, raw, or reset", value));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "FCONFIGURE",
- "VALUE", NULL);
+ "VALUE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1626,7 +1638,7 @@ TtyParseMode(
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"%s: should be baud,parity,data,stop", bad));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1656,7 +1668,7 @@ TtyParseMode(
"n, o, or e"
#endif /* PAREXT */
));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1665,7 +1677,7 @@ TtyParseMode(
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"%s data: should be 5, 6, 7, or 8", bad));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1673,7 +1685,7 @@ TtyParseMode(
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"%s stop: should be 1 or 2", bad));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "SERIALMODE", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1780,7 +1792,7 @@ TclpOpenFileChannel(
if (interp != (Tcl_Interp *) NULL) {
Tcl_AppendResult(interp, "couldn't open \"",
TclGetString(pathPtr), "\": filename is invalid on this platform",
- NULL);
+ (void *)NULL);
}
return NULL;
}
@@ -2073,13 +2085,13 @@ Tcl_GetOpenFile(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"\"%s\" wasn't opened for writing", chanID));
Tcl_SetErrorCode(interp, "TCL", "VALUE", "CHANNEL", "NOT_WRITABLE",
- NULL);
+ (void *)NULL);
return TCL_ERROR;
} else if (!forWriting && !(chanMode & TCL_READABLE)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"\"%s\" wasn't opened for reading", chanID));
Tcl_SetErrorCode(interp, "TCL", "VALUE", "CHANNEL", "NOT_READABLE",
- NULL);
+ (void *)NULL);
return TCL_ERROR;
}
@@ -2111,7 +2123,7 @@ Tcl_GetOpenFile(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"cannot get a FILE * for \"%s\"", chanID));
Tcl_SetErrorCode(interp, "TCL", "VALUE", "CHANNEL",
- "FILE_FAILURE", NULL);
+ "FILE_FAILURE", (void *)NULL);
return TCL_ERROR;
}
*filePtr = f;
@@ -2122,7 +2134,7 @@ Tcl_GetOpenFile(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"\"%s\" cannot be used to get a FILE *", chanID));
Tcl_SetErrorCode(interp, "TCL", "VALUE", "CHANNEL", "NO_DESCRIPTOR",
- NULL);
+ (void *)NULL);
return TCL_ERROR;
}
diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c
index 3a6f13c..ec936e0 100644
--- a/unix/tclUnixFCmd.c
+++ b/unix/tclUnixFCmd.c
@@ -1533,7 +1533,7 @@ SetGroupAttribute(
" group \"%s\" does not exist",
TclGetString(fileName), string));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "SETGRP",
- "NO_GROUP", NULL);
+ "NO_GROUP", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1604,7 +1604,7 @@ SetOwnerAttribute(
" user \"%s\" does not exist",
TclGetString(fileName), string));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "SETOWN",
- "NO_USER", NULL);
+ "NO_USER", (void *)NULL);
}
return TCL_ERROR;
}
@@ -1699,7 +1699,7 @@ SetPermissionsAttribute(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"unknown permission string format \"%s\"",
modeStringPtr));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "PERMISSION", NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "PERMISSION", (void *)NULL);
}
return TCL_ERROR;
}
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index 9c84657..982c36b 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -455,7 +455,7 @@ TclpInitPlatform(void)
void
TclpInitLibraryPath(
char **valuePtr,
- TCL_HASH_TYPE *lengthPtr,
+ size_t *lengthPtr,
Tcl_Encoding *encodingPtr)
{
#define LIBRARY_SIZE 32
@@ -546,9 +546,9 @@ TclpInitLibraryPath(
*encodingPtr = Tcl_GetEncoding(NULL, NULL);
/*
- * Note lengthPtr is (TCL_HASH_TYPE *) which is unsigned so cannot
+ * Note lengthPtr is (size_t *) which is unsigned so cannot
* pass directly to Tcl_GetStringFromObj.
- * TODO - why is the type TCL_HASH_TYPE anyways?
+ * TODO - why is the type size_t anyways?
*/
Tcl_Size length;
str = Tcl_GetStringFromObj(pathPtr, &length);
diff --git a/unix/tclUnixPipe.c b/unix/tclUnixPipe.c
index 8c0b378..08f60b2 100644
--- a/unix/tclUnixPipe.c
+++ b/unix/tclUnixPipe.c
@@ -1233,6 +1233,20 @@ PipeOutputProc(
*----------------------------------------------------------------------
*/
+/*
+ * Bug ad5a57f2f271: Tcl_NotifyChannel is not a Tcl_FileProc,
+ * so do not pass it to directly to Tcl_CreateFileHandler.
+ * Instead, pass a wrapper which is a Tcl_FileProc.
+ */
+static void
+PipeWatchNotifyChannelWrapper(
+ void *clientData,
+ int mask)
+{
+ Tcl_Channel channel = (Tcl_Channel)clientData;
+ Tcl_NotifyChannel(channel, mask);
+}
+
static void
PipeWatchProc(
void *instanceData, /* The pipe state. */
@@ -1247,7 +1261,7 @@ PipeWatchProc(
newmask = mask & (TCL_READABLE | TCL_EXCEPTION);
if (newmask) {
Tcl_CreateFileHandler(GetFd(psPtr->inFile), newmask,
- (Tcl_FileProc *) Tcl_NotifyChannel, psPtr->channel);
+ PipeWatchNotifyChannelWrapper, psPtr->channel);
} else {
Tcl_DeleteFileHandler(GetFd(psPtr->inFile));
}
@@ -1256,7 +1270,7 @@ PipeWatchProc(
newmask = mask & (TCL_WRITABLE | TCL_EXCEPTION);
if (newmask) {
Tcl_CreateFileHandler(GetFd(psPtr->outFile), newmask,
- (Tcl_FileProc *) Tcl_NotifyChannel, psPtr->channel);
+ PipeWatchNotifyChannelWrapper, psPtr->channel);
} else {
Tcl_DeleteFileHandler(GetFd(psPtr->outFile));
}
diff --git a/unix/tclUnixSock.c b/unix/tclUnixSock.c
index 1b2fd1b..36ed409 100644
--- a/unix/tclUnixSock.c
+++ b/unix/tclUnixSock.c
@@ -146,7 +146,7 @@ static int TcpSetOptionProc(void *instanceData,
static void TcpThreadActionProc(void *instanceData, int action);
static void TcpWatchProc(void *instanceData, int mask);
static int WaitForConnect(TcpState *statePtr, int *errorCodePtr);
-static void WrapNotify(void *clientData, int mask);
+static Tcl_FileProc WrapNotify;
/*
* This structure describes the channel type structure for TCP socket
@@ -1215,10 +1215,10 @@ TcpWatchProc(
*/
statePtr->interest = mask;
- Tcl_CreateFileHandler(statePtr->fds.fd, mask|TCL_READABLE,
- (Tcl_FileProc *) WrapNotify, statePtr);
+ Tcl_CreateFileHandler(statePtr->fds.fd, mask|TCL_READABLE,
+ WrapNotify, statePtr);
} else {
- Tcl_DeleteFileHandler(statePtr->fds.fd);
+ Tcl_DeleteFileHandler(statePtr->fds.fd);
}
}
diff --git a/unix/tclUnixTest.c b/unix/tclUnixTest.c
index 0f73b57..2c20251 100644
--- a/unix/tclUnixTest.c
+++ b/unix/tclUnixTest.c
@@ -162,7 +162,7 @@ TestfilehandlerCmd(
return TCL_ERROR;
}
if (i >= MAX_PIPES) {
- Tcl_AppendResult(interp, "bad index ", objv[2], NULL);
+ Tcl_AppendResult(interp, "bad index ", objv[2], (void *)NULL);
return TCL_ERROR;
}
pipePtr = &testPipes[i];
@@ -191,7 +191,7 @@ TestfilehandlerCmd(
return TCL_ERROR;
}
snprintf(buf, sizeof(buf), "%d %d", pipePtr->readCount, pipePtr->writeCount);
- Tcl_AppendResult(interp, buf, NULL);
+ Tcl_AppendResult(interp, buf, (void *)NULL);
} else if (strcmp(Tcl_GetString(objv[1]), "create") == 0) {
if (objc != 5) {
Tcl_WrongNumArgs(interp, 2, objv, "index readMode writeMode");
@@ -200,7 +200,7 @@ TestfilehandlerCmd(
if (pipePtr->readFile == NULL) {
if (!TclpCreatePipe(&pipePtr->readFile, &pipePtr->writeFile)) {
Tcl_AppendResult(interp, "couldn't open pipe: ",
- Tcl_PosixError(interp), NULL);
+ Tcl_PosixError(interp), (void *)NULL);
return TCL_ERROR;
}
#ifdef O_NONBLOCK
@@ -208,7 +208,7 @@ TestfilehandlerCmd(
fcntl(GetFd(pipePtr->writeFile), F_SETFL, O_NONBLOCK);
#else
Tcl_AppendResult(interp, "can't make pipes non-blocking",
- NULL);
+ (void *)NULL);
return TCL_ERROR;
#endif
}
@@ -224,7 +224,7 @@ TestfilehandlerCmd(
Tcl_CreateFileHandler(GetFd(pipePtr->readFile), 0,
TestFileHandlerProc, pipePtr);
} else {
- Tcl_AppendResult(interp, "bad read mode \"", Tcl_GetString(objv[3]), "\"", NULL);
+ Tcl_AppendResult(interp, "bad read mode \"", Tcl_GetString(objv[3]), "\"", (void *)NULL);
return TCL_ERROR;
}
if (strcmp(Tcl_GetString(objv[4]), "writable") == 0) {
@@ -236,7 +236,7 @@ TestfilehandlerCmd(
Tcl_CreateFileHandler(GetFd(pipePtr->writeFile), 0,
TestFileHandlerProc, pipePtr);
} else {
- Tcl_AppendResult(interp, "bad read mode \"", Tcl_GetString(objv[4]), "\"", NULL);
+ Tcl_AppendResult(interp, "bad read mode \"", Tcl_GetString(objv[4]), "\"", (void *)NULL);
return TCL_ERROR;
}
} else if (strcmp(Tcl_GetString(objv[1]), "empty") == 0) {
@@ -268,7 +268,7 @@ TestfilehandlerCmd(
memset(buffer, 'b', 10);
TclFormatInt(buf, write(GetFd(pipePtr->writeFile), buffer, 10));
- Tcl_AppendResult(interp, buf, NULL);
+ Tcl_AppendResult(interp, buf, (void *)NULL);
} else if (strcmp(Tcl_GetString(objv[1]), "oneevent") == 0) {
Tcl_DoOneEvent(TCL_FILE_EVENTS|TCL_DONT_WAIT);
} else if (strcmp(Tcl_GetString(objv[1]), "wait") == 0) {
@@ -277,7 +277,7 @@ TestfilehandlerCmd(
return TCL_ERROR;
}
if (pipePtr->readFile == NULL) {
- Tcl_AppendResult(interp, "pipe ", Tcl_GetString(objv[2]), " doesn't exist", NULL);
+ Tcl_AppendResult(interp, "pipe ", Tcl_GetString(objv[2]), " doesn't exist", (void *)NULL);
return TCL_ERROR;
}
if (strcmp(Tcl_GetString(objv[3]), "readable") == 0) {
@@ -302,7 +302,7 @@ TestfilehandlerCmd(
} else {
Tcl_AppendResult(interp, "bad option \"", Tcl_GetString(objv[1]),
"\": must be close, clear, counts, create, empty, fill, "
- "fillpartial, oneevent, wait, or windowevent", NULL);
+ "fillpartial, oneevent, wait, or windowevent", (void *)NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -369,13 +369,13 @@ TestfilewaitCmd(
mask = TCL_WRITABLE|TCL_READABLE;
} else {
Tcl_AppendResult(interp, "bad argument \"", Tcl_GetString(objv[2]),
- "\": must be readable, writable, or both", NULL);
+ "\": must be readable, writable, or both", (void *)NULL);
return TCL_ERROR;
}
if (Tcl_GetChannelHandle(channel,
(mask & TCL_READABLE) ? TCL_READABLE : TCL_WRITABLE,
(void **) &data) != TCL_OK) {
- Tcl_AppendResult(interp, "couldn't get channel file", NULL);
+ Tcl_AppendResult(interp, "couldn't get channel file", (void *)NULL);
return TCL_ERROR;
}
fd = PTR2INT(data);
@@ -467,7 +467,7 @@ TestforkCmd(
pid = fork();
if (pid == -1) {
Tcl_AppendResult(interp,
- "Cannot fork", NULL);
+ "Cannot fork", (void *)NULL);
return TCL_ERROR;
}
/* Only needed when pthread_atfork is not present,
@@ -522,7 +522,7 @@ TestalarmCmd(
action.sa_flags = SA_RESTART;
if (sigaction(SIGALRM, &action, NULL) < 0) {
- Tcl_AppendResult(interp, "sigaction: ", Tcl_PosixError(interp), NULL);
+ Tcl_AppendResult(interp, "sigaction: ", Tcl_PosixError(interp), (void *)NULL);
return TCL_ERROR;
}
(void) alarm(sec);
@@ -531,7 +531,7 @@ TestalarmCmd(
Tcl_AppendResult(interp,
"warning: sigaction SA_RESTART not support on this platform",
- NULL);
+ (void *)NULL);
return TCL_ERROR;
#endif
}
@@ -582,7 +582,7 @@ TestgotsigCmd(
TCL_UNUSED(int) /*objc*/,
TCL_UNUSED(Tcl_Obj *const *))
{
- Tcl_AppendResult(interp, gotsig, NULL);
+ Tcl_AppendResult(interp, gotsig, (void *)NULL);
gotsig = "0";
return TCL_OK;
}
@@ -634,7 +634,7 @@ TestchmodCmd(
}
if (chmod(translated, mode) != 0) {
Tcl_AppendResult(interp, translated, ": ", Tcl_PosixError(interp),
- NULL);
+ (void *)NULL);
return TCL_ERROR;
}
Tcl_DStringFree(&buffer);
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c
index 5d357c9..71e451f 100644
--- a/unix/tclUnixThrd.c
+++ b/unix/tclUnixThrd.c
@@ -214,7 +214,7 @@ TclpThreadCreate(
Tcl_ThreadId *idPtr, /* Return, the ID of the thread */
Tcl_ThreadCreateProc *proc, /* Main() function of the thread */
void *clientData, /* The one argument to Main() */
- TCL_HASH_TYPE stackSize, /* Size of stack for the new thread */
+ size_t stackSize, /* Size of stack for the new thread */
int flags) /* Flags controlling behaviour of the new
* thread. */
{
@@ -228,7 +228,7 @@ TclpThreadCreate(
#ifdef HAVE_PTHREAD_ATTR_SETSTACKSIZE
if (stackSize != TCL_THREAD_STACK_DEFAULT) {
- pthread_attr_setstacksize(&attr, (size_t)stackSize);
+ pthread_attr_setstacksize(&attr, stackSize);
#ifdef TCL_THREAD_STACK_MIN
} else {
/*
diff --git a/unix/tclXtTest.c b/unix/tclXtTest.c
index 09b16c5..09f454c 100644
--- a/unix/tclXtTest.c
+++ b/unix/tclXtTest.c
@@ -117,7 +117,7 @@ TesteventloopCmd(
framePtr = oldFramePtr;
} else {
Tcl_AppendResult(interp, "bad option \"", Tcl_GetString(objv[1]),
- "\": must be done or wait", NULL);
+ "\": must be done or wait", (void *)NULL);
return TCL_ERROR;
}
return TCL_OK;