Artifact
7b4158cbb9cd52c5fe87709182967e1b73549db2:
Attachment "3151675.patch" to
ticket [3151675fff]
added by
nijtmans
2011-01-06 17:46:54.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
0010: 63 6c 49 4f 43 6d 64 2e 63 0a 3d 3d 3d 3d 3d 3d clIOCmd.c.======
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
0060: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
0070: 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 /tcl/tcl/generic
0080: 2f 74 63 6c 49 4f 43 6d 64 2e 63 2c 76 0a 72 65 /tclIOCmd.c,v.re
0090: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
00a0: 6e 20 31 2e 37 31 0a 64 69 66 66 20 2d 75 20 2d n 1.71.diff -u -
00b0: 72 31 2e 37 31 20 74 63 6c 49 4f 43 6d 64 2e 63 r1.71 tclIOCmd.c
00c0: 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c .--- generic/tcl
00d0: 49 4f 43 6d 64 2e 63 09 31 30 20 44 65 63 20 32 IOCmd.c.10 Dec 2
00e0: 30 31 30 20 31 33 3a 30 38 3a 35 34 20 2d 30 30 010 13:08:54 -00
00f0: 30 30 09 31 2e 37 31 0a 2b 2b 2b 20 67 65 6e 65 00.1.71.+++ gene
0100: 72 69 63 2f 74 63 6c 49 4f 43 6d 64 2e 63 09 36 ric/tclIOCmd.c.6
0110: 20 4a 61 6e 20 32 30 31 31 20 31 30 3a 34 31 3a Jan 2011 10:41:
0120: 32 38 20 2d 30 30 30 30 0a 40 40 20 2d 31 33 35 28 -0000.@@ -135
0130: 2c 33 32 20 2b 31 33 35 2c 32 33 20 40 40 0a 20 ,32 +135,23 @@.
0140: 09 62 72 65 61 6b 3b 0a 20 0a 20 20 20 20 20 63 .break;. . c
0150: 61 73 65 20 34 3a 20 2f 2a 20 5b 70 75 74 73 20 ase 4: /* [puts
0160: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 63 68 61 6e -nonewline $chan
0170: 20 24 78 5d 20 6f 72 20 5b 70 75 74 73 20 24 63 $x] or [puts $c
0180: 68 61 6e 20 24 78 20 6e 6f 6e 65 77 6c 69 6e 65 han $x nonewline
0190: 5d 20 2a 2f 0a 2b 09 6e 65 77 6c 69 6e 65 20 3d ] */.+.newline =
01a0: 20 30 3b 0a 20 09 69 66 20 28 73 74 72 63 6d 70 0;. .if (strcmp
01b0: 28 54 63 6c 47 65 74 53 74 72 69 6e 67 28 6f 62 (TclGetString(ob
01c0: 6a 76 5b 31 5d 29 2c 20 22 2d 6e 6f 6e 65 77 6c jv[1]), "-nonewl
01d0: 69 6e 65 22 29 20 3d 3d 20 30 29 20 7b 0a 20 09 ine") == 0) {. .
01e0: 20 20 20 20 63 68 61 6e 4f 62 6a 50 74 72 20 3d chanObjPtr =
01f0: 20 6f 62 6a 76 5b 32 5d 3b 0a 20 09 20 20 20 20 objv[2];. .
0200: 73 74 72 69 6e 67 20 3d 20 6f 62 6a 76 5b 33 5d string = objv[3]
0210: 3b 0a 2d 09 7d 20 65 6c 73 65 20 7b 0a 2b 09 20 ;.-.} else {.+.
0220: 20 20 20 62 72 65 61 6b 3b 0a 2b 09 7d 20 65 6c break;.+.} el
0230: 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 54 63 se if (strcmp(Tc
0240: 6c 47 65 74 53 74 72 69 6e 67 28 6f 62 6a 76 5b lGetString(objv[
0250: 32 5d 29 2c 20 22 6e 6f 6e 65 77 6c 69 6e 65 22 2]), "nonewline"
0260: 29 20 3d 3d 20 30 29 20 7b 0a 20 09 20 20 20 20 ) == 0) {. .
0270: 2f 2a 0a 20 09 20 20 20 20 20 2a 20 54 68 65 20 /*. . * The
0280: 63 6f 64 65 20 62 65 6c 6f 77 20 70 72 6f 76 69 code below provi
0290: 64 65 73 20 62 61 63 6b 77 61 72 64 73 20 63 6f des backwards co
02a0: 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 mpatibility with
02b0: 20 61 6e 20 6f 6c 64 0a 20 09 20 20 20 20 20 2a an old. . *
02c0: 20 66 6f 72 6d 20 6f 66 20 74 68 65 20 63 6f 6d form of the com
02d0: 6d 61 6e 64 20 74 68 61 74 20 69 73 20 6e 6f 20 mand that is no
02e0: 6c 6f 6e 67 65 72 20 72 65 63 6f 6d 6d 65 6e 64 longer recommend
02f0: 65 64 20 6f 72 0a 20 09 20 20 20 20 20 2a 20 64 ed or. . * d
0300: 6f 63 75 6d 65 6e 74 65 64 2e 0a 20 09 20 20 20 ocumented.. .
0310: 20 20 2a 2f 0a 20 0a 2d 09 20 20 20 20 63 6f 6e */. .-. con
0320: 73 74 20 63 68 61 72 20 2a 61 72 67 3b 0a 2d 09 st char *arg;.-.
0330: 20 20 20 20 69 6e 74 20 6c 65 6e 67 74 68 3b 0a int length;.
0340: 2d 0a 2d 09 20 20 20 20 61 72 67 20 3d 20 54 63 -.-. arg = Tc
0350: 6c 47 65 74 53 74 72 69 6e 67 46 72 6f 6d 4f 62 lGetStringFromOb
0360: 6a 28 6f 62 6a 76 5b 33 5d 2c 20 26 6c 65 6e 67 j(objv[3], &leng
0370: 74 68 29 3b 0a 2d 09 20 20 20 20 69 66 20 28 28 th);.-. if ((
0380: 6c 65 6e 67 74 68 20 21 3d 20 39 29 0a 2d 09 09 length != 9).-..
0390: 20 20 20 20 7c 7c 20 28 73 74 72 6e 63 6d 70 28 || (strncmp(
03a0: 61 72 67 2c 20 22 6e 6f 6e 65 77 6c 69 6e 65 22 arg, "nonewline"
03b0: 2c 20 28 73 69 7a 65 5f 74 29 20 6c 65 6e 67 74 , (size_t) lengt
03c0: 68 29 20 21 3d 20 30 29 29 20 7b 0a 2d 09 09 54 h) != 0)) {.-..T
03d0: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 cl_AppendResult(
03e0: 69 6e 74 65 72 70 2c 20 22 62 61 64 20 61 72 67 interp, "bad arg
03f0: 75 6d 65 6e 74 20 5c 22 22 2c 20 61 72 67 2c 0a ument \"", arg,.
0400: 2d 09 09 09 22 5c 22 3a 20 73 68 6f 75 6c 64 20 -..."\": should
0410: 62 65 20 5c 22 6e 6f 6e 65 77 6c 69 6e 65 5c 22 be \"nonewline\"
0420: 22 2c 20 4e 55 4c 4c 29 3b 0a 2d 09 09 72 65 74 ", NULL);.-..ret
0430: 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2d urn TCL_ERROR;.-
0440: 09 20 20 20 20 7d 0a 20 09 20 20 20 20 63 68 61 . }. . cha
0450: 6e 4f 62 6a 50 74 72 20 3d 20 6f 62 6a 76 5b 31 nObjPtr = objv[1
0460: 5d 3b 0a 20 09 20 20 20 20 73 74 72 69 6e 67 20 ];. . string
0470: 3d 20 6f 62 6a 76 5b 32 5d 3b 0a 2b 09 20 20 20 = objv[2];.+.
0480: 20 62 72 65 61 6b 3b 0a 20 09 7d 0a 2d 09 6e 65 break;. .}.-.ne
0490: 77 6c 69 6e 65 20 3d 20 30 3b 0a 2d 09 62 72 65 wline = 0;.-.bre
04a0: 61 6b 3b 0a 2d 0a 2b 09 2f 2a 20 46 61 6c 6c 20 ak;.-.+./* Fall
04b0: 74 68 72 6f 75 67 68 20 2a 2f 0a 20 20 20 20 20 through */.
04c0: 64 65 66 61 75 6c 74 3a 0a 20 09 2f 2a 20 5b 70 default:. ./* [p
04d0: 75 74 73 5d 20 6f 72 20 5b 70 75 74 73 20 73 6f uts] or [puts so
04e0: 6d 65 20 62 61 64 20 6e 75 6d 62 65 72 20 6f 66 me bad number of
04f0: 20 61 72 67 75 6d 65 6e 74 73 2e 2e 2e 5d 20 2a arguments...] *
0500: 2f 0a 20 09 54 63 6c 5f 57 72 6f 6e 67 4e 75 6d /. .Tcl_WrongNum
0510: 41 72 67 73 28 69 6e 74 65 72 70 2c 20 31 2c 20 Args(interp, 1,
0520: 6f 62 6a 76 2c 20 22 3f 2d 6e 6f 6e 65 77 6c 69 objv, "?-nonewli
0530: 6e 65 3f 20 3f 63 68 61 6e 6e 65 6c 49 64 3f 20 ne? ?channelId?
0540: 73 74 72 69 6e 67 22 29 3b 0a 40 40 20 2d 34 33 string");.@@ -43
0550: 34 2c 31 39 20 2b 34 32 35 2c 31 32 20 40 40 0a 4,19 +425,12 @@.
0560: 20 0a 20 20 20 20 20 74 6f 52 65 61 64 20 3d 20 . toRead =
0570: 2d 31 3b 0a 20 20 20 20 20 69 66 20 28 69 20 3c -1;. if (i <
0580: 20 6f 62 6a 63 29 20 7b 0a 2d 09 63 6f 6e 73 74 objc) {.-.const
0590: 20 63 68 61 72 20 2a 61 72 67 3b 0a 2d 0a 2d 09 char *arg;.-.-.
05a0: 61 72 67 20 3d 20 54 63 6c 47 65 74 53 74 72 69 arg = TclGetStri
05b0: 6e 67 28 6f 62 6a 76 5b 69 5d 29 3b 0a 2d 09 69 ng(objv[i]);.-.i
05c0: 66 20 28 69 73 64 69 67 69 74 28 55 43 48 41 52 f (isdigit(UCHAR
05d0: 28 61 72 67 5b 30 5d 29 29 29 20 7b 20 2f 2a 20 (arg[0]))) { /*
05e0: 49 4e 54 4c 3a 20 64 69 67 69 74 20 2a 2f 0a 2d INTL: digit */.-
05f0: 09 20 20 20 20 69 66 20 28 54 63 6c 47 65 74 49 . if (TclGetI
0600: 6e 74 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 ntFromObj(interp
0610: 2c 20 6f 62 6a 76 5b 69 5d 2c 20 26 74 6f 52 65 , objv[i], &toRe
0620: 61 64 29 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b ad) != TCL_OK) {
0630: 0a 2d 09 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 .-..return TCL_E
0640: 52 52 4f 52 3b 0a 2d 09 20 20 20 20 7d 0a 2d 09 RROR;.-. }.-.
0650: 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d } else if (strcm
0660: 70 28 61 72 67 2c 20 22 6e 6f 6e 65 77 6c 69 6e p(arg, "nonewlin
0670: 65 22 29 20 3d 3d 20 30 29 20 7b 0a 2b 09 69 66 e") == 0) {.+.if
0680: 20 28 73 74 72 63 6d 70 28 54 63 6c 47 65 74 53 (strcmp(TclGetS
0690: 74 72 69 6e 67 28 6f 62 6a 76 5b 69 5d 29 2c 20 tring(objv[i]),
06a0: 22 6e 6f 6e 65 77 6c 69 6e 65 22 29 20 3d 3d 20 "nonewline") ==
06b0: 30 29 20 7b 0a 20 09 20 20 20 20 6e 65 77 6c 69 0) {. . newli
06c0: 6e 65 20 3d 20 31 3b 0a 2d 09 7d 20 65 6c 73 65 ne = 1;.-.} else
06d0: 20 7b 0a 2d 09 20 20 20 20 54 63 6c 5f 41 70 70 {.-. Tcl_App
06e0: 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 endResult(interp
06f0: 2c 20 22 62 61 64 20 61 72 67 75 6d 65 6e 74 20 , "bad argument
0700: 5c 22 22 2c 20 61 72 67 2c 0a 2d 09 09 20 20 20 \"", arg,.-..
0710: 20 22 5c 22 3a 20 73 68 6f 75 6c 64 20 62 65 20 "\": should be
0720: 5c 22 6e 6f 6e 65 77 6c 69 6e 65 5c 22 22 2c 20 \"nonewline\"",
0730: 4e 55 4c 4c 29 3b 0a 2b 09 7d 20 65 6c 73 65 20 NULL);.+.} else
0740: 69 66 20 28 54 63 6c 47 65 74 49 6e 74 46 72 6f if (TclGetIntFro
0750: 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 20 6f 62 6a mObj(interp, obj
0760: 76 5b 69 5d 2c 20 26 74 6f 52 65 61 64 29 20 21 v[i], &toRead) !
0770: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 20 09 20 20 = TCL_OK) {. .
0780: 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 return TCL_ERR
0790: 4f 52 3b 0a 2b 09 7d 20 65 6c 73 65 20 69 66 20 OR;.+.} else if
07a0: 28 74 6f 52 65 61 64 20 3c 20 30 29 20 7b 0a 2b (toRead < 0) {.+
07b0: 09 20 20 20 20 67 6f 74 6f 20 61 72 67 65 72 72 . goto argerr
07c0: 6f 72 3b 0a 20 09 7d 0a 20 20 20 20 20 7d 0a 20 or;. .}. }.
07d0: 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 63 68 .Index: tests/ch
07e0: 61 6e 69 6f 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d anio.test.======
07f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0800: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0810: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0820: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
0830: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
0840: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 63 /tcl/tcl/tests/c
0850: 68 61 6e 69 6f 2e 74 65 73 74 2c 76 0a 72 65 74 hanio.test,v.ret
0860: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
0870: 20 31 2e 32 36 0a 64 69 66 66 20 2d 75 20 2d 72 1.26.diff -u -r
0880: 31 2e 32 36 20 63 68 61 6e 69 6f 2e 74 65 73 74 1.26 chanio.test
0890: 0a 2d 2d 2d 20 74 65 73 74 73 2f 63 68 61 6e 69 .--- tests/chani
08a0: 6f 2e 74 65 73 74 09 32 34 20 4e 6f 76 20 32 30 o.test.24 Nov 20
08b0: 31 30 20 31 31 3a 35 36 3a 35 37 20 2d 30 30 30 10 11:56:57 -000
08c0: 30 09 31 2e 32 36 0a 2b 2b 2b 20 74 65 73 74 73 0.1.26.+++ tests
08d0: 2f 63 68 61 6e 69 6f 2e 74 65 73 74 09 36 20 4a /chanio.test.6 J
08e0: 61 6e 20 32 30 31 31 20 31 30 3a 34 31 3a 32 39 an 2011 10:41:29
08f0: 20 2d 30 30 30 30 0a 40 40 20 2d 33 39 33 32 2c -0000.@@ -3932,
0900: 37 20 2b 33 39 33 32 2c 37 20 40 40 0a 20 20 20 7 +3932,7 @@.
0910: 20 20 63 68 61 6e 20 72 65 61 64 20 24 66 20 2d chan read $f -
0920: 31 0a 20 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 1. } -returnCode
0930: 73 20 65 72 72 6f 72 20 2d 63 6c 65 61 6e 75 70 s error -cleanup
0940: 20 7b 0a 20 20 20 20 20 63 68 61 6e 20 63 6c 6f {. chan clo
0950: 73 65 20 24 66 0a 2d 7d 20 2d 72 65 73 75 6c 74 se $f.-} -result
0960: 20 7b 62 61 64 20 61 72 67 75 6d 65 6e 74 20 22 {bad argument "
0970: 2d 31 22 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 -1": should be "
0980: 6e 6f 6e 65 77 6c 69 6e 65 22 7d 0a 2b 7d 20 2d nonewline"}.+} -
0990: 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 result {wrong #
09a0: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 args: should be
09b0: 22 63 68 61 6e 20 72 65 61 64 20 63 68 61 6e 6e "chan read chann
09c0: 65 6c 49 64 20 3f 6e 75 6d 43 68 61 72 73 3f 22 elId ?numChars?"
09d0: 20 6f 72 20 22 63 68 61 6e 20 72 65 61 64 20 3f or "chan read ?
09e0: 2d 6e 6f 6e 65 77 6c 69 6e 65 3f 20 63 68 61 6e -nonewline? chan
09f0: 6e 65 6c 49 64 22 7d 0a 20 74 65 73 74 20 63 68 nelId"}. test ch
0a00: 61 6e 2d 69 6f 2d 33 32 2e 34 20 7b 54 63 6c 5f an-io-32.4 {Tcl_
0a10: 52 65 61 64 2c 20 70 6f 73 69 74 69 76 65 20 62 Read, positive b
0a20: 79 74 65 20 63 6f 75 6e 74 7d 20 2d 62 6f 64 79 yte count} -body
0a30: 20 7b 0a 20 20 20 20 20 73 65 74 20 66 20 5b 6f {. set f [o
0a40: 70 65 6e 20 24 70 61 74 68 28 6c 6f 6e 67 66 69 pen $path(longfi
0a50: 6c 65 29 20 72 5d 0a 20 20 20 20 20 73 74 72 69 le) r]. stri
0a60: 6e 67 20 6c 65 6e 67 74 68 20 5b 63 68 61 6e 20 ng length [chan
0a70: 72 65 61 64 20 24 66 20 31 30 32 34 5d 0a 49 6e read $f 1024].In
0a80: 64 65 78 3a 20 74 65 73 74 73 2f 69 6f 2e 74 65 dex: tests/io.te
0a90: 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d st.=============
0aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ad0: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a ======.RCS file:
0ae0: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 /cvsroot/tcl/tc
0af0: 6c 2f 74 65 73 74 73 2f 69 6f 2e 74 65 73 74 2c l/tests/io.test,
0b00: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 v.retrieving rev
0b10: 69 73 69 6f 6e 20 31 2e 39 37 0a 64 69 66 66 20 ision 1.97.diff
0b20: 2d 75 20 2d 72 31 2e 39 37 20 69 6f 2e 74 65 73 -u -r1.97 io.tes
0b30: 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 69 6f 2e 74 t.--- tests/io.t
0b40: 65 73 74 09 31 30 20 44 65 63 20 32 30 31 30 20 est.10 Dec 2010
0b50: 31 37 3a 30 30 3a 31 32 20 2d 30 30 30 30 09 31 17:00:12 -0000.1
0b60: 2e 39 37 0a 2b 2b 2b 20 74 65 73 74 73 2f 69 6f .97.+++ tests/io
0b70: 2e 74 65 73 74 09 36 20 4a 61 6e 20 32 30 31 31 .test.6 Jan 2011
0b80: 20 31 30 3a 34 31 3a 32 39 20 2d 30 30 30 30 0a 10:41:29 -0000.
0b90: 40 40 20 2d 33 38 35 38 2c 37 20 2b 33 38 35 38 @@ -3858,7 +3858
0ba0: 2c 37 20 40 40 0a 20 20 20 20 20 73 65 74 20 6c ,7 @@. set l
0bb0: 20 5b 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 72 [list [catch {r
0bc0: 65 61 64 20 24 66 20 2d 31 7d 20 6d 73 67 5d 20 ead $f -1} msg]
0bd0: 24 6d 73 67 5d 0a 20 20 20 20 20 63 6c 6f 73 65 $msg]. close
0be0: 20 24 66 0a 20 20 20 20 20 73 65 74 20 6c 0a 2d $f. set l.-
0bf0: 7d 20 7b 31 20 7b 62 61 64 20 61 72 67 75 6d 65 } {1 {bad argume
0c00: 6e 74 20 22 2d 31 22 3a 20 73 68 6f 75 6c 64 20 nt "-1": should
0c10: 62 65 20 22 6e 6f 6e 65 77 6c 69 6e 65 22 7d 7d be "nonewline"}}
0c20: 0a 2b 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 .+} {1 {wrong #
0c30: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 args: should be
0c40: 22 72 65 61 64 20 63 68 61 6e 6e 65 6c 49 64 20 "read channelId
0c50: 3f 6e 75 6d 43 68 61 72 73 3f 22 20 6f 72 20 22 ?numChars?" or "
0c60: 72 65 61 64 20 3f 2d 6e 6f 6e 65 77 6c 69 6e 65 read ?-nonewline
0c70: 3f 20 63 68 61 6e 6e 65 6c 49 64 22 7d 7d 0a 20 ? channelId"}}.
0c80: 74 65 73 74 20 69 6f 2d 33 32 2e 34 20 7b 54 63 test io-32.4 {Tc
0c90: 6c 5f 52 65 61 64 2c 20 70 6f 73 69 74 69 76 65 l_Read, positive
0ca0: 20 62 79 74 65 20 63 6f 75 6e 74 7d 20 7b 0a 20 byte count} {.
0cb0: 20 20 20 20 73 65 74 20 66 20 5b 6f 70 65 6e 20 set f [open
0cc0: 24 70 61 74 68 28 6c 6f 6e 67 66 69 6c 65 29 20 $path(longfile)
0cd0: 72 5d 0a 20 20 20 20 20 73 65 74 20 78 20 5b 72 r]. set x [r
0ce0: 65 61 64 20 24 66 20 31 30 32 34 5d 0a 49 6e 64 ead $f 1024].Ind
0cf0: 65 78 3a 20 74 65 73 74 73 2f 69 6f 43 6d 64 2e ex: tests/ioCmd.
0d00: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d test.===========
0d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d40: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
0d50: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
0d60: 74 63 6c 2f 74 65 73 74 73 2f 69 6f 43 6d 64 2e tcl/tests/ioCmd.
0d70: 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e test,v.retrievin
0d80: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 35 33 0a g revision 1.53.
0d90: 64 69 66 66 20 2d 75 20 2d 72 31 2e 35 33 20 69 diff -u -r1.53 i
0da0: 6f 43 6d 64 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 oCmd.test.--- te
0db0: 73 74 73 2f 69 6f 43 6d 64 2e 74 65 73 74 09 33 sts/ioCmd.test.3
0dc0: 20 41 75 67 20 32 30 31 30 20 32 30 3a 30 36 3a Aug 2010 20:06:
0dd0: 34 37 20 2d 30 30 30 30 09 31 2e 35 33 0a 2b 2b 47 -0000.1.53.++
0de0: 2b 20 74 65 73 74 73 2f 69 6f 43 6d 64 2e 74 65 + tests/ioCmd.te
0df0: 73 74 09 36 20 4a 61 6e 20 32 30 31 31 20 31 30 st.6 Jan 2011 10
0e00: 3a 34 31 3a 32 39 20 2d 30 30 30 30 0a 40 40 20 :41:29 -0000.@@
0e10: 2d 33 35 2c 37 20 2b 33 35 2c 37 20 40 40 0a 20 -35,7 +35,7 @@.
0e20: 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 } {1 {wrong # ar
0e30: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 70 gs: should be "p
0e40: 75 74 73 20 3f 2d 6e 6f 6e 65 77 6c 69 6e 65 3f uts ?-nonewline?
0e50: 20 3f 63 68 61 6e 6e 65 6c 49 64 3f 20 73 74 72 ?channelId? str
0e60: 69 6e 67 22 7d 7d 0a 20 74 65 73 74 20 69 6f 63 ing"}}. test ioc
0e70: 6d 64 2d 31 2e 33 20 7b 70 75 74 73 20 63 6f 6d md-1.3 {puts com
0e80: 6d 61 6e 64 7d 20 7b 0a 20 20 20 20 6c 69 73 74 mand} {. list
0e90: 20 5b 63 61 74 63 68 20 7b 70 75 74 73 20 66 72 [catch {puts fr
0ea0: 6f 62 6f 7a 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 oboz -nonewline
0eb0: 6b 61 62 6c 6f 6f 69 65 7d 20 6d 73 67 5d 20 24 kablooie} msg] $
0ec0: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 61 msg.-} {1 {bad a
0ed0: 72 67 75 6d 65 6e 74 20 22 6b 61 62 6c 6f 6f 69 rgument "kablooi
0ee0: 65 22 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 6e e": should be "n
0ef0: 6f 6e 65 77 6c 69 6e 65 22 7d 7d 0a 2b 7d 20 7b onewline"}}.+} {
0f00: 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 1 {wrong # args:
0f10: 20 73 68 6f 75 6c 64 20 62 65 20 22 70 75 74 73 should be "puts
0f20: 20 3f 2d 6e 6f 6e 65 77 6c 69 6e 65 3f 20 3f 63 ?-nonewline? ?c
0f30: 68 61 6e 6e 65 6c 49 64 3f 20 73 74 72 69 6e 67 hannelId? string
0f40: 22 7d 7d 0a 20 74 65 73 74 20 69 6f 63 6d 64 2d "}}. test iocmd-
0f50: 31 2e 34 20 7b 70 75 74 73 20 63 6f 6d 6d 61 6e 1.4 {puts comman
0f60: 64 7d 20 7b 0a 20 20 20 20 6c 69 73 74 20 5b 63 d} {. list [c
0f70: 61 74 63 68 20 7b 70 75 74 73 20 66 72 6f 62 6f atch {puts frobo
0f80: 7a 20 68 65 6c 6c 6f 7d 20 6d 73 67 5d 20 24 6d z hello} msg] $m
0f90: 73 67 0a 20 7d 20 7b 31 20 7b 63 61 6e 20 6e 6f sg. } {1 {can no
0fa0: 74 20 66 69 6e 64 20 63 68 61 6e 6e 65 6c 20 6e t find channel n
0fb0: 61 6d 65 64 20 22 66 72 6f 62 6f 7a 22 7d 7d 0a amed "froboz"}}.
0fc0: 40 40 20 2d 31 33 38 2c 37 20 2b 31 33 38 2c 37 @@ -138,7 +138,7
0fd0: 20 40 40 0a 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 @@. } {1 {wrong
0fe0: 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 # args: should
0ff0: 62 65 20 22 72 65 61 64 20 63 68 61 6e 6e 65 6c be "read channel
1000: 49 64 20 3f 6e 75 6d 43 68 61 72 73 3f 22 20 6f Id ?numChars?" o
1010: 72 20 22 72 65 61 64 20 3f 2d 6e 6f 6e 65 77 6c r "read ?-nonewl
1020: 69 6e 65 3f 20 63 68 61 6e 6e 65 6c 49 64 22 7d ine? channelId"}
1030: 20 7b 54 43 4c 20 57 52 4f 4e 47 41 52 47 53 7d {TCL WRONGARGS}
1040: 7d 0a 20 74 65 73 74 20 69 6f 63 6d 64 2d 34 2e }. test iocmd-4.
1050: 39 20 7b 72 65 61 64 20 63 6f 6d 6d 61 6e 64 7d 9 {read command}
1060: 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 {. list [ca
1070: 74 63 68 20 7b 72 65 61 64 20 73 74 64 69 6e 20 tch {read stdin
1080: 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d 73 67 20 24 foo} msg] $msg $
1090: 3a 3a 65 72 72 6f 72 43 6f 64 65 0a 2d 7d 20 7b ::errorCode.-} {
10a0: 31 20 7b 62 61 64 20 61 72 67 75 6d 65 6e 74 20 1 {bad argument
10b0: 22 66 6f 6f 22 3a 20 73 68 6f 75 6c 64 20 62 65 "foo": should be
10c0: 20 22 6e 6f 6e 65 77 6c 69 6e 65 22 7d 20 4e 4f "nonewline"} NO
10d0: 4e 45 7d 0a 2b 7d 20 7b 31 20 7b 65 78 70 65 63 NE}.+} {1 {expec
10e0: 74 65 64 20 69 6e 74 65 67 65 72 20 62 75 74 20 ted integer but
10f0: 67 6f 74 20 22 66 6f 6f 22 7d 20 7b 54 43 4c 20 got "foo"} {TCL
1100: 56 41 4c 55 45 20 4e 55 4d 42 45 52 7d 7d 0a 20 VALUE NUMBER}}.
1110: 74 65 73 74 20 69 6f 63 6d 64 2d 34 2e 31 30 20 test iocmd-4.10
1120: 7b 72 65 61 64 20 63 6f 6d 6d 61 6e 64 7d 20 7b {read command} {
1130: 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 . list [catc
1140: 68 20 7b 72 65 61 64 20 66 69 6c 65 31 30 37 7d h {read file107}
1150: 20 6d 73 67 5d 20 24 6d 73 67 20 24 3a 3a 65 72 msg] $msg $::er
1160: 72 6f 72 43 6f 64 65 0a 20 7d 20 7b 31 20 7b 63 rorCode. } {1 {c
1170: 61 6e 20 6e 6f 74 20 66 69 6e 64 20 63 68 61 6e an not find chan
1180: 6e 65 6c 20 6e 61 6d 65 64 20 22 66 69 6c 65 31 nel named "file1
1190: 30 37 22 7d 20 7b 54 43 4c 20 4c 4f 4f 4b 55 50 07"} {TCL LOOKUP
11a0: 20 43 48 41 4e 4e 45 4c 20 66 69 6c 65 31 30 37 CHANNEL file107
11b0: 7d 7d 0a }}.