Tcl Source Code

Check-in [c8daa1083d]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:merge trunk; stamp release date.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | rc2 | core-8-6-2-rc
Files: files | file ages | folders
SHA1: c8daa1083d4bf69899ab5f0e03aa9b4ebf308513
User & Date: dgp 2014-08-22 17:28:46
Context
2014-08-22
21:52
Bump to TclOO 1.0.2 check-in: 05ecf401c7 user: dgp tags: core-8-6-2-rc
17:28
merge trunk; stamp release date. check-in: c8daa1083d user: dgp tags: rc2, core-8-6-2-rc
13:48
merge 8.5; fix notifier mask bug and Tcl_Read performance regression check-in: 8cf00e79f5 user: dgp tags: trunk
2014-08-20
14:28
Additions to changes. check-in: a81f224e2b user: dgp tags: core-8-6-2-rc
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to changes.

8445
8446
8447
8448
8449
8450
8451
8452
=> platform 1.0.13

2014-08-12 tzdata updated to Olson's tzdata2014f (kenny)

2014-08-17 (bug fix)[7d52e11] [info class subclasses oo::object] should
include ::oo::class (fellows)

--- Released 8.6.2, August, 2014 --- http://core.tcl.tk/tcl/ for details 






|
8445
8446
8447
8448
8449
8450
8451
8452
=> platform 1.0.13

2014-08-12 tzdata updated to Olson's tzdata2014f (kenny)

2014-08-17 (bug fix)[7d52e11] [info class subclasses oo::object] should
include ::oo::class (fellows)

--- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details 

Changes to generic/tclIO.c.

8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
....
9509
9510
9511
9512
9513
9514
9515
9516
9517

9518
9519

9520

9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537

9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
	/*
	 * If this channel handler is interested in any of the events that
	 * have occurred on the channel, invoke its procedure.
	 */

	if ((chPtr->mask & mask) != 0) {
	    nh.nextHandlerPtr = chPtr->nextPtr;
	    chPtr->proc(chPtr->clientData, mask);
	    chPtr = nh.nextHandlerPtr;
	} else {
	    chPtr = chPtr->nextPtr;
	}
    }

    /*
................................................................................
	 */

	if (statePtr->flags & CHANNEL_EOF
		&& (bufPtr == NULL || IsBufferEmpty(bufPtr))) {
	    break;
	}

	/* If there is no full buffer, attempt to create and/or fill one. */


	while (!IsBufferFull(bufPtr)) {
	    int code;



	moreData:
	    code = GetInput(chanPtr);
	    bufPtr = statePtr->inQueueHead;

	    assert (bufPtr != NULL);

	    if (statePtr->flags & (CHANNEL_EOF|CHANNEL_BLOCKED)) {
		/* Further reads cannot do any more */
		break;
	    }
	    
	    if (code) {
		/* Read error */
		UpdateInterest(chanPtr);
		TclChannelRelease((Tcl_Channel)chanPtr);
		return -1;
	    }


	    assert (IsBufferFull(bufPtr));
	}

	assert (bufPtr != NULL);

	bytesRead = BytesLeft(bufPtr);
	bytesWritten = bytesToRead;

	TranslateInputEOL(statePtr, p, RemovePoint(bufPtr),
		&bytesWritten, &bytesRead);
	bufPtr->nextRemoved += bytesRead;
	p += bytesWritten;






|







 







|
<
>
|
<
>

>

|
<
<
<
<
<
<
<
<
<
<





>
|
<
|
<
<
<







8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
....
9509
9510
9511
9512
9513
9514
9515
9516

9517
9518

9519
9520
9521
9522
9523










9524
9525
9526
9527
9528
9529
9530

9531



9532
9533
9534
9535
9536
9537
9538
	/*
	 * If this channel handler is interested in any of the events that
	 * have occurred on the channel, invoke its procedure.
	 */

	if ((chPtr->mask & mask) != 0) {
	    nh.nextHandlerPtr = chPtr->nextPtr;
	    chPtr->proc(chPtr->clientData, chPtr->mask & mask);
	    chPtr = nh.nextHandlerPtr;
	} else {
	    chPtr = chPtr->nextPtr;
	}
    }

    /*
................................................................................
	 */

	if (statePtr->flags & CHANNEL_EOF
		&& (bufPtr == NULL || IsBufferEmpty(bufPtr))) {
	    break;
	}

	/*

	 * If there is not enough data in the buffers to possibly
	 * complete the read, then go get more.

	 */

	if (bufPtr == NULL || BytesLeft(bufPtr) < bytesToRead) {
	moreData:
	    if (GetInput(chanPtr)) {










		/* Read error */
		UpdateInterest(chanPtr);
		TclChannelRelease((Tcl_Channel)chanPtr);
		return -1;
	    }
	    bufPtr = statePtr->inQueueHead;
	}





	bytesRead = BytesLeft(bufPtr);
	bytesWritten = bytesToRead;

	TranslateInputEOL(statePtr, p, RemovePoint(bufPtr),
		&bytesWritten, &bytesRead);
	bufPtr->nextRemoved += bytesRead;
	p += bytesWritten;

Changes to tests/io.test.

4946
4947
4948
4949
4950
4951
4952


4953

4954
4955
4956
4957
4958
4959
4960
    lappend x [fblocked $f1]
    close $f1
    set x
} {{} 1 hello 0 {} 1}
test io-36.1.1 {Tcl_InputBlocked on nonblocking binary pipe} {stdio openpipe} {
    set f1 [open "|[list [interpreter]]" r+]
    chan configure $f1 -encoding binary -translation lf -eofchar {}


    puts $f1 {puts hello_from_pipe}

    flush $f1
    gets $f1
    fconfigure $f1 -blocking off -buffering full
    puts $f1 {puts hello}
    set x ""
    lappend x [gets $f1]
    lappend x [fblocked $f1]






>
>
|
>







4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
    lappend x [fblocked $f1]
    close $f1
    set x
} {{} 1 hello 0 {} 1}
test io-36.1.1 {Tcl_InputBlocked on nonblocking binary pipe} {stdio openpipe} {
    set f1 [open "|[list [interpreter]]" r+]
    chan configure $f1 -encoding binary -translation lf -eofchar {}
    puts $f1 {
	chan configure stdout -encoding binary -translation lf -eofchar {}
	puts hello_from_pipe
    }
    flush $f1
    gets $f1
    fconfigure $f1 -blocking off -buffering full
    puts $f1 {puts hello}
    set x ""
    lappend x [gets $f1]
    lappend x [fblocked $f1]

Changes to win/tclsh.exe.manifest.in.

26
27
28
29
30
31
32


















33
	    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
	    <!-- Windows 7 -->
	    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
	    <!-- Windows Vista -->
	    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
	</application>
    </compatibility>


















</assembly>






>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
	    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
	    <!-- Windows 7 -->
	    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
	    <!-- Windows Vista -->
	    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
	</application>
    </compatibility>
    <asmv3:application>
	<asmv3:windowsSettings
		xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
	    <dpiAware>true</dpiAware>
	</asmv3:windowsSettings>
    </asmv3:application>
    <dependency>
	<dependentAssembly>
	    <assemblyIdentity
		    type="win32"
		    name="Microsoft.Windows.Common-Controls"
		    version="6.0.0.0"
		    processorArchitecture="@[email protected]"
		    publicKeyToken="6595b64144ccf1df"
		    language="*"
		/>
	</dependentAssembly>
    </dependency>
</assembly>