Attachment "tip137.patch" to
ticket [742683ffff]
added by
dgp
2003-09-06 04:29:30.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 46 69 6c 65 53 Index: doc/FileS
0010: 79 73 74 65 6d 2e 33 0a 3d 3d 3d 3d 3d 3d 3d 3d ystem.3.========
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 0a 52 43 53 20 ===========.RCS
0060: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
0070: 63 6c 2f 74 63 6c 2f 64 6f 63 2f 46 69 6c 65 53 cl/tcl/doc/FileS
0080: 79 73 74 65 6d 2e 33 2c 76 0a 72 65 74 72 69 65 ystem.3,v.retrie
0090: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
00a0: 33 34 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 33 34.diff -u -r1.3
00b0: 34 20 46 69 6c 65 53 79 73 74 65 6d 2e 33 0a 2d 4 FileSystem.3.-
00c0: 2d 2d 20 64 6f 63 2f 46 69 6c 65 53 79 73 74 65 -- doc/FileSyste
00d0: 6d 2e 33 09 32 38 20 4a 75 6c 20 32 30 30 33 20 m.3.28 Jul 2003
00e0: 31 32 3a 31 36 3a 30 32 20 2d 30 30 30 30 09 31 12:16:02 -0000.1
00f0: 2e 33 34 0a 2b 2b 2b 20 64 6f 63 2f 46 69 6c 65 .34.+++ doc/File
0100: 53 79 73 74 65 6d 2e 33 09 35 20 53 65 70 20 32 System.3.5 Sep 2
0110: 30 30 33 20 32 31 3a 32 33 3a 31 37 20 2d 30 30 003 21:23:17 -00
0120: 30 30 0a 40 40 20 2d 32 38 2c 31 30 20 2b 32 38 00.@@ -28,10 +28
0130: 2c 31 30 20 40 40 0a 20 5c 66 42 54 63 6c 5f 46 ,10 @@. \fBTcl_F
0140: 53 4d 6f 75 6e 74 73 43 68 61 6e 67 65 64 5c 66 SMountsChanged\f
0150: 52 28 5c 66 49 66 73 50 74 72 5c 66 52 29 0a 20 R(\fIfsPtr\fR).
0160: 2e 73 70 0a 20 54 63 6c 5f 46 69 6c 65 73 79 73 .sp. Tcl_Filesys
0170: 74 65 6d 2a 0a 2d 5c 66 42 54 63 6c 5f 46 53 47 tem*.-\fBTcl_FSG
0180: 65 74 46 69 6c 65 53 79 73 74 65 6d 46 6f 72 50 etFileSystemForP
0190: 61 74 68 5c 66 52 28 5c 66 49 70 61 74 68 4f 62 ath\fR(\fIpathOb
01a0: 6a 50 74 72 5c 66 52 29 0a 2b 5c 66 42 54 63 6c jPtr\fR).+\fBTcl
01b0: 5f 46 53 47 65 74 46 69 6c 65 53 79 73 74 65 6d _FSGetFileSystem
01c0: 46 6f 72 50 61 74 68 5c 66 52 28 5c 66 49 70 61 ForPath\fR(\fIpa
01d0: 74 68 50 74 72 5c 66 52 29 0a 20 2e 73 70 0a 20 thPtr\fR). .sp.
01e0: 54 63 6c 5f 50 61 74 68 54 79 70 65 0a 2d 5c 66 Tcl_PathType.-\f
01f0: 42 54 63 6c 5f 46 53 47 65 74 50 61 74 68 54 79 BTcl_FSGetPathTy
0200: 70 65 5c 66 52 28 5c 66 49 70 61 74 68 4f 62 6a pe\fR(\fIpathObj
0210: 50 74 72 5c 66 52 29 0a 2b 5c 66 42 54 63 6c 5f Ptr\fR).+\fBTcl_
0220: 46 53 47 65 74 50 61 74 68 54 79 70 65 5c 66 52 FSGetPathType\fR
0230: 28 5c 66 49 70 61 74 68 50 74 72 5c 66 52 29 0a (\fIpathPtr\fR).
0240: 20 2e 73 70 0a 20 69 6e 74 0a 20 5c 66 42 54 63 .sp. int. \fBTc
0250: 6c 5f 46 53 43 6f 70 79 46 69 6c 65 5c 66 52 28 l_FSCopyFile\fR(
0260: 5c 66 49 73 72 63 50 61 74 68 50 74 72 2c 20 64 \fIsrcPathPtr, d
0270: 65 73 74 50 61 74 68 50 74 72 5c 66 52 29 0a 40 estPathPtr\fR).@
0280: 40 20 2d 35 34 2c 36 20 2b 35 34 2c 31 31 20 40 @ -54,6 +54,11 @
0290: 40 0a 20 54 63 6c 5f 4f 62 6a 2a 0a 20 5c 66 42 @. Tcl_Obj*. \fB
02a0: 54 63 6c 5f 46 53 4c 69 73 74 56 6f 6c 75 6d 65 Tcl_FSListVolume
02b0: 73 5c 66 52 28 5c 66 49 76 6f 69 64 5c 66 52 29 s\fR(\fIvoid\fR)
02c0: 0a 20 2e 73 70 0a 2b 2e 56 53 20 38 2e 35 0a 2b . .sp.+.VS 8.5.+
02d0: 69 6e 74 0a 2b 5c 66 42 54 63 6c 5f 46 53 45 76 int.+\fBTcl_FSEv
02e0: 61 6c 46 69 6c 65 45 78 5c 66 52 28 5c 66 49 69 alFileEx\fR(\fIi
02f0: 6e 74 65 72 70 2c 20 70 61 74 68 50 74 72 2c 20 nterp, pathPtr,
0300: 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 5c 66 52 29 encodingName\fR)
0310: 0a 2b 2e 56 45 20 38 2e 35 0a 2b 2e 73 70 0a 20 .+.VE 8.5.+.sp.
0320: 69 6e 74 0a 20 5c 66 42 54 63 6c 5f 46 53 45 76 int. \fBTcl_FSEv
0330: 61 6c 46 69 6c 65 5c 66 52 28 5c 66 49 69 6e 74 alFile\fR(\fIint
0340: 65 72 70 2c 20 70 61 74 68 50 74 72 5c 66 52 29 erp, pathPtr\fR)
0350: 0a 20 2e 73 70 0a 40 40 20 2d 31 33 38 2c 37 20 . .sp.@@ -138,7
0360: 2b 31 34 33 2c 37 20 40 40 0a 20 54 63 6c 5f 53 +143,7 @@. Tcl_S
0370: 74 61 74 42 75 66 2a 0a 20 5c 66 42 54 63 6c 5f tatBuf*. \fBTcl_
0380: 41 6c 6c 6f 63 53 74 61 74 42 75 66 5c 66 52 28 AllocStatBuf\fR(
0390: 29 0a 20 2e 53 48 20 41 52 47 55 4d 45 4e 54 53 ). .SH ARGUMENTS
03a0: 0a 2d 2e 41 53 20 54 63 6c 5f 46 69 6c 65 73 79 .-.AS Tcl_Filesy
03b0: 73 74 65 6d 20 2a 66 73 50 74 72 20 69 6e 0a 2b stem *fsPtr in.+
03c0: 2e 41 53 20 22 43 4f 4e 53 54 20 63 68 61 72 22 .AS "CONST char"
03d0: 20 2a 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 20 69 *encodingName i
03e0: 6e 0a 20 2e 41 50 20 54 63 6c 5f 46 69 6c 65 73 n. .AP Tcl_Files
03f0: 79 73 74 65 6d 20 2a 66 73 50 74 72 20 69 6e 0a ystem *fsPtr in.
0400: 20 50 6f 69 6e 74 73 20 74 6f 20 61 20 73 74 72 Points to a str
0410: 75 63 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e ucture containin
0420: 67 20 74 68 65 20 61 64 64 72 65 73 73 65 73 20 g the addresses
0430: 6f 66 20 70 72 6f 63 65 64 75 72 65 73 20 74 68 of procedures th
0440: 61 74 0a 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 at. can be calle
0450: 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 d to perform the
0460: 20 76 61 72 69 6f 75 73 20 66 69 6c 65 73 79 73 various filesys
0470: 74 65 6d 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a tem operations..
0480: 40 40 20 2d 31 35 32 2c 36 20 2b 31 35 37 2c 39 @@ -152,6 +157,9
0490: 20 40 40 0a 20 2e 41 50 20 54 63 6c 5f 4f 62 6a @@. .AP Tcl_Obj
04a0: 20 2a 64 65 73 74 50 61 74 68 50 74 72 20 69 6e *destPathPtr in
04b0: 0a 20 41 73 20 66 6f 72 20 5c 66 42 70 61 74 68 . As for \fBpath
04c0: 50 74 72 5c 66 52 2c 20 62 75 74 20 75 73 65 64 Ptr\fR, but used
04d0: 20 66 6f 72 20 74 68 65 20 64 65 73 74 69 6e 61 for the destina
04e0: 74 69 6f 6e 20 66 69 6c 65 6e 61 6d 65 20 66 6f tion filename fo
04f0: 72 20 61 20 63 6f 70 79 20 6f 72 0a 20 72 65 6e r a copy or. ren
0500: 61 6d 65 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 2b ame operation..+
0510: 2e 41 50 20 22 43 4f 4e 53 54 20 63 68 61 72 22 .AP "CONST char"
0520: 20 2a 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 20 69 *encodingName i
0530: 6e 0a 2b 54 68 65 20 65 6e 63 6f 64 69 6e 67 20 n.+The encoding
0540: 6f 66 20 74 68 65 20 64 61 74 61 20 73 74 6f 72 of the data stor
0550: 65 64 20 69 6e 20 74 68 65 0a 2b 66 69 6c 65 20 ed in the.+file
0560: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 5c 66 identified by \f
0570: 42 70 61 74 68 50 74 72 5c 66 52 20 61 6e 64 20 BpathPtr\fR and
0580: 74 6f 20 62 65 20 65 76 61 6c 75 74 65 64 2e 0a to be evaluted..
0590: 20 2e 41 50 20 22 43 4f 4e 53 54 20 63 68 61 72 .AP "CONST char
05a0: 22 20 2a 70 61 74 74 65 72 6e 20 69 6e 0a 20 4f " *pattern in. O
05b0: 6e 6c 79 20 66 69 6c 65 73 20 6f 72 20 64 69 72 nly files or dir
05c0: 65 63 74 6f 72 69 65 73 20 6d 61 74 63 68 69 6e ectories matchin
05d0: 67 20 74 68 69 73 20 70 61 74 74 65 72 6e 20 77 g this pattern w
05e0: 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 ill be returned
05f0: 62 79 0a 20 5c 66 42 54 63 6c 5f 46 53 4d 61 74 by. \fBTcl_FSMat
0600: 63 68 49 6e 44 69 72 65 63 74 6f 72 79 5c 66 52 chInDirectory\fR
0610: 2e 0a 40 40 20 2d 33 31 34 2c 31 35 20 2b 33 32 ..@@ -314,15 +32
0620: 32 2c 32 33 20 40 40 0a 20 61 63 63 75 6d 75 6c 2,23 @@. accumul
0630: 61 74 65 73 20 74 68 65 20 72 65 74 75 72 6e 20 ates the return
0640: 76 61 6c 75 65 73 20 69 6e 20 61 20 6c 69 73 74 values in a list
0650: 20 77 68 69 63 68 20 69 73 20 72 65 74 75 72 6e which is return
0660: 65 64 20 74 6f 20 74 68 65 0a 20 63 61 6c 6c 65 ed to the. calle
0670: 72 20 28 77 69 74 68 20 61 20 72 65 66 43 6f 75 r (with a refCou
0680: 6e 74 20 6f 66 20 30 29 2e 0a 20 2e 50 50 0a 2d nt of 0).. .PP.-
0690: 5c 66 42 54 63 6c 5f 46 53 45 76 61 6c 46 69 6c \fBTcl_FSEvalFil
06a0: 65 5c 66 52 20 72 65 61 64 73 20 74 68 65 20 66 e\fR reads the f
06b0: 69 6c 65 20 67 69 76 65 6e 20 62 79 20 5c 66 49 ile given by \fI
06c0: 70 61 74 68 50 74 72 5c 66 52 20 61 6e 64 20 65 pathPtr\fR and e
06d0: 76 61 6c 75 61 74 65 73 0a 2b 2e 56 53 20 38 2e valuates.+.VS 8.
06e0: 35 0a 2b 5c 66 42 54 63 6c 5f 46 53 45 76 61 6c 5.+\fBTcl_FSEval
06f0: 46 69 6c 65 45 78 5c 66 52 20 72 65 61 64 73 20 FileEx\fR reads
0700: 74 68 65 20 66 69 6c 65 20 67 69 76 65 6e 20 62 the file given b
0710: 79 20 5c 66 49 70 61 74 68 50 74 72 5c 66 52 20 y \fIpathPtr\fR
0720: 75 73 69 6e 67 0a 2b 74 68 65 20 65 6e 63 6f 64 using.+the encod
0730: 69 6e 67 20 69 64 65 6e 74 69 66 69 65 64 20 62 ing identified b
0740: 79 20 5c 66 42 65 6e 63 6f 64 69 6e 67 4e 61 6d y \fBencodingNam
0750: 65 5c 66 52 20 61 6e 64 20 65 76 61 6c 75 61 74 e\fR and evaluat
0760: 65 73 0a 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 es. its contents
0770: 20 61 73 20 61 20 54 63 6c 20 73 63 72 69 70 74 as a Tcl script
0780: 2e 20 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 . It returns th
0790: 65 20 73 61 6d 65 20 69 6e 66 6f 72 6d 61 74 69 e same informati
07a0: 6f 6e 20 61 73 0a 20 5c 66 42 54 63 6c 5f 45 76 on as. \fBTcl_Ev
07b0: 61 6c 4f 62 6a 45 78 5c 66 52 2e 0a 2b 49 66 20 alObjEx\fR..+If
07c0: 5c 66 42 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 5c \fBencodingName\
07d0: 66 52 20 69 73 20 4e 55 4c 4c 2c 20 74 68 65 20 fR is NULL, the
07e0: 73 79 73 74 65 6d 20 65 6e 63 6f 64 69 6e 67 20 system encoding
07f0: 69 73 20 75 73 65 64 20 66 6f 72 0a 2b 72 65 61 is used for.+rea
0800: 64 69 6e 67 20 74 68 65 20 66 69 6c 65 20 63 6f ding the file co
0810: 6e 74 65 6e 74 73 2e 0a 20 49 66 20 74 68 65 20 ntents.. If the
0820: 66 69 6c 65 20 63 6f 75 6c 64 6e 27 74 20 62 65 file couldn't be
0830: 20 72 65 61 64 20 74 68 65 6e 20 61 20 54 63 6c read then a Tcl
0840: 20 65 72 72 6f 72 20 69 73 20 72 65 74 75 72 6e error is return
0850: 65 64 20 74 6f 20 64 65 73 63 72 69 62 65 0a 20 ed to describe.
0860: 77 68 79 20 74 68 65 20 66 69 6c 65 20 63 6f 75 why the file cou
0870: 6c 64 6e 27 74 20 62 65 20 72 65 61 64 2e 0a 20 ldn't be read..
0880: 54 68 65 20 65 6f 66 63 68 61 72 20 66 6f 72 20 The eofchar for
0890: 66 69 6c 65 73 20 69 73 20 27 5c 5c 33 32 27 20 files is '\\32'
08a0: 28 5e 5a 29 20 66 6f 72 20 61 6c 6c 20 70 6c 61 (^Z) for all pla
08b0: 74 66 6f 72 6d 73 2e 0a 20 49 66 20 79 6f 75 20 tforms.. If you
08c0: 72 65 71 75 69 72 65 20 61 20 60 60 5e 5a 27 27 require a ``^Z''
08d0: 20 69 6e 20 63 6f 64 65 20 66 6f 72 20 73 74 72 in code for str
08e0: 69 6e 67 20 63 6f 6d 70 61 72 69 73 6f 6e 2c 20 ing comparison,
08f0: 79 6f 75 20 63 61 6e 20 75 73 65 0a 20 60 60 5c you can use. ``\
0900: 5c 30 33 32 27 27 20 6f 72 20 60 60 5c 5c 75 30 \032'' or ``\\u0
0910: 30 31 61 27 27 2c 20 77 68 69 63 68 20 77 69 6c 01a'', which wil
0920: 6c 20 62 65 20 73 61 66 65 6c 79 20 73 75 62 73 l be safely subs
0930: 74 69 74 75 74 65 64 20 62 79 20 74 68 65 20 54 tituted by the T
0940: 63 6c 0a 20 69 6e 74 65 72 70 72 65 74 65 72 20 cl. interpreter
0950: 69 6e 74 6f 20 60 60 5e 5a 27 27 2e 0a 2b 5c 66 into ``^Z''..+\f
0960: 42 54 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 5c BTcl_FSEvalFile\
0970: 66 52 20 69 73 20 61 20 73 69 6d 70 6c 65 72 20 fR is a simpler
0980: 76 65 72 73 69 6f 6e 20 6f 66 0a 2b 5c 66 42 54 version of.+\fBT
0990: 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 5c cl_FSEvalFileEx\
09a0: 66 52 20 74 68 61 74 20 61 6c 77 61 79 73 20 75 fR that always u
09b0: 73 65 73 20 74 68 65 20 73 79 73 74 65 6d 20 65 ses the system e
09c0: 6e 63 6f 64 69 6e 67 0a 2b 77 68 65 6e 20 72 65 ncoding.+when re
09d0: 61 64 69 6e 67 20 74 68 65 20 66 69 6c 65 2e 0a ading the file..
09e0: 2b 2e 56 45 20 38 2e 35 0a 20 2e 50 50 0a 20 5c +.VE 8.5. .PP. \
09f0: 66 42 54 63 6c 5f 46 53 4c 6f 61 64 46 69 6c 65 fBTcl_FSLoadFile
0a00: 5c 66 52 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 \fR dynamically
0a10: 6c 6f 61 64 73 20 61 20 62 69 6e 61 72 79 20 63 loads a binary c
0a20: 6f 64 65 20 66 69 6c 65 20 69 6e 74 6f 20 6d 65 ode file into me
0a30: 6d 6f 72 79 20 61 6e 64 0a 20 72 65 74 75 72 6e mory and. return
0a40: 73 20 74 68 65 20 61 64 64 72 65 73 73 65 73 20 s the addresses
0a50: 6f 66 20 74 77 6f 20 70 72 6f 63 65 64 75 72 65 of two procedure
0a60: 73 20 77 69 74 68 69 6e 20 74 68 61 74 20 66 69 s within that fi
0a70: 6c 65 2c 20 69 66 20 74 68 65 79 20 61 72 65 0a le, if they are.
0a80: 49 6e 64 65 78 3a 20 64 6f 63 2f 73 6f 75 72 63 Index: doc/sourc
0a90: 65 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d e.n.============
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 3d 0a 52 43 53 20 66 69 6c 65 =======.RCS file
0ae0: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 : /cvsroot/tcl/t
0af0: 63 6c 2f 64 6f 63 2f 73 6f 75 72 63 65 2e 6e 2c cl/doc/source.n,
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 35 0a 64 69 66 66 20 2d ision 1.5.diff -
0b20: 75 20 2d 72 31 2e 35 20 73 6f 75 72 63 65 2e 6e u -r1.5 source.n
0b30: 0a 2d 2d 2d 20 64 6f 63 2f 73 6f 75 72 63 65 2e .--- doc/source.
0b40: 6e 09 37 20 53 65 70 20 32 30 30 30 20 31 34 3a n.7 Sep 2000 14:
0b50: 32 37 3a 35 31 20 2d 30 30 30 30 09 31 2e 35 0a 27:51 -0000.1.5.
0b60: 2b 2b 2b 20 64 6f 63 2f 73 6f 75 72 63 65 2e 6e +++ doc/source.n
0b70: 09 35 20 53 65 70 20 32 30 30 33 20 32 31 3a 32 .5 Sep 2003 21:2
0b80: 33 3a 31 37 20 2d 30 30 30 30 0a 40 40 20 2d 31 3:17 -0000.@@ -1
0b90: 37 2c 36 20 2b 31 37 2c 31 30 20 40 40 0a 20 2e 7,6 +17,10 @@. .
0ba0: 53 48 20 53 59 4e 4f 50 53 49 53 0a 20 5c 66 42 SH SYNOPSIS. \fB
0bb0: 73 6f 75 72 63 65 20 5c 66 49 66 69 6c 65 4e 61 source \fIfileNa
0bc0: 6d 65 5c 66 52 0a 20 2e 73 70 0a 2b 2e 56 53 20 me\fR. .sp.+.VS
0bd0: 38 2e 35 0a 2b 5c 66 42 73 6f 75 72 63 65 5c 66 8.5.+\fBsource\f
0be0: 52 20 5c 66 42 5c 2d 65 6e 63 6f 64 69 6e 67 20 R \fB\-encoding
0bf0: 5c 66 49 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 20 \fIencodingName
0c00: 66 69 6c 65 4e 61 6d 65 5c 66 52 0a 2b 2e 56 45 fileName\fR.+.VE
0c10: 20 38 2e 35 0a 2b 2e 73 70 0a 20 5c 66 42 73 6f 8.5.+.sp. \fBso
0c20: 75 72 63 65 5c 66 52 20 5c 66 42 5c 2d 72 73 72 urce\fR \fB\-rsr
0c30: 63 20 5c 66 49 72 65 73 6f 75 72 63 65 4e 61 6d c \fIresourceNam
0c40: 65 20 5c 66 52 3f 5c 66 49 66 69 6c 65 4e 61 6d e \fR?\fIfileNam
0c50: 65 5c 66 52 3f 0a 20 2e 73 70 0a 20 5c 66 42 73 e\fR?. .sp. \fBs
0c60: 6f 75 72 63 65 5c 66 52 20 5c 66 42 5c 2d 72 73 ource\fR \fB\-rs
0c70: 72 63 69 64 20 5c 66 49 72 65 73 6f 75 72 63 65 rcid \fIresource
0c80: 49 64 20 5c 66 52 3f 5c 66 49 66 69 6c 65 4e 61 Id \fR?\fIfileNa
0c90: 6d 65 5c 66 52 3f 0a 40 40 20 2d 33 33 2c 37 20 me\fR?.@@ -33,7
0ca0: 2b 33 37 2c 36 20 40 40 0a 20 72 65 6d 61 69 6e +37,6 @@. remain
0cb0: 64 65 72 20 6f 66 20 74 68 65 20 66 69 6c 65 20 der of the file
0cc0: 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 will be skipped
0cd0: 61 6e 64 20 74 68 65 20 5c 66 42 73 6f 75 72 63 and the \fBsourc
0ce0: 65 5c 66 52 20 63 6f 6d 6d 61 6e 64 0a 20 77 69 e\fR command. wi
0cf0: 6c 6c 20 72 65 74 75 72 6e 20 6e 6f 72 6d 61 6c ll return normal
0d00: 6c 79 20 77 69 74 68 20 74 68 65 20 72 65 73 75 ly with the resu
0d10: 6c 74 20 66 72 6f 6d 20 74 68 65 20 5c 66 42 72 lt from the \fBr
0d20: 65 74 75 72 6e 5c 66 52 20 63 6f 6d 6d 61 6e 64 eturn\fR command
0d30: 2e 0a 20 2e 50 50 0a 2d 2e 56 53 20 38 2e 34 0a .. .PP.-.VS 8.4.
0d40: 20 54 68 65 20 65 6e 64 2d 6f 66 2d 66 69 6c 65 The end-of-file
0d50: 20 63 68 61 72 61 63 74 65 72 20 66 6f 72 20 66 character for f
0d60: 69 6c 65 73 20 69 73 20 27 5c 5c 33 32 27 20 28 iles is '\\32' (
0d70: 5e 5a 29 20 66 6f 72 20 61 6c 6c 20 70 6c 61 74 ^Z) for all plat
0d80: 66 6f 72 6d 73 2e 0a 20 54 68 65 20 73 6f 75 72 forms.. The sour
0d90: 63 65 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 ce command will
0da0: 72 65 61 64 20 66 69 6c 65 73 20 75 70 20 74 6f read files up to
0db0: 20 74 68 69 73 20 63 68 61 72 61 63 74 65 72 2e this character.
0dc0: 20 20 54 68 69 73 0a 20 72 65 73 74 72 69 63 74 This. restrict
0dd0: 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 ion does not exi
0de0: 73 74 20 66 6f 72 20 74 68 65 20 5c 66 42 72 65 st for the \fBre
0df0: 61 64 5c 66 52 20 6f 72 20 5c 66 42 67 65 74 73 ad\fR or \fBgets
0e00: 5c 66 52 20 63 6f 6d 6d 61 6e 64 73 2c 0a 40 40 \fR commands,.@@
0e10: 20 2d 34 31 2c 37 20 2b 34 34 2c 31 32 20 40 40 -41,7 +44,12 @@
0e20: 0a 20 49 66 20 79 6f 75 20 72 65 71 75 69 72 65 . If you require
0e30: 20 61 20 60 60 5e 5a 27 27 20 69 6e 20 63 6f 64 a ``^Z'' in cod
0e40: 65 20 66 6f 72 20 73 74 72 69 6e 67 20 63 6f 6d e for string com
0e50: 70 61 72 69 73 6f 6e 2c 20 79 6f 75 20 63 61 6e parison, you can
0e60: 20 75 73 65 0a 20 60 60 5c 5c 30 33 32 27 27 20 use. ``\\032''
0e70: 6f 72 20 60 60 5c 5c 75 30 30 31 61 27 27 2c 20 or ``\\u001a'',
0e80: 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 61 which will be sa
0e90: 66 65 6c 79 20 73 75 62 73 74 69 74 75 74 65 64 fely substituted
0ea0: 20 62 79 20 74 68 65 20 54 63 6c 0a 20 69 6e 74 by the Tcl. int
0eb0: 65 72 70 72 65 74 65 72 20 69 6e 74 6f 20 60 60 erpreter into ``
0ec0: 5e 5a 27 27 2e 0a 2d 2e 56 45 20 38 2e 34 0a 2b ^Z''..-.VE 8.4.+
0ed0: 2e 50 50 0a 2b 2e 56 53 20 38 2e 35 0a 2b 54 68 .PP.+.VS 8.5.+Th
0ee0: 65 20 5c 66 42 2d 65 6e 63 6f 64 69 6e 67 5c 66 e \fB-encoding\f
0ef0: 52 20 6f 70 74 69 6f 6e 20 69 73 20 75 73 65 64 R option is used
0f00: 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 to specify the
0f10: 65 6e 63 6f 64 69 6e 67 20 6f 66 0a 2b 74 68 65 encoding of.+the
0f20: 20 64 61 74 61 20 73 74 6f 72 65 64 20 69 6e 20 data stored in
0f30: 5c 66 49 66 69 6c 65 4e 61 6d 65 5c 66 52 2e 20 \fIfileName\fR.
0f40: 20 57 68 65 6e 20 74 68 65 20 5c 66 42 2d 65 6e When the \fB-en
0f50: 63 6f 64 69 6e 67 5c 66 52 20 6f 70 74 69 6f 6e coding\fR option
0f60: 0a 2b 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 .+is omitted, th
0f70: 65 20 73 79 73 74 65 6d 20 65 6e 63 6f 64 69 6e e system encodin
0f80: 67 20 69 73 20 61 73 73 75 6d 65 64 2e 0a 2b 2e g is assumed..+.
0f90: 56 45 20 38 2e 35 0a 20 2e 50 50 0a 20 54 68 65 VE 8.5. .PP. The
0fa0: 20 5c 66 49 5c 2d 72 73 72 63 5c 66 52 20 61 6e \fI\-rsrc\fR an
0fb0: 64 20 5c 66 49 5c 2d 72 73 72 63 69 64 5c 66 52 d \fI\-rsrcid\fR
0fc0: 20 66 6f 72 6d 73 20 6f 66 20 74 68 69 73 20 63 forms of this c
0fd0: 6f 6d 6d 61 6e 64 20 61 72 65 20 6f 6e 6c 79 0a ommand are only.
0fe0: 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 4d 61 available on Ma
0ff0: 63 69 6e 74 6f 73 68 20 63 6f 6d 70 75 74 65 72 cintosh computer
1000: 73 2e 20 20 54 68 65 73 65 20 76 65 72 73 69 6f s. These versio
1010: 6e 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61 6e ns of the comman
1020: 64 0a 40 40 20 2d 35 32 2c 37 20 2b 36 30 2c 37 d.@@ -52,7 +60,7
1030: 20 40 40 0a 20 73 70 65 63 69 66 79 20 74 68 65 @@. specify the
1040: 20 5c 66 49 66 69 6c 65 4e 61 6d 65 5c 66 52 20 \fIfileName\fR
1050: 77 68 65 72 65 20 74 68 65 20 5c 66 42 54 45 58 where the \fBTEX
1060: 54 5c 66 52 20 72 65 73 6f 75 72 63 65 20 63 61 T\fR resource ca
1070: 6e 20 62 65 20 66 6f 75 6e 64 2e 0a 20 0a 20 2e n be found.. . .
1080: 53 48 20 22 53 45 45 20 41 4c 53 4f 22 0a 2d 66 SH "SEE ALSO".-f
1090: 69 6c 65 28 6e 29 2c 20 63 64 28 6e 29 0a 2b 66 ile(n), cd(n).+f
10a0: 69 6c 65 28 6e 29 2c 20 63 64 28 6e 29 2c 20 65 ile(n), cd(n), e
10b0: 6e 63 6f 64 69 6e 67 28 6e 29 0a 20 0a 20 2e 53 ncoding(n). . .S
10c0: 48 20 4b 45 59 57 4f 52 44 53 0a 20 66 69 6c 65 H KEYWORDS. file
10d0: 2c 20 73 63 72 69 70 74 0a 49 6e 64 65 78 3a 20 , script.Index:
10e0: 64 6f 63 2f 74 63 6c 73 68 2e 31 0a 3d 3d 3d 3d doc/tclsh.1.====
10f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
1130: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
1140: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 74 ot/tcl/tcl/doc/t
1150: 63 6c 73 68 2e 31 2c 76 0a 72 65 74 72 69 65 76 clsh.1,v.retriev
1160: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 38 ing revision 1.8
1170: 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 38 20 74 .diff -u -r1.8 t
1180: 63 6c 73 68 2e 31 0a 2d 2d 2d 20 64 6f 63 2f 74 clsh.1.--- doc/t
1190: 63 6c 73 68 2e 31 09 31 33 20 46 65 62 20 32 30 clsh.1.13 Feb 20
11a0: 30 33 20 32 32 3a 30 33 3a 33 34 20 2d 30 30 30 03 22:03:34 -000
11b0: 30 09 31 2e 38 0a 2b 2b 2b 20 64 6f 63 2f 74 63 0.1.8.+++ doc/tc
11c0: 6c 73 68 2e 31 09 35 20 53 65 70 20 32 30 30 33 lsh.1.5 Sep 2003
11d0: 20 32 31 3a 32 33 3a 31 37 20 2d 30 30 30 30 0a 21:23:17 -0000.
11e0: 40 40 20 2d 31 34 2c 37 20 2b 31 34 2c 37 20 40 @@ -14,7 +14,7 @
11f0: 40 0a 20 2e 53 48 20 4e 41 4d 45 0a 20 74 63 6c @. .SH NAME. tcl
1200: 73 68 20 5c 2d 20 53 69 6d 70 6c 65 20 73 68 65 sh \- Simple she
1210: 6c 6c 20 63 6f 6e 74 61 69 6e 69 6e 67 20 54 63 ll containing Tc
1220: 6c 20 69 6e 74 65 72 70 72 65 74 65 72 0a 20 2e l interpreter. .
1230: 53 48 20 53 59 4e 4f 50 53 49 53 0a 2d 5c 66 42 SH SYNOPSIS.-\fB
1240: 74 63 6c 73 68 5c 66 52 20 3f 5c 66 49 66 69 6c tclsh\fR ?\fIfil
1250: 65 4e 61 6d 65 20 61 72 67 20 61 72 67 20 2e 2e eName arg arg ..
1260: 2e 5c 66 52 3f 0a 2b 5c 66 42 74 63 6c 73 68 5c .\fR?.+\fBtclsh\
1270: 66 52 20 3f 2d 65 6e 63 6f 64 69 6e 67 20 5c 66 fR ?-encoding \f
1280: 49 6e 61 6d 65 5c 66 52 3f 20 3f 5c 66 49 66 69 Iname\fR? ?\fIfi
1290: 6c 65 4e 61 6d 65 20 61 72 67 20 61 72 67 20 2e leName arg arg .
12a0: 2e 2e 5c 66 52 3f 0a 20 2e 42 45 0a 20 0a 20 2e ..\fR?. .BE. . .
12b0: 53 48 20 44 45 53 43 52 49 50 54 49 4f 4e 0a 40 SH DESCRIPTION.@
12c0: 40 20 2d 32 38 2c 31 38 20 2b 32 38 2c 32 31 20 @ -28,18 +28,21
12d0: 40 40 0a 20 72 65 61 63 68 65 73 20 65 6e 64 2d @@. reaches end-
12e0: 6f 66 2d 66 69 6c 65 20 6f 6e 20 69 74 73 20 73 of-file on its s
12f0: 74 61 6e 64 61 72 64 20 69 6e 70 75 74 2e 0a 20 tandard input..
1300: 49 66 20 74 68 65 72 65 20 65 78 69 73 74 73 20 If there exists
1310: 61 20 66 69 6c 65 20 5c 66 42 2e 74 63 6c 73 68 a file \fB.tclsh
1320: 72 63 5c 66 52 20 28 6f 72 20 5c 66 42 74 63 6c rc\fR (or \fBtcl
1330: 73 68 72 63 2e 74 63 6c 5c 66 52 20 6f 6e 0a 20 shrc.tcl\fR on.
1340: 74 68 65 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 the Windows plat
1350: 66 6f 72 6d 73 29 20 69 6e 20 74 68 65 20 68 6f forms) in the ho
1360: 6d 65 20 64 69 72 65 63 74 6f 72 79 20 6f 66 0a me directory of.
1370: 2d 74 68 65 20 75 73 65 72 2c 20 5c 66 42 74 63 -the user, \fBtc
1380: 6c 73 68 5c 66 52 20 65 76 61 6c 75 61 74 65 73 lsh\fR evaluates
1390: 20 74 68 65 20 66 69 6c 65 20 61 73 20 61 20 54 the file as a T
13a0: 63 6c 20 73 63 72 69 70 74 0a 2b 74 68 65 20 75 cl script.+the u
13b0: 73 65 72 2c 20 69 6e 74 65 72 61 63 74 69 76 65 ser, interactive
13c0: 20 5c 66 42 74 63 6c 73 68 5c 66 52 20 65 76 61 \fBtclsh\fR eva
13d0: 6c 75 61 74 65 73 20 74 68 65 20 66 69 6c 65 20 luates the file
13e0: 61 73 20 61 20 54 63 6c 20 73 63 72 69 70 74 0a as a Tcl script.
13f0: 20 6a 75 73 74 20 62 65 66 6f 72 65 20 72 65 61 just before rea
1400: 64 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 63 ding the first c
1410: 6f 6d 6d 61 6e 64 20 66 72 6f 6d 20 73 74 61 6e ommand from stan
1420: 64 61 72 64 20 69 6e 70 75 74 2e 0a 20 0a 20 2e dard input.. . .
1430: 53 48 20 22 53 43 52 49 50 54 20 46 49 4c 45 53 SH "SCRIPT FILES
1440: 22 0a 20 2e 50 50 0a 2d 49 66 20 5c 66 42 74 63 ". .PP.-If \fBtc
1450: 6c 73 68 5c 66 52 20 69 73 20 69 6e 76 6f 6b 65 lsh\fR is invoke
1460: 64 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 73 d with arguments
1470: 20 74 68 65 6e 20 74 68 65 20 66 69 72 73 74 20 then the first
1480: 61 72 67 75 6d 65 6e 74 0a 2d 69 73 20 74 68 65 argument.-is the
1490: 20 6e 61 6d 65 20 6f 66 20 61 20 73 63 72 69 70 name of a scrip
14a0: 74 20 66 69 6c 65 20 61 6e 64 20 61 6e 79 20 61 t file and any a
14b0: 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 dditional argume
14c0: 6e 74 73 0a 2b 2e 56 53 20 38 2e 35 0a 2b 49 66 nts.+.VS 8.5.+If
14d0: 20 5c 66 42 74 63 6c 73 68 5c 66 52 20 69 73 20 \fBtclsh\fR is
14e0: 69 6e 76 6f 6b 65 64 20 77 69 74 68 20 61 72 67 invoked with arg
14f0: 75 6d 65 6e 74 73 20 74 68 65 6e 20 74 68 65 20 uments then the
1500: 66 69 72 73 74 20 66 65 77 20 61 72 67 75 6d 65 first few argume
1510: 6e 74 73 0a 2b 73 70 65 63 69 66 79 20 74 68 65 nts.+specify the
1520: 20 6e 61 6d 65 20 6f 66 20 61 20 73 63 72 69 70 name of a scrip
1530: 74 20 66 69 6c 65 2c 20 61 6e 64 2c 20 6f 70 74 t file, and, opt
1540: 69 6f 6e 61 6c 6c 79 2c 20 74 68 65 20 65 6e 63 ionally, the enc
1550: 6f 64 69 6e 67 20 6f 66 0a 2b 74 68 65 20 74 65 oding of.+the te
1560: 78 74 20 64 61 74 61 20 73 74 6f 72 65 64 20 69 xt data stored i
1570: 6e 20 74 68 61 74 20 73 63 72 69 70 74 20 66 69 n that script fi
1580: 6c 65 2e 20 0a 2b 2e 56 45 20 38 2e 35 0a 2b 41 le. .+.VE 8.5.+A
1590: 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 ny additional ar
15a0: 67 75 6d 65 6e 74 73 0a 20 61 72 65 20 6d 61 64 guments. are mad
15b0: 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 e available to t
15c0: 68 65 20 73 63 72 69 70 74 20 61 73 20 76 61 72 he script as var
15d0: 69 61 62 6c 65 73 20 28 73 65 65 20 62 65 6c 6f iables (see belo
15e0: 77 29 2e 0a 20 49 6e 73 74 65 61 64 20 6f 66 20 w).. Instead of
15f0: 72 65 61 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 reading commands
1600: 20 66 72 6f 6d 20 73 74 61 6e 64 61 72 64 20 69 from standard i
1610: 6e 70 75 74 20 5c 66 42 74 63 6c 73 68 5c 66 52 nput \fBtclsh\fR
1620: 20 77 69 6c 6c 0a 20 72 65 61 64 20 54 63 6c 20 will. read Tcl
1630: 63 6f 6d 6d 61 6e 64 73 20 66 72 6f 6d 20 74 68 commands from th
1640: 65 20 6e 61 6d 65 64 20 66 69 6c 65 3b 20 20 5c e named file; \
1650: 66 42 74 63 6c 73 68 5c 66 52 20 77 69 6c 6c 20 fBtclsh\fR will
1660: 65 78 69 74 0a 20 77 68 65 6e 20 69 74 20 72 65 exit. when it re
1670: 61 63 68 65 73 20 74 68 65 20 65 6e 64 20 6f 66 aches the end of
1680: 20 74 68 65 20 66 69 6c 65 2e 0a 2d 2e 56 53 20 the file..-.VS
1690: 38 2e 34 0a 20 54 68 65 20 65 6e 64 20 6f 66 20 8.4. The end of
16a0: 74 68 65 20 66 69 6c 65 20 6d 61 79 20 62 65 20 the file may be
16b0: 6d 61 72 6b 65 64 20 65 69 74 68 65 72 20 62 79 marked either by
16c0: 20 74 68 65 20 70 68 79 73 69 63 61 6c 20 65 6e the physical en
16d0: 64 20 6f 66 0a 20 74 68 65 20 6d 65 64 69 75 6d d of. the medium
16e0: 2c 20 6f 72 20 62 79 20 74 68 65 20 63 68 61 72 , or by the char
16f0: 61 63 74 65 72 2c 20 27 5c 5c 30 33 32 27 20 28 acter, '\\032' (
1700: 27 5c 5c 75 30 30 31 61 27 2c 20 63 6f 6e 74 72 '\\u001a', contr
1710: 6f 6c 2d 5a 29 2e 0a 20 49 66 20 74 68 69 73 20 ol-Z).. If this
1720: 63 68 61 72 61 63 74 65 72 20 69 73 20 70 72 65 character is pre
1730: 73 65 6e 74 20 69 6e 20 74 68 65 20 66 69 6c 65 sent in the file
1740: 2c 20 74 68 65 20 5c 66 42 74 63 6c 73 68 5c 66 , the \fBtclsh\f
1750: 52 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 40 40 R application.@@
1760: 20 2d 34 37 2c 37 20 2b 35 30 2c 36 20 40 40 0a -47,7 +50,6 @@.
1770: 20 74 68 61 74 20 72 65 71 75 69 72 65 73 20 74 that requires t
1780: 68 69 73 20 63 68 61 72 61 63 74 65 72 20 69 6e his character in
1790: 20 74 68 65 20 66 69 6c 65 20 6d 61 79 20 73 61 the file may sa
17a0: 66 65 6c 79 20 65 6e 63 6f 64 65 20 69 74 20 61 fely encode it a
17b0: 73 0a 20 60 60 5c 5c 30 33 32 27 27 2c 20 60 60 s. ``\\032'', ``
17c0: 5c 5c 78 31 61 27 27 2c 20 6f 72 20 60 60 5c 5c \\x1a'', or ``\\
17d0: 75 30 30 31 61 27 27 3b 20 6f 72 20 6d 61 79 20 u001a''; or may
17e0: 67 65 6e 65 72 61 74 65 20 69 74 20 62 79 20 75 generate it by u
17f0: 73 65 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 0a se of commands .
1800: 20 73 75 63 68 20 61 73 20 5c 66 42 66 6f 72 6d such as \fBform
1810: 61 74 5c 66 52 20 6f 72 20 5c 66 42 62 69 6e 61 at\fR or \fBbina
1820: 72 79 5c 66 52 2e 0a 2d 2e 56 45 0a 20 54 68 65 ry\fR..-.VE. The
1830: 72 65 20 69 73 20 6e 6f 20 61 75 74 6f 6d 61 74 re is no automat
1840: 69 63 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 ic evaluation of
1850: 20 5c 66 42 2e 74 63 6c 73 68 72 63 5c 66 52 20 \fB.tclshrc\fR
1860: 77 68 65 6e 20 74 68 65 20 6e 61 6d 65 0a 20 6f when the name. o
1870: 66 20 61 20 73 63 72 69 70 74 20 66 69 6c 65 20 f a script file
1880: 69 73 20 70 72 65 73 65 6e 74 65 64 20 6f 6e 20 is presented on
1890: 74 68 65 20 5c 66 42 74 63 6c 73 68 5c 66 52 20 the \fBtclsh\fR
18a0: 63 6f 6d 6d 61 6e 64 0a 20 6c 69 6e 65 2c 20 62 command. line, b
18b0: 75 74 20 74 68 65 20 73 63 72 69 70 74 20 66 69 ut the script fi
18c0: 6c 65 20 63 61 6e 20 61 6c 77 61 79 73 20 5c 66 le can always \f
18d0: 42 73 6f 75 72 63 65 5c 66 52 20 69 74 20 69 66 Bsource\fR it if
18e0: 20 64 65 73 69 72 65 64 2e 0a 40 40 20 2d 39 31 desired..@@ -91
18f0: 2c 31 33 20 2b 39 33 2c 31 31 20 40 40 0a 20 73 ,13 +93,11 @@. s
1900: 69 6e 63 65 20 74 68 65 20 62 61 63 6b 73 6c 61 ince the backsla
1910: 73 68 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 sh at the end of
1920: 20 74 68 65 20 73 65 63 6f 6e 64 20 6c 69 6e 65 the second line
1930: 20 63 61 75 73 65 73 20 74 68 65 20 74 68 69 72 causes the thir
1940: 64 0a 20 6c 69 6e 65 20 74 6f 20 62 65 20 74 72 d. line to be tr
1950: 65 61 74 65 64 20 61 73 20 70 61 72 74 20 6f 66 eated as part of
1960: 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 6f 6e 20 the comment on
1970: 74 68 65 20 73 65 63 6f 6e 64 20 6c 69 6e 65 2e the second line.
1980: 0a 20 2e 50 50 0a 2d 2e 56 53 0a 20 59 6f 75 20 . .PP.-.VS. You
1990: 73 68 6f 75 6c 64 20 6e 6f 74 65 20 74 68 61 74 should note that
19a0: 20 69 74 20 69 73 20 61 6c 73 6f 20 63 6f 6d 6d it is also comm
19b0: 6f 6e 20 70 72 61 63 74 69 73 65 20 74 6f 20 69 on practise to i
19c0: 6e 73 74 61 6c 6c 20 74 63 6c 73 68 20 77 69 74 nstall tclsh wit
19d0: 68 0a 20 69 74 73 20 76 65 72 73 69 6f 6e 20 6e h. its version n
19e0: 75 6d 62 65 72 20 61 73 20 70 61 72 74 20 6f 66 umber as part of
19f0: 20 74 68 65 20 6e 61 6d 65 2e 20 20 54 68 69 73 the name. This
1a00: 20 68 61 73 20 74 68 65 20 61 64 76 61 6e 74 61 has the advanta
1a10: 67 65 20 6f 66 0a 20 61 6c 6c 6f 77 69 6e 67 20 ge of. allowing
1a20: 6d 75 6c 74 69 70 6c 65 20 76 65 72 73 69 6f 6e multiple version
1a30: 73 20 6f 66 20 54 63 6c 20 74 6f 20 65 78 69 73 s of Tcl to exis
1a40: 74 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 73 79 t on the same sy
1a50: 73 74 65 6d 20 61 74 20 6f 6e 63 65 2c 0a 20 62 stem at once,. b
1a60: 75 74 20 61 6c 73 6f 20 74 68 65 20 64 69 73 61 ut also the disa
1a70: 64 76 61 6e 74 61 67 65 20 6f 66 20 6d 61 6b 69 dvantage of maki
1a80: 6e 67 20 69 74 20 68 61 72 64 65 72 20 74 6f 20 ng it harder to
1a90: 77 72 69 74 65 20 73 63 72 69 70 74 73 20 74 68 write scripts th
1aa0: 61 74 0a 20 73 74 61 72 74 20 75 70 20 75 6e 69 at. start up uni
1ab0: 66 6f 72 6d 6c 79 20 61 63 72 6f 73 73 20 64 69 formly across di
1ac0: 66 66 65 72 65 6e 74 20 76 65 72 73 69 6f 6e 73 fferent versions
1ad0: 20 6f 66 20 54 63 6c 2e 0a 2d 2e 56 45 0a 20 0a of Tcl..-.VE. .
1ae0: 20 2e 53 48 20 22 56 41 52 49 41 42 4c 45 53 22 .SH "VARIABLES"
1af0: 0a 20 2e 50 50 0a 40 40 20 2d 31 33 38 2c 37 20 . .PP.@@ -138,7
1b00: 2b 31 33 38 2c 37 20 40 40 0a 20 53 65 65 20 5c +138,7 @@. See \
1b10: 66 42 54 63 6c 5f 53 74 61 6e 64 61 72 64 43 68 fBTcl_StandardCh
1b20: 61 6e 6e 65 6c 73 5c 66 52 20 66 6f 72 20 6d 6f annels\fR for mo
1b30: 72 65 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 2e re explanations.
1b40: 0a 20 0a 20 2e 53 48 20 22 53 45 45 20 41 4c 53 . . .SH "SEE ALS
1b50: 4f 22 0a 2d 66 63 6f 6e 66 69 67 75 72 65 28 6e O".-fconfigure(n
1b60: 29 2c 20 74 63 6c 76 61 72 73 28 6e 29 0a 2b 65 ), tclvars(n).+e
1b70: 6e 63 6f 64 69 6e 67 28 6e 29 2c 20 66 63 6f 6e ncoding(n), fcon
1b80: 66 69 67 75 72 65 28 6e 29 2c 20 74 63 6c 76 61 figure(n), tclva
1b90: 72 73 28 6e 29 0a 20 0a 20 2e 53 48 20 4b 45 59 rs(n). . .SH KEY
1ba0: 57 4f 52 44 53 0a 20 61 72 67 75 6d 65 6e 74 2c WORDS. argument,
1bb0: 20 69 6e 74 65 72 70 72 65 74 65 72 2c 20 70 72 interpreter, pr
1bc0: 6f 6d 70 74 2c 20 73 63 72 69 70 74 20 66 69 6c ompt, script fil
1bd0: 65 2c 20 73 68 65 6c 6c 0a 49 6e 64 65 78 3a 20 e, shell.Index:
1be0: 67 65 6e 65 72 69 63 2f 74 63 6c 2e 64 65 63 6c generic/tcl.decl
1bf0: 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d s.==============
1c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c30: 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 =====.RCS file:
1c40: 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c /cvsroot/tcl/tcl
1c50: 2f 67 65 6e 65 72 69 63 2f 74 63 6c 2e 64 65 63 /generic/tcl.dec
1c60: 6c 73 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 ls,v.retrieving
1c70: 72 65 76 69 73 69 6f 6e 20 31 2e 39 39 0a 64 69 revision 1.99.di
1c80: 66 66 20 2d 75 20 2d 72 31 2e 39 39 20 74 63 6c ff -u -r1.99 tcl
1c90: 2e 64 65 63 6c 73 0a 2d 2d 2d 20 67 65 6e 65 72 .decls.--- gener
1ca0: 69 63 2f 74 63 6c 2e 64 65 63 6c 73 09 32 35 20 ic/tcl.decls.25
1cb0: 41 75 67 20 32 30 30 33 20 32 30 3a 30 36 3a 30 Aug 2003 20:06:0
1cc0: 34 20 2d 30 30 30 30 09 31 2e 39 39 0a 2b 2b 2b 4 -0000.1.99.+++
1cd0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 2e 64 65 63 generic/tcl.dec
1ce0: 6c 73 09 35 20 53 65 70 20 32 30 30 33 20 32 31 ls.5 Sep 2003 21
1cf0: 3a 32 33 3a 31 37 20 2d 30 30 30 30 0a 40 40 20 :23:17 -0000.@@
1d00: 2d 31 38 34 39 2c 36 20 2b 31 38 34 39 2c 31 31 -1849,6 +1849,11
1d10: 20 40 40 0a 20 09 20 20 20 20 54 63 6c 5f 4f 62 @@. . Tcl_Ob
1d20: 6a 20 2a 6f 62 6a 50 74 72 29 0a 20 7d 0a 20 0a j *objPtr). }. .
1d30: 2b 23 20 4e 65 77 20 65 78 70 6f 72 74 20 64 75 +# New export du
1d40: 65 20 74 6f 20 54 49 50 23 31 33 37 0a 2b 64 65 e to TIP#137.+de
1d50: 63 6c 61 72 65 20 35 31 38 20 67 65 6e 65 72 69 clare 518 generi
1d60: 63 20 7b 0a 2b 20 20 20 20 69 6e 74 20 54 63 6c c {.+ int Tcl
1d70: 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 28 54 63 _FSEvalFileEx(Tc
1d80: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 l_Interp *interp
1d90: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c 65 4e , Tcl_Obj *fileN
1da0: 61 6d 65 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 ame,.+
1db0: 20 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 65 6e CONST char *en
1dc0: 63 6f 64 69 6e 67 4e 61 6d 65 29 0a 2b 7d 0a 20 codingName).+}.
1dd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
1de0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
1df0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
1e00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
1e10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 ##############.
1e20: 0a 20 23 20 44 65 66 69 6e 65 20 74 68 65 20 70 . # Define the p
1e30: 6c 61 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 latform specific
1e40: 20 70 75 62 6c 69 63 20 54 63 6c 20 69 6e 74 65 public Tcl inte
1e50: 72 66 61 63 65 2e 20 20 54 68 65 73 65 20 66 75 rface. These fu
1e60: 6e 63 74 69 6f 6e 73 20 61 72 65 0a 49 6e 64 65 nctions are.Inde
1e70: 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d x: generic/tclCm
1e80: 64 4d 5a 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d dMZ.c.==========
1e90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1ea0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1eb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1ec0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 =========.RCS fi
1ed0: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c le: /cvsroot/tcl
1ee0: 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c /tcl/generic/tcl
1ef0: 43 6d 64 4d 5a 2e 63 2c 76 0a 72 65 74 72 69 65 CmdMZ.c,v.retrie
1f00: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
1f10: 39 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 39 93.diff -u -r1.9
1f20: 33 20 74 63 6c 43 6d 64 4d 5a 2e 63 0a 2d 2d 2d 3 tclCmdMZ.c.---
1f30: 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d generic/tclCmdM
1f40: 5a 2e 63 09 34 20 4a 75 6c 20 32 30 30 33 20 31 Z.c.4 Jul 2003 1
1f50: 30 3a 33 30 3a 32 37 20 2d 30 30 30 30 09 31 2e 0:30:27 -0000.1.
1f60: 39 33 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 93.+++ generic/t
1f70: 63 6c 43 6d 64 4d 5a 2e 63 09 35 20 53 65 70 20 clCmdMZ.c.5 Sep
1f80: 32 30 30 33 20 32 31 3a 32 33 3a 31 39 20 2d 30 2003 21:23:19 -0
1f90: 30 30 30 0a 40 40 20 2d 31 30 30 34 2c 31 32 20 000.@@ -1004,12
1fa0: 2b 31 30 30 34 2c 32 36 20 40 40 0a 20 20 20 20 +1004,26 @@.
1fb0: 20 69 6e 74 20 6f 62 6a 63 3b 09 09 09 2f 2a 20 int objc;.../*
1fc0: 4e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 Number of argume
1fd0: 6e 74 73 2e 20 2a 2f 0a 20 20 20 20 20 54 63 6c nts. */. Tcl
1fe0: 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 6f 62 6a 76 _Obj *CONST objv
1ff0: 5b 5d 3b 09 2f 2a 20 41 72 67 75 6d 65 6e 74 20 [];./* Argument
2000: 6f 62 6a 65 63 74 73 2e 20 2a 2f 0a 20 7b 0a 2d objects. */. {.-
2010: 20 20 20 20 69 66 20 28 6f 62 6a 63 20 21 3d 20 if (objc !=
2020: 32 29 20 7b 0a 2d 09 54 63 6c 5f 57 72 6f 6e 67 2) {.-.Tcl_Wrong
2030: 4e 75 6d 41 72 67 73 28 69 6e 74 65 72 70 2c 20 NumArgs(interp,
2040: 31 2c 20 6f 62 6a 76 2c 20 22 66 69 6c 65 4e 61 1, objv, "fileNa
2050: 6d 65 22 29 3b 0a 2b 20 20 20 20 43 4f 4e 53 54 me");.+ CONST
2060: 20 63 68 61 72 20 2a 65 6e 63 6f 64 69 6e 67 4e char *encodingN
2070: 61 6d 65 20 3d 20 4e 55 4c 4c 3b 0a 2b 20 20 20 ame = NULL;.+
2080: 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c 65 4e 61 Tcl_Obj *fileNa
2090: 6d 65 3b 0a 2b 0a 2b 20 20 20 20 69 66 20 28 6f me;.+.+ if (o
20a0: 62 6a 63 20 21 3d 20 32 20 26 26 20 6f 62 6a 63 bjc != 2 && objc
20b0: 20 21 3d 34 29 20 7b 0a 2b 09 54 63 6c 5f 57 72 !=4) {.+.Tcl_Wr
20c0: 6f 6e 67 4e 75 6d 41 72 67 73 28 69 6e 74 65 72 ongNumArgs(inter
20d0: 70 2c 20 31 2c 20 6f 62 6a 76 2c 20 22 3f 2d 65 p, 1, objv, "?-e
20e0: 6e 63 6f 64 69 6e 67 20 6e 61 6d 65 3f 20 66 69 ncoding name? fi
20f0: 6c 65 4e 61 6d 65 22 29 3b 0a 20 09 72 65 74 75 leName");. .retu
2100: 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 rn TCL_ERROR;.
2110: 20 20 20 7d 0a 2d 0a 2d 20 20 20 20 72 65 74 75 }.-.- retu
2120: 72 6e 20 54 63 6c 5f 46 53 45 76 61 6c 46 69 6c rn Tcl_FSEvalFil
2130: 65 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 31 e(interp, objv[1
2140: 5d 29 3b 0a 2b 20 20 20 20 66 69 6c 65 4e 61 6d ]);.+ fileNam
2150: 65 20 3d 20 6f 62 6a 76 5b 6f 62 6a 63 2d 31 5d e = objv[objc-1]
2160: 3b 0a 2b 20 20 20 20 69 66 20 28 6f 62 6a 63 20 ;.+ if (objc
2170: 3d 3d 20 34 29 20 7b 0a 2b 09 73 74 61 74 69 63 == 4) {.+.static
2180: 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 6f 70 74 CONST char *opt
2190: 69 6f 6e 73 5b 5d 20 3d 20 7b 0a 2b 09 20 20 20 ions[] = {.+.
21a0: 20 22 2d 65 6e 63 6f 64 69 6e 67 22 2c 20 28 63 "-encoding", (c
21b0: 68 61 72 20 2a 29 20 4e 55 4c 4c 0a 2b 09 7d 3b har *) NULL.+.};
21c0: 0a 2b 09 69 6e 74 20 69 6e 64 65 78 3b 0a 2b 09 .+.int index;.+.
21d0: 69 66 20 28 54 43 4c 5f 45 52 52 4f 52 20 3d 3d if (TCL_ERROR ==
21e0: 20 54 63 6c 5f 47 65 74 49 6e 64 65 78 46 72 6f Tcl_GetIndexFro
21f0: 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 20 6f 62 6a mObj(interp, obj
2200: 76 5b 31 5d 2c 0a 2b 09 09 6f 70 74 69 6f 6e 73 v[1],.+..options
2210: 2c 20 22 6f 70 74 69 6f 6e 22 2c 20 54 43 4c 5f , "option", TCL_
2220: 45 58 41 43 54 2c 20 26 69 6e 64 65 78 29 29 20 EXACT, &index))
2230: 7b 0a 2b 09 20 20 20 20 72 65 74 75 72 6e 20 54 {.+. return T
2240: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 7d 0a 2b 09 CL_ERROR;.+.}.+.
2250: 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 20 3d 20 54 encodingName = T
2260: 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f 62 6a cl_GetString(obj
2270: 76 5b 32 5d 29 3b 0a 2b 20 20 20 20 7d 0a 2b 20 v[2]);.+ }.+
2280: 20 20 20 72 65 74 75 72 6e 20 54 63 6c 5f 46 53 return Tcl_FS
2290: 45 76 61 6c 46 69 6c 65 45 78 28 69 6e 74 65 72 EvalFileEx(inter
22a0: 70 2c 20 66 69 6c 65 4e 61 6d 65 2c 20 65 6e 63 p, fileName, enc
22b0: 6f 64 69 6e 67 4e 61 6d 65 29 3b 0a 20 7d 0a 20 odingName);. }.
22c0: 0c 0a 20 2f 2a 0a 49 6e 64 65 78 3a 20 67 65 6e .. /*.Index: gen
22d0: 65 72 69 63 2f 74 63 6c 44 65 63 6c 73 2e 68 0a eric/tclDecls.h.
22e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
22f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2300: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2310: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2320: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 ===.RCS file: /c
2330: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 vsroot/tcl/tcl/g
2340: 65 6e 65 72 69 63 2f 74 63 6c 44 65 63 6c 73 2e eneric/tclDecls.
2350: 68 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 h,v.retrieving r
2360: 65 76 69 73 69 6f 6e 20 31 2e 39 38 0a 64 69 66 evision 1.98.dif
2370: 66 20 2d 75 20 2d 72 31 2e 39 38 20 74 63 6c 44 f -u -r1.98 tclD
2380: 65 63 6c 73 2e 68 0a 2d 2d 2d 20 67 65 6e 65 72 ecls.h.--- gener
2390: 69 63 2f 74 63 6c 44 65 63 6c 73 2e 68 09 32 35 ic/tclDecls.h.25
23a0: 20 41 75 67 20 32 30 30 33 20 32 31 3a 30 35 3a Aug 2003 21:05:
23b0: 31 35 20 2d 30 30 30 30 09 31 2e 39 38 0a 2b 2b 15 -0000.1.98.++
23c0: 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 44 65 63 + generic/tclDec
23d0: 6c 73 2e 68 09 35 20 53 65 70 20 32 30 30 33 20 ls.h.5 Sep 2003
23e0: 32 31 3a 32 33 3a 32 32 20 2d 30 30 30 30 0a 40 21:23:22 -0000.@
23f0: 40 20 2d 33 32 31 31 2c 36 20 2b 33 32 31 31 2c @ -3211,6 +3211,
2400: 31 33 20 40 40 0a 20 09 09 09 09 54 63 6c 5f 49 13 @@. ....Tcl_I
2410: 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 nterp * interp,
2420: 54 63 6c 5f 43 6f 6d 6d 61 6e 64 20 63 6f 6d 6d Tcl_Command comm
2430: 61 6e 64 2c 20 0a 20 09 09 09 09 54 63 6c 5f 4f and, . ....Tcl_O
2440: 62 6a 20 2a 20 6f 62 6a 50 74 72 29 29 3b 0a 20 bj * objPtr));.
2450: 23 65 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66 20 #endif.+#ifndef
2460: 54 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 Tcl_FSEvalFileEx
2470: 5f 54 43 4c 5f 44 45 43 4c 41 52 45 44 0a 2b 23 _TCL_DECLARED.+#
2480: 64 65 66 69 6e 65 20 54 63 6c 5f 46 53 45 76 61 define Tcl_FSEva
2490: 6c 46 69 6c 65 45 78 5f 54 43 4c 5f 44 45 43 4c lFileEx_TCL_DECL
24a0: 41 52 45 44 0a 2b 2f 2a 20 35 31 38 20 2a 2f 0a ARED.+/* 518 */.
24b0: 2b 45 58 54 45 52 4e 20 69 6e 74 09 09 54 63 6c +EXTERN int..Tcl
24c0: 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 20 5f 41 _FSEvalFileEx _A
24d0: 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 NSI_ARGS_((Tcl_I
24e0: 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 nterp * interp,
24f0: 0a 2b 09 09 09 09 54 63 6c 5f 4f 62 6a 20 2a 20 .+....Tcl_Obj *
2500: 66 69 6c 65 4e 61 6d 65 2c 20 0a 2b 09 09 09 09 fileName, .+....
2510: 43 4f 4e 53 54 20 63 68 61 72 20 2a 20 65 6e 63 CONST char * enc
2520: 6f 64 69 6e 67 4e 61 6d 65 29 29 3b 0a 2b 23 65 odingName));.+#e
2530: 6e 64 69 66 0a 20 0a 20 74 79 70 65 64 65 66 20 ndif. . typedef
2540: 73 74 72 75 63 74 20 54 63 6c 53 74 75 62 48 6f struct TclStubHo
2550: 6f 6b 73 20 7b 0a 20 20 20 20 20 73 74 72 75 63 oks {. struc
2560: 74 20 54 63 6c 50 6c 61 74 53 74 75 62 73 20 2a t TclPlatStubs *
2570: 74 63 6c 50 6c 61 74 53 74 75 62 73 3b 0a 40 40 tclPlatStubs;.@@
2580: 20 2d 33 37 38 38 2c 36 20 2b 33 37 39 35 2c 37 -3788,6 +3795,7
2590: 20 40 40 0a 20 20 20 20 20 54 63 6c 5f 43 6f 6d @@. Tcl_Com
25a0: 6d 61 6e 64 20 28 2a 74 63 6c 5f 46 69 6e 64 43 mand (*tcl_FindC
25b0: 6f 6d 6d 61 6e 64 29 20 5f 41 4e 53 49 5f 41 52 ommand) _ANSI_AR
25c0: 47 53 5f 28 28 54 63 6c 5f 49 6e 74 65 72 70 20 GS_((Tcl_Interp
25d0: 2a 20 69 6e 74 65 72 70 2c 20 43 4f 4e 53 54 20 * interp, CONST
25e0: 63 68 61 72 20 2a 20 6e 61 6d 65 2c 20 54 63 6c char * name, Tcl
25f0: 5f 4e 61 6d 65 73 70 61 63 65 20 2a 20 63 6f 6e _Namespace * con
2600: 74 65 78 74 4e 73 50 74 72 2c 20 69 6e 74 20 66 textNsPtr, int f
2610: 6c 61 67 73 29 29 3b 20 2f 2a 20 35 31 35 20 2a lags)); /* 515 *
2620: 2f 0a 20 20 20 20 20 54 63 6c 5f 43 6f 6d 6d 61 /. Tcl_Comma
2630: 6e 64 20 28 2a 74 63 6c 5f 47 65 74 43 6f 6d 6d nd (*tcl_GetComm
2640: 61 6e 64 46 72 6f 6d 4f 62 6a 29 20 5f 41 4e 53 andFromObj) _ANS
2650: 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74 I_ARGS_((Tcl_Int
2660: 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 54 63 erp * interp, Tc
2670: 6c 5f 4f 62 6a 20 2a 20 6f 62 6a 50 74 72 29 29 l_Obj * objPtr))
2680: 3b 20 2f 2a 20 35 31 36 20 2a 2f 0a 20 20 20 20 ; /* 516 */.
2690: 20 76 6f 69 64 20 28 2a 74 63 6c 5f 47 65 74 43 void (*tcl_GetC
26a0: 6f 6d 6d 61 6e 64 46 75 6c 6c 4e 61 6d 65 29 20 ommandFullName)
26b0: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c _ANSI_ARGS_((Tcl
26c0: 5f 49 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70 _Interp * interp
26d0: 2c 20 54 63 6c 5f 43 6f 6d 6d 61 6e 64 20 63 6f , Tcl_Command co
26e0: 6d 6d 61 6e 64 2c 20 54 63 6c 5f 4f 62 6a 20 2a mmand, Tcl_Obj *
26f0: 20 6f 62 6a 50 74 72 29 29 3b 20 2f 2a 20 35 31 objPtr)); /* 51
2700: 37 20 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 28 2a 7 */.+ int (*
2710: 74 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 tcl_FSEvalFileEx
2720: 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 ) _ANSI_ARGS_((T
2730: 63 6c 5f 49 6e 74 65 72 70 20 2a 20 69 6e 74 65 cl_Interp * inte
2740: 72 70 2c 20 54 63 6c 5f 4f 62 6a 20 2a 20 66 69 rp, Tcl_Obj * fi
2750: 6c 65 4e 61 6d 65 2c 20 43 4f 4e 53 54 20 63 68 leName, CONST ch
2760: 61 72 20 2a 20 65 6e 63 6f 64 69 6e 67 4e 61 6d ar * encodingNam
2770: 65 29 29 3b 20 2f 2a 20 35 31 38 20 2a 2f 0a 20 e)); /* 518 */.
2780: 7d 20 54 63 6c 53 74 75 62 73 3b 0a 20 0a 20 23 } TclStubs;. . #
2790: 69 66 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 ifdef __cplusplu
27a0: 73 0a 40 40 20 2d 35 38 39 39 2c 36 20 2b 35 39 s.@@ -5899,6 +59
27b0: 30 37 2c 31 30 20 40 40 0a 20 23 69 66 6e 64 65 07,10 @@. #ifnde
27c0: 66 20 54 63 6c 5f 47 65 74 43 6f 6d 6d 61 6e 64 f Tcl_GetCommand
27d0: 46 75 6c 6c 4e 61 6d 65 0a 20 23 64 65 66 69 6e FullName. #defin
27e0: 65 20 54 63 6c 5f 47 65 74 43 6f 6d 6d 61 6e 64 e Tcl_GetCommand
27f0: 46 75 6c 6c 4e 61 6d 65 20 5c 0a 20 09 28 74 63 FullName \. .(tc
2800: 6c 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 5f 47 lStubsPtr->tcl_G
2810: 65 74 43 6f 6d 6d 61 6e 64 46 75 6c 6c 4e 61 6d etCommandFullNam
2820: 65 29 20 2f 2a 20 35 31 37 20 2a 2f 0a 2b 23 65 e) /* 517 */.+#e
2830: 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66 20 54 63 ndif.+#ifndef Tc
2840: 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 0a 2b l_FSEvalFileEx.+
2850: 23 64 65 66 69 6e 65 20 54 63 6c 5f 46 53 45 76 #define Tcl_FSEv
2860: 61 6c 46 69 6c 65 45 78 20 5c 0a 2b 09 28 74 63 alFileEx \.+.(tc
2870: 6c 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 5f 46 lStubsPtr->tcl_F
2880: 53 45 76 61 6c 46 69 6c 65 45 78 29 20 2f 2a 20 SEvalFileEx) /*
2890: 35 31 38 20 2a 2f 0a 20 23 65 6e 64 69 66 0a 20 518 */. #endif.
28a0: 0a 20 23 65 6e 64 69 66 20 2f 2a 20 64 65 66 69 . #endif /* defi
28b0: 6e 65 64 28 55 53 45 5f 54 43 4c 5f 53 54 55 42 ned(USE_TCL_STUB
28c0: 53 29 20 26 26 20 21 64 65 66 69 6e 65 64 28 55 S) && !defined(U
28d0: 53 45 5f 54 43 4c 5f 53 54 55 42 5f 50 52 4f 43 SE_TCL_STUB_PROC
28e0: 53 29 20 2a 2f 0a 49 6e 64 65 78 3a 20 67 65 6e S) */.Index: gen
28f0: 65 72 69 63 2f 74 63 6c 49 4f 55 74 69 6c 2e 63 eric/tclIOUtil.c
2900: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .===============
2910: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2920: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2930: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2940: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f ====.RCS file: /
2950: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f cvsroot/tcl/tcl/
2960: 67 65 6e 65 72 69 63 2f 74 63 6c 49 4f 55 74 69 generic/tclIOUti
2970: 6c 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 l.c,v.retrieving
2980: 20 72 65 76 69 73 69 6f 6e 20 31 2e 38 32 0a 64 revision 1.82.d
2990: 69 66 66 20 2d 75 20 2d 72 31 2e 38 32 20 74 63 iff -u -r1.82 tc
29a0: 6c 49 4f 55 74 69 6c 2e 63 0a 2d 2d 2d 20 67 65 lIOUtil.c.--- ge
29b0: 6e 65 72 69 63 2f 74 63 6c 49 4f 55 74 69 6c 2e neric/tclIOUtil.
29c0: 63 09 32 33 20 41 75 67 20 32 30 30 33 20 31 32 c.23 Aug 2003 12
29d0: 3a 31 36 3a 34 39 20 2d 30 30 30 30 09 31 2e 38 :16:49 -0000.1.8
29e0: 32 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 2.+++ generic/tc
29f0: 6c 49 4f 55 74 69 6c 2e 63 09 35 20 53 65 70 20 lIOUtil.c.5 Sep
2a00: 32 30 30 33 20 32 31 3a 32 33 3a 32 34 20 2d 30 2003 21:23:24 -0
2a10: 30 30 30 0a 40 40 20 2d 31 33 36 33 2c 31 30 20 000.@@ -1363,10
2a20: 2b 31 33 36 33 2c 32 30 20 40 40 0a 20 20 20 20 +1363,20 @@.
2a30: 20 72 65 74 75 72 6e 20 6d 6f 64 65 3b 0a 20 7d return mode;. }
2a40: 0a 20 0c 0a 2b 2f 2a 20 54 63 6c 5f 46 53 45 76 . ..+/* Tcl_FSEv
2a50: 61 6c 46 69 6c 65 20 69 73 20 54 63 6c 5f 46 53 alFile is Tcl_FS
2a60: 45 76 61 6c 46 69 6c 65 45 78 20 77 69 74 68 6f EvalFileEx witho
2a70: 75 74 20 65 6e 63 6f 64 69 6e 67 20 61 72 67 75 ut encoding argu
2a80: 6d 65 6e 74 20 2a 2f 0a 2b 69 6e 74 0a 2b 54 63 ment */.+int.+Tc
2a90: 6c 5f 46 53 45 76 61 6c 46 69 6c 65 28 69 6e 74 l_FSEvalFile(int
2aa0: 65 72 70 2c 20 70 61 74 68 50 74 72 29 0a 2b 20 erp, pathPtr).+
2ab0: 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 Tcl_Interp *i
2ac0: 6e 74 65 72 70 3b 09 09 2f 2a 20 49 6e 74 65 72 nterp;../* Inter
2ad0: 70 72 65 74 65 72 20 69 6e 20 77 68 69 63 68 20 preter in which
2ae0: 74 6f 20 70 72 6f 63 65 73 73 20 66 69 6c 65 2e to process file.
2af0: 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a */.+ Tcl_Obj
2b00: 20 2a 70 61 74 68 50 74 72 3b 09 09 2f 2a 20 50 *pathPtr;../* P
2b10: 61 74 68 20 6f 66 20 66 69 6c 65 20 74 6f 20 70 ath of file to p
2b20: 72 6f 63 65 73 73 2e 20 20 54 69 6c 64 65 2d 73 rocess. Tilde-s
2b30: 75 62 73 74 69 74 75 74 69 6f 6e 0a 2b 09 09 09 ubstitution.+...
2b40: 09 20 2a 20 77 69 6c 6c 20 62 65 20 70 65 72 66 . * will be perf
2b50: 6f 72 6d 65 64 20 6f 6e 20 74 68 69 73 20 6e 61 ormed on this na
2b60: 6d 65 2e 20 2a 2f 0a 2b 7b 0a 2b 20 20 20 20 72 me. */.+{.+ r
2b70: 65 74 75 72 6e 20 54 63 6c 5f 46 53 45 76 61 6c eturn Tcl_FSEval
2b80: 46 69 6c 65 45 78 28 69 6e 74 65 72 70 2c 20 70 FileEx(interp, p
2b90: 61 74 68 50 74 72 2c 20 4e 55 4c 4c 29 3b 0a 2b athPtr, NULL);.+
2ba0: 7d 0a 2b 0c 0a 20 2f 2a 0a 20 20 2a 2d 2d 2d 2d }.+.. /*. *----
2bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2bc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2bd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2bf0: 2d 2d 0a 20 20 2a 0a 2d 20 2a 20 54 63 6c 5f 46 --. *.- * Tcl_F
2c00: 53 45 76 61 6c 46 69 6c 65 20 2d 2d 0a 2b 20 2a SEvalFile --.+ *
2c10: 20 54 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 Tcl_FSEvalFileE
2c20: 78 20 2d 2d 0a 20 20 2a 0a 20 20 2a 09 52 65 61 x --. *. *.Rea
2c30: 64 20 69 6e 20 61 20 66 69 6c 65 20 61 6e 64 20 d in a file and
2c40: 70 72 6f 63 65 73 73 20 74 68 65 20 65 6e 74 69 process the enti
2c50: 72 65 20 66 69 6c 65 20 61 73 20 6f 6e 65 20 67 re file as one g
2c60: 69 67 61 6e 74 69 63 0a 20 20 2a 09 54 63 6c 20 igantic. *.Tcl
2c70: 63 6f 6d 6d 61 6e 64 2e 0a 40 40 20 2d 31 33 38 command..@@ -138
2c80: 35 2c 31 30 20 2b 31 33 39 35 2c 31 31 20 40 40 5,10 +1395,11 @@
2c90: 0a 20 20 2a 2f 0a 20 0a 20 69 6e 74 0a 2d 54 63 . */. . int.-Tc
2ca0: 6c 5f 46 53 45 76 61 6c 46 69 6c 65 28 69 6e 74 l_FSEvalFile(int
2cb0: 65 72 70 2c 20 70 61 74 68 50 74 72 29 0a 2b 54 erp, pathPtr).+T
2cc0: 63 6c 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 28 cl_FSEvalFileEx(
2cd0: 69 6e 74 65 72 70 2c 20 70 61 74 68 50 74 72 2c interp, pathPtr,
2ce0: 20 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 0a 20 encodingName).
2cf0: 20 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a Tcl_Interp *
2d00: 69 6e 74 65 72 70 3b 09 09 2f 2a 20 49 6e 74 65 interp;../* Inte
2d10: 72 70 72 65 74 65 72 20 69 6e 20 77 68 69 63 68 rpreter in which
2d20: 20 74 6f 20 70 72 6f 63 65 73 73 20 66 69 6c 65 to process file
2d30: 2e 20 2a 2f 0a 20 20 20 20 20 54 63 6c 5f 4f 62 . */. Tcl_Ob
2d40: 6a 20 2a 70 61 74 68 50 74 72 3b 09 09 2f 2a 20 j *pathPtr;../*
2d50: 50 61 74 68 20 6f 66 20 66 69 6c 65 20 74 6f 20 Path of file to
2d60: 70 72 6f 63 65 73 73 2e 20 20 54 69 6c 64 65 2d process. Tilde-
2d70: 73 75 62 73 74 69 74 75 74 69 6f 6e 0a 20 09 09 substitution. ..
2d80: 09 09 20 2a 20 77 69 6c 6c 20 62 65 20 70 65 72 .. * will be per
2d90: 66 6f 72 6d 65 64 20 6f 6e 20 74 68 69 73 20 6e formed on this n
2da0: 61 6d 65 2e 20 2a 2f 0a 2b 20 20 20 20 43 4f 4e ame. */.+ CON
2db0: 53 54 20 63 68 61 72 20 2a 65 6e 63 6f 64 69 6e ST char *encodin
2dc0: 67 4e 61 6d 65 3b 0a 20 7b 0a 20 20 20 20 20 69 gName;. {. i
2dd0: 6e 74 20 72 65 73 75 6c 74 2c 20 6c 65 6e 67 74 nt result, lengt
2de0: 68 3b 0a 20 20 20 20 20 54 63 6c 5f 53 74 61 74 h;. Tcl_Stat
2df0: 42 75 66 20 73 74 61 74 42 75 66 3b 0a 40 40 20 Buf statBuf;.@@
2e00: 2d 31 34 32 36 2c 36 20 2b 31 34 33 37 2c 31 38 -1426,6 +1437,18
2e10: 20 40 40 0a 20 20 20 20 20 20 2a 20 5b 42 75 67 @@. * [Bug
2e20: 3a 20 32 30 34 30 5d 0a 20 20 20 20 20 20 2a 2f : 2040]. */
2e30: 0a 20 20 20 20 20 54 63 6c 5f 53 65 74 43 68 61 . Tcl_SetCha
2e40: 6e 6e 65 6c 4f 70 74 69 6f 6e 28 69 6e 74 65 72 nnelOption(inter
2e50: 70 2c 20 63 68 61 6e 2c 20 22 2d 65 6f 66 63 68 p, chan, "-eofch
2e60: 61 72 22 2c 20 22 5c 33 32 22 29 3b 0a 2b 20 20 ar", "\32");.+
2e70: 20 20 2f 2a 0a 2b 20 20 20 20 20 2a 20 49 66 20 /*.+ * If
2e80: 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 69 73 20 the encoding is
2e90: 73 70 65 63 69 66 69 65 64 2c 20 73 65 74 20 69 specified, set i
2ea0: 74 20 66 6f 72 20 74 68 65 20 63 68 61 6e 6e 65 t for the channe
2eb0: 6c 2e 0a 2b 20 20 20 20 20 2a 20 45 6c 73 65 20 l..+ * Else
2ec0: 64 6f 6e 27 74 20 74 6f 75 63 68 20 69 74 20 28 don't touch it (
2ed0: 61 6e 64 20 75 73 65 20 74 68 65 20 73 79 73 74 and use the syst
2ee0: 65 6d 20 65 6e 63 6f 64 69 6e 67 29 0a 2b 20 20 em encoding).+
2ef0: 20 20 20 2a 20 52 65 70 6f 72 74 20 65 72 72 6f * Report erro
2f00: 72 20 6f 6e 20 75 6e 6b 6e 6f 77 6e 20 65 6e 63 r on unknown enc
2f10: 6f 64 69 6e 67 2e 0a 2b 20 20 20 20 20 2a 2f 0a oding..+ */.
2f20: 2b 20 20 20 20 69 66 20 28 65 6e 63 6f 64 69 6e + if (encodin
2f30: 67 4e 61 6d 65 29 20 7b 0a 2b 09 69 66 20 28 54 gName) {.+.if (T
2f40: 63 6c 5f 53 65 74 43 68 61 6e 6e 65 6c 4f 70 74 cl_SetChannelOpt
2f50: 69 6f 6e 28 69 6e 74 65 72 70 2c 20 63 68 61 6e ion(interp, chan
2f60: 2c 20 22 2d 65 6e 63 6f 64 69 6e 67 22 2c 20 65 , "-encoding", e
2f70: 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 0a 2b 09 09 ncodingName).+..
2f80: 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2b 09 20 != TCL_OK) {.+.
2f90: 20 20 20 54 63 6c 5f 43 6c 6f 73 65 28 69 6e 74 Tcl_Close(int
2fa0: 65 72 70 2c 63 68 61 6e 29 3b 0a 2b 09 20 20 20 erp,chan);.+.
2fb0: 20 67 6f 74 6f 20 65 6e 64 3b 0a 2b 09 7d 0a 2b goto end;.+.}.+
2fc0: 20 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 54 }. if (T
2fd0: 63 6c 5f 52 65 61 64 43 68 61 72 73 28 63 68 61 cl_ReadChars(cha
2fe0: 6e 2c 20 6f 62 6a 50 74 72 2c 20 2d 31 2c 20 30 n, objPtr, -1, 0
2ff0: 29 20 3c 20 30 29 20 7b 0a 20 20 20 20 20 20 20 ) < 0) {.
3000: 20 20 54 63 6c 5f 43 6c 6f 73 65 28 69 6e 74 65 Tcl_Close(inte
3010: 72 70 2c 20 63 68 61 6e 29 3b 0a 20 09 54 63 6c rp, chan);. .Tcl
3020: 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e _AppendResult(in
3030: 74 65 72 70 2c 20 22 63 6f 75 6c 64 6e 27 74 20 terp, "couldn't
3040: 72 65 61 64 20 66 69 6c 65 20 5c 22 22 2c 20 0a read file \"", .
3050: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
3060: 63 6c 49 6e 74 2e 64 65 63 6c 73 0a 3d 3d 3d 3d clInt.decls.====
3070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
30a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
30b0: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
30c0: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 ot/tcl/tcl/gener
30d0: 69 63 2f 74 63 6c 49 6e 74 2e 64 65 63 6c 73 2c ic/tclInt.decls,
30e0: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 v.retrieving rev
30f0: 69 73 69 6f 6e 20 31 2e 36 32 0a 64 69 66 66 20 ision 1.62.diff
3100: 2d 75 20 2d 72 31 2e 36 32 20 74 63 6c 49 6e 74 -u -r1.62 tclInt
3110: 2e 64 65 63 6c 73 0a 2d 2d 2d 20 67 65 6e 65 72 .decls.--- gener
3120: 69 63 2f 74 63 6c 49 6e 74 2e 64 65 63 6c 73 09 ic/tclInt.decls.
3130: 32 36 20 4a 75 6e 20 32 30 30 33 20 30 38 3a 34 26 Jun 2003 08:4
3140: 33 3a 31 35 20 2d 30 30 30 30 09 31 2e 36 32 0a 3:15 -0000.1.62.
3150: 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 +++ generic/tclI
3160: 6e 74 2e 64 65 63 6c 73 09 35 20 53 65 70 20 32 nt.decls.5 Sep 2
3170: 30 30 33 20 32 31 3a 32 33 3a 32 35 20 2d 30 30 003 21:23:25 -00
3180: 30 30 0a 40 40 20 2d 37 31 39 2c 36 20 2b 37 31 00.@@ -719,6 +71
3190: 39 2c 31 32 20 40 40 0a 20 09 20 20 20 20 43 4f 9,12 @@. . CO
31a0: 4e 53 54 20 63 68 61 72 20 2a 6f 70 65 72 61 74 NST char *operat
31b0: 69 6f 6e 2c 20 43 4f 4e 53 54 20 63 68 61 72 20 ion, CONST char
31c0: 2a 72 65 61 73 6f 6e 29 0a 20 7d 0a 20 0a 2b 64 *reason). }. .+d
31d0: 65 63 6c 61 72 65 20 31 37 38 20 67 65 6e 65 72 eclare 178 gener
31e0: 69 63 20 7b 0a 2b 20 20 20 20 76 6f 69 64 20 54 ic {.+ void T
31f0: 63 6c 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 cl_SetStartupScr
3200: 69 70 74 28 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 ipt(Tcl_Obj *pat
3210: 68 50 74 72 2c 20 43 4f 4e 53 54 20 63 68 61 72 hPtr, CONST char
3220: 2a 20 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 0a * encodingName).
3230: 2b 7d 0a 2b 64 65 63 6c 61 72 65 20 31 37 39 20 +}.+declare 179
3240: 67 65 6e 65 72 69 63 20 7b 0a 2b 20 20 20 20 54 generic {.+ T
3250: 63 6c 5f 4f 62 6a 20 2a 54 63 6c 5f 47 65 74 53 cl_Obj *Tcl_GetS
3260: 74 61 72 74 75 70 53 63 72 69 70 74 28 43 4f 4e tartupScript(CON
3270: 53 54 20 63 68 61 72 20 2a 2a 65 6e 63 6f 64 69 ST char **encodi
3280: 6e 67 4e 61 6d 65 50 74 72 29 0a 2b 7d 0a 20 23 ngNamePtr).+}. #
3290: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
32a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
32b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
32c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
32d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 0a #############. .
32e0: 20 23 20 44 65 66 69 6e 65 20 74 68 65 20 70 6c # Define the pl
32f0: 61 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 20 atform specific
3300: 69 6e 74 65 72 6e 61 6c 20 54 63 6c 20 69 6e 74 internal Tcl int
3310: 65 72 66 61 63 65 2e 20 54 68 65 73 65 20 66 75 erface. These fu
3320: 6e 63 74 69 6f 6e 73 20 61 72 65 0a 49 6e 64 65 nctions are.Inde
3330: 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e x: generic/tclIn
3340: 74 44 65 63 6c 73 2e 68 0a 3d 3d 3d 3d 3d 3d 3d tDecls.h.=======
3350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3370: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3380: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
3390: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
33a0: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
33b0: 74 63 6c 49 6e 74 44 65 63 6c 73 2e 68 2c 76 0a tclIntDecls.h,v.
33c0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
33d0: 69 6f 6e 20 31 2e 35 32 0a 64 69 66 66 20 2d 75 ion 1.52.diff -u
33e0: 20 2d 72 31 2e 35 32 20 74 63 6c 49 6e 74 44 65 -r1.52 tclIntDe
33f0: 63 6c 73 2e 68 0a 2d 2d 2d 20 67 65 6e 65 72 69 cls.h.--- generi
3400: 63 2f 74 63 6c 49 6e 74 44 65 63 6c 73 2e 68 09 c/tclIntDecls.h.
3410: 32 35 20 41 75 67 20 32 30 30 33 20 32 31 3a 30 25 Aug 2003 21:0
3420: 35 3a 31 35 20 2d 30 30 30 30 09 31 2e 35 32 0a 5:15 -0000.1.52.
3430: 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 +++ generic/tclI
3440: 6e 74 44 65 63 6c 73 2e 68 09 35 20 53 65 70 20 ntDecls.h.5 Sep
3450: 32 30 30 33 20 32 31 3a 32 33 3a 32 35 20 2d 30 2003 21:23:25 -0
3460: 30 30 30 0a 40 40 20 2d 39 33 37 2c 36 20 2b 39 000.@@ -937,6 +9
3470: 33 37 2c 31 38 20 40 40 0a 20 09 09 09 09 43 4f 37,18 @@. ....CO
3480: 4e 53 54 20 63 68 61 72 20 2a 20 70 61 72 74 31 NST char * part1
3490: 2c 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 20 70 , CONST char * p
34a0: 61 72 74 32 2c 20 0a 20 09 09 09 09 43 4f 4e 53 art2, . ....CONS
34b0: 54 20 63 68 61 72 20 2a 20 6f 70 65 72 61 74 69 T char * operati
34c0: 6f 6e 2c 20 43 4f 4e 53 54 20 63 68 61 72 20 2a on, CONST char *
34d0: 20 72 65 61 73 6f 6e 29 29 3b 0a 20 23 65 6e 64 reason));. #end
34e0: 69 66 0a 2b 23 69 66 6e 64 65 66 20 54 63 6c 5f if.+#ifndef Tcl_
34f0: 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 74 SetStartupScript
3500: 5f 54 43 4c 5f 44 45 43 4c 41 52 45 44 0a 2b 23 _TCL_DECLARED.+#
3510: 64 65 66 69 6e 65 20 54 63 6c 5f 53 65 74 53 74 define Tcl_SetSt
3520: 61 72 74 75 70 53 63 72 69 70 74 5f 54 43 4c 5f artupScript_TCL_
3530: 44 45 43 4c 41 52 45 44 0a 2b 2f 2a 20 31 37 38 DECLARED.+/* 178
3540: 20 2a 2f 0a 2b 45 58 54 45 52 4e 20 76 6f 69 64 */.+EXTERN void
3550: 09 09 54 63 6c 5f 53 65 74 53 74 61 72 74 75 70 ..Tcl_SetStartup
3560: 53 63 72 69 70 74 20 5f 41 4e 53 49 5f 41 52 47 Script _ANSI_ARG
3570: 53 5f 28 28 54 63 6c 5f 4f 62 6a 20 2a 20 70 61 S_((Tcl_Obj * pa
3580: 74 68 50 74 72 2c 20 0a 2b 09 09 09 09 43 4f 4e thPtr, .+....CON
3590: 53 54 20 63 68 61 72 2a 20 65 6e 63 6f 64 69 6e ST char* encodin
35a0: 67 4e 61 6d 65 29 29 3b 0a 2b 23 65 6e 64 69 66 gName));.+#endif
35b0: 0a 2b 23 69 66 6e 64 65 66 20 54 63 6c 5f 47 65 .+#ifndef Tcl_Ge
35c0: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 5f 54 tStartupScript_T
35d0: 43 4c 5f 44 45 43 4c 41 52 45 44 0a 2b 23 64 65 CL_DECLARED.+#de
35e0: 66 69 6e 65 20 54 63 6c 5f 47 65 74 53 74 61 72 fine Tcl_GetStar
35f0: 74 75 70 53 63 72 69 70 74 5f 54 43 4c 5f 44 45 tupScript_TCL_DE
3600: 43 4c 41 52 45 44 0a 2b 2f 2a 20 31 37 39 20 2a CLARED.+/* 179 *
3610: 2f 0a 2b 45 58 54 45 52 4e 20 54 63 6c 5f 4f 62 /.+EXTERN Tcl_Ob
3620: 6a 20 2a 09 54 63 6c 5f 47 65 74 53 74 61 72 74 j *.Tcl_GetStart
3630: 75 70 53 63 72 69 70 74 20 5f 41 4e 53 49 5f 41 upScript _ANSI_A
3640: 52 47 53 5f 28 28 0a 2b 09 09 09 09 43 4f 4e 53 RGS_((.+....CONS
3650: 54 20 63 68 61 72 20 2a 2a 20 65 6e 63 6f 64 69 T char ** encodi
3660: 6e 67 4e 61 6d 65 50 74 72 29 29 3b 0a 2b 23 65 ngNamePtr));.+#e
3670: 6e 64 69 66 0a 20 0a 20 74 79 70 65 64 65 66 20 ndif. . typedef
3680: 73 74 72 75 63 74 20 54 63 6c 49 6e 74 53 74 75 struct TclIntStu
3690: 62 73 20 7b 0a 20 20 20 20 20 69 6e 74 20 6d 61 bs {. int ma
36a0: 67 69 63 3b 0a 40 40 20 2d 31 31 34 34 2c 36 20 gic;.@@ -1144,6
36b0: 2b 31 31 35 36 2c 38 20 40 40 0a 20 20 20 20 20 +1156,8 @@.
36c0: 69 6e 74 20 28 2a 74 63 6c 43 61 6c 6c 56 61 72 int (*tclCallVar
36d0: 54 72 61 63 65 73 29 20 5f 41 4e 53 49 5f 41 52 Traces) _ANSI_AR
36e0: 47 53 5f 28 28 49 6e 74 65 72 70 20 2a 20 69 50 GS_((Interp * iP
36f0: 74 72 2c 20 56 61 72 20 2a 20 61 72 72 61 79 50 tr, Var * arrayP
3700: 74 72 2c 20 56 61 72 20 2a 20 76 61 72 50 74 72 tr, Var * varPtr
3710: 2c 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 20 70 , CONST char * p
3720: 61 72 74 31 2c 20 43 4f 4e 53 54 20 63 68 61 72 art1, CONST char
3730: 20 2a 20 70 61 72 74 32 2c 20 69 6e 74 20 66 6c * part2, int fl
3740: 61 67 73 2c 20 69 6e 74 20 6c 65 61 76 65 45 72 ags, int leaveEr
3750: 72 4d 73 67 29 29 3b 20 2f 2a 20 31 37 35 20 2a rMsg)); /* 175 *
3760: 2f 0a 20 20 20 20 20 76 6f 69 64 20 28 2a 74 63 /. void (*tc
3770: 6c 43 6c 65 61 6e 75 70 56 61 72 29 20 5f 41 4e lCleanupVar) _AN
3780: 53 49 5f 41 52 47 53 5f 28 28 56 61 72 20 2a 20 SI_ARGS_((Var *
3790: 76 61 72 50 74 72 2c 20 56 61 72 20 2a 20 61 72 varPtr, Var * ar
37a0: 72 61 79 50 74 72 29 29 3b 20 2f 2a 20 31 37 36 rayPtr)); /* 176
37b0: 20 2a 2f 0a 20 20 20 20 20 76 6f 69 64 20 28 2a */. void (*
37c0: 74 63 6c 56 61 72 45 72 72 4d 73 67 29 20 5f 41 tclVarErrMsg) _A
37d0: 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 NSI_ARGS_((Tcl_I
37e0: 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 nterp * interp,
37f0: 43 4f 4e 53 54 20 63 68 61 72 20 2a 20 70 61 72 CONST char * par
3800: 74 31 2c 20 43 4f 4e 53 54 20 63 68 61 72 20 2a t1, CONST char *
3810: 20 70 61 72 74 32 2c 20 43 4f 4e 53 54 20 63 68 part2, CONST ch
3820: 61 72 20 2a 20 6f 70 65 72 61 74 69 6f 6e 2c 20 ar * operation,
3830: 43 4f 4e 53 54 20 63 68 61 72 20 2a 20 72 65 61 CONST char * rea
3840: 73 6f 6e 29 29 3b 20 2f 2a 20 31 37 37 20 2a 2f son)); /* 177 */
3850: 0a 2b 20 20 20 20 76 6f 69 64 20 28 2a 74 63 6c .+ void (*tcl
3860: 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 _SetStartupScrip
3870: 74 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 t) _ANSI_ARGS_((
3880: 54 63 6c 5f 4f 62 6a 20 2a 20 70 61 74 68 50 74 Tcl_Obj * pathPt
3890: 72 2c 20 43 4f 4e 53 54 20 63 68 61 72 2a 20 65 r, CONST char* e
38a0: 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 29 3b 20 2f ncodingName)); /
38b0: 2a 20 31 37 38 20 2a 2f 0a 2b 20 20 20 20 54 63 * 178 */.+ Tc
38c0: 6c 5f 4f 62 6a 20 2a 20 28 2a 74 63 6c 5f 47 65 l_Obj * (*tcl_Ge
38d0: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 29 20 tStartupScript)
38e0: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e _ANSI_ARGS_((CON
38f0: 53 54 20 63 68 61 72 20 2a 2a 20 65 6e 63 6f 64 ST char ** encod
3900: 69 6e 67 4e 61 6d 65 50 74 72 29 29 3b 20 2f 2a ingNamePtr)); /*
3910: 20 31 37 39 20 2a 2f 0a 20 7d 20 54 63 6c 49 6e 179 */. } TclIn
3920: 74 53 74 75 62 73 3b 0a 20 0a 20 23 69 66 64 65 tStubs;. . #ifde
3930: 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 40 40 f __cplusplus.@@
3940: 20 2d 31 37 36 39 2c 36 20 2b 31 37 38 33 2c 31 -1769,6 +1783,1
3950: 34 20 40 40 0a 20 23 69 66 6e 64 65 66 20 54 63 4 @@. #ifndef Tc
3960: 6c 56 61 72 45 72 72 4d 73 67 0a 20 23 64 65 66 lVarErrMsg. #def
3970: 69 6e 65 20 54 63 6c 56 61 72 45 72 72 4d 73 67 ine TclVarErrMsg
3980: 20 5c 0a 20 09 28 74 63 6c 49 6e 74 53 74 75 62 \. .(tclIntStub
3990: 73 50 74 72 2d 3e 74 63 6c 56 61 72 45 72 72 4d sPtr->tclVarErrM
39a0: 73 67 29 20 2f 2a 20 31 37 37 20 2a 2f 0a 2b 23 sg) /* 177 */.+#
39b0: 65 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66 20 54 endif.+#ifndef T
39c0: 63 6c 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 cl_SetStartupScr
39d0: 69 70 74 0a 2b 23 64 65 66 69 6e 65 20 54 63 6c ipt.+#define Tcl
39e0: 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 _SetStartupScrip
39f0: 74 20 5c 0a 2b 09 28 74 63 6c 49 6e 74 53 74 75 t \.+.(tclIntStu
3a00: 62 73 50 74 72 2d 3e 74 63 6c 5f 53 65 74 53 74 bsPtr->tcl_SetSt
3a10: 61 72 74 75 70 53 63 72 69 70 74 29 20 2f 2a 20 artupScript) /*
3a20: 31 37 38 20 2a 2f 0a 2b 23 65 6e 64 69 66 0a 2b 178 */.+#endif.+
3a30: 23 69 66 6e 64 65 66 20 54 63 6c 5f 47 65 74 53 #ifndef Tcl_GetS
3a40: 74 61 72 74 75 70 53 63 72 69 70 74 0a 2b 23 64 tartupScript.+#d
3a50: 65 66 69 6e 65 20 54 63 6c 5f 47 65 74 53 74 61 efine Tcl_GetSta
3a60: 72 74 75 70 53 63 72 69 70 74 20 5c 0a 2b 09 28 rtupScript \.+.(
3a70: 74 63 6c 49 6e 74 53 74 75 62 73 50 74 72 2d 3e tclIntStubsPtr->
3a80: 74 63 6c 5f 47 65 74 53 74 61 72 74 75 70 53 63 tcl_GetStartupSc
3a90: 72 69 70 74 29 20 2f 2a 20 31 37 39 20 2a 2f 0a ript) /* 179 */.
3aa0: 20 23 65 6e 64 69 66 0a 20 0a 20 23 65 6e 64 69 #endif. . #endi
3ab0: 66 20 2f 2a 20 64 65 66 69 6e 65 64 28 55 53 45 f /* defined(USE
3ac0: 5f 54 43 4c 5f 53 54 55 42 53 29 20 26 26 20 21 _TCL_STUBS) && !
3ad0: 64 65 66 69 6e 65 64 28 55 53 45 5f 54 43 4c 5f defined(USE_TCL_
3ae0: 53 54 55 42 5f 50 52 4f 43 53 29 20 2a 2f 0a 49 STUB_PROCS) */.I
3af0: 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 ndex: generic/tc
3b00: 6c 4d 61 69 6e 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d lMain.c.========
3b10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3b20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3b30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3b40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 ===========.RCS
3b50: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
3b60: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 cl/tcl/generic/t
3b70: 63 6c 4d 61 69 6e 2e 63 2c 76 0a 72 65 74 72 69 clMain.c,v.retri
3b80: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
3b90: 2e 32 30 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e .20.diff -u -r1.
3ba0: 32 30 20 74 63 6c 4d 61 69 6e 2e 63 0a 2d 2d 2d 20 tclMain.c.---
3bb0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 4d 61 69 6e generic/tclMain
3bc0: 2e 63 09 32 39 20 4d 61 79 20 32 30 30 32 20 32 .c.29 May 2002 2
3bd0: 32 3a 35 39 3a 33 33 20 2d 30 30 30 30 09 31 2e 2:59:33 -0000.1.
3be0: 32 30 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 20.+++ generic/t
3bf0: 63 6c 4d 61 69 6e 2e 63 09 35 20 53 65 70 20 32 clMain.c.5 Sep 2
3c00: 30 30 33 20 32 31 3a 32 33 3a 32 36 20 2d 30 30 003 21:23:26 -00
3c10: 30 30 0a 40 40 20 2d 33 32 2c 36 20 2b 33 32 2c 00.@@ -32,6 +32,
3c20: 37 20 40 40 0a 20 23 65 6e 64 69 66 0a 20 0a 20 7 @@. #endif. .
3c30: 73 74 61 74 69 63 20 54 63 6c 5f 4f 62 6a 20 2a static Tcl_Obj *
3c40: 74 63 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 tclStartupScript
3c50: 50 61 74 68 20 3d 20 4e 55 4c 4c 3b 0a 2b 73 74 Path = NULL;.+st
3c60: 61 74 69 63 20 54 63 6c 5f 4f 62 6a 20 2a 74 63 atic Tcl_Obj *tc
3c70: 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 45 6e lStartupScriptEn
3c80: 63 6f 64 69 6e 67 20 3d 20 4e 55 4c 4c 3b 0a 20 coding = NULL;.
3c90: 0a 20 73 74 61 74 69 63 20 54 63 6c 5f 4d 61 69 . static Tcl_Mai
3ca0: 6e 4c 6f 6f 70 50 72 6f 63 20 2a 6d 61 69 6e 4c nLoopProc *mainL
3cb0: 6f 6f 70 50 72 6f 63 20 3d 20 4e 55 4c 4c 3b 0a oopProc = NULL;.
3cc0: 20 0a 40 40 20 2d 37 33 2c 33 32 20 2b 37 34 2c .@@ -73,32 +74,
3cd0: 31 30 32 20 40 40 0a 20 2f 2a 0a 20 20 2a 2d 2d 102 @@. /*. *--
3ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3d10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3d20: 2d 2d 2d 2d 0a 20 20 2a 0a 2d 20 2a 20 54 63 6c ----. *.- * Tcl
3d30: 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 74 SetStartupScript
3d40: 50 61 74 68 20 2d 2d 0a 2b 20 2a 20 54 63 6c 5f Path --.+ * Tcl_
3d50: 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 74 SetStartupScript
3d60: 20 2d 2d 0a 20 20 2a 0a 2d 20 2a 09 50 72 69 6d --. *.- *.Prim
3d70: 65 73 20 74 68 65 20 73 74 61 72 74 75 70 20 73 es the startup s
3d80: 63 72 69 70 74 20 56 46 53 20 70 61 74 68 2c 20 cript VFS path,
3d90: 75 73 65 64 20 74 6f 20 6f 76 65 72 72 69 64 65 used to override
3da0: 20 74 68 65 0a 2d 20 2a 20 20 20 20 20 20 63 6f the.- * co
3db0: 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 72 6f 63 65 mmand line proce
3dc0: 73 73 69 6e 67 2e 0a 2b 20 2a 09 53 65 74 73 20 ssing..+ *.Sets
3dd0: 74 68 65 20 70 61 74 68 20 61 6e 64 20 65 6e 63 the path and enc
3de0: 6f 64 69 6e 67 20 6f 66 20 74 68 65 20 73 74 61 oding of the sta
3df0: 72 74 75 70 20 73 63 72 69 70 74 20 74 6f 20 62 rtup script to b
3e00: 65 20 65 76 61 6c 75 61 74 65 64 0a 2b 20 2a 09 e evaluated.+ *.
3e10: 62 79 20 54 63 6c 5f 4d 61 69 6e 2c 20 75 73 65 by Tcl_Main, use
3e20: 64 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 d to override th
3e30: 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 e command line p
3e40: 72 6f 63 65 73 73 69 6e 67 2e 0a 20 20 2a 0a 20 rocessing.. *.
3e50: 20 2a 20 52 65 73 75 6c 74 73 3a 0a 20 20 2a 09 * Results:. *.
3e60: 4e 6f 6e 65 2e 20 0a 20 20 2a 0a 20 20 2a 20 53 None. . *. * S
3e70: 69 64 65 20 65 66 66 65 63 74 73 3a 0a 2d 20 2a ide effects:.- *
3e80: 09 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 .This procedure
3e90: 69 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 initializes the
3ea0: 56 46 53 20 70 61 74 68 20 6f 66 20 74 68 65 20 VFS path of the
3eb0: 54 63 6c 20 73 63 72 69 70 74 20 74 6f 0a 2d 20 Tcl script to.-
3ec0: 2a 20 20 20 20 20 20 72 75 6e 20 61 74 20 73 74 * run at st
3ed0: 61 72 74 75 70 2e 0a 20 20 2a 0a 20 20 2a 2d 2d artup.. *. *--
3ee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3ef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3f00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3f20: 2d 2d 2d 2d 0a 20 20 2a 2f 0a 2d 76 6f 69 64 20 ----. */.-void
3f30: 54 63 6c 53 65 74 53 74 61 72 74 75 70 53 63 72 TclSetStartupScr
3f40: 69 70 74 50 61 74 68 28 70 61 74 68 50 74 72 29 iptPath(pathPtr)
3f50: 0a 2d 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 70 .- Tcl_Obj *p
3f60: 61 74 68 50 74 72 3b 0a 2b 76 6f 69 64 20 54 63 athPtr;.+void Tc
3f70: 6c 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 69 l_SetStartupScri
3f80: 70 74 28 70 61 74 68 2c 20 65 6e 63 6f 64 69 6e pt(path, encodin
3f90: 67 29 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 g).+ Tcl_Obj
3fa0: 2a 70 61 74 68 3b 09 09 2f 2a 20 46 69 6c 65 73 *path;../* Files
3fb0: 79 73 74 65 6d 20 70 61 74 68 20 6f 66 20 73 74 ystem path of st
3fc0: 61 72 74 75 70 20 73 63 72 69 70 74 20 66 69 6c artup script fil
3fd0: 65 20 2a 2f 0a 2b 20 20 20 20 43 4f 4e 53 54 20 e */.+ CONST
3fe0: 63 68 61 72 20 2a 65 6e 63 6f 64 69 6e 67 3b 09 char *encoding;.
3ff0: 2f 2a 20 45 6e 63 6f 64 69 6e 67 20 6f 66 20 74 /* Encoding of t
4000: 68 65 20 64 61 74 61 20 69 6e 20 74 68 61 74 20 he data in that
4010: 66 69 6c 65 20 2a 2f 0a 20 7b 0a 2b 20 20 20 20 file */. {.+
4020: 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 45 6e 63 6f Tcl_Obj *newEnco
4030: 64 69 6e 67 20 3d 20 4e 55 4c 4c 3b 0a 2b 20 20 ding = NULL;.+
4040: 20 20 69 66 20 28 65 6e 63 6f 64 69 6e 67 20 21 if (encoding !
4050: 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 6e 65 77 45 = NULL) {.+.newE
4060: 6e 63 6f 64 69 6e 67 20 3d 20 54 63 6c 5f 4e 65 ncoding = Tcl_Ne
4070: 77 53 74 72 69 6e 67 4f 62 6a 28 65 6e 63 6f 64 wStringObj(encod
4080: 69 6e 67 2c 20 2d 31 29 3b 0a 2b 20 20 20 20 7d ing, -1);.+ }
4090: 0a 2b 0a 20 20 20 20 20 69 66 20 28 74 63 6c 53 .+. if (tclS
40a0: 74 61 72 74 75 70 53 63 72 69 70 74 50 61 74 68 tartupScriptPath
40b0: 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 54 63 != NULL) {. .Tc
40c0: 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 74 l_DecrRefCount(t
40d0: 63 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 50 clStartupScriptP
40e0: 61 74 68 29 3b 0a 20 20 20 20 20 7d 0a 2d 20 20 ath);. }.-
40f0: 20 20 74 63 6c 53 74 61 72 74 75 70 53 63 72 69 tclStartupScri
4100: 70 74 50 61 74 68 20 3d 20 70 61 74 68 50 74 72 ptPath = pathPtr
4110: 3b 0a 2b 20 20 20 20 74 63 6c 53 74 61 72 74 75 ;.+ tclStartu
4120: 70 53 63 72 69 70 74 50 61 74 68 20 3d 20 70 61 pScriptPath = pa
4130: 74 68 3b 0a 20 20 20 20 20 69 66 20 28 74 63 6c th;. if (tcl
4140: 53 74 61 72 74 75 70 53 63 72 69 70 74 50 61 74 StartupScriptPat
4150: 68 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 54 h != NULL) {. .T
4160: 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 cl_IncrRefCount(
4170: 74 63 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 tclStartupScript
4180: 50 61 74 68 29 3b 0a 20 20 20 20 20 7d 0a 2b 0a Path);. }.+.
4190: 2b 20 20 20 20 69 66 20 28 74 63 6c 53 74 61 72 + if (tclStar
41a0: 74 75 70 53 63 72 69 70 74 45 6e 63 6f 64 69 6e tupScriptEncodin
41b0: 67 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 54 g != NULL) {.+.T
41c0: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
41d0: 74 63 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 tclStartupScript
41e0: 45 6e 63 6f 64 69 6e 67 29 3b 0a 2b 20 20 20 20 Encoding);.+
41f0: 7d 0a 2b 20 20 20 20 74 63 6c 53 74 61 72 74 75 }.+ tclStartu
4200: 70 53 63 72 69 70 74 45 6e 63 6f 64 69 6e 67 20 pScriptEncoding
4210: 3d 20 6e 65 77 45 6e 63 6f 64 69 6e 67 3b 0a 2b = newEncoding;.+
4220: 20 20 20 20 69 66 20 28 74 63 6c 53 74 61 72 74 if (tclStart
4230: 75 70 53 63 72 69 70 74 45 6e 63 6f 64 69 6e 67 upScriptEncoding
4240: 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 54 63 != NULL) {.+.Tc
4250: 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 74 l_IncrRefCount(t
4260: 63 6c 53 74 61 72 74 75 70 53 63 72 69 70 74 45 clStartupScriptE
4270: 6e 63 6f 64 69 6e 67 29 3b 0a 2b 20 20 20 20 7d ncoding);.+ }
4280: 0a 20 7d 0a 20 0a 2b 0c 0a 2b 2f 2a 0a 2b 20 2a . }. .+..+/*.+ *
4290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
42a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
42b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
42c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
42d0: 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 54 ------.+ *.+ * T
42e0: 63 6c 5f 47 65 74 53 74 61 72 74 75 70 53 63 72 cl_GetStartupScr
42f0: 69 70 74 20 2d 2d 0a 2b 20 2a 0a 2b 20 2a 09 47 ipt --.+ *.+ *.G
4300: 65 74 73 20 74 68 65 20 70 61 74 68 20 61 6e 64 ets the path and
4310: 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 74 68 65 encoding of the
4320: 20 73 74 61 72 74 75 70 20 73 63 72 69 70 74 20 startup script
4330: 74 6f 20 62 65 20 65 76 61 6c 75 61 74 65 64 0a to be evaluated.
4340: 2b 20 2a 09 62 79 20 54 63 6c 5f 4d 61 69 6e 2e + *.by Tcl_Main.
4350: 0a 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c 74 73 .+ *.+ * Results
4360: 3a 0a 2b 20 2a 09 54 68 65 20 70 61 74 68 20 6f :.+ *.The path o
4370: 66 20 74 68 65 20 73 74 61 72 74 75 70 20 73 63 f the startup sc
4380: 72 69 70 74 3b 20 4e 55 4c 4c 20 69 66 20 6e 6f ript; NULL if no
4390: 6e 65 20 68 61 73 20 62 65 65 6e 20 73 65 74 2e ne has been set.
43a0: 0a 2b 20 2a 0a 2b 20 2a 20 53 69 64 65 20 65 66 .+ *.+ * Side ef
43b0: 66 65 63 74 73 3a 0a 2b 20 2a 20 09 49 66 20 65 fects:.+ * .If e
43c0: 6e 63 6f 64 69 6e 67 50 74 72 20 69 73 20 6e 6f ncodingPtr is no
43d0: 74 20 4e 55 4c 4c 2c 20 73 74 6f 72 65 73 20 61 t NULL, stores a
43e0: 20 28 43 4f 4e 53 54 20 63 68 61 72 20 2a 29 20 (CONST char *)
43f0: 69 6e 20 69 74 0a 2b 20 2a 20 09 70 6f 69 6e 74 in it.+ * .point
4400: 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 63 6f 64 ing to the encod
4410: 69 6e 67 20 6e 61 6d 65 20 72 65 67 69 73 74 65 ing name registe
4420: 72 65 64 20 66 6f 72 20 74 68 65 20 73 74 61 72 red for the star
4430: 74 75 70 0a 2b 20 2a 20 09 73 63 72 69 70 74 2e tup.+ * .script.
4440: 20 20 54 63 6c 20 72 65 74 61 69 6e 73 20 6f 77 Tcl retains ow
4450: 6e 65 72 73 68 69 70 20 6f 66 20 74 68 65 20 73 nership of the s
4460: 74 72 69 6e 67 2c 20 61 6e 64 20 6d 61 79 20 66 tring, and may f
4470: 72 65 65 0a 2b 20 2a 20 09 69 74 2e 20 20 43 61 ree.+ * .it. Ca
4480: 6c 6c 65 72 20 73 68 6f 75 6c 64 20 6d 61 6b 65 ller should make
4490: 20 61 20 63 6f 70 79 20 66 6f 72 20 6c 6f 6e 67 a copy for long
44a0: 2d 74 65 72 6d 20 75 73 65 2e 0a 2b 20 2a 0a 2b -term use..+ *.+
44b0: 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d *--------------
44c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
44d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
44e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
44f0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 2f 0a 2b 54 --------.+ */.+T
4500: 63 6c 5f 4f 62 6a 20 2a 54 63 6c 5f 47 65 74 53 cl_Obj *Tcl_GetS
4510: 74 61 72 74 75 70 53 63 72 69 70 74 28 65 6e 63 tartupScript(enc
4520: 6f 64 69 6e 67 50 74 72 29 0a 2b 20 20 20 20 43 odingPtr).+ C
4530: 4f 4e 53 54 20 63 68 61 72 2a 2a 20 65 6e 63 6f ONST char** enco
4540: 64 69 6e 67 50 74 72 3b 09 2f 2a 20 57 68 65 6e dingPtr;./* When
4550: 20 6e 6f 74 20 4e 55 4c 4c 2c 20 70 6f 69 6e 74 not NULL, point
4560: 73 20 74 6f 20 73 74 6f 72 61 67 65 20 66 6f 72 s to storage for
4570: 0a 2b 09 09 09 09 20 2a 20 74 68 65 20 28 43 4f .+.... * the (CO
4580: 4e 53 54 20 63 68 61 72 20 2a 29 20 74 68 61 74 NST char *) that
4590: 20 70 6f 69 6e 74 73 20 74 6f 20 74 68 65 0a 2b points to the.+
45a0: 09 09 09 09 20 2a 20 72 65 67 69 73 74 65 72 65 .... * registere
45b0: 64 20 65 6e 63 6f 64 69 6e 67 20 6e 61 6d 65 20 d encoding name
45c0: 66 6f 72 20 74 68 65 20 73 74 61 72 74 75 70 0a for the startup.
45d0: 2b 09 09 09 09 20 2a 20 73 63 72 69 70 74 20 2a +.... * script *
45e0: 2f 0a 2b 7b 0a 2b 20 20 20 20 69 66 20 28 65 6e /.+{.+ if (en
45f0: 63 6f 64 69 6e 67 50 74 72 20 21 3d 20 4e 55 4c codingPtr != NUL
4600: 4c 29 20 7b 0a 2b 09 69 66 20 28 74 63 6c 53 74 L) {.+.if (tclSt
4610: 61 72 74 75 70 53 63 72 69 70 74 45 6e 63 6f 64 artupScriptEncod
4620: 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2b ing == NULL) {.+
4630: 09 20 20 20 20 2a 65 6e 63 6f 64 69 6e 67 50 74 . *encodingPt
4640: 72 20 3d 20 4e 55 4c 4c 3b 0a 2b 09 7d 20 65 6c r = NULL;.+.} el
4650: 73 65 20 7b 0a 2b 09 20 20 20 20 2a 65 6e 63 6f se {.+. *enco
4660: 64 69 6e 67 50 74 72 20 3d 20 54 63 6c 5f 47 65 dingPtr = Tcl_Ge
4670: 74 53 74 72 69 6e 67 28 74 63 6c 53 74 61 72 74 tString(tclStart
4680: 75 70 53 63 72 69 70 74 45 6e 63 6f 64 69 6e 67 upScriptEncoding
4690: 29 3b 0a 2b 09 7d 0a 2b 20 20 20 20 7d 0a 2b 20 );.+.}.+ }.+
46a0: 20 20 20 72 65 74 75 72 6e 20 74 63 6c 53 74 61 return tclSta
46b0: 72 74 75 70 53 63 72 69 70 74 50 61 74 68 3b 0a rtupScriptPath;.
46c0: 2b 7d 0a 2b 0a 2b 2f 2a 0a 2b 20 2a 2d 2d 2d 2d +}.+.+/*.+ *----
46d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
46e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
46f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4710: 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 54 63 6c 53 65 --.+ *.+ * TclSe
4720: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 50 61 tStartupScriptPa
4730: 74 68 20 2d 2d 0a 2b 20 2a 0a 2b 20 2a 09 50 72 th --.+ *.+ *.Pr
4740: 69 6d 65 73 20 74 68 65 20 73 74 61 72 74 75 70 imes the startup
4750: 20 73 63 72 69 70 74 20 56 46 53 20 70 61 74 68 script VFS path
4760: 2c 20 75 73 65 64 20 74 6f 20 6f 76 65 72 72 69 , used to overri
4770: 64 65 20 74 68 65 0a 2b 20 2a 20 20 20 20 20 20 de the.+ *
4780: 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 72 6f command line pro
4790: 63 65 73 73 69 6e 67 2e 0a 2b 20 2a 0a 2b 20 2a cessing..+ *.+ *
47a0: 20 52 65 73 75 6c 74 73 3a 0a 2b 20 2a 09 4e 6f Results:.+ *.No
47b0: 6e 65 2e 20 0a 2b 20 2a 0a 2b 20 2a 20 53 69 64 ne. .+ *.+ * Sid
47c0: 65 20 65 66 66 65 63 74 73 3a 0a 2b 20 2a 09 54 e effects:.+ *.T
47d0: 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 6e his procedure in
47e0: 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 56 46 itializes the VF
47f0: 53 20 70 61 74 68 20 6f 66 20 74 68 65 20 54 63 S path of the Tc
4800: 6c 20 73 63 72 69 70 74 20 74 6f 0a 2b 20 2a 20 l script to.+ *
4810: 20 20 20 20 20 72 75 6e 20 61 74 20 73 74 61 72 run at star
4820: 74 75 70 2e 0a 2b 20 2a 0a 2b 20 2a 2d 2d 2d 2d tup..+ *.+ *----
4830: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4870: 2d 2d 0a 2b 20 2a 2f 0a 2b 76 6f 69 64 20 54 63 --.+ */.+void Tc
4880: 6c 53 65 74 53 74 61 72 74 75 70 53 63 72 69 70 lSetStartupScrip
4890: 74 50 61 74 68 28 70 61 74 68 29 0a 2b 20 20 20 tPath(path).+
48a0: 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 3b 0a Tcl_Obj *path;.
48b0: 2b 7b 0a 2b 20 20 20 20 54 63 6c 5f 53 65 74 53 +{.+ Tcl_SetS
48c0: 74 61 72 74 75 70 53 63 72 69 70 74 28 70 61 74 tartupScript(pat
48d0: 68 2c 20 4e 55 4c 4c 29 3b 0a 2b 7d 0a 20 0a 20 h, NULL);.+}. .
48e0: 2f 2a 0a 20 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /*. *----------
48f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 40 20 ------------.@@
4930: 2d 31 31 38 2c 31 30 20 2b 31 38 39 2c 39 20 40 -118,10 +189,9 @
4940: 40 0a 20 20 2a 2f 0a 20 54 63 6c 5f 4f 62 6a 20 @. */. Tcl_Obj
4950: 2a 54 63 6c 47 65 74 53 74 61 72 74 75 70 53 63 *TclGetStartupSc
4960: 72 69 70 74 50 61 74 68 28 29 0a 20 7b 0a 2d 20 riptPath(). {.-
4970: 20 20 20 72 65 74 75 72 6e 20 74 63 6c 53 74 61 return tclSta
4980: 72 74 75 70 53 63 72 69 70 74 50 61 74 68 3b 0a rtupScriptPath;.
4990: 2b 20 20 20 20 72 65 74 75 72 6e 20 54 63 6c 5f + return Tcl_
49a0: 47 65 74 53 74 61 72 74 75 70 53 63 72 69 70 74 GetStartupScript
49b0: 28 4e 55 4c 4c 29 3b 0a 20 7d 0a 20 0a 2d 0a 20 (NULL);. }. .-.
49c0: 2f 2a 0a 20 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /*. *----------
49d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
49e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
49f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 2a ------------. *
4a10: 0a 40 40 20 2d 31 34 32 2c 38 20 2b 32 31 32 2c .@@ -142,8 +212,
4a20: 38 20 40 40 0a 20 76 6f 69 64 20 54 63 6c 53 65 8 @@. void TclSe
4a30: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 46 69 tStartupScriptFi
4a40: 6c 65 4e 61 6d 65 28 66 69 6c 65 4e 61 6d 65 29 leName(fileName)
4a50: 0a 20 20 20 20 20 43 4f 4e 53 54 20 63 68 61 72 . CONST char
4a60: 20 2a 66 69 6c 65 4e 61 6d 65 3b 0a 20 7b 0a 2d *fileName;. {.-
4a70: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 Tcl_Obj *pat
4a80: 68 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 53 74 hPtr = Tcl_NewSt
4a90: 72 69 6e 67 4f 62 6a 28 66 69 6c 65 4e 61 6d 65 ringObj(fileName
4aa0: 2c 2d 31 29 3b 0a 2d 20 20 20 20 54 63 6c 53 65 ,-1);.- TclSe
4ab0: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 50 61 tStartupScriptPa
4ac0: 74 68 28 70 61 74 68 50 74 72 29 3b 0a 2b 20 20 th(pathPtr);.+
4ad0: 20 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 20 Tcl_Obj *path
4ae0: 3d 20 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67 4f = Tcl_NewStringO
4af0: 62 6a 28 66 69 6c 65 4e 61 6d 65 2c 2d 31 29 3b bj(fileName,-1);
4b00: 0a 2b 20 20 20 20 54 63 6c 5f 53 65 74 53 74 61 .+ Tcl_SetSta
4b10: 72 74 75 70 53 63 72 69 70 74 28 70 61 74 68 2c rtupScript(path,
4b20: 20 4e 55 4c 4c 29 3b 0a 20 7d 0a 20 0a 20 0c 0a NULL);. }. . ..
4b30: 40 40 20 2d 31 36 35 2c 31 35 20 2b 32 33 35 2c @@ -165,15 +235,
4b40: 31 34 20 40 40 0a 20 20 2a 2f 0a 20 43 4f 4e 53 14 @@. */. CONS
4b50: 54 20 63 68 61 72 20 2a 54 63 6c 47 65 74 53 74 T char *TclGetSt
4b60: 61 72 74 75 70 53 63 72 69 70 74 46 69 6c 65 4e artupScriptFileN
4b70: 61 6d 65 28 29 0a 20 7b 0a 2d 20 20 20 20 54 63 ame(). {.- Tc
4b80: 6c 5f 4f 62 6a 20 2a 70 61 74 68 50 74 72 20 3d l_Obj *pathPtr =
4b90: 20 54 63 6c 47 65 74 53 74 61 72 74 75 70 53 63 TclGetStartupSc
4ba0: 72 69 70 74 50 61 74 68 28 29 3b 0a 2b 20 20 20 riptPath();.+
4bb0: 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 20 3d Tcl_Obj *path =
4bc0: 20 54 63 6c 5f 47 65 74 53 74 61 72 74 75 70 53 Tcl_GetStartupS
4bd0: 63 72 69 70 74 28 4e 55 4c 4c 29 3b 0a 20 0a 2d cript(NULL);. .-
4be0: 20 20 20 20 69 66 20 28 70 61 74 68 50 74 72 20 if (pathPtr
4bf0: 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 20 20 20 20 == NULL) {.+
4c00: 69 66 20 28 70 61 74 68 20 3d 3d 20 4e 55 4c 4c if (path == NULL
4c10: 29 20 7b 0a 20 09 72 65 74 75 72 6e 20 4e 55 4c ) {. .return NUL
4c20: 4c 3b 0a 20 20 20 20 20 7d 0a 2d 20 20 20 20 72 L;. }.- r
4c30: 65 74 75 72 6e 20 54 63 6c 5f 47 65 74 53 74 72 eturn Tcl_GetStr
4c40: 69 6e 67 28 70 61 74 68 50 74 72 29 3b 0a 2b 20 ing(pathPtr);.+
4c50: 20 20 20 72 65 74 75 72 6e 20 54 63 6c 5f 47 65 return Tcl_Ge
4c60: 74 53 74 72 69 6e 67 28 70 61 74 68 29 3b 0a 20 tString(path);.
4c70: 7d 0a 20 0a 2d 0a 20 0c 0a 20 2f 2a 0a 20 20 2a }. .-. .. /*. *
4c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4c90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4ca0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4cc0: 2d 2d 2d 2d 2d 2d 0a 40 40 20 2d 32 30 34 2c 38 ------.@@ -204,8
4cd0: 20 2b 32 37 33 2c 31 30 20 40 40 0a 20 09 09 09 +273,10 @@. ...
4ce0: 09 20 2a 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 . * initializati
4cf0: 6f 6e 20 62 75 74 20 62 65 66 6f 72 65 20 73 74 on but before st
4d00: 61 72 74 69 6e 67 20 74 6f 0a 20 09 09 09 09 20 arting to. ....
4d10: 2a 20 65 78 65 63 75 74 65 20 63 6f 6d 6d 61 6e * execute comman
4d20: 64 73 2e 20 2a 2f 0a 20 7b 0a 2b 20 20 20 20 54 ds. */. {.+ T
4d30: 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 3b 0a 20 20 cl_Obj *path;.
4d40: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 72 65 73 75 Tcl_Obj *resu
4d50: 6c 74 50 74 72 3b 0a 20 20 20 20 20 54 63 6c 5f ltPtr;. Tcl_
4d60: 4f 62 6a 20 2a 63 6f 6d 6d 61 6e 64 50 74 72 20 Obj *commandPtr
4d70: 3d 20 4e 55 4c 4c 3b 0a 2b 20 20 20 20 43 4f 4e = NULL;.+ CON
4d80: 53 54 20 63 68 61 72 20 2a 65 6e 63 6f 64 69 6e ST char *encodin
4d90: 67 4e 61 6d 65 20 3d 20 4e 55 4c 4c 3b 0a 20 20 gName = NULL;.
4da0: 20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 54 char buffer[T
4db0: 43 4c 5f 49 4e 54 45 47 45 52 5f 53 50 41 43 45 CL_INTEGER_SPACE
4dc0: 20 2b 20 35 5d 2c 20 2a 61 72 67 73 3b 0a 20 20 + 5], *args;.
4dd0: 20 20 20 50 72 6f 6d 70 74 54 79 70 65 20 70 72 PromptType pr
4de0: 6f 6d 70 74 20 3d 20 50 52 4f 4d 50 54 5f 53 54 ompt = PROMPT_ST
4df0: 41 52 54 3b 0a 20 20 20 20 20 69 6e 74 20 63 6f ART;. int co
4e00: 64 65 2c 20 6c 65 6e 67 74 68 2c 20 74 74 79 3b de, length, tty;
4e10: 0a 40 40 20 2d 32 32 30 2c 31 34 20 2b 32 39 31 .@@ -220,14 +291
4e20: 2c 32 37 20 40 40 0a 20 20 20 20 20 54 63 6c 5f ,27 @@. Tcl_
4e30: 49 6e 69 74 4d 65 6d 6f 72 79 28 69 6e 74 65 72 InitMemory(inter
4e40: 70 29 3b 0a 20 0a 20 20 20 20 20 2f 2a 0a 2d 20 p);. . /*.-
4e50: 20 20 20 20 2a 20 4d 61 6b 65 20 63 6f 6d 6d 61 * Make comma
4e60: 6e 64 2d 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 nd-line argument
4e70: 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 s available in t
4e80: 68 65 20 54 63 6c 20 76 61 72 69 61 62 6c 65 73 he Tcl variables
4e90: 20 22 61 72 67 63 22 0a 2d 20 20 20 20 20 2a 20 "argc".- *
4ea0: 61 6e 64 20 22 61 72 67 76 22 2e 20 20 49 66 20 and "argv". If
4eb0: 74 68 65 20 66 69 72 73 74 20 61 72 67 75 6d 65 the first argume
4ec0: 6e 74 20 64 6f 65 73 6e 27 74 20 73 74 61 72 74 nt doesn't start
4ed0: 20 77 69 74 68 20 61 20 22 2d 22 20 74 68 65 6e with a "-" then
4ee0: 0a 2d 20 20 20 20 20 2a 20 73 74 72 69 70 20 69 .- * strip i
4ef0: 74 20 6f 66 66 20 61 6e 64 20 75 73 65 20 69 74 t off and use it
4f00: 20 61 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 as the name of
4f10: 61 20 73 63 72 69 70 74 20 66 69 6c 65 20 74 6f a script file to
4f20: 20 70 72 6f 63 65 73 73 2e 0a 2b 20 20 20 20 20 process..+
4f30: 2a 20 49 66 20 74 68 65 20 61 70 70 6c 69 63 61 * If the applica
4f40: 74 69 6f 6e 20 68 61 73 20 6e 6f 74 20 61 6c 72 tion has not alr
4f50: 65 61 64 79 20 73 65 74 20 61 20 73 74 61 72 74 eady set a start
4f60: 75 70 20 73 63 72 69 70 74 2c 20 70 61 72 73 65 up script, parse
4f70: 0a 2b 20 20 20 20 20 2a 20 74 68 65 20 66 69 72 .+ * the fir
4f80: 73 74 20 66 65 77 20 63 6f 6d 6d 61 6e 64 20 6c st few command l
4f90: 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 20 74 6f ine arguments to
4fa0: 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 determine the s
4fb0: 63 72 69 70 74 0a 2b 20 20 20 20 20 2a 20 70 61 cript.+ * pa
4fc0: 74 68 20 61 6e 64 20 65 6e 63 6f 64 69 6e 67 2e th and encoding.
4fd0: 0a 20 20 20 20 20 20 2a 2f 0a 20 0a 2d 20 20 20 . */. .-
4fe0: 20 69 66 20 28 54 63 6c 47 65 74 53 74 61 72 74 if (TclGetStart
4ff0: 75 70 53 63 72 69 70 74 50 61 74 68 28 29 20 3d upScriptPath() =
5000: 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 69 66 20 28 = NULL) {.-.if (
5010: 28 61 72 67 63 20 3e 20 31 29 20 26 26 20 28 61 (argc > 1) && (a
5020: 72 67 76 5b 31 5d 5b 30 5d 20 21 3d 20 27 2d 27 rgv[1][0] != '-'
5030: 29 29 20 7b 0a 2d 09 20 20 20 20 54 63 6c 53 65 )) {.-. TclSe
5040: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 46 69 tStartupScriptFi
5050: 6c 65 4e 61 6d 65 28 61 72 67 76 5b 31 5d 29 3b leName(argv[1]);
5060: 0a 2b 20 20 20 20 69 66 20 28 4e 55 4c 4c 20 3d .+ if (NULL =
5070: 3d 20 54 63 6c 5f 47 65 74 53 74 61 72 74 75 70 = Tcl_GetStartup
5080: 53 63 72 69 70 74 28 4e 55 4c 4c 29 29 20 7b 0a Script(NULL)) {.
5090: 2b 0a 2b 09 2f 2a 20 0a 2b 09 20 2a 20 43 68 65 +.+./* .+. * Che
50a0: 63 6b 20 77 68 65 74 68 65 72 20 66 69 72 73 74 ck whether first
50b0: 20 33 20 61 72 67 73 20 28 61 72 67 76 5b 31 5d 3 args (argv[1]
50c0: 20 2d 20 61 72 67 76 5b 33 5d 29 20 6c 6f 6f 6b - argv[3]) look
50d0: 20 6c 69 6b 65 0a 2b 09 20 2a 20 09 2d 65 6e 63 like.+. * .-enc
50e0: 6f 64 69 6e 67 20 45 4e 43 4f 44 49 4e 47 20 46 oding ENCODING F
50f0: 49 4c 45 4e 41 4d 45 0a 2b 09 20 2a 20 6f 72 20 ILENAME.+. * or
5100: 6c 69 6b 65 0a 2b 09 20 2a 20 09 46 49 4c 45 4e like.+. * .FILEN
5110: 41 4d 45 0a 2b 09 20 2a 2f 0a 2b 0a 2b 09 69 66 AME.+. */.+.+.if
5120: 20 28 28 61 72 67 63 20 3e 20 33 29 20 26 26 20 ((argc > 3) &&
5130: 28 30 20 3d 3d 20 73 74 72 63 6d 70 28 22 2d 65 (0 == strcmp("-e
5140: 6e 63 6f 64 69 6e 67 22 2c 20 61 72 67 76 5b 31 ncoding", argv[1
5150: 5d 29 29 0a 2b 09 09 26 26 20 28 27 2d 27 20 21 ])).+..&& ('-' !
5160: 3d 20 61 72 67 76 5b 33 5d 5b 30 5d 29 29 20 7b = argv[3][0])) {
5170: 0a 2b 09 20 20 20 20 54 63 6c 5f 53 65 74 53 74 .+. Tcl_SetSt
5180: 61 72 74 75 70 53 63 72 69 70 74 28 54 63 6c 5f artupScript(Tcl_
5190: 4e 65 77 53 74 72 69 6e 67 4f 62 6a 28 61 72 67 NewStringObj(arg
51a0: 76 5b 33 5d 2c 20 2d 31 29 2c 20 61 72 67 76 5b v[3], -1), argv[
51b0: 32 5d 29 3b 0a 2b 09 20 20 20 20 61 72 67 63 20 2]);.+. argc
51c0: 2d 3d 20 33 3b 0a 2b 09 20 20 20 20 61 72 67 76 -= 3;.+. argv
51d0: 20 2b 3d 20 33 3b 0a 2b 09 7d 20 65 6c 73 65 20 += 3;.+.} else
51e0: 69 66 20 28 28 61 72 67 63 20 3e 20 31 29 20 26 if ((argc > 1) &
51f0: 26 20 28 27 2d 27 20 21 3d 20 61 72 67 76 5b 31 & ('-' != argv[1
5200: 5d 5b 30 5d 29 29 20 7b 0a 2b 09 20 20 20 20 54 ][0])) {.+. T
5210: 63 6c 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 cl_SetStartupScr
5220: 69 70 74 28 54 63 6c 5f 4e 65 77 53 74 72 69 6e ipt(Tcl_NewStrin
5230: 67 4f 62 6a 28 61 72 67 76 5b 31 5d 2c 20 2d 31 gObj(argv[1], -1
5240: 29 2c 20 4e 55 4c 4c 29 3b 0a 20 09 20 20 20 20 ), NULL);. .
5250: 61 72 67 63 2d 2d 3b 0a 20 09 20 20 20 20 61 72 argc--;. . ar
5260: 67 76 2b 2b 3b 0a 20 09 7d 0a 40 40 20 2d 32 34 gv++;. .}.@@ -24
5270: 35 2c 31 31 20 2b 33 32 39 2c 31 34 20 40 40 0a 5,11 +329,14 @@.
5280: 20 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 Tcl_DString
5290: 46 72 65 65 28 26 61 72 67 53 74 72 69 6e 67 29 Free(&argString)
52a0: 3b 0a 20 20 20 20 20 63 6b 66 72 65 65 28 61 72 ;. ckfree(ar
52b0: 67 73 29 3b 0a 20 0a 2d 20 20 20 20 69 66 20 28 gs);. .- if (
52c0: 54 63 6c 47 65 74 53 74 61 72 74 75 70 53 63 72 TclGetStartupScr
52d0: 69 70 74 50 61 74 68 28 29 20 3d 3d 20 4e 55 4c iptPath() == NUL
52e0: 4c 29 20 7b 0a 2b 20 20 20 20 70 61 74 68 20 3d L) {.+ path =
52f0: 20 54 63 6c 5f 47 65 74 53 74 61 72 74 75 70 53 Tcl_GetStartupS
5300: 63 72 69 70 74 28 26 65 6e 63 6f 64 69 6e 67 4e cript(&encodingN
5310: 61 6d 65 29 3b 0a 2b 20 20 20 20 69 66 20 28 70 ame);.+ if (p
5320: 61 74 68 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 ath == NULL) {.
5330: 09 54 63 6c 5f 45 78 74 65 72 6e 61 6c 54 6f 55 .Tcl_ExternalToU
5340: 74 66 44 53 74 72 69 6e 67 28 4e 55 4c 4c 2c 20 tfDString(NULL,
5350: 61 72 67 76 5b 30 5d 2c 20 2d 31 2c 20 26 61 72 argv[0], -1, &ar
5360: 67 53 74 72 69 6e 67 29 3b 0a 20 20 20 20 20 7d gString);. }
5370: 20 65 6c 73 65 20 7b 0a 2d 09 54 63 6c 53 65 74 else {.-.TclSet
5380: 53 74 61 72 74 75 70 53 63 72 69 70 74 46 69 6c StartupScriptFil
5390: 65 4e 61 6d 65 28 54 63 6c 5f 45 78 74 65 72 6e eName(Tcl_Extern
53a0: 61 6c 54 6f 55 74 66 44 53 74 72 69 6e 67 28 4e alToUtfDString(N
53b0: 55 4c 4c 2c 0a 2d 09 09 54 63 6c 47 65 74 53 74 ULL,.-..TclGetSt
53c0: 61 72 74 75 70 53 63 72 69 70 74 46 69 6c 65 4e artupScriptFileN
53d0: 61 6d 65 28 29 2c 20 2d 31 2c 20 26 61 72 67 53 ame(), -1, &argS
53e0: 74 72 69 6e 67 29 29 3b 0a 2b 09 43 4f 4e 53 54 tring));.+.CONST
53f0: 20 63 68 61 72 20 2a 70 61 74 68 4e 61 6d 65 20 char *pathName
5400: 3d 20 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 46 = Tcl_GetStringF
5410: 72 6f 6d 4f 62 6a 28 70 61 74 68 2c 20 26 6c 65 romObj(path, &le
5420: 6e 67 74 68 29 3b 0a 2b 09 54 63 6c 5f 45 78 74 ngth);.+.Tcl_Ext
5430: 65 72 6e 61 6c 54 6f 55 74 66 44 53 74 72 69 6e ernalToUtfDStrin
5440: 67 28 4e 55 4c 4c 2c 20 70 61 74 68 4e 61 6d 65 g(NULL, pathName
5450: 2c 20 6c 65 6e 67 74 68 2c 20 26 61 72 67 53 74 , length, &argSt
5460: 72 69 6e 67 29 3b 0a 2b 09 70 61 74 68 20 3d 20 ring);.+.path =
5470: 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67 4f 62 6a Tcl_NewStringObj
5480: 28 54 63 6c 5f 44 53 74 72 69 6e 67 56 61 6c 75 (Tcl_DStringValu
5490: 65 28 26 61 72 67 53 74 72 69 6e 67 29 2c 20 2d e(&argString), -
54a0: 31 29 3b 0a 2b 09 54 63 6c 5f 53 65 74 53 74 61 1);.+.Tcl_SetSta
54b0: 72 74 75 70 53 63 72 69 70 74 28 70 61 74 68 2c rtupScript(path,
54c0: 20 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 3b 0a encodingName);.
54d0: 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 54 63 }. . Tc
54e0: 6c 46 6f 72 6d 61 74 49 6e 74 28 62 75 66 66 65 lFormatInt(buffe
54f0: 72 2c 20 28 6c 6f 6e 67 29 20 61 72 67 63 2d 31 r, (long) argc-1
5500: 29 3b 0a 40 40 20 2d 32 36 31 2c 38 20 2b 33 34 );.@@ -261,8 +34
5510: 38 2c 37 20 40 40 0a 20 20 20 20 20 20 2a 2f 0a 8,7 @@. */.
5520: 20 0a 20 20 20 20 20 74 74 79 20 3d 20 69 73 61 . tty = isa
5530: 74 74 79 28 30 29 3b 0a 2d 20 20 20 20 54 63 6c tty(0);.- Tcl
5540: 5f 53 65 74 56 61 72 28 69 6e 74 65 72 70 2c 20 _SetVar(interp,
5550: 22 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 "tcl_interactive
5560: 22 2c 0a 2d 09 20 20 20 20 28 28 54 63 6c 47 65 ",.-. ((TclGe
5570: 74 53 74 61 72 74 75 70 53 63 72 69 70 74 50 61 tStartupScriptPa
5580: 74 68 28 29 20 3d 3d 20 4e 55 4c 4c 29 20 26 26 th() == NULL) &&
5590: 20 74 74 79 29 20 3f 20 22 31 22 20 3a 20 22 30 tty) ? "1" : "0
55a0: 22 2c 0a 2b 20 20 20 20 54 63 6c 5f 53 65 74 56 ",.+ Tcl_SetV
55b0: 61 72 28 69 6e 74 65 72 70 2c 20 22 74 63 6c 5f ar(interp, "tcl_
55c0: 69 6e 74 65 72 61 63 74 69 76 65 22 2c 20 28 28 interactive", ((
55d0: 70 61 74 68 20 3d 3d 20 4e 55 4c 4c 29 20 26 26 path == NULL) &&
55e0: 20 74 74 79 29 20 3f 20 22 31 22 20 3a 20 22 30 tty) ? "1" : "0
55f0: 22 2c 0a 20 09 20 20 20 20 54 43 4c 5f 47 4c 4f ",. . TCL_GLO
5600: 42 41 4c 5f 4f 4e 4c 59 29 3b 0a 20 20 20 20 20 BAL_ONLY);.
5610: 0a 20 20 20 20 20 2f 2a 0a 40 40 20 2d 32 38 35 . /*.@@ -285
5620: 2c 31 31 20 2b 33 37 31 2c 31 33 20 40 40 0a 20 ,11 +371,13 @@.
5630: 0a 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 2a . /*. *
5640: 20 49 66 20 61 20 73 63 72 69 70 74 20 66 69 6c If a script fil
5650: 65 20 77 61 73 20 73 70 65 63 69 66 69 65 64 20 e was specified
5660: 74 68 65 6e 20 6a 75 73 74 20 73 6f 75 72 63 65 then just source
5670: 20 74 68 61 74 20 66 69 6c 65 0a 2d 20 20 20 20 that file.-
5680: 20 2a 20 61 6e 64 20 71 75 69 74 2e 0a 2b 20 20 * and quit..+
5690: 20 20 20 2a 20 61 6e 64 20 71 75 69 74 2e 20 20 * and quit.
56a0: 4d 75 73 74 20 66 65 74 63 68 20 69 74 20 61 67 Must fetch it ag
56b0: 61 69 6e 2c 20 61 73 20 74 68 65 20 61 70 70 49 ain, as the appI
56c0: 6e 69 74 50 72 6f 63 20 6d 69 67 68 74 0a 2b 20 nitProc might.+
56d0: 20 20 20 20 2a 20 68 61 76 65 20 72 65 73 65 74 * have reset
56e0: 20 69 74 2e 0a 20 20 20 20 20 20 2a 2f 0a 20 0a it.. */. .
56f0: 2d 20 20 20 20 69 66 20 28 54 63 6c 47 65 74 53 - if (TclGetS
5700: 74 61 72 74 75 70 53 63 72 69 70 74 50 61 74 68 tartupScriptPath
5710: 28 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 () != NULL) {.-.
5720: 63 6f 64 65 20 3d 20 54 63 6c 5f 46 53 45 76 61 code = Tcl_FSEva
5730: 6c 46 69 6c 65 28 69 6e 74 65 72 70 2c 20 54 63 lFile(interp, Tc
5740: 6c 47 65 74 53 74 61 72 74 75 70 53 63 72 69 70 lGetStartupScrip
5750: 74 50 61 74 68 28 29 29 3b 0a 2b 20 20 20 20 70 tPath());.+ p
5760: 61 74 68 20 3d 20 54 63 6c 5f 47 65 74 53 74 61 ath = Tcl_GetSta
5770: 72 74 75 70 53 63 72 69 70 74 28 26 65 6e 63 6f rtupScript(&enco
5780: 64 69 6e 67 4e 61 6d 65 29 3b 0a 2b 20 20 20 20 dingName);.+
5790: 69 66 20 28 70 61 74 68 20 21 3d 20 4e 55 4c 4c if (path != NULL
57a0: 29 20 7b 0a 2b 09 63 6f 64 65 20 3d 20 54 63 6c ) {.+.code = Tcl
57b0: 5f 46 53 45 76 61 6c 46 69 6c 65 45 78 28 69 6e _FSEvalFileEx(in
57c0: 74 65 72 70 2c 20 70 61 74 68 2c 20 65 6e 63 6f terp, path, enco
57d0: 64 69 6e 67 4e 61 6d 65 29 3b 0a 20 09 69 66 20 dingName);. .if
57e0: 28 63 6f 64 65 20 21 3d 20 54 43 4c 5f 4f 4b 29 (code != TCL_OK)
57f0: 20 7b 0a 20 09 20 20 20 20 65 72 72 43 68 61 6e {. . errChan
5800: 6e 65 6c 20 3d 20 54 63 6c 5f 47 65 74 53 74 64 nel = Tcl_GetStd
5810: 43 68 61 6e 6e 65 6c 28 54 43 4c 5f 53 54 44 45 Channel(TCL_STDE
5820: 52 52 29 3b 0a 20 09 20 20 20 20 69 66 20 28 65 RR);. . if (e
5830: 72 72 43 68 61 6e 6e 65 6c 29 20 7b 0a 40 40 20 rrChannel) {.@@
5840: 2d 35 31 30 2c 37 20 2b 35 39 38 2c 37 20 40 40 -510,7 +598,7 @@
5850: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 54 63 . Tc
5860: 6c 5f 44 65 6c 65 74 65 49 6e 74 65 72 70 28 69 l_DeleteInterp(i
5870: 6e 74 65 72 70 29 3b 0a 20 20 20 20 20 20 20 20 nterp);.
5880: 20 7d 0a 20 20 20 20 20 7d 0a 2d 20 20 20 20 54 }. }.- T
5890: 63 6c 53 65 74 53 74 61 72 74 75 70 53 63 72 69 clSetStartupScri
58a0: 70 74 50 61 74 68 28 4e 55 4c 4c 29 3b 0a 2b 20 ptPath(NULL);.+
58b0: 20 20 20 54 63 6c 5f 53 65 74 53 74 61 72 74 75 Tcl_SetStartu
58c0: 70 53 63 72 69 70 74 28 4e 55 4c 4c 2c 20 4e 55 pScript(NULL, NU
58d0: 4c 4c 29 3b 0a 20 0a 20 20 20 20 20 2f 2a 0a 20 LL);. . /*.
58e0: 20 20 20 20 20 2a 20 49 66 20 77 65 20 67 65 74 * If we get
58f0: 20 68 65 72 65 2c 20 74 68 65 20 6d 61 73 74 65 here, the maste
5900: 72 20 69 6e 74 65 72 70 20 68 61 73 20 62 65 65 r interp has bee
5910: 6e 20 64 65 6c 65 74 65 64 2e 20 20 41 6c 6c 6f n deleted. Allo
5920: 77 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 w.Index: generic
5930: 2f 74 63 6c 53 74 75 62 49 6e 69 74 2e 63 0a 3d /tclStubInit.c.=
5940: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5950: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5960: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5970: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5980: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 ==.RCS file: /cv
5990: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 sroot/tcl/tcl/ge
59a0: 6e 65 72 69 63 2f 74 63 6c 53 74 75 62 49 6e 69 neric/tclStubIni
59b0: 74 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 t.c,v.retrieving
59c0: 20 72 65 76 69 73 69 6f 6e 20 31 2e 38 37 0a 64 revision 1.87.d
59d0: 69 66 66 20 2d 75 20 2d 72 31 2e 38 37 20 74 63 iff -u -r1.87 tc
59e0: 6c 53 74 75 62 49 6e 69 74 2e 63 0a 2d 2d 2d 20 lStubInit.c.---
59f0: 67 65 6e 65 72 69 63 2f 74 63 6c 53 74 75 62 49 generic/tclStubI
5a00: 6e 69 74 2e 63 09 32 35 20 41 75 67 20 32 30 30 nit.c.25 Aug 200
5a10: 33 20 32 30 3a 30 36 3a 33 37 20 2d 30 30 30 30 3 20:06:37 -0000
5a20: 09 31 2e 38 37 0a 2b 2b 2b 20 67 65 6e 65 72 69 .1.87.+++ generi
5a30: 63 2f 74 63 6c 53 74 75 62 49 6e 69 74 2e 63 09 c/tclStubInit.c.
5a40: 35 20 53 65 70 20 32 30 30 33 20 32 31 3a 32 33 5 Sep 2003 21:23
5a50: 3a 32 36 20 2d 30 30 30 30 0a 40 40 20 2d 32 37 :26 -0000.@@ -27
5a60: 32 2c 36 20 2b 32 37 32 2c 38 20 40 40 0a 20 20 2,6 +272,8 @@.
5a70: 20 20 20 54 63 6c 43 61 6c 6c 56 61 72 54 72 61 TclCallVarTra
5a80: 63 65 73 2c 20 2f 2a 20 31 37 35 20 2a 2f 0a 20 ces, /* 175 */.
5a90: 20 20 20 20 54 63 6c 43 6c 65 61 6e 75 70 56 61 TclCleanupVa
5aa0: 72 2c 20 2f 2a 20 31 37 36 20 2a 2f 0a 20 20 20 r, /* 176 */.
5ab0: 20 20 54 63 6c 56 61 72 45 72 72 4d 73 67 2c 20 TclVarErrMsg,
5ac0: 2f 2a 20 31 37 37 20 2a 2f 0a 2b 20 20 20 20 54 /* 177 */.+ T
5ad0: 63 6c 5f 53 65 74 53 74 61 72 74 75 70 53 63 72 cl_SetStartupScr
5ae0: 69 70 74 2c 20 2f 2a 20 31 37 38 20 2a 2f 0a 2b ipt, /* 178 */.+
5af0: 20 20 20 20 54 63 6c 5f 47 65 74 53 74 61 72 74 Tcl_GetStart
5b00: 75 70 53 63 72 69 70 74 2c 20 2f 2a 20 31 37 39 upScript, /* 179
5b10: 20 2a 2f 0a 20 7d 3b 0a 20 0a 20 54 63 6c 49 6e */. };. . TclIn
5b20: 74 50 6c 61 74 53 74 75 62 73 20 74 63 6c 49 6e tPlatStubs tclIn
5b30: 74 50 6c 61 74 53 74 75 62 73 20 3d 20 7b 0a 40 tPlatStubs = {.@
5b40: 40 20 2d 39 36 30 2c 36 20 2b 39 36 32 2c 37 20 @ -960,6 +962,7
5b50: 40 40 0a 20 20 20 20 20 54 63 6c 5f 46 69 6e 64 @@. Tcl_Find
5b60: 43 6f 6d 6d 61 6e 64 2c 20 2f 2a 20 35 31 35 20 Command, /* 515
5b70: 2a 2f 0a 20 20 20 20 20 54 63 6c 5f 47 65 74 43 */. Tcl_GetC
5b80: 6f 6d 6d 61 6e 64 46 72 6f 6d 4f 62 6a 2c 20 2f ommandFromObj, /
5b90: 2a 20 35 31 36 20 2a 2f 0a 20 20 20 20 20 54 63 * 516 */. Tc
5ba0: 6c 5f 47 65 74 43 6f 6d 6d 61 6e 64 46 75 6c 6c l_GetCommandFull
5bb0: 4e 61 6d 65 2c 20 2f 2a 20 35 31 37 20 2a 2f 0a Name, /* 517 */.
5bc0: 2b 20 20 20 20 54 63 6c 5f 46 53 45 76 61 6c 46 + Tcl_FSEvalF
5bd0: 69 6c 65 45 78 2c 20 2f 2a 20 35 31 38 20 2a 2f ileEx, /* 518 */
5be0: 0a 20 7d 3b 0a 20 0a 20 2f 2a 20 21 45 4e 44 21 . };. . /* !END!
5bf0: 3a 20 44 6f 20 6e 6f 74 20 65 64 69 74 20 61 62 : Do not edit ab
5c00: 6f 76 65 20 74 68 69 73 20 6c 69 6e 65 2e 20 2a ove this line. *
5c10: 2f 0a 49 6e 64 65 78 3a 20 6d 61 63 2f 74 63 6c /.Index: mac/tcl
5c20: 4d 61 63 52 65 73 6f 75 72 63 65 2e 63 0a 3d 3d MacResource.c.==
5c30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c70: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
5c80: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 6d 61 63 root/tcl/tcl/mac
5c90: 2f 74 63 6c 4d 61 63 52 65 73 6f 75 72 63 65 2e /tclMacResource.
5ca0: 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 c,v.retrieving r
5cb0: 65 76 69 73 69 6f 6e 20 31 2e 31 35 0a 64 69 66 evision 1.15.dif
5cc0: 66 20 2d 75 20 2d 72 31 2e 31 35 20 74 63 6c 4d f -u -r1.15 tclM
5cd0: 61 63 52 65 73 6f 75 72 63 65 2e 63 0a 2d 2d 2d acResource.c.---
5ce0: 20 6d 61 63 2f 74 63 6c 4d 61 63 52 65 73 6f 75 mac/tclMacResou
5cf0: 72 63 65 2e 63 09 31 34 20 4d 61 79 20 32 30 30 rce.c.14 May 200
5d00: 33 20 31 39 3a 32 31 3a 32 34 20 2d 30 30 30 30 3 19:21:24 -0000
5d10: 09 31 2e 31 35 0a 2b 2b 2b 20 6d 61 63 2f 74 63 .1.15.+++ mac/tc
5d20: 6c 4d 61 63 52 65 73 6f 75 72 63 65 2e 63 09 35 lMacResource.c.5
5d30: 20 53 65 70 20 32 30 30 33 20 32 31 3a 32 33 3a Sep 2003 21:23:
5d40: 32 38 20 2d 30 30 30 30 0a 40 40 20 2d 39 34 36 28 -0000.@@ -946
5d50: 2c 36 20 2b 39 34 36 2c 37 20 40 40 0a 20 20 20 ,6 +946,7 @@.
5d60: 20 20 63 68 61 72 20 2a 66 69 6c 65 4e 61 6d 65 char *fileName
5d70: 20 3d 20 4e 55 4c 4c 2c 20 2a 72 73 72 63 4e 61 = NULL, *rsrcNa
5d80: 6d 65 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 me = NULL;.
5d90: 6c 6f 6e 67 20 72 73 72 63 49 44 20 3d 20 2d 31 long rsrcID = -1
5da0: 3b 0a 20 20 20 20 20 63 68 61 72 20 2a 73 74 72 ;. char *str
5db0: 69 6e 67 3b 0a 2b 20 20 20 20 63 68 61 72 20 2a ing;.+ char *
5dc0: 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 20 3d 20 4e encodingName = N
5dd0: 55 4c 4c 3b 0a 20 20 20 20 20 69 6e 74 20 6c 65 ULL;. int le
5de0: 6e 67 74 68 3b 0a 20 0a 20 20 20 20 20 69 66 20 ngth;. . if
5df0: 28 6f 62 6a 63 20 3c 20 32 20 7c 7c 20 6f 62 6a (objc < 2 || obj
5e00: 63 20 3e 20 34 29 20 20 7b 0a 40 40 20 2d 39 36 c > 4) {.@@ -96
5e10: 38 2c 36 20 2b 39 36 39 2c 31 30 20 40 40 0a 20 8,6 +969,10 @@.
5e20: 09 69 66 20 28 54 63 6c 5f 47 65 74 4c 6f 6e 67 .if (Tcl_GetLong
5e30: 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 20 FromObj(interp,
5e40: 6f 62 6a 76 5b 32 5d 2c 20 26 72 73 72 63 49 44 objv[2], &rsrcID
5e50: 29 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 20 ) != TCL_OK) {.
5e60: 09 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f . return TCL_
5e70: 45 52 52 4f 52 3b 0a 20 09 7d 0a 2b 20 20 20 20 ERROR;. .}.+
5e80: 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 } else if (!strc
5e90: 6d 70 28 73 74 72 69 6e 67 2c 20 22 2d 65 6e 63 mp(string, "-enc
5ea0: 6f 64 69 6e 67 22 29 29 20 7b 0a 2b 09 69 66 20 oding")) {.+.if
5eb0: 28 6f 62 6a 63 20 21 3d 20 34 29 20 0a 2b 09 20 (objc != 4) .+.
5ec0: 20 20 20 67 6f 74 6f 20 73 6f 75 72 63 65 46 6d goto sourceFm
5ed0: 74 45 72 72 3b 0a 2b 09 65 6e 63 6f 64 69 6e 67 tErr;.+.encoding
5ee0: 4e 61 6d 65 20 3d 20 54 63 6c 5f 47 65 74 53 74 Name = Tcl_GetSt
5ef0: 72 69 6e 67 28 6f 62 6a 76 5b 32 5d 29 3b 0a 20 ring(objv[2]);.
5f00: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 } else {.
5f10: 20 20 09 65 72 72 53 74 72 20 3d 20 65 72 72 42 .errStr = errB
5f20: 61 64 3b 0a 20 20 20 20 20 09 67 6f 74 6f 20 73 ad;. .goto s
5f30: 6f 75 72 63 65 46 6d 74 45 72 72 3b 0a 40 40 20 ourceFmtErr;.@@
5f40: 2d 39 37 36 2c 31 33 20 2b 39 38 31 2c 31 39 20 -976,13 +981,19
5f50: 40 40 0a 20 20 20 20 20 69 66 20 28 6f 62 6a 63 @@. if (objc
5f60: 20 3d 3d 20 34 29 20 7b 0a 20 09 66 69 6c 65 4e == 4) {. .fileN
5f70: 61 6d 65 20 3d 20 54 63 6c 5f 47 65 74 53 74 72 ame = Tcl_GetStr
5f80: 69 6e 67 46 72 6f 6d 4f 62 6a 28 6f 62 6a 76 5b ingFromObj(objv[
5f90: 33 5d 2c 20 26 6c 65 6e 67 74 68 29 3b 0a 20 20 3], &length);.
5fa0: 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 69 66 20 28 }.+.+ if (
5fb0: 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 20 7b 0a encodingName) {.
5fc0: 2b 09 72 65 74 75 72 6e 20 54 63 6c 5f 46 53 45 +.return Tcl_FSE
5fd0: 76 61 6c 46 69 6c 65 45 78 28 69 6e 74 65 72 70 valFileEx(interp
5fe0: 2c 20 66 69 6c 65 4e 61 6d 65 2c 20 65 6e 63 6f , fileName, enco
5ff0: 64 69 6e 67 4e 61 6d 65 29 3b 0a 2b 20 20 20 20 dingName);.+
6000: 7d 0a 2b 0a 20 20 20 20 20 72 65 74 75 72 6e 20 }.+. return
6010: 54 63 6c 5f 4d 61 63 45 76 61 6c 52 65 73 6f 75 Tcl_MacEvalResou
6020: 72 63 65 28 69 6e 74 65 72 70 2c 20 72 73 72 63 rce(interp, rsrc
6030: 4e 61 6d 65 2c 20 72 73 72 63 49 44 2c 20 66 69 Name, rsrcID, fi
6040: 6c 65 4e 61 6d 65 29 3b 0a 20 09 0a 20 20 20 20 leName);. ..
6050: 20 73 6f 75 72 63 65 46 6d 74 45 72 72 3a 0a 20 sourceFmtErr:.
6060: 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 53 74 Tcl_AppendSt
6070: 72 69 6e 67 73 54 6f 4f 62 6a 28 54 63 6c 5f 47 ringsToObj(Tcl_G
6080: 65 74 4f 62 6a 52 65 73 75 6c 74 28 69 6e 74 65 etObjResult(inte
6090: 72 70 29 2c 20 65 72 72 53 74 72 2c 20 22 73 68 rp), errStr, "sh
60a0: 6f 75 6c 64 20 62 65 20 5c 22 22 2c 0a 20 09 09 ould be \"",. ..
60b0: 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f 62 Tcl_GetString(ob
60c0: 6a 76 5b 30 5d 29 2c 20 22 20 66 69 6c 65 4e 61 jv[0]), " fileNa
60d0: 6d 65 5c 22 20 6f 72 20 5c 22 22 2c 0a 20 09 09 me\" or \"",. ..
60e0: 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f 62 Tcl_GetString(ob
60f0: 6a 76 5b 30 5d 29 2c 09 22 20 2d 72 73 72 63 20 jv[0]),." -rsrc
6100: 6e 61 6d 65 20 3f 66 69 6c 65 4e 61 6d 65 3f 5c name ?fileName?\
6110: 22 20 6f 72 20 5c 22 22 2c 20 0a 2d 09 09 54 63 " or \"", .-..Tc
6120: 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f 62 6a 76 l_GetString(objv
6130: 5b 30 5d 29 2c 20 22 20 2d 72 73 72 63 69 64 20 [0]), " -rsrcid
6140: 69 64 20 3f 66 69 6c 65 4e 61 6d 65 3f 5c 22 22 id ?fileName?\""
6150: 2c 0a 2b 09 09 54 63 6c 5f 47 65 74 53 74 72 69 ,.+..Tcl_GetStri
6160: 6e 67 28 6f 62 6a 76 5b 30 5d 29 2c 20 22 20 2d ng(objv[0]), " -
6170: 72 73 72 63 69 64 20 69 64 20 3f 66 69 6c 65 4e rsrcid id ?fileN
6180: 61 6d 65 3f 5c 22 20 6f 72 20 5c 22 22 2c 0a 2b ame?\" or \"",.+
6190: 09 09 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 ..Tcl_GetString(
61a0: 6f 62 6a 76 5b 30 5d 29 2c 20 22 20 2d 65 6e 63 objv[0]), " -enc
61b0: 6f 64 69 6e 67 20 6e 61 6d 65 20 66 69 6c 65 4e oding name fileN
61c0: 61 6d 65 5c 22 22 2c 0a 20 09 09 28 63 68 61 72 ame\"",. ..(char
61d0: 20 2a 29 20 4e 55 4c 4c 29 3b 0a 20 20 20 20 20 *) NULL);.
61e0: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
61f0: 3b 0a 20 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 ;. }.Index: test
6200: 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 0a 3d 3d 3d s/cmdMZ.test.===
6210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6240: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6250: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 .RCS file: /cvsr
6260: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 oot/tcl/tcl/test
6270: 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 2c 76 0a 72 s/cmdMZ.test,v.r
6280: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
6290: 6f 6e 20 31 2e 31 37 0a 64 69 66 66 20 2d 75 20 on 1.17.diff -u
62a0: 2d 72 31 2e 31 37 20 63 6d 64 4d 5a 2e 74 65 73 -r1.17 cmdMZ.tes
62b0: 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 63 6d 64 4d t.--- tests/cmdM
62c0: 5a 2e 74 65 73 74 09 32 39 20 41 75 67 20 32 30 Z.test.29 Aug 20
62d0: 30 33 20 31 37 3a 34 33 3a 32 34 20 2d 30 30 30 03 17:43:24 -000
62e0: 30 09 31 2e 31 37 0a 2b 2b 2b 20 74 65 73 74 73 0.1.17.+++ tests
62f0: 2f 63 6d 64 4d 5a 2e 74 65 73 74 09 35 20 53 65 /cmdMZ.test.5 Se
6300: 70 20 32 30 30 33 20 32 31 3a 32 33 3a 32 38 20 p 2003 21:23:28
6310: 2d 30 30 30 30 0a 40 40 20 2d 31 38 37 2c 36 20 -0000.@@ -187,6
6320: 2b 31 38 37 2c 37 20 40 40 0a 20 23 20 54 68 65 +187,7 @@. # The
6330: 20 74 65 73 74 73 20 66 6f 72 20 54 63 6c 5f 53 tests for Tcl_S
6340: 63 61 6e 4f 62 6a 43 6d 64 20 61 72 65 20 69 6e canObjCmd are in
6350: 20 73 63 61 6e 2e 74 65 73 74 0a 20 0a 20 23 20 scan.test. . #
6360: 54 63 6c 5f 53 6f 75 72 63 65 4f 62 6a 43 6d 64 Tcl_SourceObjCmd
6370: 0a 2b 23 20 4d 6f 72 65 20 74 65 73 74 73 20 6f .+# More tests o
6380: 66 20 54 63 6c 5f 53 6f 75 72 63 65 4f 62 6a 43 f Tcl_SourceObjC
6390: 6d 64 20 61 72 65 20 69 6e 20 73 6f 75 72 63 65 md are in source
63a0: 2e 74 65 73 74 0a 20 0a 20 74 65 73 74 20 63 6d .test. . test cm
63b0: 64 4d 5a 2d 33 2e 31 20 7b 54 63 6c 5f 53 6f 75 dMZ-3.1 {Tcl_Sou
63c0: 72 63 65 4f 62 6a 43 6d 64 3a 20 65 72 72 6f 72 rceObjCmd: error
63d0: 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 7b 6d 61 conditions} {ma
63e0: 63 4f 6e 6c 79 7d 20 7b 0a 20 20 20 20 20 6c 69 cOnly} {. li
63f0: 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 st [catch {sourc
6400: 65 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 40 40 20 e} msg] $msg.@@
6410: 2d 31 39 34 2c 31 32 20 2b 31 39 35 2c 31 36 20 -194,12 +195,16
6420: 40 40 0a 20 74 65 73 74 20 63 6d 64 4d 5a 2d 33 @@. test cmdMZ-3
6430: 2e 32 20 7b 54 63 6c 5f 53 6f 75 72 63 65 4f 62 .2 {Tcl_SourceOb
6440: 6a 43 6d 64 3a 20 65 72 72 6f 72 20 63 6f 6e 64 jCmd: error cond
6450: 69 74 69 6f 6e 73 7d 20 7b 6d 61 63 4f 6e 6c 79 itions} {macOnly
6460: 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 } {. list [c
6470: 61 74 63 68 20 7b 73 6f 75 72 63 65 20 61 20 62 atch {source a b
6480: 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 7b } msg] $msg. } {
6490: 31 20 7b 62 61 64 20 61 72 67 75 6d 65 6e 74 3a 1 {bad argument:
64a0: 20 73 68 6f 75 6c 64 20 62 65 20 22 73 6f 75 72 should be "sour
64b0: 63 65 20 66 69 6c 65 4e 61 6d 65 22 20 6f 72 20 ce fileName" or
64c0: 22 73 6f 75 72 63 65 20 2d 72 73 72 63 20 6e 61 "source -rsrc na
64d0: 6d 65 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 20 6f me ?fileName?" o
64e0: 72 20 22 73 6f 75 72 63 65 20 2d 72 73 72 63 69 r "source -rsrci
64f0: 64 20 69 64 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 d id ?fileName?"
6500: 7d 7d 0a 2d 74 65 73 74 20 63 6d 64 4d 5a 2d 33 }}.-test cmdMZ-3
6510: 2e 33 20 7b 54 63 6c 5f 53 6f 75 72 63 65 4f 62 .3 {Tcl_SourceOb
6520: 6a 43 6d 64 3a 20 65 72 72 6f 72 20 63 6f 6e 64 jCmd: error cond
6530: 69 74 69 6f 6e 73 7d 20 7b 75 6e 69 78 4f 72 50 itions} {unixOrP
6540: 63 7d 20 7b 0a 2b 74 65 73 74 20 63 6d 64 4d 5a c} {.+test cmdMZ
6550: 2d 33 2e 33 20 7b 54 63 6c 5f 53 6f 75 72 63 65 -3.3 {Tcl_Source
6560: 4f 62 6a 43 6d 64 3a 20 65 72 72 6f 72 20 63 6f ObjCmd: error co
6570: 6e 64 69 74 69 6f 6e 73 7d 20 2d 63 6f 6e 73 74 nditions} -const
6580: 72 61 69 6e 74 73 20 7b 0a 2b 20 20 20 20 75 6e raints {.+ un
6590: 69 78 4f 72 50 63 0a 2b 7d 20 2d 62 6f 64 79 20 ixOrPc.+} -body
65a0: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 {. list [cat
65b0: 63 68 20 7b 73 6f 75 72 63 65 7d 20 6d 73 67 5d ch {source} msg]
65c0: 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 77 72 6f $msg.-} {1 {wro
65d0: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c ng # args: shoul
65e0: 64 20 62 65 20 22 73 6f 75 72 63 65 20 66 69 6c d be "source fil
65f0: 65 4e 61 6d 65 22 7d 7d 0a 2d 74 65 73 74 20 63 eName"}}.-test c
6600: 6d 64 4d 5a 2d 33 2e 34 20 7b 54 63 6c 5f 53 6f mdMZ-3.4 {Tcl_So
6610: 75 72 63 65 4f 62 6a 43 6d 64 3a 20 65 72 72 6f urceObjCmd: erro
6620: 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 7b 75 r conditions} {u
6630: 6e 69 78 4f 72 50 63 7d 20 7b 0a 2b 7d 20 2d 6d nixOrPc} {.+} -m
6640: 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c atch glob -resul
6650: 74 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 t {1 {wrong # ar
6660: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 gs: should be "s
6670: 6f 75 72 63 65 2a 66 69 6c 65 4e 61 6d 65 22 7d ource*fileName"}
6680: 7d 0a 2b 74 65 73 74 20 63 6d 64 4d 5a 2d 33 2e }.+test cmdMZ-3.
6690: 34 20 7b 54 63 6c 5f 53 6f 75 72 63 65 4f 62 6a 4 {Tcl_SourceObj
66a0: 43 6d 64 3a 20 65 72 72 6f 72 20 63 6f 6e 64 69 Cmd: error condi
66b0: 74 69 6f 6e 73 7d 20 2d 63 6f 6e 73 74 72 61 69 tions} -constrai
66c0: 6e 74 73 20 7b 0a 2b 20 20 20 20 75 6e 69 78 4f nts {.+ unixO
66d0: 72 50 63 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 20 rPc.+} -body {.
66e0: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
66f0: 7b 73 6f 75 72 63 65 20 61 20 62 7d 20 6d 73 67 {source a b} msg
6700: 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 77 72 ] $msg.-} {1 {wr
6710: 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 ong # args: shou
6720: 6c 64 20 62 65 20 22 73 6f 75 72 63 65 20 66 69 ld be "source fi
6730: 6c 65 4e 61 6d 65 22 7d 7d 0a 2b 7d 20 2d 6d 61 leName"}}.+} -ma
6740: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
6750: 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 {1 {wrong # arg
6760: 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 6f s: should be "so
6770: 75 72 63 65 2a 66 69 6c 65 4e 61 6d 65 22 7d 7d urce*fileName"}}
6780: 0a 20 74 65 73 74 20 63 6d 64 4d 5a 2d 33 2e 35 . test cmdMZ-3.5
6790: 20 7b 54 63 6c 5f 53 6f 75 72 63 65 4f 62 6a 43 {Tcl_SourceObjC
67a0: 6d 64 3a 20 65 72 72 6f 72 20 69 6e 20 73 63 72 md: error in scr
67b0: 69 70 74 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 ipt} -body {.
67c0: 20 20 73 65 74 20 66 69 6c 65 20 5b 6d 61 6b 65 set file [make
67d0: 46 69 6c 65 20 7b 0a 20 09 73 65 74 20 78 20 31 File {. .set x 1
67e0: 34 36 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 46.Index: tests/
67f0: 6d 61 69 6e 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d main.test.======
6800: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6810: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6820: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6830: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
6840: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
6850: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 6d /tcl/tcl/tests/m
6860: 61 69 6e 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 ain.test,v.retri
6870: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
6880: 2e 31 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e .13.diff -u -r1.
6890: 31 33 20 6d 61 69 6e 2e 74 65 73 74 0a 2d 2d 2d 13 main.test.---
68a0: 20 74 65 73 74 73 2f 6d 61 69 6e 2e 74 65 73 74 tests/main.test
68b0: 09 31 36 20 46 65 62 20 32 30 30 33 20 30 31 3a .16 Feb 2003 01:
68c0: 33 36 3a 33 32 20 2d 30 30 30 30 09 31 2e 31 33 36:32 -0000.1.13
68d0: 0a 2b 2b 2b 20 74 65 73 74 73 2f 6d 61 69 6e 2e .+++ tests/main.
68e0: 74 65 73 74 09 35 20 53 65 70 20 32 30 30 33 20 test.5 Sep 2003
68f0: 32 31 3a 32 33 3a 32 38 20 2d 30 30 30 30 0a 40 21:23:28 -0000.@
6900: 40 20 2d 31 33 39 2c 36 20 2b 31 33 39 2c 37 32 @ -139,6 +139,72
6910: 20 40 40 0a 20 20 20 20 20 7d 20 2d 72 65 73 75 @@. } -resu
6920: 6c 74 20 5b 6c 69 73 74 20 5b 6c 69 73 74 20 5b lt [list [list [
6930: 65 6e 63 6f 64 69 6e 67 20 63 6f 6e 76 65 72 74 encoding convert
6940: 66 72 6f 6d 20 5b 65 6e 63 6f 64 69 6e 67 20 73 from [encoding s
6950: 79 73 74 65 6d 5d 20 5c 0a 20 09 5b 65 6e 63 6f ystem] \. .[enco
6960: 64 69 6e 67 20 63 6f 6e 76 65 72 74 74 6f 20 5b ding convertto [
6970: 65 6e 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 5d encoding system]
6980: 20 5c 75 32 30 61 63 5d 5d 5d 20 7b 7d 20 30 5d \u20ac]]] {} 0]
6990: 5c 6e 0a 20 0a 2b 20 20 20 20 74 65 73 74 20 54 \n. .+ test T
69a0: 63 6c 5f 4d 61 69 6e 2d 31 2e 37 20 7b 0a 2b 09 cl_Main-1.7 {.+.
69b0: 54 63 6c 5f 4d 61 69 6e 3a 20 73 74 61 72 74 75 Tcl_Main: startu
69c0: 70 20 73 63 72 69 70 74 20 2d 20 2d 65 6e 63 6f p script - -enco
69d0: 64 69 6e 67 20 6f 70 74 69 6f 6e 0a 2b 20 20 20 ding option.+
69e0: 20 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 } -constraints
69f0: 7b 0a 2b 09 73 74 64 69 6f 0a 2b 20 20 20 20 7d {.+.stdio.+ }
6a00: 20 2d 73 65 74 75 70 20 7b 0a 2b 09 73 65 74 20 -setup {.+.set
6a10: 73 63 72 69 70 74 20 5b 6d 61 6b 65 46 69 6c 65 script [makeFile
6a20: 20 7b 7d 20 73 63 72 69 70 74 5d 0a 2b 09 72 65 {} script].+.re
6a30: 6d 6f 76 65 46 69 6c 65 20 73 63 72 69 70 74 0a moveFile script.
6a40: 2b 09 73 65 74 20 66 20 5b 6f 70 65 6e 20 24 73 +.set f [open $s
6a50: 63 72 69 70 74 20 77 5d 0a 2b 09 66 63 6f 6e 66 cript w].+.fconf
6a60: 69 67 75 72 65 20 24 66 20 2d 65 6e 63 6f 64 69 igure $f -encodi
6a70: 6e 67 20 75 74 66 2d 38 0a 2b 09 70 75 74 73 20 ng utf-8.+.puts
6a80: 24 66 20 7b 70 75 74 73 20 5b 6c 69 73 74 20 24 $f {puts [list $
6a90: 61 72 67 76 30 20 24 61 72 67 76 20 24 74 63 6c argv0 $argv $tcl
6aa0: 5f 69 6e 74 65 72 61 63 74 69 76 65 5d 7d 0a 2b _interactive]}.+
6ab0: 09 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 .puts -nonewline
6ac0: 20 24 66 20 7b 70 75 74 73 20 5b 73 74 72 69 6e $f {puts [strin
6ad0: 67 20 65 71 75 61 6c 20 5c 75 32 30 61 63 20 7d g equal \u20ac }
6ae0: 0a 2b 09 70 75 74 73 20 24 66 20 22 5c 75 32 30 .+.puts $f "\u20
6af0: 61 63 5d 22 0a 2b 09 63 6c 6f 73 65 20 24 66 0a ac]".+.close $f.
6b00: 2b 09 63 61 74 63 68 20 7b 73 65 74 20 66 20 5b +.catch {set f [
6b10: 6f 70 65 6e 20 22 7c 5b 6c 69 73 74 20 5b 69 6e open "|[list [in
6b20: 74 65 72 70 72 65 74 65 72 5d 20 2d 65 6e 63 6f terpreter] -enco
6b30: 64 69 6e 67 20 75 74 66 2d 38 20 73 63 72 69 70 ding utf-8 scrip
6b40: 74 5d 22 20 72 5d 7d 0a 2b 20 20 20 20 7d 20 2d t]" r]}.+ } -
6b50: 62 6f 64 79 20 7b 0a 2b 09 72 65 61 64 20 24 66 body {.+.read $f
6b60: 0a 2b 20 20 20 20 7d 20 2d 63 6c 65 61 6e 75 70 .+ } -cleanup
6b70: 20 7b 0a 2b 09 63 6c 6f 73 65 20 24 66 0a 2b 09 {.+.close $f.+.
6b80: 72 65 6d 6f 76 65 46 69 6c 65 20 73 63 72 69 70 removeFile scrip
6b90: 74 0a 2b 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 t.+ } -result
6ba0: 20 5b 6c 69 73 74 20 73 63 72 69 70 74 20 7b 7d [list script {}
6bb0: 20 30 5d 5c 6e 31 5c 6e 0a 2b 0a 2b 20 20 20 20 0]\n1\n.+.+
6bc0: 74 65 73 74 20 54 63 6c 5f 4d 61 69 6e 2d 31 2e test Tcl_Main-1.
6bd0: 38 20 7b 0a 2b 09 54 63 6c 5f 4d 61 69 6e 3a 20 8 {.+.Tcl_Main:
6be0: 73 74 61 72 74 75 70 20 73 63 72 69 70 74 20 2d startup script -
6bf0: 20 2d 65 6e 63 6f 64 69 6e 67 20 6f 70 74 69 6f -encoding optio
6c00: 6e 20 2d 20 6d 69 73 6d 61 74 63 68 65 64 20 65 n - mismatched e
6c10: 6e 63 6f 64 69 6e 67 73 0a 2b 20 20 20 20 7d 20 ncodings.+ }
6c20: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 0a 2b -constraints {.+
6c30: 09 73 74 64 69 6f 0a 2b 20 20 20 20 7d 20 2d 73 .stdio.+ } -s
6c40: 65 74 75 70 20 7b 0a 2b 09 73 65 74 20 73 63 72 etup {.+.set scr
6c50: 69 70 74 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 7d ipt [makeFile {}
6c60: 20 73 63 72 69 70 74 5d 0a 2b 09 72 65 6d 6f 76 script].+.remov
6c70: 65 46 69 6c 65 20 73 63 72 69 70 74 0a 2b 09 73 eFile script.+.s
6c80: 65 74 20 66 20 5b 6f 70 65 6e 20 24 73 63 72 69 et f [open $scri
6c90: 70 74 20 77 5d 0a 2b 09 66 63 6f 6e 66 69 67 75 pt w].+.fconfigu
6ca0: 72 65 20 24 66 20 2d 65 6e 63 6f 64 69 6e 67 20 re $f -encoding
6cb0: 75 74 66 2d 38 0a 2b 09 70 75 74 73 20 24 66 20 utf-8.+.puts $f
6cc0: 7b 70 75 74 73 20 5b 6c 69 73 74 20 24 61 72 67 {puts [list $arg
6cd0: 76 30 20 24 61 72 67 76 20 24 74 63 6c 5f 69 6e v0 $argv $tcl_in
6ce0: 74 65 72 61 63 74 69 76 65 5d 7d 0a 2b 09 70 75 teractive]}.+.pu
6cf0: 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 66 ts -nonewline $f
6d00: 20 7b 70 75 74 73 20 5b 73 74 72 69 6e 67 20 65 {puts [string e
6d10: 71 75 61 6c 20 5c 75 32 30 61 63 20 7d 0a 2b 09 qual \u20ac }.+.
6d20: 70 75 74 73 20 24 66 20 22 5c 75 32 30 61 63 5d puts $f "\u20ac]
6d30: 22 0a 2b 09 63 6c 6f 73 65 20 24 66 0a 2b 09 63 ".+.close $f.+.c
6d40: 61 74 63 68 20 7b 73 65 74 20 66 20 5b 6f 70 65 atch {set f [ope
6d50: 6e 20 22 7c 5b 6c 69 73 74 20 5b 69 6e 74 65 72 n "|[list [inter
6d60: 70 72 65 74 65 72 5d 20 2d 65 6e 63 6f 64 69 6e preter] -encodin
6d70: 67 20 61 73 63 69 69 20 73 63 72 69 70 74 5d 22 g ascii script]"
6d80: 20 72 5d 7d 0a 2b 20 20 20 20 7d 20 2d 62 6f 64 r]}.+ } -bod
6d90: 79 20 7b 0a 2b 09 72 65 61 64 20 24 66 0a 2b 20 y {.+.read $f.+
6da0: 20 20 20 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a } -cleanup {.
6db0: 2b 09 63 6c 6f 73 65 20 24 66 0a 2b 09 72 65 6d +.close $f.+.rem
6dc0: 6f 76 65 46 69 6c 65 20 73 63 72 69 70 74 0a 2b oveFile script.+
6dd0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 5b 6c } -result [l
6de0: 69 73 74 20 73 63 72 69 70 74 20 7b 7d 20 30 5d ist script {} 0]
6df0: 5c 6e 30 5c 6e 0a 2b 0a 2b 20 20 20 20 74 65 73 \n0\n.+.+ tes
6e00: 74 20 54 63 6c 5f 4d 61 69 6e 2d 31 2e 39 20 7b t Tcl_Main-1.9 {
6e10: 0a 2b 09 54 63 6c 5f 4d 61 69 6e 3a 20 73 74 61 .+.Tcl_Main: sta
6e20: 72 74 75 70 20 73 63 72 69 70 74 20 2d 20 2d 65 rtup script - -e
6e30: 6e 63 6f 64 69 6e 67 20 6f 70 74 69 6f 6e 20 2d ncoding option -
6e40: 20 6e 6f 20 61 62 62 72 65 76 61 74 69 6f 6e 0a no abbrevation.
6e50: 2b 20 20 20 20 7d 20 2d 63 6f 6e 73 74 72 61 69 + } -constrai
6e60: 6e 74 73 20 7b 0a 2b 09 73 74 64 69 6f 0a 2b 20 nts {.+.stdio.+
6e70: 20 20 20 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 09 } -setup {.+.
6e80: 73 65 74 20 73 63 72 69 70 74 20 5b 6d 61 6b 65 set script [make
6e90: 46 69 6c 65 20 7b 7d 20 73 63 72 69 70 74 5d 0a File {} script].
6ea0: 2b 09 72 65 6d 6f 76 65 46 69 6c 65 20 73 63 72 +.removeFile scr
6eb0: 69 70 74 0a 2b 09 73 65 74 20 66 20 5b 6f 70 65 ipt.+.set f [ope
6ec0: 6e 20 24 73 63 72 69 70 74 20 77 5d 0a 2b 09 66 n $script w].+.f
6ed0: 63 6f 6e 66 69 67 75 72 65 20 24 66 20 2d 65 6e configure $f -en
6ee0: 63 6f 64 69 6e 67 20 75 74 66 2d 38 0a 2b 09 70 coding utf-8.+.p
6ef0: 75 74 73 20 24 66 20 7b 70 75 74 73 20 5b 6c 69 uts $f {puts [li
6f00: 73 74 20 24 61 72 67 76 30 20 24 61 72 67 76 20 st $argv0 $argv
6f10: 24 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 $tcl_interactive
6f20: 5d 7d 0a 2b 09 70 75 74 73 20 2d 6e 6f 6e 65 77 ]}.+.puts -nonew
6f30: 6c 69 6e 65 20 24 66 20 7b 70 75 74 73 20 5b 73 line $f {puts [s
6f40: 74 72 69 6e 67 20 65 71 75 61 6c 20 5c 75 32 30 tring equal \u20
6f50: 61 63 20 7d 0a 2b 09 70 75 74 73 20 24 66 20 22 ac }.+.puts $f "
6f60: 5c 75 32 30 61 63 5d 22 0a 2b 09 63 6c 6f 73 65 \u20ac]".+.close
6f70: 20 24 66 0a 2b 09 63 61 74 63 68 20 7b 73 65 74 $f.+.catch {set
6f80: 20 66 20 5b 6f 70 65 6e 20 22 7c 5b 6c 69 73 74 f [open "|[list
6f90: 20 5b 69 6e 74 65 72 70 72 65 74 65 72 5d 20 2d [interpreter] -
6fa0: 65 6e 63 20 75 74 66 2d 38 20 73 63 72 69 70 74 enc utf-8 script
6fb0: 5d 22 20 72 2b 5d 7d 0a 2b 20 20 20 20 7d 20 2d ]" r+]}.+ } -
6fc0: 62 6f 64 79 20 7b 0a 2b 09 74 79 70 65 20 24 66 body {.+.type $f
6fd0: 20 7b 0a 2b 09 20 20 20 20 70 75 74 73 20 24 61 {.+. puts $a
6fe0: 72 67 76 0a 2b 09 7d 0a 2b 09 6c 69 73 74 20 5b rgv.+.}.+.list [
6ff0: 63 61 74 63 68 20 7b 67 65 74 73 20 24 66 7d 20 catch {gets $f}
7000: 6c 69 6e 65 5d 20 24 6c 69 6e 65 0a 2b 20 20 20 line] $line.+
7010: 20 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b 09 } -cleanup {.+.
7020: 63 6c 6f 73 65 20 24 66 0a 2b 09 72 65 6d 6f 76 close $f.+.remov
7030: 65 46 69 6c 65 20 73 63 72 69 70 74 0a 2b 20 20 eFile script.+
7040: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 30 20 7b } -result {0 {
7050: 2d 65 6e 63 20 75 74 66 2d 38 20 73 63 72 69 70 -enc utf-8 scrip
7060: 74 7d 7d 0a 2b 0a 20 20 20 20 20 23 20 54 65 73 t}}.+. # Tes
7070: 74 73 20 54 63 6c 5f 4d 61 69 6e 2d 32 2e 2a 3a ts Tcl_Main-2.*:
7080: 20 61 70 70 6c 69 63 61 74 69 6f 6e 2d 69 6e 69 application-ini
7090: 74 69 61 6c 69 7a 61 74 69 6f 6e 20 70 72 6f 63 tialization proc
70a0: 65 64 75 72 65 0a 20 0a 20 20 20 20 20 74 65 73 edure. . tes
70b0: 74 20 54 63 6c 5f 4d 61 69 6e 2d 32 2e 31 20 7b t Tcl_Main-2.1 {
70c0: 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 73 6f .Index: tests/so
70d0: 75 72 63 65 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d urce.test.======
70e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
70f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
7120: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
7130: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 73 /tcl/tcl/tests/s
7140: 6f 75 72 63 65 2e 74 65 73 74 2c 76 0a 72 65 74 ource.test,v.ret
7150: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
7160: 20 31 2e 38 0a 64 69 66 66 20 2d 75 20 2d 72 31 1.8.diff -u -r1
7170: 2e 38 20 73 6f 75 72 63 65 2e 74 65 73 74 0a 2d .8 source.test.-
7180: 2d 2d 20 74 65 73 74 73 2f 73 6f 75 72 63 65 2e -- tests/source.
7190: 74 65 73 74 09 35 20 4a 75 6c 20 32 30 30 32 20 test.5 Jul 2002
71a0: 31 30 3a 33 38 3a 34 33 20 2d 30 30 30 30 09 31 10:38:43 -0000.1
71b0: 2e 38 0a 2b 2b 2b 20 74 65 73 74 73 2f 73 6f 75 .8.+++ tests/sou
71c0: 72 63 65 2e 74 65 73 74 09 35 20 53 65 70 20 32 rce.test.5 Sep 2
71d0: 30 30 33 20 32 31 3a 32 33 3a 32 38 20 2d 30 30 003 21:23:28 -00
71e0: 30 30 0a 40 40 20 2d 37 2c 31 38 37 20 2b 37 2c 00.@@ -7,187 +7,
71f0: 33 38 31 20 40 40 0a 20 23 20 43 6f 70 79 72 69 381 @@. # Copyri
7200: 67 68 74 20 28 63 29 20 31 39 39 31 2d 31 39 39 ght (c) 1991-199
7210: 33 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 3 The Regents of
7220: 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 the University
7230: 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 20 of California..
7240: 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 # Copyright (c)
7250: 31 39 39 34 2d 31 39 39 36 20 53 75 6e 20 4d 69 1994-1996 Sun Mi
7260: 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e crosystems, Inc.
7270: 0a 20 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 . # Copyright (c
7280: 29 20 31 39 39 38 2d 32 30 30 30 20 62 79 20 53 ) 1998-2000 by S
7290: 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 criptics Corpora
72a0: 74 69 6f 6e 2e 0a 2b 23 20 43 6f 6e 74 72 69 62 tion..+# Contrib
72b0: 75 74 69 6f 6e 73 20 66 72 6f 6d 20 44 6f 6e 20 utions from Don
72c0: 50 6f 72 74 65 72 2c 20 4e 49 53 54 2c 20 32 30 Porter, NIST, 20
72d0: 30 33 2e 20 20 28 6e 6f 74 20 73 75 62 6a 65 63 03. (not subjec
72e0: 74 20 74 6f 20 55 53 20 63 6f 70 79 72 69 67 68 t to US copyrigh
72f0: 74 29 0a 20 23 0a 20 23 20 53 65 65 20 74 68 65 t). #. # See the
7300: 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 file "license.t
7310: 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d erms" for inform
7320: 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 ation on usage a
7330: 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f nd redistributio
7340: 6e 0a 20 23 20 6f 66 20 74 68 69 73 20 66 69 6c n. # of this fil
7350: 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 e, and for a DIS
7360: 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 CLAIMER OF ALL W
7370: 41 52 52 41 4e 54 49 45 53 2e 0a 20 23 0a 20 23 ARRANTIES.. #. #
7380: 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 RCS: @(#) $Id:
7390: 73 6f 75 72 63 65 2e 74 65 73 74 2c 76 20 31 2e source.test,v 1.
73a0: 38 20 32 30 30 32 2f 30 37 2f 30 35 20 31 30 3a 8 2002/07/05 10:
73b0: 33 38 3a 34 33 20 64 6b 66 20 45 78 70 20 24 0a 38:43 dkf Exp $.
73c0: 20 0a 2d 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 .-if {[lsearch
73d0: 5b 6e 61 6d 65 73 70 61 63 65 20 63 68 69 6c 64 [namespace child
73e0: 72 65 6e 5d 20 3a 3a 74 63 6c 74 65 73 74 5d 20 ren] ::tcltest]
73f0: 3d 3d 20 2d 31 7d 20 7b 0a 2d 20 20 20 20 70 61 == -1} {.- pa
7400: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 63 ckage require tc
7410: 6c 74 65 73 74 0a 2d 20 20 20 20 6e 61 6d 65 73 ltest.- names
7420: 70 61 63 65 20 69 6d 70 6f 72 74 20 2d 66 6f 72 pace import -for
7430: 63 65 20 3a 3a 74 63 6c 74 65 73 74 3a 3a 2a 0a ce ::tcltest::*.
7440: 2b 69 66 20 7b 5b 63 61 74 63 68 20 7b 70 61 63 +if {[catch {pac
7450: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 63 6c kage require tcl
7460: 74 65 73 74 20 32 2e 30 2e 32 7d 5d 7d 20 7b 0a test 2.0.2}]} {.
7470: 2b 20 20 20 20 70 75 74 73 20 73 74 64 65 72 72 + puts stderr
7480: 20 22 53 6b 69 70 70 69 6e 67 20 74 65 73 74 73 "Skipping tests
7490: 20 69 6e 20 5b 69 6e 66 6f 20 73 63 72 69 70 74 in [info script
74a0: 5d 2e 20 74 63 6c 74 65 73 74 20 32 2e 30 2e 32 ]. tcltest 2.0.2
74b0: 20 72 65 71 75 69 72 65 64 2e 22 0a 2b 20 20 20 required.".+
74c0: 20 72 65 74 75 72 6e 0a 20 7d 0a 20 0a 2d 73 65 return. }. .-se
74d0: 74 20 73 6f 75 72 63 65 66 69 6c 65 20 5b 6d 61 t sourcefile [ma
74e0: 6b 65 46 69 6c 65 20 22 22 20 73 6f 75 72 63 65 keFile "" source
74f0: 2e 66 69 6c 65 5d 0a 2d 74 65 73 74 20 73 6f 75 .file].-test sou
7500: 72 63 65 2d 31 2e 31 20 7b 73 6f 75 72 63 65 20 rce-1.1 {source
7510: 63 6f 6d 6d 61 6e 64 7d 20 7b 0a 2b 6e 61 6d 65 command} {.+name
7520: 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 74 63 6c space eval ::tcl
7530: 3a 3a 74 65 73 74 3a 3a 73 6f 75 72 63 65 20 7b ::test::source {
7540: 0a 2b 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 .+ namespace
7550: 69 6d 70 6f 72 74 20 3a 3a 74 63 6c 74 65 73 74 import ::tcltest
7560: 3a 3a 74 65 73 74 0a 2b 20 20 20 20 6e 61 6d 65 ::test.+ name
7570: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 74 space import ::t
7580: 63 6c 74 65 73 74 3a 3a 74 65 73 74 43 6f 6e 73 cltest::testCons
7590: 74 72 61 69 6e 74 0a 2b 20 20 20 20 6e 61 6d 65 traint.+ name
75a0: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 74 space import ::t
75b0: 63 6c 74 65 73 74 3a 3a 63 6c 65 61 6e 75 70 54 cltest::cleanupT
75c0: 65 73 74 73 0a 2b 20 20 20 20 6e 61 6d 65 73 70 ests.+ namesp
75d0: 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 74 63 6c ace import ::tcl
75e0: 74 65 73 74 3a 3a 6d 61 6b 65 46 69 6c 65 0a 2b test::makeFile.+
75f0: 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 69 6d namespace im
7600: 70 6f 72 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a port ::tcltest::
7610: 72 65 6d 6f 76 65 46 69 6c 65 0a 2b 0a 2b 74 65 removeFile.+.+te
7620: 73 74 20 73 6f 75 72 63 65 2d 31 2e 31 20 7b 73 st source-1.1 {s
7630: 6f 75 72 63 65 20 63 6f 6d 6d 61 6e 64 7d 20 2d ource command} -
7640: 73 65 74 75 70 20 7b 0a 20 20 20 20 20 73 65 74 setup {. set
7650: 20 78 20 22 6f 6c 64 20 78 20 76 61 6c 75 65 22 x "old x value"
7660: 0a 20 20 20 20 20 73 65 74 20 79 20 22 6f 6c 64 . set y "old
7670: 20 79 20 76 61 6c 75 65 22 0a 20 20 20 20 20 73 y value". s
7680: 65 74 20 7a 20 22 6f 6c 64 20 7a 20 76 61 6c 75 et z "old z valu
7690: 65 22 0a 2d 20 20 20 20 6d 61 6b 65 46 69 6c 65 e".- makeFile
76a0: 20 7b 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 {.+ set sour
76b0: 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 cefile [makeFile
76c0: 20 7b 0a 20 09 73 65 74 20 78 20 32 32 0a 20 09 {. .set x 22. .
76d0: 73 65 74 20 79 20 33 33 0a 20 09 73 65 74 20 7a set y 33. .set z
76e0: 20 34 34 0a 2d 20 20 20 20 7d 20 73 6f 75 72 63 44.- } sourc
76f0: 65 2e 66 69 6c 65 0a 2b 20 20 20 20 7d 20 73 6f e.file.+ } so
7700: 75 72 63 65 2e 66 69 6c 65 5d 0a 2b 7d 20 2d 62 urce.file].+} -b
7710: 6f 64 79 20 7b 0a 20 20 20 20 20 73 6f 75 72 63 ody {. sourc
7720: 65 20 24 73 6f 75 72 63 65 66 69 6c 65 0a 20 20 e $sourcefile.
7730: 20 20 20 6c 69 73 74 20 24 78 20 24 79 20 24 7a list $x $y $z
7740: 0a 2d 7d 20 7b 32 32 20 33 33 20 34 34 7d 0a 2d .-} {22 33 44}.-
7750: 74 65 73 74 20 73 6f 75 72 63 65 2d 31 2e 32 20 test source-1.2
7760: 7b 73 6f 75 72 63 65 20 63 6f 6d 6d 61 6e 64 7d {source command}
7770: 20 7b 0a 2d 20 20 20 20 6d 61 6b 65 46 69 6c 65 {.- makeFile
7780: 20 7b 6c 69 73 74 20 72 65 73 75 6c 74 7d 20 73 {list result} s
7790: 6f 75 72 63 65 2e 66 69 6c 65 0a 2d 20 20 20 20 ource.file.-
77a0: 73 6f 75 72 63 65 20 24 73 6f 75 72 63 65 66 69 source $sourcefi
77b0: 6c 65 0a 2d 7d 20 72 65 73 75 6c 74 0a 2d 74 65 le.-} result.-te
77c0: 73 74 20 73 6f 75 72 63 65 2d 31 2e 33 20 7b 73 st source-1.3 {s
77d0: 6f 75 72 63 65 20 63 6f 6d 6d 61 6e 64 7d 20 7b ource command} {
77e0: 0a 2d 20 20 20 20 73 65 74 20 79 20 7b 5c 20 7d .- set y {\ }
77f0: 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b .+} -cleanup {.+
7800: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 73 removeFile s
7810: 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d 20 2d 72 ource.file.+} -r
7820: 65 73 75 6c 74 20 7b 32 32 20 33 33 20 34 34 7d esult {22 33 44}
7830: 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 2d .+.+test source-
7840: 31 2e 32 20 7b 73 6f 75 72 63 65 20 63 6f 6d 6d 1.2 {source comm
7850: 61 6e 64 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 20 and} -setup {.+
7860: 20 20 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c set sourcefil
7870: 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 6c 69 73 e [makeFile {lis
7880: 74 20 72 65 73 75 6c 74 7d 20 73 6f 75 72 63 65 t result} source
7890: 2e 66 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 .file].+} -body
78a0: 7b 0a 2b 20 20 20 20 73 6f 75 72 63 65 20 24 73 {.+ source $s
78b0: 6f 75 72 63 65 66 69 6c 65 0a 2b 7d 20 2d 63 6c ourcefile.+} -cl
78c0: 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d eanup {.+ rem
78d0: 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 oveFile source.f
78e0: 69 6c 65 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 72 ile.+} -result r
78f0: 65 73 75 6c 74 0a 20 0a 2b 74 65 73 74 20 73 6f esult. .+test so
7900: 75 72 63 65 2d 31 2e 33 20 7b 73 6f 75 72 63 65 urce-1.3 {source
7910: 20 63 6f 6d 6d 61 6e 64 7d 20 2d 73 65 74 75 70 command} -setup
7920: 20 7b 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 {.+ set sour
7930: 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 cefile [makeFile
7940: 20 7b 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 5d {} source.file]
7950: 0a 20 20 20 20 20 73 65 74 20 66 64 20 5b 6f 70 . set fd [op
7960: 65 6e 20 24 73 6f 75 72 63 65 66 69 6c 65 20 77 en $sourcefile w
7970: 5d 0a 20 20 20 20 20 66 63 6f 6e 66 69 67 75 72 ]. fconfigur
7980: 65 20 24 66 64 20 2d 74 72 61 6e 73 6c 61 74 69 e $fd -translati
7990: 6f 6e 20 6c 66 0a 2d 20 20 20 20 70 75 74 73 20 on lf.- puts
79a0: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 66 64 20 22 -nonewline $fd "
79b0: 6c 69 73 74 20 61 20 62 20 63 20 22 0a 2d 20 20 list a b c ".-
79c0: 20 20 70 75 74 73 20 24 66 64 20 5b 73 74 72 69 puts $fd [stri
79d0: 6e 67 20 69 6e 64 65 78 20 24 79 20 30 5d 0a 2b ng index $y 0].+
79e0: 20 20 20 20 70 75 74 73 20 24 66 64 20 22 6c 69 puts $fd "li
79f0: 73 74 20 61 20 62 20 63 20 5c 5c 22 0a 20 20 20 st a b c \\".
7a00: 20 20 70 75 74 73 20 24 66 64 20 22 64 20 65 20 puts $fd "d e
7a10: 66 22 0a 20 20 20 20 20 63 6c 6f 73 65 20 24 66 f". close $f
7a20: 64 0a 2d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 20 d.-.+} -body {.
7a30: 20 20 20 20 73 6f 75 72 63 65 20 24 73 6f 75 72 source $sour
7a40: 63 65 66 69 6c 65 0a 2d 7d 20 7b 61 20 62 20 63 cefile.-} {a b c
7a50: 20 64 20 65 20 66 7d 0a 2b 7d 20 2d 63 6c 65 61 d e f}.+} -clea
7a60: 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 nup {.+ remov
7a70: 65 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c eFile source.fil
7a80: 65 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 7b 61 20 e.+} -result {a
7a90: 62 20 63 20 64 20 65 20 66 7d 0a 2b 0a 20 0a 2d b c d e f}.+. .-
7aa0: 74 65 73 74 20 73 6f 75 72 63 65 2d 32 2e 33 20 test source-2.3
7ab0: 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 20 63 6f {source error co
7ac0: 6e 64 69 74 69 6f 6e 73 7d 20 7b 0a 2d 20 20 20 nditions} {.-
7ad0: 20 6d 61 6b 65 46 69 6c 65 20 7b 0a 2b 74 65 73 makeFile {.+tes
7ae0: 74 20 73 6f 75 72 63 65 2d 32 2e 33 20 7b 73 6f t source-2.3 {so
7af0: 75 72 63 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 urce error condi
7b00: 74 69 6f 6e 73 7d 20 2d 73 65 74 75 70 20 7b 0a tions} -setup {.
7b10: 2b 20 20 20 20 73 65 74 20 73 6f 75 72 63 65 66 + set sourcef
7b20: 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 0a ile [makeFile {.
7b30: 20 09 73 65 74 20 78 20 31 34 36 0a 20 09 65 72 .set x 146. .er
7b40: 72 6f 72 20 22 65 72 72 6f 72 20 69 6e 20 73 6f ror "error in so
7b50: 75 72 63 65 64 20 66 69 6c 65 22 0a 20 09 73 65 urced file". .se
7b60: 74 20 79 20 24 78 0a 2d 20 20 20 20 7d 20 73 6f t y $x.- } so
7b70: 75 72 63 65 2e 66 69 6c 65 0a 2d 20 20 20 20 6c urce.file.- l
7b80: 69 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 ist [catch {sour
7b90: 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 7d 20 ce $sourcefile}
7ba0: 6d 73 67 5d 20 24 6d 73 67 20 24 65 72 72 6f 72 msg] $msg $error
7bb0: 49 6e 66 6f 0a 2d 7d 20 5b 6c 69 73 74 20 31 20 Info.-} [list 1
7bc0: 7b 65 72 72 6f 72 20 69 6e 20 73 6f 75 72 63 65 {error in source
7bd0: 64 20 66 69 6c 65 7d 20 22 65 72 72 6f 72 20 69 d file} "error i
7be0: 6e 20 73 6f 75 72 63 65 64 20 66 69 6c 65 0a 2b n sourced file.+
7bf0: 20 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 6c } source.fil
7c00: 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 e].+} -body {.+
7c10: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
7c20: 73 6f 75 72 63 65 20 24 73 6f 75 72 63 65 66 69 source $sourcefi
7c30: 6c 65 7d 20 6d 73 67 5d 20 24 6d 73 67 20 24 3a le} msg] $msg $:
7c40: 3a 65 72 72 6f 72 49 6e 66 6f 0a 2b 7d 20 2d 63 :errorInfo.+} -c
7c50: 6c 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 leanup {.+ re
7c60: 6d 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 2e moveFile source.
7c70: 66 69 6c 65 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 file.+} -match g
7c80: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 5b 6c 69 73 lob -result [lis
7c90: 74 20 31 20 7b 65 72 72 6f 72 20 69 6e 20 73 6f t 1 {error in so
7ca0: 75 72 63 65 64 20 66 69 6c 65 7d 20 5c 0a 2b 09 urced file} \.+.
7cb0: 7b 65 72 72 6f 72 20 69 6e 20 73 6f 75 72 63 65 {error in source
7cc0: 64 20 66 69 6c 65 0a 20 20 20 20 20 77 68 69 6c d file. whil
7cd0: 65 20 65 78 65 63 75 74 69 6e 67 0a 2d 5c 22 65 e executing.-\"e
7ce0: 72 72 6f 72 20 5c 22 65 72 72 6f 72 20 69 6e 20 rror \"error in
7cf0: 73 6f 75 72 63 65 64 20 66 69 6c 65 5c 22 5c 22 sourced file\"\"
7d00: 0a 2d 20 20 20 20 28 66 69 6c 65 20 5c 22 24 73 .- (file \"$s
7d10: 6f 75 72 63 65 66 69 6c 65 5c 22 20 6c 69 6e 65 ourcefile\" line
7d20: 20 33 29 0a 2b 22 65 72 72 6f 72 20 22 65 72 72 3).+"error "err
7d30: 6f 72 20 69 6e 20 73 6f 75 72 63 65 64 20 66 69 or in sourced fi
7d40: 6c 65 22 22 0a 2b 20 20 20 20 28 66 69 6c 65 20 le"".+ (file
7d50: 22 2a 73 6f 75 72 63 65 2e 66 69 6c 65 22 20 6c "*source.file" l
7d60: 69 6e 65 20 33 29 0a 20 20 20 20 20 69 6e 76 6f ine 3). invo
7d70: 6b 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e 0a ked from within.
7d80: 2d 5c 22 73 6f 75 72 63 65 20 5c 24 73 6f 75 72 -\"source \$sour
7d90: 63 65 66 69 6c 65 5c 22 22 5d 0a 2d 74 65 73 74 cefile\""].-test
7da0: 20 73 6f 75 72 63 65 2d 32 2e 34 20 7b 73 6f 75 source-2.4 {sou
7db0: 72 63 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 rce error condit
7dc0: 69 6f 6e 73 7d 20 7b 0a 2d 20 20 20 20 6d 61 6b ions} {.- mak
7dd0: 65 46 69 6c 65 20 7b 62 72 65 61 6b 7d 20 73 6f eFile {break} so
7de0: 75 72 63 65 2e 66 69 6c 65 0a 2d 20 20 20 20 63 urce.file.- c
7df0: 61 74 63 68 20 7b 73 6f 75 72 63 65 20 24 73 6f atch {source $so
7e00: 75 72 63 65 66 69 6c 65 7d 0a 2d 7d 20 33 0a 2d urcefile}.-} 3.-
7e10: 74 65 73 74 20 73 6f 75 72 63 65 2d 32 2e 35 20 test source-2.5
7e20: 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 20 63 6f {source error co
7e30: 6e 64 69 74 69 6f 6e 73 7d 20 7b 0a 2d 20 20 20 nditions} {.-
7e40: 20 6d 61 6b 65 46 69 6c 65 20 7b 63 6f 6e 74 69 makeFile {conti
7e50: 6e 75 65 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 nue} source.file
7e60: 0a 2d 20 20 20 20 63 61 74 63 68 20 7b 73 6f 75 .- catch {sou
7e70: 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 7d rce $sourcefile}
7e80: 0a 2d 7d 20 34 0a 2d 74 65 73 74 20 73 6f 75 72 .-} 4.-test sour
7e90: 63 65 2d 32 2e 36 20 7b 73 6f 75 72 63 65 20 65 ce-2.6 {source e
7ea0: 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d rror conditions}
7eb0: 20 7b 0a 2d 20 20 20 20 6e 6f 72 6d 61 6c 69 7a {.- normaliz
7ec0: 65 4d 73 67 20 5b 6c 69 73 74 20 5b 63 61 74 63 eMsg [list [catc
7ed0: 68 20 7b 73 6f 75 72 63 65 20 5f 6e 6f 6e 5f 65 h {source _non_e
7ee0: 78 69 73 74 65 6e 74 5f 7d 20 6d 73 67 5d 20 24 xistent_} msg] $
7ef0: 6d 73 67 20 24 65 72 72 6f 72 43 6f 64 65 5d 0a msg $errorCode].
7f00: 2d 7d 20 7b 31 20 7b 63 6f 75 6c 64 6e 27 74 20 -} {1 {couldn't
7f10: 72 65 61 64 20 66 69 6c 65 20 22 5f 6e 6f 6e 5f read file "_non_
7f20: 65 78 69 73 74 65 6e 74 5f 22 3a 20 6e 6f 20 73 existent_": no s
7f30: 75 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 65 uch file or dire
7f40: 63 74 6f 72 79 7d 20 7b 70 6f 73 69 78 20 65 6e ctory} {posix en
7f50: 6f 65 6e 74 20 7b 6e 6f 20 73 75 63 68 20 66 69 oent {no such fi
7f60: 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 7d le or directory}
7f70: 7d 7d 0a 2b 22 73 6f 75 72 63 65 20 24 73 6f 75 }}.+"source $sou
7f80: 72 63 65 66 69 6c 65 22 7d 5d 0a 2b 0a 2b 74 65 rcefile"}].+.+te
7f90: 73 74 20 73 6f 75 72 63 65 2d 32 2e 34 20 7b 73 st source-2.4 {s
7fa0: 6f 75 72 63 65 20 65 72 72 6f 72 20 63 6f 6e 64 ource error cond
7fb0: 69 74 69 6f 6e 73 7d 20 2d 73 65 74 75 70 20 7b itions} -setup {
7fc0: 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 63 65 .+ set source
7fd0: 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b file [makeFile {
7fe0: 62 72 65 61 6b 7d 20 73 6f 75 72 63 65 2e 66 69 break} source.fi
7ff0: 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b le].+} -body {.+
8000: 20 20 20 20 73 6f 75 72 63 65 20 24 73 6f 75 72 source $sour
8010: 63 65 66 69 6c 65 0a 2b 7d 20 2d 63 6c 65 61 6e cefile.+} -clean
8020: 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 up {.+ remove
8030: 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 File source.file
8040: 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 .+} -returnCodes
8050: 20 62 72 65 61 6b 0a 2b 0a 2b 74 65 73 74 20 73 break.+.+test s
8060: 6f 75 72 63 65 2d 32 2e 35 20 7b 73 6f 75 72 63 ource-2.5 {sourc
8070: 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f e error conditio
8080: 6e 73 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 20 20 ns} -setup {.+
8090: 20 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c 65 set sourcefile
80a0: 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 63 6f 6e 74 [makeFile {cont
80b0: 69 6e 75 65 7d 20 73 6f 75 72 63 65 2e 66 69 6c inue} source.fil
80c0: 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 e].+} -body {.+
80d0: 20 20 20 73 6f 75 72 63 65 20 24 73 6f 75 72 63 source $sourc
80e0: 65 66 69 6c 65 0a 2b 7d 20 2d 63 6c 65 61 6e 75 efile.+} -cleanu
80f0: 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 p {.+ removeF
8100: 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a ile source.file.
8110: 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 +} -returnCodes
8120: 63 6f 6e 74 69 6e 75 65 0a 20 0a 2d 74 65 73 74 continue. .-test
8130: 20 73 6f 75 72 63 65 2d 33 2e 31 20 7b 72 65 74 source-3.1 {ret
8140: 75 72 6e 20 69 6e 20 6d 69 64 64 6c 65 20 6f 66 urn in middle of
8150: 20 73 6f 75 72 63 65 20 66 69 6c 65 7d 20 7b 0a source file} {.
8160: 2d 20 20 20 20 6d 61 6b 65 46 69 6c 65 20 7b 0a - makeFile {.
8170: 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 32 2e 36 +test source-2.6
8180: 20 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 20 63 {source error c
8190: 6f 6e 64 69 74 69 6f 6e 73 7d 20 2d 73 65 74 75 onditions} -setu
81a0: 70 20 7b 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 p {.+ set sou
81b0: 72 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c rcefile [makeFil
81c0: 65 20 7b 7d 20 5f 6e 6f 6e 5f 65 78 69 73 74 65 e {} _non_existe
81d0: 6e 74 5f 5d 0a 2b 20 20 20 20 72 65 6d 6f 76 65 nt_].+ remove
81e0: 46 69 6c 65 20 5f 6e 6f 6e 5f 65 78 69 73 74 65 File _non_existe
81f0: 6e 74 5f 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b nt_.+} -body {.+
8200: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
8210: 7b 73 6f 75 72 63 65 20 24 73 6f 75 72 63 65 66 {source $sourcef
8220: 69 6c 65 7d 20 6d 73 67 5d 20 24 6d 73 67 20 24 ile} msg] $msg $
8230: 3a 3a 65 72 72 6f 72 43 6f 64 65 0a 2b 7d 20 2d ::errorCode.+} -
8240: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
8250: 6c 74 20 5b 6c 69 73 74 20 31 20 5c 0a 2b 09 7b lt [list 1 \.+.{
8260: 63 6f 75 6c 64 6e 27 74 20 72 65 61 64 20 66 69 couldn't read fi
8270: 6c 65 20 22 2a 5f 6e 6f 6e 5f 65 78 69 73 74 65 le "*_non_existe
8280: 6e 74 5f 22 3a 20 6e 6f 20 73 75 63 68 20 66 69 nt_": no such fi
8290: 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 7d le or directory}
82a0: 20 5c 0a 2b 09 7b 50 4f 53 49 58 20 45 4e 4f 45 \.+.{POSIX ENOE
82b0: 4e 54 20 7b 6e 6f 20 73 75 63 68 20 66 69 6c 65 NT {no such file
82c0: 20 6f 72 20 64 69 72 65 63 74 6f 72 79 7d 7d 5d or directory}}]
82d0: 0a 2b 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 72 63 .+.+.+test sourc
82e0: 65 2d 33 2e 31 20 7b 72 65 74 75 72 6e 20 69 6e e-3.1 {return in
82f0: 20 6d 69 64 64 6c 65 20 6f 66 20 73 6f 75 72 63 middle of sourc
8300: 65 20 66 69 6c 65 7d 20 2d 73 65 74 75 70 20 7b e file} -setup {
8310: 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 63 65 .+ set source
8320: 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b file [makeFile {
8330: 0a 20 09 73 65 74 20 78 20 6e 65 77 2d 78 0a 20 . .set x new-x.
8340: 09 72 65 74 75 72 6e 20 61 6c 6c 44 6f 6e 65 0a .return allDone.
8350: 20 09 73 65 74 20 79 20 6e 65 77 2d 79 0a 2d 20 .set y new-y.-
8360: 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 } source.file
8370: 0a 2b 20 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 .+ } source.f
8380: 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a ile].+} -body {.
8390: 20 20 20 20 20 73 65 74 20 78 20 6f 6c 64 2d 78 set x old-x
83a0: 0a 20 20 20 20 20 73 65 74 20 79 20 6f 6c 64 2d . set y old-
83b0: 79 0a 20 20 20 20 20 73 65 74 20 7a 20 5b 73 6f y. set z [so
83c0: 75 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 urce $sourcefile
83d0: 5d 0a 20 20 20 20 20 6c 69 73 74 20 24 78 20 24 ]. list $x $
83e0: 79 20 24 7a 0a 2d 7d 20 7b 6e 65 77 2d 78 20 6f y $z.-} {new-x o
83f0: 6c 64 2d 79 20 61 6c 6c 44 6f 6e 65 7d 0a 2d 74 ld-y allDone}.-t
8400: 65 73 74 20 73 6f 75 72 63 65 2d 33 2e 32 20 7b est source-3.2 {
8410: 72 65 74 75 72 6e 20 77 69 74 68 20 73 70 65 63 return with spec
8420: 69 61 6c 20 63 6f 64 65 20 65 74 63 2e 7d 20 7b ial code etc.} {
8430: 0a 2d 20 20 20 20 6d 61 6b 65 46 69 6c 65 20 7b .- makeFile {
8440: 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b .+} -cleanup {.+
8450: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 73 removeFile s
8460: 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d 20 2d 72 ource.file.+} -r
8470: 65 73 75 6c 74 20 7b 6e 65 77 2d 78 20 6f 6c 64 esult {new-x old
8480: 2d 79 20 61 6c 6c 44 6f 6e 65 7d 0a 2b 0a 2b 74 -y allDone}.+.+t
8490: 65 73 74 20 73 6f 75 72 63 65 2d 33 2e 32 20 7b est source-3.2 {
84a0: 72 65 74 75 72 6e 20 77 69 74 68 20 73 70 65 63 return with spec
84b0: 69 61 6c 20 63 6f 64 65 20 65 74 63 2e 7d 20 2d ial code etc.} -
84c0: 73 65 74 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 setup {.+ set
84d0: 20 73 6f 75 72 63 65 66 69 6c 65 20 5b 6d 61 6b sourcefile [mak
84e0: 65 46 69 6c 65 20 7b 0a 20 09 73 65 74 20 78 20 eFile {. .set x
84f0: 6e 65 77 2d 78 0a 20 09 72 65 74 75 72 6e 20 2d new-x. .return -
8500: 63 6f 64 65 20 62 72 65 61 6b 20 22 53 69 6c 6c code break "Sill
8510: 79 20 72 65 73 75 6c 74 22 0a 20 09 73 65 74 20 y result". .set
8520: 79 20 6e 65 77 2d 79 0a 2d 20 20 20 20 7d 20 73 y new-y.- } s
8530: 6f 75 72 63 65 2e 66 69 6c 65 0a 2d 20 20 20 20 ource.file.-
8540: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 list [catch {sou
8550: 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 7d rce $sourcefile}
8560: 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 33 msg] $msg.-} {3
8570: 20 7b 53 69 6c 6c 79 20 72 65 73 75 6c 74 7d 7d {Silly result}}
8580: 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 33 2e .-test source-3.
8590: 33 20 7b 72 65 74 75 72 6e 20 77 69 74 68 20 73 3 {return with s
85a0: 70 65 63 69 61 6c 20 63 6f 64 65 20 65 74 63 2e pecial code etc.
85b0: 7d 20 7b 0a 2d 20 20 20 20 6d 61 6b 65 46 69 6c } {.- makeFil
85c0: 65 20 7b 0a 2b 20 20 20 20 7d 20 73 6f 75 72 63 e {.+ } sourc
85d0: 65 2e 66 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 e.file].+} -body
85e0: 20 7b 0a 2b 20 20 20 73 6f 75 72 63 65 20 24 73 {.+ source $s
85f0: 6f 75 72 63 65 66 69 6c 65 0a 2b 7d 20 2d 63 6c ourcefile.+} -cl
8600: 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d eanup {.+ rem
8610: 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 oveFile source.f
8620: 69 6c 65 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f ile.+} -returnCo
8630: 64 65 73 20 62 72 65 61 6b 20 2d 72 65 73 75 6c des break -resul
8640: 74 20 7b 53 69 6c 6c 79 20 72 65 73 75 6c 74 7d t {Silly result}
8650: 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 2d .+.+test source-
8660: 33 2e 33 20 7b 72 65 74 75 72 6e 20 77 69 74 68 3.3 {return with
8670: 20 73 70 65 63 69 61 6c 20 63 6f 64 65 20 65 74 special code et
8680: 63 2e 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 20 20 c.} -setup {.+
8690: 20 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c 65 set sourcefile
86a0: 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 0a 20 09 73 [makeFile {. .s
86b0: 65 74 20 78 20 6e 65 77 2d 78 0a 20 09 72 65 74 et x new-x. .ret
86c0: 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 urn -code error
86d0: 22 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f 72 "Simulated error
86e0: 22 0a 20 09 73 65 74 20 79 20 6e 65 77 2d 79 0a ". .set y new-y.
86f0: 2d 20 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 - } source.fi
8700: 6c 65 0a 2d 20 20 20 20 6c 69 73 74 20 5b 63 61 le.- list [ca
8710: 74 63 68 20 7b 73 6f 75 72 63 65 20 24 73 6f 75 tch {source $sou
8720: 72 63 65 66 69 6c 65 7d 20 6d 73 67 5d 20 24 6d rcefile} msg] $m
8730: 73 67 20 24 65 72 72 6f 72 49 6e 66 6f 20 24 65 sg $errorInfo $e
8740: 72 72 6f 72 43 6f 64 65 0a 2d 7d 20 7b 31 20 7b rrorCode.-} {1 {
8750: 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f 72 7d Simulated error}
8760: 20 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f {Simulated erro
8770: 72 0a 2b 20 20 20 20 7d 20 73 6f 75 72 63 65 2e r.+ } source.
8780: 66 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b file].+} -body {
8790: 0a 2b 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 .+ list [catc
87a0: 68 20 7b 73 6f 75 72 63 65 20 24 73 6f 75 72 63 h {source $sourc
87b0: 65 66 69 6c 65 7d 20 6d 73 67 5d 20 24 6d 73 67 efile} msg] $msg
87c0: 20 24 3a 3a 65 72 72 6f 72 49 6e 66 6f 20 24 3a $::errorInfo $:
87d0: 3a 65 72 72 6f 72 43 6f 64 65 0a 2b 7d 20 2d 63 :errorCode.+} -c
87e0: 6c 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 leanup {.+ re
87f0: 6d 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 2e moveFile source.
8800: 66 69 6c 65 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 file.+} -result
8810: 7b 31 20 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 {1 {Simulated er
8820: 72 6f 72 7d 20 7b 53 69 6d 75 6c 61 74 65 64 20 ror} {Simulated
8830: 65 72 72 6f 72 0a 20 20 20 20 20 77 68 69 6c 65 error. while
8840: 20 65 78 65 63 75 74 69 6e 67 0a 20 22 73 6f 75 executing. "sou
8850: 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 22 rce $sourcefile"
8860: 7d 20 4e 4f 4e 45 7d 0a 2d 74 65 73 74 20 73 6f } NONE}.-test so
8870: 75 72 63 65 2d 33 2e 34 20 7b 72 65 74 75 72 6e urce-3.4 {return
8880: 20 77 69 74 68 20 73 70 65 63 69 61 6c 20 63 6f with special co
8890: 64 65 20 65 74 63 2e 7d 20 7b 0a 2d 20 20 20 20 de etc.} {.-
88a0: 6d 61 6b 65 46 69 6c 65 20 7b 0a 2b 0a 2b 74 65 makeFile {.+.+te
88b0: 73 74 20 73 6f 75 72 63 65 2d 33 2e 34 20 7b 72 st source-3.4 {r
88c0: 65 74 75 72 6e 20 77 69 74 68 20 73 70 65 63 69 eturn with speci
88d0: 61 6c 20 63 6f 64 65 20 65 74 63 2e 7d 20 2d 73 al code etc.} -s
88e0: 65 74 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 20 etup {.+ set
88f0: 73 6f 75 72 63 65 66 69 6c 65 20 5b 6d 61 6b 65 sourcefile [make
8900: 46 69 6c 65 20 7b 0a 20 09 73 65 74 20 78 20 6e File {. .set x n
8910: 65 77 2d 78 0a 20 09 72 65 74 75 72 6e 20 2d 63 ew-x. .return -c
8920: 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 ode error -error
8930: 69 6e 66 6f 20 22 53 69 6d 75 6c 61 74 65 64 20 info "Simulated
8940: 65 72 72 6f 72 49 6e 66 6f 20 73 74 75 66 66 22 errorInfo stuff"
8950: 0a 20 09 73 65 74 20 79 20 6e 65 77 2d 79 0a 2d . .set y new-y.-
8960: 20 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 6c } source.fil
8970: 65 0a 2d 20 20 20 20 6c 69 73 74 20 5b 63 61 74 e.- list [cat
8980: 63 68 20 7b 73 6f 75 72 63 65 20 24 73 6f 75 72 ch {source $sour
8990: 63 65 66 69 6c 65 7d 20 6d 73 67 5d 20 24 6d 73 cefile} msg] $ms
89a0: 67 20 24 65 72 72 6f 72 49 6e 66 6f 20 24 65 72 g $errorInfo $er
89b0: 72 6f 72 43 6f 64 65 0a 2d 7d 20 7b 31 20 7b 7d rorCode.-} {1 {}
89c0: 20 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f {Simulated erro
89d0: 72 49 6e 66 6f 20 73 74 75 66 66 0a 2b 20 20 20 rInfo stuff.+
89e0: 20 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 5d 0a } source.file].
89f0: 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 +} -body {.+
8a00: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 list [catch {sou
8a10: 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 7d rce $sourcefile}
8a20: 20 6d 73 67 5d 20 24 6d 73 67 20 24 3a 3a 65 72 msg] $msg $::er
8a30: 72 6f 72 49 6e 66 6f 20 24 3a 3a 65 72 72 6f 72 rorInfo $::error
8a40: 43 6f 64 65 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 Code.+} -cleanup
8a50: 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 {.+ removeFi
8a60: 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2b le source.file.+
8a70: 7d 20 2d 72 65 73 75 6c 74 20 7b 31 20 7b 7d 20 } -result {1 {}
8a80: 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f 72 {Simulated error
8a90: 49 6e 66 6f 20 73 74 75 66 66 0a 20 20 20 20 20 Info stuff.
8aa0: 69 6e 76 6f 6b 65 64 20 66 72 6f 6d 20 77 69 74 invoked from wit
8ab0: 68 69 6e 0a 20 22 73 6f 75 72 63 65 20 24 73 6f hin. "source $so
8ac0: 75 72 63 65 66 69 6c 65 22 7d 20 4e 4f 4e 45 7d urcefile"} NONE}
8ad0: 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 33 2e .-test source-3.
8ae0: 35 20 7b 72 65 74 75 72 6e 20 77 69 74 68 20 73 5 {return with s
8af0: 70 65 63 69 61 6c 20 63 6f 64 65 20 65 74 63 2e pecial code etc.
8b00: 7d 20 7b 0a 2d 20 20 20 20 6d 61 6b 65 46 69 6c } {.- makeFil
8b10: 65 20 7b 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 72 e {.+.+test sour
8b20: 63 65 2d 33 2e 35 20 7b 72 65 74 75 72 6e 20 77 ce-3.5 {return w
8b30: 69 74 68 20 73 70 65 63 69 61 6c 20 63 6f 64 65 ith special code
8b40: 20 65 74 63 2e 7d 20 2d 73 65 74 75 70 20 7b 0a etc.} -setup {.
8b50: 2b 20 20 20 20 73 65 74 20 73 6f 75 72 63 65 66 + set sourcef
8b60: 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 0a ile [makeFile {.
8b70: 20 09 73 65 74 20 78 20 6e 65 77 2d 78 0a 20 09 .set x new-x. .
8b80: 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 return -code err
8b90: 6f 72 20 2d 65 72 72 6f 72 69 6e 66 6f 20 22 53 or -errorinfo "S
8ba0: 69 6d 75 6c 61 74 65 64 20 65 72 72 6f 72 49 6e imulated errorIn
8bb0: 66 6f 20 73 74 75 66 66 22 20 5c 0a 20 09 09 2d fo stuff" \. ..-
8bc0: 65 72 72 6f 72 63 6f 64 65 20 7b 61 20 62 20 63 errorcode {a b c
8bd0: 7d 0a 20 09 73 65 74 20 79 20 6e 65 77 2d 79 0a }. .set y new-y.
8be0: 2d 20 20 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 - } source.fi
8bf0: 6c 65 0a 2d 20 20 20 20 6c 69 73 74 20 5b 63 61 le.- list [ca
8c00: 74 63 68 20 7b 73 6f 75 72 63 65 20 24 73 6f 75 tch {source $sou
8c10: 72 63 65 66 69 6c 65 7d 20 6d 73 67 5d 20 24 6d rcefile} msg] $m
8c20: 73 67 20 24 65 72 72 6f 72 49 6e 66 6f 20 24 65 sg $errorInfo $e
8c30: 72 72 6f 72 43 6f 64 65 0a 2d 7d 20 7b 31 20 7b rrorCode.-} {1 {
8c40: 7d 20 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 72 } {Simulated err
8c50: 6f 72 49 6e 66 6f 20 73 74 75 66 66 0a 2b 20 20 orInfo stuff.+
8c60: 20 20 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 5d } source.file]
8c70: 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 .+} -body {.+
8c80: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 6f list [catch {so
8c90: 75 72 63 65 20 24 73 6f 75 72 63 65 66 69 6c 65 urce $sourcefile
8ca0: 7d 20 6d 73 67 5d 20 24 6d 73 67 20 24 3a 3a 65 } msg] $msg $::e
8cb0: 72 72 6f 72 49 6e 66 6f 20 24 3a 3a 65 72 72 6f rrorInfo $::erro
8cc0: 72 43 6f 64 65 0a 2b 7d 20 2d 63 6c 65 61 6e 75 rCode.+} -cleanu
8cd0: 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 p {.+ removeF
8ce0: 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a ile source.file.
8cf0: 2b 7d 20 2d 72 65 73 75 6c 74 20 7b 31 20 7b 7d +} -result {1 {}
8d00: 20 7b 53 69 6d 75 6c 61 74 65 64 20 65 72 72 6f {Simulated erro
8d10: 72 49 6e 66 6f 20 73 74 75 66 66 0a 20 20 20 20 rInfo stuff.
8d20: 20 69 6e 76 6f 6b 65 64 20 66 72 6f 6d 20 77 69 invoked from wi
8d30: 74 68 69 6e 0a 20 22 73 6f 75 72 63 65 20 24 73 thin. "source $s
8d40: 6f 75 72 63 65 66 69 6c 65 22 7d 20 7b 61 20 62 ourcefile"} {a b
8d50: 20 63 7d 7d 0a 20 0a 2b 0a 20 23 20 54 65 73 74 c}}. .+. # Test
8d60: 20 66 6f 72 20 74 68 65 20 4d 61 63 69 6e 74 6f for the Macinto
8d70: 73 68 20 73 70 65 63 66 69 63 20 66 65 61 74 75 sh specfic featu
8d80: 72 65 73 20 6f 66 20 74 68 65 20 73 6f 75 72 63 res of the sourc
8d90: 65 20 63 6f 6d 6d 61 6e 64 0a 2d 74 65 73 74 20 e command.-test
8da0: 73 6f 75 72 63 65 2d 34 2e 31 20 7b 73 6f 75 72 source-4.1 {sour
8db0: 63 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 ce error conditi
8dc0: 6f 6e 73 7d 20 7b 6d 61 63 4f 6e 6c 79 7d 20 7b ons} {macOnly} {
8dd0: 0a 2d 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 .- list [catc
8de0: 68 20 7b 73 6f 75 72 63 65 20 2d 72 73 72 63 20 h {source -rsrc
8df0: 5f 6e 6f 5f 65 78 69 73 74 5f 7d 20 6d 73 67 5d _no_exist_} msg]
8e00: 20 24 6d 73 67 0a 2d 7d 20 5b 6c 69 73 74 20 31 $msg.-} [list 1
8e10: 20 22 54 68 65 20 72 65 73 6f 75 72 63 65 20 5c "The resource \
8e20: 22 5f 6e 6f 5f 65 78 69 73 74 5f 5c 22 20 63 6f "_no_exist_\" co
8e30: 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 uld not be loade
8e40: 64 20 66 72 6f 6d 20 61 70 70 6c 69 63 61 74 69 d from applicati
8e50: 6f 6e 2e 22 5d 0a 2d 74 65 73 74 20 73 6f 75 72 on."].-test sour
8e60: 63 65 2d 34 2e 32 20 7b 73 6f 75 72 63 65 20 65 ce-4.2 {source e
8e70: 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d rror conditions}
8e80: 20 7b 6d 61 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 {macOnly} {.-
8e90: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 list [catch {s
8ea0: 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 62 61 ource -rsrcid ba
8eb0: 64 5f 69 64 7d 20 6d 73 67 5d 20 24 6d 73 67 0a d_id} msg] $msg.
8ec0: 2d 7d 20 5b 6c 69 73 74 20 31 20 22 65 78 70 65 -} [list 1 "expe
8ed0: 63 74 65 64 20 69 6e 74 65 67 65 72 20 62 75 74 cted integer but
8ee0: 20 67 6f 74 20 5c 22 62 61 64 5f 69 64 5c 22 22 got \"bad_id\""
8ef0: 5d 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 34 ].-test source-4
8f00: 2e 33 20 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 .3 {source error
8f10: 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 7b 6d 61 conditions} {ma
8f20: 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 20 20 6c 69 cOnly} {.- li
8f30: 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 st [catch {sourc
8f40: 65 20 2d 72 73 72 63 20 72 73 72 63 4e 61 6d 65 e -rsrc rsrcName
8f50: 20 66 69 6c 65 4e 61 6d 65 20 65 78 74 72 61 7d fileName extra}
8f60: 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 msg] $msg.-} {1
8f70: 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 {wrong # args:
8f80: 73 68 6f 75 6c 64 20 62 65 20 22 73 6f 75 72 63 should be "sourc
8f90: 65 20 66 69 6c 65 4e 61 6d 65 22 20 6f 72 20 22 e fileName" or "
8fa0: 73 6f 75 72 63 65 20 2d 72 73 72 63 20 6e 61 6d source -rsrc nam
8fb0: 65 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 20 6f 72 e ?fileName?" or
8fc0: 20 22 73 6f 75 72 63 65 20 2d 72 73 72 63 69 64 "source -rsrcid
8fd0: 20 69 64 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 7d id ?fileName?"}
8fe0: 7d 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 34 }.-test source-4
8ff0: 2e 34 20 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 .4 {source error
9000: 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 7b 6d 61 conditions} {ma
9010: 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 20 20 6c 69 cOnly} {.- li
9020: 73 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 st [catch {sourc
9030: 65 20 6e 6f 6e 5f 73 77 69 74 63 68 20 72 73 72 e non_switch rsr
9040: 63 4e 61 6d 65 7d 20 6d 73 67 5d 20 24 6d 73 67 cName} msg] $msg
9050: 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 61 72 67 75 .-} {1 {bad argu
9060: 6d 65 6e 74 3a 20 73 68 6f 75 6c 64 20 62 65 20 ment: should be
9070: 22 73 6f 75 72 63 65 20 66 69 6c 65 4e 61 6d 65 "source fileName
9080: 22 20 6f 72 20 22 73 6f 75 72 63 65 20 2d 72 73 " or "source -rs
9090: 72 63 20 6e 61 6d 65 20 3f 66 69 6c 65 4e 61 6d rc name ?fileNam
90a0: 65 3f 22 20 6f 72 20 22 73 6f 75 72 63 65 20 2d e?" or "source -
90b0: 72 73 72 63 69 64 20 69 64 20 3f 66 69 6c 65 4e rsrcid id ?fileN
90c0: 61 6d 65 3f 22 7d 7d 0a 2d 74 65 73 74 20 73 6f ame?"}}.-test so
90d0: 75 72 63 65 2d 34 2e 35 20 7b 73 6f 75 72 63 65 urce-4.5 {source
90e0: 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e error condition
90f0: 73 7d 20 7b 6d 61 63 4f 6e 6c 79 7d 20 7b 0a 2d s} {macOnly} {.-
9100: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
9110: 7b 73 6f 75 72 63 65 20 2d 62 61 64 5f 73 77 69 {source -bad_swi
9120: 74 63 68 20 61 72 67 75 6d 65 6e 74 7d 20 6d 73 tch argument} ms
9130: 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 g] $msg.-} {1 {b
9140: 61 64 20 61 72 67 75 6d 65 6e 74 3a 20 73 68 6f ad argument: sho
9150: 75 6c 64 20 62 65 20 22 73 6f 75 72 63 65 20 66 uld be "source f
9160: 69 6c 65 4e 61 6d 65 22 20 6f 72 20 22 73 6f 75 ileName" or "sou
9170: 72 63 65 20 2d 72 73 72 63 20 6e 61 6d 65 20 3f rce -rsrc name ?
9180: 66 69 6c 65 4e 61 6d 65 3f 22 20 6f 72 20 22 73 fileName?" or "s
9190: 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 69 64 ource -rsrcid id
91a0: 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 7d 7d 0a 2d ?fileName?"}}.-
91b0: 74 65 73 74 20 73 6f 75 72 63 65 2d 35 2e 31 20 test source-5.1
91c0: 7b 73 6f 75 72 63 65 20 72 65 73 6f 75 72 63 65 {source resource
91d0: 20 66 69 6c 65 73 7d 20 7b 6d 61 63 4f 6e 6c 79 files} {macOnly
91e0: 7d 20 7b 0a 2d 20 20 20 20 6c 69 73 74 20 5b 63 } {.- list [c
91f0: 61 74 63 68 20 7b 73 6f 75 72 63 65 20 2d 72 73 atch {source -rs
9200: 72 63 20 72 73 72 63 4e 61 6d 65 20 62 61 64 5f rc rsrcName bad_
9210: 66 69 6c 65 7d 20 6d 73 67 5d 20 24 6d 73 67 0a file} msg] $msg.
9220: 2d 7d 20 5b 6c 69 73 74 20 31 20 22 45 72 72 6f -} [list 1 "Erro
9230: 72 20 66 69 6e 64 69 6e 67 20 74 68 65 20 66 69 r finding the fi
9240: 6c 65 3a 20 5c 22 62 61 64 5f 66 69 6c 65 5c 22 le: \"bad_file\"
9250: 2e 22 5d 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 ."].-test source
9260: 2d 35 2e 32 20 7b 73 6f 75 72 63 65 20 72 65 73 -5.2 {source res
9270: 6f 75 72 63 65 20 66 69 6c 65 73 7d 20 7b 6d 61 ource files} {ma
9280: 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 20 20 6d 61 cOnly} {.- ma
9290: 6b 65 46 69 6c 65 20 7b 72 65 74 75 72 6e 7d 20 keFile {return}
92a0: 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2d 20 20 20 source.file.-
92b0: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 6f list [catch {so
92c0: 75 72 63 65 20 2d 72 73 72 63 20 72 73 72 63 4e urce -rsrc rsrcN
92d0: 61 6d 65 20 24 73 6f 75 72 63 65 66 69 6c 65 7d ame $sourcefile}
92e0: 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 5b 6c msg] $msg.-} [l
92f0: 69 73 74 20 31 20 22 45 72 72 6f 72 20 72 65 61 ist 1 "Error rea
9300: 64 69 6e 67 20 74 68 65 20 66 69 6c 65 3a 20 5c ding the file: \
9310: 22 24 73 6f 75 72 63 65 66 69 6c 65 5c 22 2e 22 "$sourcefile\"."
9320: 5d 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 35 ].-test source-5
9330: 2e 33 20 7b 73 6f 75 72 63 65 20 72 65 73 6f 75 .3 {source resou
9340: 72 63 65 20 66 69 6c 65 73 7d 20 7b 6d 61 63 4f rce files} {macO
9350: 6e 6c 79 7d 20 7b 0a 2d 20 20 20 20 74 65 73 74 nly} {.- test
9360: 57 72 69 74 65 54 65 78 74 52 65 73 6f 75 72 63 WriteTextResourc
9370: 65 20 2d 72 73 72 63 20 72 73 72 63 4e 61 6d 65 e -rsrc rsrcName
9380: 20 2d 66 69 6c 65 20 72 73 72 63 2e 66 69 6c 65 -file rsrc.file
9390: 20 7b 73 65 74 20 6d 73 67 32 20 6f 6b 3b 20 72 {set msg2 ok; r
93a0: 65 74 75 72 6e 7d 0a 2d 20 20 20 20 73 65 74 20 eturn}.- set
93b0: 72 65 73 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 result [catch {s
93c0: 6f 75 72 63 65 20 2d 72 73 72 63 20 72 73 72 63 ource -rsrc rsrc
93d0: 4e 61 6d 65 20 72 73 72 63 2e 66 69 6c 65 7d 20 Name rsrc.file}
93e0: 6d 73 67 5d 0a 2b 74 65 73 74 20 73 6f 75 72 63 msg].+test sourc
93f0: 65 2d 34 2e 31 20 7b 73 6f 75 72 63 65 20 65 72 e-4.1 {source er
9400: 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 ror conditions}
9410: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 6d 61 63 -constraints mac
9420: 4f 6e 6c 79 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 Only -body {.+
9430: 20 20 73 6f 75 72 63 65 20 2d 72 73 72 63 20 5f source -rsrc _
9440: 6e 6f 5f 65 78 69 73 74 5f 0a 2b 7d 20 2d 72 65 no_exist_.+} -re
9450: 73 75 6c 74 20 7b 54 68 65 20 72 65 73 6f 75 72 sult {The resour
9460: 63 65 20 22 5f 6e 6f 5f 65 78 69 73 74 5f 22 20 ce "_no_exist_"
9470: 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 could not be loa
9480: 64 65 64 20 66 72 6f 6d 20 61 70 70 6c 69 63 61 ded from applica
9490: 74 69 6f 6e 2e 7d 20 5c 0a 2b 20 20 2d 72 65 74 tion.} \.+ -ret
94a0: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 0a urnCodes error .
94b0: 2b 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 34 +.+test source-4
94c0: 2e 32 20 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 .2 {source error
94d0: 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 2d 63 6f conditions} -co
94e0: 6e 73 74 72 61 69 6e 74 73 20 6d 61 63 4f 6e 6c nstraints macOnl
94f0: 79 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 y -body {.+ s
9500: 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 62 61 ource -rsrcid ba
9510: 64 5f 69 64 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 d_id.+} -returnC
9520: 6f 64 65 73 20 65 72 72 6f 72 20 2d 72 65 73 75 odes error -resu
9530: 6c 74 20 7b 65 78 70 65 63 74 65 64 20 69 6e 74 lt {expected int
9540: 65 67 65 72 20 62 75 74 20 67 6f 74 20 22 62 61 eger but got "ba
9550: 64 5f 69 64 22 7d 0a 2b 0a 2b 74 65 73 74 20 73 d_id"}.+.+test s
9560: 6f 75 72 63 65 2d 34 2e 33 20 7b 73 6f 75 72 63 ource-4.3 {sourc
9570: 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f e error conditio
9580: 6e 73 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 ns} -constraints
9590: 20 6d 61 63 4f 6e 6c 79 20 2d 62 6f 64 79 20 7b macOnly -body {
95a0: 0a 2b 20 20 20 20 73 6f 75 72 63 65 20 2d 72 73 .+ source -rs
95b0: 72 63 20 72 73 72 63 4e 61 6d 65 20 66 69 6c 65 rc rsrcName file
95c0: 4e 61 6d 65 20 65 78 74 72 61 0a 2b 7d 20 2d 72 Name extra.+} -r
95d0: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 eturnCodes error
95e0: 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 -result {wrong
95f0: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 # args: should b
9600: 65 20 22 73 6f 75 72 63 65 20 66 69 6c 65 4e 61 e "source fileNa
9610: 6d 65 22 20 6f 72 20 22 73 6f 75 72 63 65 20 2d me" or "source -
9620: 72 73 72 63 20 6e 61 6d 65 20 3f 66 69 6c 65 4e rsrc name ?fileN
9630: 61 6d 65 3f 22 20 6f 72 20 22 73 6f 75 72 63 65 ame?" or "source
9640: 20 2d 72 73 72 63 69 64 20 69 64 20 3f 66 69 6c -rsrcid id ?fil
9650: 65 4e 61 6d 65 3f 22 20 6f 72 20 22 73 6f 75 72 eName?" or "sour
9660: 63 65 20 2d 65 6e 63 6f 64 69 6e 67 20 6e 61 6d ce -encoding nam
9670: 65 20 66 69 6c 65 4e 61 6d 65 22 7d 0a 2b 0a 2b e fileName"}.+.+
9680: 74 65 73 74 20 73 6f 75 72 63 65 2d 34 2e 34 20 test source-4.4
9690: 7b 73 6f 75 72 63 65 20 65 72 72 6f 72 20 63 6f {source error co
96a0: 6e 64 69 74 69 6f 6e 73 7d 20 2d 63 6f 6e 73 74 nditions} -const
96b0: 72 61 69 6e 74 73 20 6d 61 63 4f 6e 6c 79 20 2d raints macOnly -
96c0: 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 6f 75 72 body {.+ sour
96d0: 63 65 20 6e 6f 6e 5f 73 77 69 74 63 68 20 72 73 ce non_switch rs
96e0: 72 63 4e 61 6d 65 0a 2b 7d 20 2d 72 65 74 75 72 rcName.+} -retur
96f0: 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 72 65 nCodes error -re
9700: 73 75 6c 74 20 7b 62 61 64 20 61 72 67 75 6d 65 sult {bad argume
9710: 6e 74 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 nt: should be "s
9720: 6f 75 72 63 65 20 66 69 6c 65 4e 61 6d 65 22 20 ource fileName"
9730: 6f 72 20 22 73 6f 75 72 63 65 20 2d 72 73 72 63 or "source -rsrc
9740: 20 6e 61 6d 65 20 3f 66 69 6c 65 4e 61 6d 65 3f name ?fileName?
9750: 22 20 6f 72 20 22 73 6f 75 72 63 65 20 2d 72 73 " or "source -rs
9760: 72 63 69 64 20 69 64 20 3f 66 69 6c 65 4e 61 6d rcid id ?fileNam
9770: 65 3f 22 20 6f 72 20 22 73 6f 75 72 63 65 20 2d e?" or "source -
9780: 65 6e 63 6f 64 69 6e 67 20 6e 61 6d 65 20 66 69 encoding name fi
9790: 6c 65 4e 61 6d 65 22 7d 0a 2b 0a 2b 74 65 73 74 leName"}.+.+test
97a0: 20 73 6f 75 72 63 65 2d 34 2e 35 20 7b 73 6f 75 source-4.5 {sou
97b0: 72 63 65 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 rce error condit
97c0: 69 6f 6e 73 7d 20 2d 63 6f 6e 73 74 72 61 69 6e ions} -constrain
97d0: 74 73 20 6d 61 63 4f 6e 6c 79 20 2d 62 6f 64 79 ts macOnly -body
97e0: 20 7b 0a 2b 20 20 20 20 73 6f 75 72 63 65 20 2d {.+ source -
97f0: 62 61 64 5f 73 77 69 74 63 68 20 61 72 67 75 6d bad_switch argum
9800: 65 6e 74 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f ent.+} -returnCo
9810: 64 65 73 20 65 72 72 6f 72 20 2d 72 65 73 75 6c des error -resul
9820: 74 20 7b 62 61 64 20 61 72 67 75 6d 65 6e 74 3a t {bad argument:
9830: 20 73 68 6f 75 6c 64 20 62 65 20 22 73 6f 75 72 should be "sour
9840: 63 65 20 66 69 6c 65 4e 61 6d 65 22 20 6f 72 20 ce fileName" or
9850: 22 73 6f 75 72 63 65 20 2d 72 73 72 63 20 6e 61 "source -rsrc na
9860: 6d 65 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 20 6f me ?fileName?" o
9870: 72 20 22 73 6f 75 72 63 65 20 2d 72 73 72 63 69 r "source -rsrci
9880: 64 20 69 64 20 3f 66 69 6c 65 4e 61 6d 65 3f 22 d id ?fileName?"
9890: 20 6f 72 20 22 73 6f 75 72 63 65 20 2d 65 6e 63 or "source -enc
98a0: 6f 64 69 6e 67 20 6e 61 6d 65 20 66 69 6c 65 4e oding name fileN
98b0: 61 6d 65 22 7d 0a 2b 0a 2b 20 0a 2b 74 65 73 74 ame"}.+.+ .+test
98c0: 43 6f 6e 73 74 72 61 69 6e 74 20 74 65 73 74 57 Constraint testW
98d0: 72 69 74 65 54 65 78 74 52 65 73 6f 75 72 63 65 riteTextResource
98e0: 20 5c 0a 2b 09 5b 6c 6c 65 6e 67 74 68 20 5b 69 \.+.[llength [i
98f0: 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 65 73 nfo commands tes
9900: 74 57 72 69 74 65 54 65 78 74 52 65 73 6f 75 72 tWriteTextResour
9910: 63 65 5d 5d 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 ce]].+.+test sou
9920: 72 63 65 2d 35 2e 31 20 7b 73 6f 75 72 63 65 20 rce-5.1 {source
9930: 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 7d 20 resource files}
9940: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 6d 61 63 -constraints mac
9950: 4f 6e 6c 79 20 2d 73 65 74 75 70 20 7b 0a 2b 20 Only -setup {.+
9960: 20 20 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c set sourcefil
9970: 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 7d 20 62 e [makeFile {} b
9980: 61 64 5f 66 69 6c 65 5d 0a 2b 20 20 20 20 72 65 ad_file].+ re
9990: 6d 6f 76 65 46 69 6c 65 20 62 61 64 5f 66 69 6c moveFile bad_fil
99a0: 65 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 e.+} -body {.+
99b0: 20 20 73 6f 75 72 63 65 20 2d 72 73 72 63 20 72 source -rsrc r
99c0: 73 72 63 4e 61 6d 65 20 24 73 6f 75 72 63 65 66 srcName $sourcef
99d0: 69 6c 65 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f ile.+} -returnCo
99e0: 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 des error -match
99f0: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 45 glob -result {E
9a00: 72 72 6f 72 20 66 69 6e 64 69 6e 67 20 74 68 65 rror finding the
9a10: 20 66 69 6c 65 3a 20 22 2a 62 61 64 5f 66 69 6c file: "*bad_fil
9a20: 65 22 2e 7d 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 e".}.+.+test sou
9a30: 72 63 65 2d 35 2e 32 20 7b 73 6f 75 72 63 65 20 rce-5.2 {source
9a40: 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 7d 20 resource files}
9a50: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 6d 61 63 -constraints mac
9a60: 4f 6e 6c 79 20 2d 73 65 74 75 70 20 7b 0a 2b 20 Only -setup {.+
9a70: 20 20 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c set sourcefil
9a80: 65 20 5b 6d 61 6b 65 46 69 6c 65 20 7b 72 65 74 e [makeFile {ret
9a90: 75 72 6e 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 urn} source.file
9aa0: 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 ].+} -body {.+
9ab0: 20 20 73 6f 75 72 63 65 20 2d 72 73 72 63 20 72 source -rsrc r
9ac0: 73 72 63 4e 61 6d 65 20 24 73 6f 75 72 63 65 66 srcName $sourcef
9ad0: 69 6c 65 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 ile.+} -cleanup
9ae0: 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 6c {.+ removeFil
9af0: 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d e source.file.+}
9b00: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 -returnCodes er
9b10: 72 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 ror -match glob
9b20: 5c 0a 2b 20 20 2d 72 65 73 75 6c 74 20 7b 45 72 \.+ -result {Er
9b30: 72 6f 72 20 72 65 61 64 69 6e 67 20 74 68 65 20 ror reading the
9b40: 66 69 6c 65 3a 20 22 2a 73 6f 75 72 63 65 2e 66 file: "*source.f
9b50: 69 6c 65 22 2e 7d 0a 2b 0a 2b 74 65 73 74 20 73 ile".}.+.+test s
9b60: 6f 75 72 63 65 2d 35 2e 33 20 7b 73 6f 75 72 63 ource-5.3 {sourc
9b70: 65 20 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 e resource files
9b80: 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b } -constraints {
9b90: 0a 2b 20 20 20 20 6d 61 63 4f 6e 6c 79 20 74 65 .+ macOnly te
9ba0: 73 74 57 72 69 74 65 54 65 78 74 52 65 73 6f 75 stWriteTextResou
9bb0: 72 63 65 0a 2b 7d 20 2d 73 65 74 75 70 20 7b 0a rce.+} -setup {.
9bc0: 2b 20 20 20 20 73 65 74 20 6d 73 67 32 20 75 6e + set msg2 un
9bd0: 73 65 74 0a 2b 20 20 20 20 73 65 74 20 72 73 72 set.+ set rsr
9be0: 63 46 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 cFile [makeFile
9bf0: 7b 7d 20 72 73 72 63 2e 66 69 6c 65 5d 0a 20 20 {} rsrc.file].
9c00: 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 72 73 removeFile rs
9c10: 72 63 2e 66 69 6c 65 0a 2b 20 20 20 20 74 65 73 rc.file.+ tes
9c20: 74 57 72 69 74 65 54 65 78 74 52 65 73 6f 75 72 tWriteTextResour
9c30: 63 65 20 2d 72 73 72 63 20 72 73 72 63 4e 61 6d ce -rsrc rsrcNam
9c40: 65 20 2d 66 69 6c 65 20 24 72 73 72 63 2e 66 69 e -file $rsrc.fi
9c50: 6c 65 20 7b 73 65 74 20 6d 73 67 32 20 6f 6b 3b le {set msg2 ok;
9c60: 20 72 65 74 75 72 6e 7d 0a 2b 7d 20 2d 62 6f 64 return}.+} -bod
9c70: 79 20 7b 0a 2b 20 20 20 20 73 65 74 20 72 65 73 y {.+ set res
9c80: 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 ult [catch {sour
9c90: 63 65 20 2d 72 73 72 63 20 72 73 72 63 4e 61 6d ce -rsrc rsrcNam
9ca0: 65 20 72 73 72 63 2e 66 69 6c 65 7d 20 6d 73 67 e rsrc.file} msg
9cb0: 5d 0a 20 20 20 20 20 6c 69 73 74 20 24 6d 73 67 ]. list $msg
9cc0: 32 20 24 72 65 73 75 6c 74 20 24 6d 73 67 0a 2d 2 $result $msg.-
9cd0: 7d 20 5b 6c 69 73 74 20 6f 6b 20 30 20 7b 7d 5d } [list ok 0 {}]
9ce0: 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 35 2e .-test source-5.
9cf0: 34 20 7b 73 6f 75 72 63 65 20 72 65 73 6f 75 72 4 {source resour
9d00: 63 65 20 66 69 6c 65 73 7d 20 7b 6d 61 63 4f 6e ce files} {macOn
9d10: 6c 79 7d 20 7b 0a 2d 20 20 20 20 63 61 74 63 68 ly} {.- catch
9d20: 20 7b 75 6e 73 65 74 20 6d 73 67 32 7d 0a 2d 20 {unset msg2}.-
9d30: 20 20 20 74 65 73 74 57 72 69 74 65 54 65 78 74 testWriteText
9d40: 52 65 73 6f 75 72 63 65 20 2d 72 73 72 63 20 66 Resource -rsrc f
9d50: 69 6c 65 52 73 72 63 4e 61 6d 65 20 2d 66 69 6c ileRsrcName -fil
9d60: 65 20 72 73 72 63 2e 66 69 6c 65 20 7b 73 65 74 e rsrc.file {set
9d70: 20 6d 73 67 32 20 6f 6b 3b 20 72 65 74 75 72 6e msg2 ok; return
9d80: 7d 0a 2d 20 20 20 20 73 6f 75 72 63 65 20 2d 72 }.- source -r
9d90: 73 72 63 20 66 69 6c 65 52 73 72 63 4e 61 6d 65 src fileRsrcName
9da0: 20 72 73 72 63 2e 66 69 6c 65 0a 2d 20 20 20 20 rsrc.file.-
9db0: 73 65 74 20 72 65 73 75 6c 74 20 5b 63 61 74 63 set result [catc
9dc0: 68 20 7b 73 6f 75 72 63 65 20 2d 72 73 72 63 20 h {source -rsrc
9dd0: 66 69 6c 65 52 73 72 63 4e 61 6d 65 7d 20 6d 73 fileRsrcName} ms
9de0: 67 5d 20 20 20 20 0a 2b 7d 20 2d 63 6c 65 61 6e g] .+} -clean
9df0: 75 70 20 7b 0a 20 20 20 20 20 72 65 6d 6f 76 65 up {. remove
9e00: 46 69 6c 65 20 72 73 72 63 2e 66 69 6c 65 0a 2b File rsrc.file.+
9e10: 7d 20 2d 72 65 73 75 6c 74 20 5b 6c 69 73 74 20 } -result [list
9e20: 6f 6b 20 30 20 7b 7d 5d 0a 2b 0a 2b 74 65 73 74 ok 0 {}].+.+test
9e30: 20 73 6f 75 72 63 65 2d 35 2e 34 20 7b 73 6f 75 source-5.4 {sou
9e40: 72 63 65 20 72 65 73 6f 75 72 63 65 20 66 69 6c rce resource fil
9e50: 65 73 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 es} -constraints
9e60: 20 7b 0a 2b 20 20 20 20 6d 61 63 4f 6e 6c 79 20 {.+ macOnly
9e70: 74 65 73 74 57 72 69 74 65 54 65 78 74 52 65 73 testWriteTextRes
9e80: 6f 75 72 63 65 0a 2b 7d 20 2d 73 65 74 75 70 20 ource.+} -setup
9e90: 7b 0a 2b 20 20 20 20 73 65 74 20 6d 73 67 32 20 {.+ set msg2
9ea0: 75 6e 73 65 74 0a 2b 20 20 20 20 73 65 74 20 72 unset.+ set r
9eb0: 73 72 73 46 69 6c 65 20 5b 6d 61 6b 65 46 69 6c srsFile [makeFil
9ec0: 65 20 7b 7d 20 72 73 72 63 2e 66 69 6c 65 5d 0a e {} rsrc.file].
9ed0: 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 + removeFile
9ee0: 72 73 72 63 2e 66 69 6c 65 0a 2b 20 20 20 20 74 rsrc.file.+ t
9ef0: 65 73 74 57 72 69 74 65 54 65 78 74 52 65 73 6f estWriteTextReso
9f00: 75 72 63 65 20 2d 72 73 72 63 20 66 69 6c 65 52 urce -rsrc fileR
9f10: 73 72 63 4e 61 6d 65 20 5c 0a 2b 09 20 20 20 20 srcName \.+.
9f20: 2d 66 69 6c 65 20 24 72 73 72 63 46 69 6c 65 20 -file $rsrcFile
9f30: 7b 73 65 74 20 6d 73 67 32 20 6f 6b 3b 20 72 65 {set msg2 ok; re
9f40: 74 75 72 6e 7d 0a 2b 7d 20 2d 62 6f 64 79 20 7b turn}.+} -body {
9f50: 0a 2b 20 20 20 20 73 6f 75 72 63 65 20 2d 72 73 .+ source -rs
9f60: 72 63 20 66 69 6c 65 52 73 72 63 4e 61 6d 65 20 rc fileRsrcName
9f70: 24 72 73 72 63 46 69 6c 65 0a 2b 20 20 20 20 73 $rsrcFile.+ s
9f80: 65 74 20 72 65 73 75 6c 74 20 5b 63 61 74 63 68 et result [catch
9f90: 20 7b 73 6f 75 72 63 65 20 2d 72 73 72 63 20 66 {source -rsrc f
9fa0: 69 6c 65 52 73 72 63 4e 61 6d 65 7d 20 6d 73 67 ileRsrcName} msg
9fb0: 5d 20 20 20 20 0a 20 20 20 20 20 6c 69 73 74 20 ] . list
9fc0: 24 6d 73 67 32 20 24 72 65 73 75 6c 74 20 24 6d $msg2 $result $m
9fd0: 73 67 0a 2d 7d 20 5b 6c 69 73 74 20 6f 6b 20 31 sg.-} [list ok 1
9fe0: 20 7b 54 68 65 20 72 65 73 6f 75 72 63 65 20 22 {The resource "
9ff0: 66 69 6c 65 52 73 72 63 4e 61 6d 65 22 20 63 6f fileRsrcName" co
a000: 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 uld not be loade
a010: 64 20 66 72 6f 6d 20 61 70 70 6c 69 63 61 74 69 d from applicati
a020: 6f 6e 2e 7d 5d 0a 2d 74 65 73 74 20 73 6f 75 72 on.}].-test sour
a030: 63 65 2d 35 2e 35 20 7b 73 6f 75 72 63 65 20 72 ce-5.5 {source r
a040: 65 73 6f 75 72 63 65 20 66 69 6c 65 73 7d 20 7b esource files} {
a050: 6d 61 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 20 20 macOnly} {.-
a060: 74 65 73 74 57 72 69 74 65 54 65 78 74 52 65 73 testWriteTextRes
a070: 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 32 30 ource -rsrcid 20
a080: 30 20 2d 66 69 6c 65 20 72 73 72 63 2e 66 69 6c 0 -file rsrc.fil
a090: 65 20 7b 73 65 74 20 6d 73 67 32 20 68 65 6c 6c e {set msg2 hell
a0a0: 6f 3b 20 73 65 74 20 6d 73 67 33 20 62 79 65 7d o; set msg3 bye}
a0b0: 0a 2d 20 20 20 20 73 65 74 20 72 65 73 75 6c 74 .- set result
a0c0: 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 65 20 [catch {source
a0d0: 2d 72 73 72 63 69 64 20 32 30 30 20 72 73 72 63 -rsrcid 200 rsrc
a0e0: 2e 66 69 6c 65 7d 20 6d 73 67 5d 0a 2b 7d 20 2d .file} msg].+} -
a0f0: 63 6c 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 cleanup {.+ r
a100: 65 6d 6f 76 65 46 69 6c 65 20 72 73 72 63 2e 66 emoveFile rsrc.f
a110: 69 6c 65 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 5b ile.+} -result [
a120: 6c 69 73 74 20 6f 6b 20 31 20 7b 54 68 65 20 72 list ok 1 {The r
a130: 65 73 6f 75 72 63 65 20 22 66 69 6c 65 52 73 72 esource "fileRsr
a140: 63 4e 61 6d 65 22 20 63 6f 75 6c 64 20 6e 6f 74 cName" could not
a150: 20 62 65 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 be loaded from
a160: 61 70 70 6c 69 63 61 74 69 6f 6e 2e 7d 5d 0a 2b application.}].+
a170: 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 35 2e .+test source-5.
a180: 35 20 7b 73 6f 75 72 63 65 20 72 65 73 6f 75 72 5 {source resour
a190: 63 65 20 66 69 6c 65 73 7d 20 2d 63 6f 6e 73 74 ce files} -const
a1a0: 72 61 69 6e 74 73 20 7b 0a 2b 20 20 20 20 6d 61 raints {.+ ma
a1b0: 63 4f 6e 6c 79 20 74 65 73 74 57 72 69 74 65 54 cOnly testWriteT
a1c0: 65 78 74 52 65 73 6f 75 72 63 65 0a 2b 7d 20 2d extResource.+} -
a1d0: 73 65 74 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 setup {.+ set
a1e0: 20 6d 73 67 32 20 75 6e 73 65 74 0a 2b 20 20 20 msg2 unset.+
a1f0: 20 73 65 74 20 72 73 72 63 46 69 6c 65 20 5b 6d set rsrcFile [m
a200: 61 6b 65 46 69 6c 65 20 7b 7d 20 72 73 72 63 2e akeFile {} rsrc.
a210: 66 69 6c 65 5d 0a 20 20 20 20 20 72 65 6d 6f 76 file]. remov
a220: 65 46 69 6c 65 20 72 73 72 63 2e 66 69 6c 65 0a eFile rsrc.file.
a230: 2b 20 20 20 20 74 65 73 74 57 72 69 74 65 54 65 + testWriteTe
a240: 78 74 52 65 73 6f 75 72 63 65 20 2d 72 73 72 63 xtResource -rsrc
a250: 69 64 20 32 30 30 20 5c 0a 2b 09 20 20 20 20 2d id 200 \.+. -
a260: 66 69 6c 65 20 24 72 73 72 63 46 69 6c 65 20 7b file $rsrcFile {
a270: 73 65 74 20 6d 73 67 32 20 68 65 6c 6c 6f 3b 20 set msg2 hello;
a280: 73 65 74 20 6d 73 67 33 20 62 79 65 7d 0a 2b 7d set msg3 bye}.+}
a290: 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 65 -body {.+ se
a2a0: 74 20 72 65 73 75 6c 74 20 5b 63 61 74 63 68 20 t result [catch
a2b0: 7b 73 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 {source -rsrcid
a2c0: 32 30 30 20 24 72 73 72 63 46 69 6c 65 7d 20 6d 200 $rsrcFile} m
a2d0: 73 67 5d 0a 20 20 20 20 20 6c 69 73 74 20 24 6d sg]. list $m
a2e0: 73 67 32 20 24 72 65 73 75 6c 74 20 24 6d 73 67 sg2 $result $msg
a2f0: 0a 2d 7d 20 5b 6c 69 73 74 20 68 65 6c 6c 6f 20 .-} [list hello
a300: 30 20 62 79 65 5d 0a 2d 74 65 73 74 20 73 6f 75 0 bye].-test sou
a310: 72 63 65 2d 35 2e 36 20 7b 73 6f 75 72 63 65 20 rce-5.6 {source
a320: 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 7d 20 resource files}
a330: 7b 6d 61 63 4f 6e 6c 79 7d 20 7b 0a 2d 20 20 20 {macOnly} {.-
a340: 20 74 65 73 74 57 72 69 74 65 54 65 78 74 52 65 testWriteTextRe
a350: 73 6f 75 72 63 65 20 2d 72 73 72 63 69 64 20 32 source -rsrcid 2
a360: 30 30 20 2d 66 69 6c 65 20 72 73 72 63 2e 66 69 00 -file rsrc.fi
a370: 6c 65 20 7b 73 65 74 20 6d 73 67 32 20 68 65 6c le {set msg2 hel
a380: 6c 6f 3b 20 65 72 72 6f 72 20 62 61 64 3b 20 73 lo; error bad; s
a390: 65 74 20 6d 73 67 33 20 62 79 65 7d 0a 2d 20 20 et msg3 bye}.-
a3a0: 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b 63 61 set result [ca
a3b0: 74 63 68 20 7b 73 6f 75 72 63 65 20 2d 72 73 72 tch {source -rsr
a3c0: 63 69 64 20 32 30 30 20 72 73 72 63 2e 66 69 6c cid 200 rsrc.fil
a3d0: 65 7d 20 6d 73 67 5d 0a 2b 7d 20 2d 63 6c 65 61 e} msg].+} -clea
a3e0: 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 nup {.+ remov
a3f0: 65 46 69 6c 65 20 72 73 72 63 2e 66 69 6c 65 0a eFile rsrc.file.
a400: 2b 7d 20 2d 72 65 73 75 6c 74 20 5b 6c 69 73 74 +} -result [list
a410: 20 68 65 6c 6c 6f 20 30 20 62 79 65 5d 0a 2b 0a hello 0 bye].+.
a420: 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 35 2e 36 +test source-5.6
a430: 20 7b 73 6f 75 72 63 65 20 72 65 73 6f 75 72 63 {source resourc
a440: 65 20 66 69 6c 65 73 7d 20 2d 63 6f 6e 73 74 72 e files} -constr
a450: 61 69 6e 74 73 20 7b 0a 2b 20 20 20 20 6d 61 63 aints {.+ mac
a460: 4f 6e 6c 79 20 74 65 73 74 57 72 69 74 65 54 65 Only testWriteTe
a470: 78 74 52 65 73 6f 75 72 63 65 0a 2b 7d 20 2d 73 xtResource.+} -s
a480: 65 74 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 20 etup {.+ set
a490: 6d 73 67 32 20 75 6e 73 65 74 0a 2b 20 20 20 20 msg2 unset.+
a4a0: 73 65 74 20 72 73 72 63 46 69 6c 65 20 5b 6d 61 set rsrcFile [ma
a4b0: 6b 65 46 69 6c 65 20 7b 7d 20 72 73 72 63 2e 66 keFile {} rsrc.f
a4c0: 69 6c 65 5d 0a 20 20 20 20 20 72 65 6d 6f 76 65 ile]. remove
a4d0: 46 69 6c 65 20 72 73 72 63 2e 66 69 6c 65 0a 2b File rsrc.file.+
a4e0: 20 20 20 20 74 65 73 74 57 72 69 74 65 54 65 78 testWriteTex
a4f0: 74 52 65 73 6f 75 72 63 65 20 2d 72 73 72 63 69 tResource -rsrci
a500: 64 20 32 30 30 20 5c 0a 2b 09 20 20 20 20 2d 66 d 200 \.+. -f
a510: 69 6c 65 20 24 72 73 72 63 46 69 6c 65 20 7b 73 ile $rsrcFile {s
a520: 65 74 20 6d 73 67 32 20 68 65 6c 6c 6f 3b 20 65 et msg2 hello; e
a530: 72 72 6f 72 20 62 61 64 3b 20 73 65 74 20 6d 73 rror bad; set ms
a540: 67 33 20 62 79 65 7d 0a 2b 7d 20 2d 62 6f 64 79 g3 bye}.+} -body
a550: 20 7b 0a 2b 20 20 20 20 73 65 74 20 72 65 73 75 {.+ set resu
a560: 6c 74 20 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 lt [catch {sourc
a570: 65 20 2d 72 73 72 63 69 64 20 32 30 30 20 72 73 e -rsrcid 200 rs
a580: 72 63 2e 66 69 6c 65 7d 20 6d 73 67 5d 0a 20 20 rc.file} msg].
a590: 20 20 20 6c 69 73 74 20 24 6d 73 67 32 20 24 72 list $msg2 $r
a5a0: 65 73 75 6c 74 20 24 6d 73 67 0a 2d 7d 20 5b 6c esult $msg.-} [l
a5b0: 69 73 74 20 68 65 6c 6c 6f 20 31 20 62 61 64 5d ist hello 1 bad]
a5c0: 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b .+} -cleanup {.+
a5d0: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 72 removeFile r
a5e0: 73 72 63 2e 66 69 6c 65 0a 2b 7d 20 2d 72 65 73 src.file.+} -res
a5f0: 75 6c 74 20 5b 6c 69 73 74 20 68 65 6c 6c 6f 20 ult [list hello
a600: 31 20 62 61 64 5d 0a 2b 0a 20 0a 2d 74 65 73 74 1 bad].+. .-test
a610: 20 73 6f 75 72 63 65 2d 36 2e 31 20 7b 73 6f 75 source-6.1 {sou
a620: 72 63 65 20 69 73 20 62 69 6e 61 72 79 20 6f 6b rce is binary ok
a630: 7d 20 7b 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 } {.+test source
a640: 2d 36 2e 31 20 7b 73 6f 75 72 63 65 20 69 73 20 -6.1 {source is
a650: 62 69 6e 61 72 79 20 6f 6b 7d 20 2d 73 65 74 75 binary ok} -setu
a660: 70 20 7b 0a 2b 20 20 20 20 23 20 4e 6f 74 65 20 p {.+ # Note
a670: 5b 6d 61 6b 65 46 69 6c 65 5d 20 77 72 69 74 65 [makeFile] write
a680: 73 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 20 s in the system
a690: 65 6e 63 6f 64 69 6e 67 2e 0a 2b 20 20 20 20 23 encoding..+ #
a6a0: 20 5b 73 6f 75 72 63 65 5d 20 64 65 66 61 75 6c [source] defaul
a6b0: 74 73 20 74 6f 20 72 65 61 64 69 6e 67 20 69 6e ts to reading in
a6c0: 20 74 68 65 20 73 79 73 74 65 6d 20 65 6e 63 6f the system enco
a6d0: 64 69 6e 67 2e 0a 2b 20 20 20 20 73 65 74 20 73 ding..+ set s
a6e0: 6f 75 72 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 ourcefile [makeF
a6f0: 69 6c 65 20 5b 6c 69 73 74 20 73 65 74 20 78 20 ile [list set x
a700: 22 61 20 62 5c 30 63 22 5d 20 73 6f 75 72 63 65 "a b\0c"] source
a710: 2e 66 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 .file].+} -body
a720: 7b 0a 20 20 20 20 20 73 65 74 20 78 20 7b 7d 0a {. set x {}.
a730: 2d 20 20 20 20 6d 61 6b 65 46 69 6c 65 20 5b 6c - makeFile [l
a740: 69 73 74 20 73 65 74 20 78 20 22 61 20 62 5c 30 ist set x "a b\0
a750: 63 22 5d 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a c"] source.file.
a760: 20 20 20 20 20 73 6f 75 72 63 65 20 24 73 6f 75 source $sou
a770: 72 63 65 66 69 6c 65 0a 20 20 20 20 20 73 74 72 rcefile. str
a780: 69 6e 67 20 6c 65 6e 67 74 68 20 24 78 0a 2d 7d ing length $x.-}
a790: 20 35 0a 2d 74 65 73 74 20 73 6f 75 72 63 65 2d 5.-test source-
a7a0: 36 2e 32 20 7b 73 6f 75 72 63 65 20 73 6b 69 70 6.2 {source skip
a7b0: 73 20 65 76 65 72 79 74 68 69 6e 67 20 61 66 74 s everything aft
a7c0: 65 72 20 43 74 72 6c 2d 5a 3a 20 42 75 67 20 32 er Ctrl-Z: Bug 2
a7d0: 30 34 30 7d 20 7b 0a 2b 7d 20 2d 63 6c 65 61 6e 040} {.+} -clean
a7e0: 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 65 up {.+ remove
a7f0: 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 File source.file
a800: 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 35 0a 2b 0a .+} -result 5.+.
a810: 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 36 2e 32 +test source-6.2
a820: 20 7b 73 6f 75 72 63 65 20 73 6b 69 70 73 20 65 {source skips e
a830: 76 65 72 79 74 68 69 6e 67 20 61 66 74 65 72 20 verything after
a840: 43 74 72 6c 2d 5a 3a 20 42 75 67 20 32 30 34 30 Ctrl-Z: Bug 2040
a850: 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 20 20 20 20 } -setup {.+
a860: 73 65 74 20 73 6f 75 72 63 65 66 69 6c 65 20 5b set sourcefile [
a870: 6d 61 6b 65 46 69 6c 65 20 22 73 65 74 20 78 20 makeFile "set x
a880: 61 62 5c 33 32 63 22 20 73 6f 75 72 63 65 2e 66 ab\32c" source.f
a890: 69 6c 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a ile].+} -body {.
a8a0: 20 20 20 20 20 73 65 74 20 78 20 7b 7d 0a 2d 20 set x {}.-
a8b0: 20 20 20 6d 61 6b 65 46 69 6c 65 20 5b 6c 69 73 makeFile [lis
a8c0: 74 20 73 65 74 20 78 20 22 61 62 5c 33 32 63 22 t set x "ab\32c"
a8d0: 5d 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a 20 20 ] source.file.
a8e0: 20 20 20 73 6f 75 72 63 65 20 24 73 6f 75 72 63 source $sourc
a8f0: 65 66 69 6c 65 0a 20 20 20 20 20 73 74 72 69 6e efile. strin
a900: 67 20 6c 65 6e 67 74 68 20 24 78 0a 2d 7d 20 32 g length $x.-} 2
a910: 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b .+} -cleanup {.+
a920: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 73 removeFile s
a930: 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d 20 2d 72 ource.file.+} -r
a940: 65 73 75 6c 74 20 32 0a 2b 0a 2b 74 65 73 74 20 esult 2.+.+test
a950: 73 6f 75 72 63 65 2d 37 2e 31 20 7b 73 6f 75 72 source-7.1 {sour
a960: 63 65 20 2d 65 6e 63 6f 64 69 6e 67 20 74 65 73 ce -encoding tes
a970: 74 7d 20 2d 73 65 74 75 70 20 7b 0a 2b 20 20 20 t} -setup {.+
a980: 20 73 65 74 20 73 6f 75 72 63 65 66 69 6c 65 20 set sourcefile
a990: 5b 6d 61 6b 65 46 69 6c 65 20 7b 7d 20 73 6f 75 [makeFile {} sou
a9a0: 72 63 65 2e 66 69 6c 65 5d 0a 2b 20 20 20 20 72 rce.file].+ r
a9b0: 65 6d 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 emoveFile source
a9c0: 2e 66 69 6c 65 0a 2b 20 20 20 20 73 65 74 20 66 .file.+ set f
a9d0: 20 5b 6f 70 65 6e 20 24 73 6f 75 72 63 65 66 69 [open $sourcefi
a9e0: 6c 65 20 77 5d 0a 2b 20 20 20 20 66 63 6f 6e 66 le w].+ fconf
a9f0: 69 67 75 72 65 20 24 66 20 2d 65 6e 63 6f 64 69 igure $f -encodi
aa00: 6e 67 20 75 74 66 2d 38 0a 2b 20 20 20 20 70 75 ng utf-8.+ pu
aa10: 74 73 20 24 66 20 22 73 65 74 20 73 79 6d 62 6f ts $f "set symbo
aa20: 6c 28 73 71 75 61 72 65 2d 72 6f 6f 74 29 20 5c l(square-root) \
aa30: 75 32 32 31 41 3b 20 73 65 74 20 78 20 63 6f 72 u221A; set x cor
aa40: 72 65 63 74 22 0a 2b 20 20 20 20 63 6c 6f 73 65 rect".+ close
aa50: 20 24 66 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b $f.+} -body {.+
aa60: 20 20 20 20 73 65 74 20 78 20 75 6e 73 65 74 0a set x unset.
aa70: 2b 20 20 20 20 73 6f 75 72 63 65 20 2d 65 6e 63 + source -enc
aa80: 6f 64 69 6e 67 20 75 74 66 2d 38 20 24 73 6f 75 oding utf-8 $sou
aa90: 72 63 65 66 69 6c 65 0a 2b 20 20 20 20 73 65 74 rcefile.+ set
aaa0: 20 78 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b x.+} -cleanup {
aab0: 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 .+ removeFile
aac0: 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d 20 source.file.+}
aad0: 2d 72 65 73 75 6c 74 20 63 6f 72 72 65 63 74 0a -result correct.
aae0: 2b 0a 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 37 +.+test source-7
aaf0: 2e 32 20 7b 73 6f 75 72 63 65 20 2d 65 6e 63 6f .2 {source -enco
ab00: 64 69 6e 67 20 74 65 73 74 7d 20 2d 73 65 74 75 ding test} -setu
ab10: 70 20 7b 0a 2b 20 20 20 20 23 20 54 68 69 73 20 p {.+ # This
ab20: 74 65 73 74 73 20 66 6f 72 20 62 61 64 20 69 6e tests for bad in
ab30: 74 65 72 61 63 74 69 6f 6e 73 20 62 65 74 77 65 teractions betwe
ab40: 65 6e 20 5b 73 6f 75 72 63 65 20 2d 65 6e 63 6f en [source -enco
ab50: 64 69 6e 67 5d 0a 2b 20 20 20 20 23 20 61 6e 64 ding].+ # and
ab60: 20 75 73 65 20 6f 66 20 74 68 65 20 43 6f 6e 74 use of the Cont
ab70: 72 6f 6c 2d 5a 20 63 68 61 72 61 63 74 65 72 20 rol-Z character
ab80: 28 5c 75 30 30 31 41 29 20 61 73 20 61 20 63 72 (\u001A) as a cr
ab90: 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 0a 2b 20 20 oss-platform.+
aba0: 20 20 23 20 45 4f 46 20 63 68 61 72 61 63 74 65 # EOF characte
abb0: 72 20 62 79 20 5b 73 6f 75 72 63 65 5d 2e 20 20 r by [source].
abc0: 48 65 72 65 20 77 65 20 77 72 69 74 65 20 6f 75 Here we write ou
abd0: 74 20 61 6e 64 20 74 68 65 20 5b 73 6f 75 72 63 t and the [sourc
abe0: 65 5d 20 61 0a 2b 20 20 20 20 23 20 66 69 6c 65 e] a.+ # file
abf0: 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 that contains t
ac00: 68 65 20 62 79 74 65 20 5c 78 31 41 2c 20 61 6c he byte \x1A, al
ac10: 74 68 6f 75 67 68 20 6e 6f 74 20 74 68 65 20 63 though not the c
ac20: 68 61 72 61 63 74 65 72 20 5c 75 30 30 31 41 20 haracter \u001A
ac30: 69 6e 0a 2b 20 20 20 20 23 20 74 68 65 20 69 6e in.+ # the in
ac40: 64 69 63 61 74 65 64 20 65 6e 63 6f 64 69 6e 67 dicated encoding
ac50: 2e 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 63 ..+ set sourc
ac60: 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 20 efile [makeFile
ac70: 7b 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 5d 0a {} source.file].
ac80: 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 + removeFile
ac90: 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 20 20 20 source.file.+
aca0: 20 73 65 74 20 66 20 5b 6f 70 65 6e 20 24 73 6f set f [open $so
acb0: 75 72 63 65 66 69 6c 65 20 77 5d 0a 2b 20 20 20 urcefile w].+
acc0: 20 66 63 6f 6e 66 69 67 75 72 65 20 24 66 20 2d fconfigure $f -
acd0: 65 6e 63 6f 64 69 6e 67 20 75 6e 69 63 6f 64 65 encoding unicode
ace0: 0a 2b 20 20 20 20 70 75 74 73 20 24 66 20 22 73 .+ puts $f "s
acf0: 65 74 20 73 79 6d 62 6f 6c 28 73 71 75 61 72 65 et symbol(square
ad00: 2d 72 6f 6f 74 29 20 5c 75 32 32 31 41 3b 20 73 -root) \u221A; s
ad10: 65 74 20 78 20 63 6f 72 72 65 63 74 22 0a 2b 20 et x correct".+
ad20: 20 20 20 63 6c 6f 73 65 20 24 66 0a 2b 7d 20 2d close $f.+} -
ad30: 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 65 74 20 body {.+ set
ad40: 78 20 75 6e 73 65 74 0a 2b 20 20 20 20 73 6f 75 x unset.+ sou
ad50: 72 63 65 20 2d 65 6e 63 6f 64 69 6e 67 20 75 6e rce -encoding un
ad60: 69 63 6f 64 65 20 24 73 6f 75 72 63 65 66 69 6c icode $sourcefil
ad70: 65 0a 2b 20 20 20 20 73 65 74 20 78 0a 2b 7d 20 e.+ set x.+}
ad80: 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 -cleanup {.+
ad90: 72 65 6d 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 removeFile sourc
ada0: 65 2e 66 69 6c 65 0a 2b 7d 20 2d 72 65 73 75 6c e.file.+} -resul
adb0: 74 20 63 6f 72 72 65 63 74 0a 20 0a 2d 23 20 63 t correct. .-# c
adc0: 6c 65 61 6e 75 70 0a 2d 63 61 74 63 68 20 7b 3a leanup.-catch {:
add0: 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65 :tcltest::remove
ade0: 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 File source.file
adf0: 7d 0a 2d 3a 3a 74 63 6c 74 65 73 74 3a 3a 63 6c }.-::tcltest::cl
ae00: 65 61 6e 75 70 54 65 73 74 73 0a 2b 74 65 73 74 eanupTests.+test
ae10: 20 73 6f 75 72 63 65 2d 37 2e 33 20 7b 73 6f 75 source-7.3 {sou
ae20: 72 63 65 20 2d 65 6e 63 6f 64 69 6e 67 3a 20 73 rce -encoding: s
ae30: 79 6e 74 61 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b yntax} -body {.+
ae40: 20 20 20 20 23 20 48 61 76 65 20 74 6f 20 73 70 # Have to sp
ae50: 65 6c 6c 20 6f 75 74 20 74 68 65 20 2d 65 6e 63 ell out the -enc
ae60: 6f 64 69 6e 67 20 6f 70 74 69 6f 6e 0a 2b 20 20 oding option.+
ae70: 20 20 73 6f 75 72 63 65 20 2d 65 20 75 74 66 2d source -e utf-
ae80: 38 20 6e 6f 5f 66 69 6c 65 0a 2b 7d 20 2d 72 65 8 no_file.+} -re
ae90: 74 75 72 6e 43 6f 64 65 73 20 31 20 2d 6d 61 74 turnCodes 1 -mat
aea0: 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 ch glob -result
aeb0: 7b 62 61 64 20 6f 70 74 69 6f 6e 2a 7d 0a 2b 0a {bad option*}.+.
aec0: 2b 74 65 73 74 20 73 6f 75 72 63 65 2d 37 2e 34 +test source-7.4
aed0: 20 7b 73 6f 75 72 63 65 20 2d 65 6e 63 6f 64 69 {source -encodi
aee0: 6e 67 3a 20 73 79 6e 74 61 78 7d 20 2d 73 65 74 ng: syntax} -set
aef0: 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 20 73 6f up {.+ set so
af00: 75 72 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 urcefile [makeFi
af10: 6c 65 20 7b 7d 20 73 6f 75 72 63 65 2e 66 69 6c le {} source.fil
af20: 65 5d 0a 2b 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 e].+} -body {.+
af30: 20 20 20 73 6f 75 72 63 65 20 2d 65 6e 63 6f 64 source -encod
af40: 69 6e 67 20 6e 6f 2d 73 75 63 68 2d 65 6e 63 6f ing no-such-enco
af50: 64 69 6e 67 20 24 73 6f 75 72 63 65 66 69 6c 65 ding $sourcefile
af60: 0a 2b 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0a 2b .+} -cleanup {.+
af70: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 73 removeFile s
af80: 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 7d 20 2d 72 ource.file.+} -r
af90: 65 74 75 72 6e 43 6f 64 65 73 20 31 20 2d 6d 61 eturnCodes 1 -ma
afa0: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
afb0: 20 7b 75 6e 6b 6e 6f 77 6e 20 65 6e 63 6f 64 69 {unknown encodi
afc0: 6e 67 2a 7d 0a 2b 0a 2b 74 65 73 74 20 73 6f 75 ng*}.+.+test sou
afd0: 72 63 65 2d 37 2e 35 20 7b 73 6f 75 72 63 65 20 rce-7.5 {source
afe0: 2d 65 6e 63 6f 64 69 6e 67 3a 20 63 6f 72 72 65 -encoding: corre
aff0: 63 74 20 6f 70 65 72 61 74 69 6f 6e 7d 20 2d 73 ct operation} -s
b000: 65 74 75 70 20 7b 0a 2b 20 20 20 20 73 65 74 20 etup {.+ set
b010: 73 6f 75 72 63 65 66 69 6c 65 20 5b 6d 61 6b 65 sourcefile [make
b020: 46 69 6c 65 20 7b 7d 20 73 6f 75 72 63 65 2e 66 File {} source.f
b030: 69 6c 65 5d 0a 2b 20 20 20 20 72 65 6d 6f 76 65 ile].+ remove
b040: 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c 65 File source.file
b050: 0a 2b 20 20 20 20 73 65 74 20 66 20 5b 6f 70 65 .+ set f [ope
b060: 6e 20 24 73 6f 75 72 63 65 66 69 6c 65 20 77 5d n $sourcefile w]
b070: 0a 2b 20 20 20 20 66 63 6f 6e 66 69 67 75 72 65 .+ fconfigure
b080: 20 24 66 20 2d 65 6e 63 6f 64 69 6e 67 20 75 74 $f -encoding ut
b090: 66 2d 38 0a 2b 20 20 20 20 70 75 74 73 20 24 66 f-8.+ puts $f
b0a0: 20 22 70 72 6f 63 20 5c 75 32 30 61 63 20 7b 7d "proc \u20ac {}
b0b0: 20 7b 72 65 74 75 72 6e 20 66 6f 6f 7d 22 0a 2b {return foo}".+
b0c0: 20 20 20 20 63 6c 6f 73 65 20 24 66 0a 2b 7d 20 close $f.+}
b0d0: 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 6f 75 -body {.+ sou
b0e0: 72 63 65 20 2d 65 6e 63 6f 64 69 6e 67 20 75 74 rce -encoding ut
b0f0: 66 2d 38 20 24 73 6f 75 72 63 65 66 69 6c 65 0a f-8 $sourcefile.
b100: 2b 20 20 20 20 5c 75 32 30 61 63 0a 2b 7d 20 2d + \u20ac.+} -
b110: 63 6c 65 61 6e 75 70 20 7b 0a 2b 20 20 20 20 72 cleanup {.+ r
b120: 65 6d 6f 76 65 46 69 6c 65 20 73 6f 75 72 63 65 emoveFile source
b130: 2e 66 69 6c 65 0a 2b 20 20 20 20 72 65 6e 61 6d .file.+ renam
b140: 65 20 5c 75 32 30 61 63 20 7b 7d 0a 2b 7d 20 2d e \u20ac {}.+} -
b150: 72 65 73 75 6c 74 20 66 6f 6f 0a 2b 0a 2b 74 65 result foo.+.+te
b160: 73 74 20 73 6f 75 72 63 65 2d 37 2e 36 20 7b 73 st source-7.6 {s
b170: 6f 75 72 63 65 20 2d 65 6e 63 6f 64 69 6e 67 3a ource -encoding:
b180: 20 6d 69 73 6d 61 74 63 68 20 65 6e 63 6f 64 69 mismatch encodi
b190: 6e 67 20 65 72 72 6f 72 7d 20 2d 73 65 74 75 70 ng error} -setup
b1a0: 20 7b 0a 2b 20 20 20 20 73 65 74 20 73 6f 75 72 {.+ set sour
b1b0: 63 65 66 69 6c 65 20 5b 6d 61 6b 65 46 69 6c 65 cefile [makeFile
b1c0: 20 7b 7d 20 73 6f 75 72 63 65 2e 66 69 6c 65 5d {} source.file]
b1d0: 0a 2b 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 .+ removeFile
b1e0: 20 73 6f 75 72 63 65 2e 66 69 6c 65 0a 2b 20 20 source.file.+
b1f0: 20 20 73 65 74 20 66 20 5b 6f 70 65 6e 20 24 73 set f [open $s
b200: 6f 75 72 63 65 66 69 6c 65 20 77 5d 0a 2b 20 20 ourcefile w].+
b210: 20 20 66 63 6f 6e 66 69 67 75 72 65 20 24 66 20 fconfigure $f
b220: 2d 65 6e 63 6f 64 69 6e 67 20 75 74 66 2d 38 0a -encoding utf-8.
b230: 2b 20 20 20 20 70 75 74 73 20 24 66 20 22 70 72 + puts $f "pr
b240: 6f 63 20 5c 75 32 30 61 63 20 7b 7d 20 7b 72 65 oc \u20ac {} {re
b250: 74 75 72 6e 20 66 6f 6f 7d 22 0a 2b 20 20 20 20 turn foo}".+
b260: 63 6c 6f 73 65 20 24 66 0a 2b 7d 20 2d 62 6f 64 close $f.+} -bod
b270: 79 20 7b 0a 2b 20 20 20 20 73 6f 75 72 63 65 20 y {.+ source
b280: 2d 65 6e 63 6f 64 69 6e 67 20 61 73 63 69 69 20 -encoding ascii
b290: 24 73 6f 75 72 63 65 66 69 6c 65 0a 2b 20 20 20 $sourcefile.+
b2a0: 20 5c 75 32 30 61 63 0a 2b 7d 20 2d 63 6c 65 61 \u20ac.+} -clea
b2b0: 6e 75 70 20 7b 0a 2b 20 20 20 20 72 65 6d 6f 76 nup {.+ remov
b2c0: 65 46 69 6c 65 20 73 6f 75 72 63 65 2e 66 69 6c eFile source.fil
b2d0: 65 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 e.+} -returnCode
b2e0: 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 67 s error -match g
b2f0: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 69 6e 76 lob -result {inv
b300: 61 6c 69 64 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d alid command nam
b310: 65 2a 7d 0a 2b 0a 2b 63 6c 65 61 6e 75 70 54 65 e*}.+.+cleanupTe
b320: 73 74 73 0a 2b 7d 0a 2b 6e 61 6d 65 73 70 61 63 sts.+}.+namespac
b330: 65 20 64 65 6c 65 74 65 20 3a 3a 74 63 6c 3a 3a e delete ::tcl::
b340: 74 65 73 74 3a 3a 73 6f 75 72 63 65 0a 20 72 65 test::source. re
b350: 74 75 72 6e 0a turn.