summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-02-28 12:06:07 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-02-28 12:06:07 (GMT)
commit52e543c5691a60c3ef802fecf1ae08e7efcf19b7 (patch)
tree1f02ba454f2725719d80901eef77168723e980f7 /generic/tclIO.c
parentf9ddbba3d621449f2cb1b2a4d0a94927b48391eb (diff)
parent24a416ad3867b536dd613454c6f07df349f797f2 (diff)
downloadtcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.zip
tcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.tar.gz
tcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.tar.bz2
Implement TIP #557: C++ support for Tcl
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 78a0f2d..f8bd819 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -348,7 +348,7 @@ static const Tcl_ObjType chanObjType = {
do { \
const Tcl_ObjIntRep *irPtr; \
irPtr = TclFetchIntRep((objPtr), &chanObjType); \
- (resPtr) = irPtr ? irPtr->twoPtrValue.ptr1 : NULL; \
+ (resPtr) = irPtr ? (ResolvedChanName *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
#define BUSY_STATE(st, fl) \
@@ -857,7 +857,7 @@ Tcl_CreateCloseHandler(
ChannelState *statePtr = ((Channel *) chan)->state;
CloseCallback *cbPtr;
- cbPtr = ckalloc(sizeof(CloseCallback));
+ cbPtr = (CloseCallback *)ckalloc(sizeof(CloseCallback));
cbPtr->proc = proc;
cbPtr->clientData = clientData;
@@ -936,9 +936,9 @@ GetChannelTable(
Tcl_HashTable *hTblPtr; /* Hash table of channels. */
Tcl_Channel stdinChan, stdoutChan, stderrChan;
- hTblPtr = Tcl_GetAssocData(interp, "tclIO", NULL);
+ hTblPtr = (Tcl_HashTable *)Tcl_GetAssocData(interp, "tclIO", NULL);
if (hTblPtr == NULL) {
- hTblPtr = ckalloc(sizeof(Tcl_HashTable));
+ hTblPtr = (Tcl_HashTable *)ckalloc(sizeof(Tcl_HashTable));
Tcl_InitHashTable(hTblPtr, TCL_STRING_KEYS);
Tcl_SetAssocData(interp, "tclIO",
(Tcl_InterpDeleteProc *) DeleteChannelTable, hTblPtr);
@@ -1006,10 +1006,10 @@ DeleteChannelTable(
* refcount reaches zero.
*/
- hTblPtr = clientData;
+ hTblPtr = (Tcl_HashTable *)clientData;
for (hPtr = Tcl_FirstHashEntry(hTblPtr, &hSearch); hPtr != NULL;
hPtr = Tcl_FirstHashEntry(hTblPtr, &hSearch)) {
- chanPtr = Tcl_GetHashValue(hPtr);
+ chanPtr = (Channel *)Tcl_GetHashValue(hPtr);
statePtr = chanPtr->state;
/*
@@ -1376,7 +1376,7 @@ DetachChannel(
statePtr = chanPtr->state;
if (interp != NULL) {
- hTblPtr = Tcl_GetAssocData(interp, "tclIO", NULL);
+ hTblPtr = (Tcl_HashTable *)Tcl_GetAssocData(interp, "tclIO", NULL);
if (hTblPtr == NULL) {
return TCL_ERROR;
}
@@ -1479,7 +1479,7 @@ Tcl_GetChannel(
* compensate where necessary to retrieve the topmost channel again.
*/
- chanPtr = Tcl_GetHashValue(hPtr);
+ chanPtr = (Channel *)Tcl_GetHashValue(hPtr);
chanPtr = chanPtr->state->bottomChanPtr;
if (modePtr != NULL) {
*modePtr = chanPtr->state->flags & (TCL_READABLE|TCL_WRITABLE);
@@ -1523,6 +1523,7 @@ TclGetChannelFromObj(
ChannelState *statePtr;
ResolvedChanName *resPtr = NULL;
Tcl_Channel chan;
+ (void)flags;
if (interp == NULL) {
return TCL_ERROR;
@@ -1646,8 +1647,8 @@ Tcl_CreateChannel(
* assignments to 0/NULL below.
*/
- chanPtr = ckalloc(sizeof(Channel));
- statePtr = ckalloc(sizeof(ChannelState));
+ chanPtr = (Channel *)ckalloc(sizeof(Channel));
+ statePtr = (ChannelState *)ckalloc(sizeof(ChannelState));
chanPtr->state = statePtr;
chanPtr->instanceData = instanceData;
@@ -1666,10 +1667,10 @@ Tcl_CreateChannel(
* later.
*/
- tmp = ckalloc((len < 7) ? 7 : len);
+ tmp = (char *)ckalloc((len < 7) ? 7 : len);
strcpy(tmp, chanName);
} else {
- tmp = ckalloc(7);
+ tmp = (char *)ckalloc(7);
tmp[0] = '\0';
}
statePtr->channelName = tmp;
@@ -1942,7 +1943,7 @@ Tcl_StackChannel(
statePtr->inQueueTail = NULL;
}
- chanPtr = ckalloc(sizeof(Channel));
+ chanPtr = (Channel *)ckalloc(sizeof(Channel));
/*
* Save some of the current state into the new structure, reinitialize the
@@ -2471,7 +2472,7 @@ AllocChannelBuffer(
int n;
n = length + CHANNELBUFFER_HEADER_SIZE + BUFFER_PADDING + BUFFER_PADDING;
- bufPtr = ckalloc(n);
+ bufPtr = (ChannelBuffer *)ckalloc(n);
bufPtr->nextAdded = BUFFER_PADDING;
bufPtr->nextRemoved = BUFFER_PADDING;
bufPtr->bufLength = length + BUFFER_PADDING;
@@ -4298,7 +4299,7 @@ Write(
if (GotFlag(statePtr, CHANNEL_LINEBUFFERED)
|| (statePtr->outputTranslation != TCL_TRANSLATE_LF)) {
- nextNewLine = memchr(src, '\n', srcLen);
+ nextNewLine = (char *)memchr(src, '\n', srcLen);
}
while (srcLen + saved + endEncoding > 0) {
@@ -4396,7 +4397,7 @@ Write(
total += dstWrote;
dst += dstWrote;
dstLen -= dstWrote;
- nextNewLine = memchr(src, '\n', srcLen);
+ nextNewLine = (char *)memchr(src, '\n', srcLen);
needNlFlush = 1;
}
@@ -5198,6 +5199,7 @@ FreeBinaryEncoding(
ClientData dummy) /* Not used */
{
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ (void)dummy;
if (tsdPtr->binaryEncoding != NULL) {
Tcl_FreeEncoding(tsdPtr->binaryEncoding);
@@ -5206,7 +5208,7 @@ FreeBinaryEncoding(
}
static Tcl_Encoding
-GetBinaryEncoding()
+GetBinaryEncoding(void)
{
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
@@ -6503,7 +6505,7 @@ TranslateInputEOL(
* created by the presence of the input eof char.
*/
- if ((eof = memchr(srcStart, inEofChar, srcLen))) {
+ if ((eof = (const char *)memchr(srcStart, inEofChar, srcLen))) {
srcLen = eof - srcStart;
}
}
@@ -6518,7 +6520,7 @@ TranslateInputEOL(
char *dst = dstStart;
char *dstEnd = dstStart + srcLen;
- while ((dst = memchr(dst, '\r', dstEnd - dst))) {
+ while ((dst = (char *)memchr(dst, '\r', dstEnd - dst))) {
*dst++ = '\n';
}
}
@@ -6529,7 +6531,7 @@ TranslateInputEOL(
char *dst = dstStart;
int lesser = (dstLen < srcLen) ? dstLen : srcLen;
- while ((crFound = memchr(src, '\r', lesser))) {
+ while ((crFound = (const char *)memchr(src, '\r', lesser))) {
int numBytes = crFound - src;
memmove(dst, src, numBytes);
@@ -6569,7 +6571,7 @@ TranslateInputEOL(
ResetFlag(statePtr, INPUT_SAW_CR);
}
lesser = (dstLen < srcLen) ? dstLen : srcLen;
- while ((crFound = memchr(src, '\r', lesser))) {
+ while ((crFound = (const char *)memchr(src, '\r', lesser))) {
int numBytes = crFound - src;
memmove(dst, src, numBytes);
@@ -8541,7 +8543,7 @@ static void
ChannelTimerProc(
ClientData clientData)
{
- Channel *chanPtr = clientData;
+ Channel *chanPtr = (Channel *)clientData;
ChannelState *statePtr = chanPtr->state;
/* State info for channel */
@@ -8629,7 +8631,7 @@ Tcl_CreateChannelHandler(
}
}
if (chPtr == NULL) {
- chPtr = ckalloc(sizeof(ChannelHandler));
+ chPtr = (ChannelHandler *)ckalloc(sizeof(ChannelHandler));
chPtr->mask = 0;
chPtr->proc = proc;
chPtr->clientData = clientData;
@@ -8841,7 +8843,7 @@ CreateScriptRecord(
makeCH = (esPtr == NULL);
if (makeCH) {
- esPtr = ckalloc(sizeof(EventScriptRecord));
+ esPtr = (EventScriptRecord *)ckalloc(sizeof(EventScriptRecord));
}
/*
@@ -8897,7 +8899,7 @@ TclChannelEventScriptInvoker(
* in. */
int result; /* Result of call to eval script. */
- esPtr = clientData;
+ esPtr = (EventScriptRecord *)clientData;
chanPtr = esPtr->chanPtr;
mask = esPtr->mask;
interp = esPtr->interp;
@@ -8952,7 +8954,7 @@ TclChannelEventScriptInvoker(
/* ARGSUSED */
int
Tcl_FileEventObjCmd(
- ClientData clientData, /* Not used. */
+ ClientData dummy, /* Not used. */
Tcl_Interp *interp, /* Interpreter in which the channel for which
* to create the handler is found. */
int objc, /* Number of arguments. */
@@ -8966,6 +8968,7 @@ Tcl_FileEventObjCmd(
int mask;
static const char *const modeOptions[] = {"readable", "writable", NULL};
static const int maskArray[] = {TCL_READABLE, TCL_WRITABLE};
+ (void)dummy;
if ((objc != 3) && (objc != 4)) {
Tcl_WrongNumArgs(interp, 1, objv, "channelId event ?script?");
@@ -9051,7 +9054,7 @@ ZeroTransferTimerProc(
/* calling CopyData with mask==0 still implies immediate invocation of the
* -command callback, and completion of the fcopy.
*/
- CopyData(clientData, 0);
+ CopyData((CopyState *)clientData, 0);
}
/*
@@ -9171,7 +9174,7 @@ TclCopyChannel(
* completed.
*/
- csPtr = ckalloc(sizeof(CopyState) + !moveBytes * inStatePtr->bufSize);
+ csPtr = (CopyState *)ckalloc(sizeof(CopyState) + !moveBytes * inStatePtr->bufSize);
csPtr->bufSize = !moveBytes * inStatePtr->bufSize;
csPtr->readPtr = inPtr;
csPtr->writePtr = outPtr;
@@ -10029,7 +10032,7 @@ CopyEventProc(
ClientData clientData,
int mask)
{
- (void) CopyData(clientData, mask);
+ (void) CopyData((CopyState *)clientData, mask);
}
/*
@@ -10362,7 +10365,7 @@ Tcl_IsChannelRegistered(
chanPtr = ((Channel *) chan)->state->bottomChanPtr;
statePtr = chanPtr->state;
- hTblPtr = Tcl_GetAssocData(interp, "tclIO", NULL);
+ hTblPtr = (Tcl_HashTable *)Tcl_GetAssocData(interp, "tclIO", NULL);
if (hTblPtr == NULL) {
return 0;
}
@@ -11036,7 +11039,7 @@ FixLevelCode(
lcn += 2;
}
- lvn = ckalloc(lcn * sizeof(Tcl_Obj *));
+ lvn = (Tcl_Obj **)ckalloc(lcn * sizeof(Tcl_Obj *));
/*
* New level/code information is spliced into the first occurence of