Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | merge 8.5 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-12-rc |
Files: | files | file ages | folders |
SHA1: |
3d64e70c04fb78124640955b744b2329 |
User & Date: | dgp 2012-07-16 19:35:25 |
Context
2012-07-17
| ||
16:25 | merge 8.5 check-in: 20a4fde8d8 user: dgp tags: core-8-5-12-rc | |
2012-07-16
| ||
19:35 | merge 8.5 check-in: 3d64e70c04 user: dgp tags: core-8-5-12-rc | |
08:05 | merge-mark check-in: c5b1b41e6a user: jan.nijtmans tags: core-8-5-branch | |
2012-07-10
| ||
18:22 | merge 8.5 check-in: b4a2c6e933 user: dgp tags: core-8-5-12-rc | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-07-10 Donal K. Fellows <[email protected]> * win/tclWinSock.c (InitializeHostName): Corrected logic that extracted the name of the computer from the gethostname call so that it would use the name on success, not failure. Also ensured that the buffer size is exactly that recommended by Microsoft. | > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 2012-07-11 Jan Nijtmans <[email protected]> * win/tclWinReg.c: [Bug #3362446]: registry keys command fails with 8.5/8.6. Follow Microsofts example better in order to prevent problems when using HKEY_PERFORMANCE_DATA. 2012-07-10 Jan Nijtmans <[email protected]> * unix/tclUnixNotfy.c: [Bug 3541646] Don't panic on triggerPipe overrun 2012-07-10 Donal K. Fellows <[email protected]> * win/tclWinSock.c (InitializeHostName): Corrected logic that extracted the name of the computer from the gethostname call so that it would use the name on success, not failure. Also ensured that the buffer size is exactly that recommended by Microsoft. |
︙ | ︙ |
Changes to unix/tclUnixNotfy.c.
︙ | ︙ | |||
336 337 338 339 340 341 342 | * and check for EOF in the notifier thread because if a background * child process was created with exec, select() would not register * the EOF on the pipe until the child processes had terminated. [Bug: * 4139] [Bug: 1222872] */ if (write(triggerPipe, "q", 1) != 1) { | | | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | * and check for EOF in the notifier thread because if a background * child process was created with exec, select() would not register * the EOF on the pipe until the child processes had terminated. [Bug: * 4139] [Bug: 1222872] */ if (write(triggerPipe, "q", 1) != 1) { Tcl_Panic("Tcl_FinalizeNotifier: unable to write q to triggerPipe"); } close(triggerPipe); while(triggerPipe >= 0) { Tcl_ConditionWait(¬ifierCV, ¬ifierMutex, NULL); } result = Tcl_JoinThread(notifierThread, NULL); |
︙ | ︙ | |||
875 876 877 878 879 880 881 | if (waitingListPtr) { waitingListPtr->prevPtr = tsdPtr; } tsdPtr->prevPtr = 0; waitingListPtr = tsdPtr; tsdPtr->onList = 1; | | | | 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 | if (waitingListPtr) { waitingListPtr->prevPtr = tsdPtr; } tsdPtr->prevPtr = 0; waitingListPtr = tsdPtr; tsdPtr->onList = 1; if ((write(triggerPipe, "", 1) == -1) && (errno != EAGAIN)) { Tcl_Panic("Tcl_WaitForEvent: unable to write to triggerPipe"); } } FD_ZERO(&(tsdPtr->readyMasks.readable)); FD_ZERO(&(tsdPtr->readyMasks.writable)); FD_ZERO(&(tsdPtr->readyMasks.exceptional)); |
︙ | ︙ | |||
938 939 940 941 942 943 944 | waitingListPtr = tsdPtr->nextPtr; } if (tsdPtr->nextPtr) { tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr; } tsdPtr->nextPtr = tsdPtr->prevPtr = NULL; tsdPtr->onList = 0; | | | | 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 | waitingListPtr = tsdPtr->nextPtr; } if (tsdPtr->nextPtr) { tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr; } tsdPtr->nextPtr = tsdPtr->prevPtr = NULL; tsdPtr->onList = 0; if ((write(triggerPipe, "", 1) == -1) && (errno != EAGAIN)) { Tcl_Panic("Tcl_WaitForEvent: unable to write to triggerPipe"); } } #else tsdPtr->readyMasks = tsdPtr->checkMasks; numFound = select(tsdPtr->numFdBits, &(tsdPtr->readyMasks.readable), &(tsdPtr->readyMasks.writable), &(tsdPtr->readyMasks.exceptional), |
︙ | ︙ |
Changes to win/tclWinPipe.c.
︙ | ︙ | |||
1703 1704 1705 1706 1707 1708 1709 | /* * For backward compatibility with previous versions of Tcl, we use * "file%d" as the base name for pipes even though it would be more * natural to use "pipe%d". Use the pointer to keep the channel names * unique, in case channels share handles (stdin/stdout). */ | | | 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 | /* * For backward compatibility with previous versions of Tcl, we use * "file%d" as the base name for pipes even though it would be more * natural to use "pipe%d". Use the pointer to keep the channel names * unique, in case channels share handles (stdin/stdout). */ sprintf(channelName, "file%" TCL_I_MODIFIER "x", (size_t)infoPtr); infoPtr->channel = Tcl_CreateChannel(&pipeChannelType, channelName, (ClientData) infoPtr, infoPtr->validMask); /* * Pipes have AUTO translation mode on Windows and ^Z eof char, which * means that a ^Z will be appended to them at close. This is needed for * Windows programs that expect a ^Z at EOF. |
︙ | ︙ |
Changes to win/tclWinReg.c.
︙ | ︙ | |||
790 791 792 793 794 795 796 | while (result == ERROR_MORE_DATA) { /* * The Windows docs say that in this error case, we just need to * expand our buffer and request more data. Required for * HKEY_PERFORMANCE_DATA */ | | | 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 | while (result == ERROR_MORE_DATA) { /* * The Windows docs say that in this error case, we just need to * expand our buffer and request more data. Required for * HKEY_PERFORMANCE_DATA */ length = Tcl_DStringLength(&data) * (regWinProcs->useWide ? 1 : 2); Tcl_DStringSetLength(&data, (int) length * (regWinProcs->useWide ? 2 : 1)); result = (*regWinProcs->regQueryValueExProc)(key, (char *) nativeValue, NULL, &type, (BYTE *) Tcl_DStringValue(&data), &length); } Tcl_DStringFree(&buf); RegCloseKey(key); if (result != ERROR_SUCCESS) { |
︙ | ︙ |