Tcl Source Code

Hex Artifact Content
Login

Artifact 564dbfc515022a3decac4e25e6d42b11b492fbe8:

Attachment "1413934.patch" to ticket [1413934fff] added by dgp 2006-02-09 04:29:54.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 45 6e 63 6f 64  Index: doc/Encod
0010: 69 6e 67 2e 33 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ing.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 0a 52 43 53 20 66 69  =========.RCS fi
0060: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c  le: /cvsroot/tcl
0070: 2f 74 63 6c 2f 64 6f 63 2f 45 6e 63 6f 64 69 6e  /tcl/doc/Encodin
0080: 67 2e 33 2c 76 0a 72 65 74 72 69 65 76 69 6e 67  g.3,v.retrieving
0090: 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 30 0a 64   revision 1.20.d
00a0: 69 66 66 20 2d 75 20 2d 72 31 2e 32 30 20 45 6e  iff -u -r1.20 En
00b0: 63 6f 64 69 6e 67 2e 33 0a 2d 2d 2d 20 64 6f 63  coding.3.--- doc
00c0: 2f 45 6e 63 6f 64 69 6e 67 2e 33 09 37 20 4f 63  /Encoding.3.7 Oc
00d0: 74 20 32 30 30 34 20 31 35 3a 31 35 3a 33 37 20  t 2004 15:15:37 
00e0: 2d 30 30 30 30 09 31 2e 32 30 0a 2b 2b 2b 20 64  -0000.1.20.+++ d
00f0: 6f 63 2f 45 6e 63 6f 64 69 6e 67 2e 33 09 38 20  oc/Encoding.3.8 
0100: 46 65 62 20 32 30 30 36 20 32 31 3a 32 35 3a 33  Feb 2006 21:25:3
0110: 31 20 2d 30 30 30 30 0a 40 40 20 2d 32 31 2c 36  1 -0000.@@ -21,6
0120: 20 2b 32 31 2c 31 31 20 40 40 0a 20 76 6f 69 64   +21,11 @@. void
0130: 0a 20 5c 66 42 54 63 6c 5f 46 72 65 65 45 6e 63  . \fBTcl_FreeEnc
0140: 6f 64 69 6e 67 5c 66 52 28 5c 66 49 65 6e 63 6f  oding\fR(\fIenco
0150: 64 69 6e 67 5c 66 52 29 0a 20 2e 73 70 0a 2b 2e  ding\fR). .sp.+.
0160: 56 53 20 38 2e 35 0a 2b 69 6e 74 0a 2b 5c 66 42  VS 8.5.+int.+\fB
0170: 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 46  Tcl_GetEncodingF
0180: 72 6f 6d 4f 62 6a 5c 66 52 28 5c 66 49 69 6e 74  romObj\fR(\fIint
0190: 65 72 70 2c 20 6f 62 6a 50 74 72 2c 20 65 6e 63  erp, objPtr, enc
01a0: 6f 64 69 6e 67 50 74 72 5c 66 52 29 0a 2b 2e 56  odingPtr\fR).+.V
01b0: 45 20 38 2e 35 0a 2b 2e 73 70 0a 20 63 68 61 72  E 8.5.+.sp. char
01c0: 20 2a 0a 20 5c 66 42 54 63 6c 5f 45 78 74 65 72   *. \fBTcl_Exter
01d0: 6e 61 6c 54 6f 55 74 66 44 53 74 72 69 6e 67 5c  nalToUtfDString\
01e0: 66 52 28 5c 66 49 65 6e 63 6f 64 69 6e 67 2c 20  fR(\fIencoding, 
01f0: 73 72 63 2c 20 73 72 63 4c 65 6e 2c 20 64 73 74  src, srcLen, dst
0200: 50 74 72 5c 66 52 29 0a 20 2e 73 70 0a 40 40 20  Ptr\fR). .sp.@@ 
0210: 2d 34 37 2c 31 32 20 2b 35 32 2c 32 35 20 40 40  -47,12 +52,25 @@
0220: 0a 20 69 6e 74 0a 20 5c 66 42 54 63 6c 5f 53 65  . int. \fBTcl_Se
0230: 74 53 79 73 74 65 6d 45 6e 63 6f 64 69 6e 67 5c  tSystemEncoding\
0240: 66 52 28 5c 66 49 69 6e 74 65 72 70 2c 20 6e 61  fR(\fIinterp, na
0250: 6d 65 5c 66 52 29 0a 20 2e 73 70 0a 2b 2e 56 53  me\fR). .sp.+.VS
0260: 20 38 2e 35 0a 2b 63 6f 6e 73 74 20 63 68 61 72   8.5.+const char
0270: 20 2a 0a 2b 5c 66 42 54 63 6c 5f 47 65 74 45 6e   *.+\fBTcl_GetEn
0280: 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e  codingNameFromEn
0290: 76 69 72 6f 6e 6d 65 6e 74 5c 66 52 28 5c 66 49  vironment\fR(\fI
02a0: 62 75 66 50 74 72 5c 66 52 29 69 6e 0a 2b 2e 56  bufPtr\fR)in.+.V
02b0: 45 20 38 2e 35 0a 2b 2e 73 70 0a 20 76 6f 69 64  E 8.5.+.sp. void
02c0: 0a 20 5c 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f  . \fBTcl_GetEnco
02d0: 64 69 6e 67 4e 61 6d 65 73 5c 66 52 28 5c 66 49  dingNames\fR(\fI
02e0: 69 6e 74 65 72 70 5c 66 52 29 0a 20 2e 73 70 0a  interp\fR). .sp.
02f0: 20 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 0a 20 5c   Tcl_Encoding. \
0300: 66 42 54 63 6c 5f 43 72 65 61 74 65 45 6e 63 6f  fBTcl_CreateEnco
0310: 64 69 6e 67 5c 66 52 28 5c 66 49 74 79 70 65 50  ding\fR(\fItypeP
0320: 74 72 5c 66 52 29 0a 20 2e 73 70 0a 2b 2e 56 53  tr\fR). .sp.+.VS
0330: 20 38 2e 35 0a 2b 54 63 6c 5f 4f 62 6a 20 2a 0a   8.5.+Tcl_Obj *.
0340: 2b 5c 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f 64  +\fBTcl_GetEncod
0350: 69 6e 67 53 65 61 72 63 68 50 61 74 68 5c 66 52  ingSearchPath\fR
0360: 28 29 0a 2b 2e 73 70 0a 2b 69 6e 74 0a 2b 5c 66  ().+.sp.+int.+\f
0370: 42 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67  BTcl_SetEncoding
0380: 53 65 61 72 63 68 50 61 74 68 5c 66 52 28 5c 66  SearchPath\fR(\f
0390: 49 73 65 61 72 63 68 50 61 74 68 5c 66 52 29 0a  IsearchPath\fR).
03a0: 2b 2e 56 45 20 38 2e 35 0a 2b 2e 73 70 0a 20 63  +.VE 8.5.+.sp. c
03b0: 6f 6e 73 74 20 63 68 61 72 20 2a 0a 20 5c 66 42  onst char *. \fB
03c0: 54 63 6c 5f 47 65 74 44 65 66 61 75 6c 74 45 6e  Tcl_GetDefaultEn
03d0: 63 6f 64 69 6e 67 44 69 72 5c 66 52 28 5c 66 49  codingDir\fR(\fI
03e0: 76 6f 69 64 5c 66 52 29 0a 20 2e 73 70 0a 40 40  void\fR). .sp.@@
03f0: 20 2d 36 39 2c 36 20 2b 38 37 2c 31 34 20 40 40   -69,6 +87,14 @@
0400: 0a 20 2e 41 50 20 54 63 6c 5f 45 6e 63 6f 64 69  . .AP Tcl_Encodi
0410: 6e 67 20 65 6e 63 6f 64 69 6e 67 20 69 6e 0a 20  ng encoding in. 
0420: 54 68 65 20 65 6e 63 6f 64 69 6e 67 20 74 6f 20  The encoding to 
0430: 71 75 65 72 79 2c 20 66 72 65 65 2c 20 6f 72 20  query, free, or 
0440: 75 73 65 20 66 6f 72 20 63 6f 6e 76 65 72 74 69  use for converti
0450: 6e 67 20 74 65 78 74 2e 20 20 49 66 20 5c 66 49  ng text.  If \fI
0460: 65 6e 63 6f 64 69 6e 67 5c 66 52 20 69 73 20 0a  encoding\fR is .
0470: 20 4e 55 4c 4c 2c 20 74 68 65 20 63 75 72 72 65   NULL, the curre
0480: 6e 74 20 73 79 73 74 65 6d 20 65 6e 63 6f 64 69  nt system encodi
0490: 6e 67 20 69 73 20 75 73 65 64 2e 0a 2b 2e 41 50  ng is used..+.AP
04a0: 20 54 63 6c 5f 4f 62 6a 20 2a 6f 62 6a 50 74 72   Tcl_Obj *objPtr
04b0: 20 69 6e 0a 2b 2e 56 53 20 38 2e 35 0a 2b 4e 61   in.+.VS 8.5.+Na
04c0: 6d 65 20 6f 66 20 65 6e 63 6f 64 69 6e 67 20 74  me of encoding t
04d0: 6f 20 67 65 74 20 74 6f 6b 65 6e 20 66 6f 72 2e  o get token for.
04e0: 0a 2b 2e 56 45 20 38 2e 35 0a 2b 2e 41 50 20 54  .+.VE 8.5.+.AP T
04f0: 63 6c 5f 45 6e 63 6f 64 69 6e 67 20 2a 65 6e 63  cl_Encoding *enc
0500: 6f 64 69 6e 67 50 74 72 20 6f 75 74 0a 2b 2e 56  odingPtr out.+.V
0510: 53 20 38 2e 35 0a 2b 50 6f 69 6e 74 73 20 74 6f  S 8.5.+Points to
0520: 20 73 74 6f 72 61 67 65 20 77 68 65 72 65 20 65   storage where e
0530: 6e 63 6f 64 69 6e 67 20 74 6f 6b 65 6e 20 69 73  ncoding token is
0540: 20 74 6f 20 62 65 20 77 72 69 74 74 65 6e 2e 0a   to be written..
0550: 2b 2e 56 45 20 38 2e 35 0a 20 2e 41 50 20 22 63  +.VE 8.5. .AP "c
0560: 6f 6e 73 74 20 63 68 61 72 22 20 2a 73 72 63 20  onst char" *src 
0570: 69 6e 0a 20 46 6f 72 20 74 68 65 20 5c 66 42 54  in. For the \fBT
0580: 63 6c 5f 45 78 74 65 72 6e 61 6c 54 6f 55 74 66  cl_ExternalToUtf
0590: 5c 66 52 20 66 75 6e 63 74 69 6f 6e 73 2c 20 61  \fR functions, a
05a0: 6e 20 61 72 72 61 79 20 6f 66 20 62 79 74 65 73  n array of bytes
05b0: 20 69 6e 20 74 68 65 0a 20 73 70 65 63 69 66 69   in the. specifi
05c0: 65 64 20 65 6e 63 6f 64 69 6e 67 20 74 68 61 74  ed encoding that
05d0: 20 61 72 65 20 74 6f 20 62 65 20 63 6f 6e 76 65   are to be conve
05e0: 72 74 65 64 20 74 6f 20 55 54 46 2d 38 2e 20 20  rted to UTF-8.  
05f0: 46 6f 72 20 74 68 65 0a 40 40 20 2d 31 32 31 2c  For the.@@ -121,
0600: 38 20 2b 31 34 37 2c 31 36 20 40 40 0a 20 2e 41  8 +147,16 @@. .A
0610: 50 20 69 6e 74 20 2a 64 73 74 43 68 61 72 73 50  P int *dstCharsP
0620: 74 72 20 6f 75 74 0a 20 46 69 6c 6c 65 64 20 77  tr out. Filled w
0630: 69 74 68 20 74 68 65 20 6e 75 6d 62 65 72 20 6f  ith the number o
0640: 66 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61  f characters tha
0650: 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20  t correspond to 
0660: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79  the number of by
0670: 74 65 73 0a 20 73 74 6f 72 65 64 20 69 6e 20 74  tes. stored in t
0680: 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72  he output buffer
0690: 2e 20 20 4d 61 79 20 62 65 20 4e 55 4c 4c 2e 0a  .  May be NULL..
06a0: 2b 2e 41 50 20 54 63 6c 5f 44 53 74 72 69 6e 67  +.AP Tcl_DString
06b0: 20 2a 62 75 66 50 74 72 20 6f 75 74 0a 2b 2e 56   *bufPtr out.+.V
06c0: 53 20 38 2e 35 0a 2b 53 74 6f 72 61 67 65 20 66  S 8.5.+Storage f
06d0: 6f 72 20 74 68 65 20 70 72 65 73 63 72 69 62 65  or the prescribe
06e0: 64 20 73 79 73 74 65 6d 20 65 6e 63 6f 64 69 6e  d system encodin
06f0: 67 20 6e 61 6d 65 2e 0a 2b 2e 56 45 20 38 2e 35  g name..+.VE 8.5
0700: 0a 20 2e 41 50 20 54 63 6c 5f 45 6e 63 6f 64 69  . .AP Tcl_Encodi
0710: 6e 67 54 79 70 65 20 2a 74 79 70 65 50 74 72 20  ngType *typePtr 
0720: 69 6e 0a 20 53 74 72 75 63 74 75 72 65 20 74 68  in. Structure th
0730: 61 74 20 64 65 66 69 6e 65 73 20 61 20 6e 65 77  at defines a new
0740: 20 74 79 70 65 20 6f 66 20 65 6e 63 6f 64 69 6e   type of encodin
0750: 67 2e 20 20 0a 2b 2e 41 50 20 54 63 6c 5f 4f 62  g.  .+.AP Tcl_Ob
0760: 6a 20 2a 73 65 61 72 63 68 50 61 74 68 20 69 6e  j *searchPath in
0770: 0a 2b 2e 56 53 20 38 2e 35 0a 2b 4c 69 73 74 20  .+.VS 8.5.+List 
0780: 6f 66 20 66 69 6c 65 73 79 73 74 65 6d 20 64 69  of filesystem di
0790: 72 65 63 74 6f 72 69 65 73 20 69 6e 20 77 68 69  rectories in whi
07a0: 63 68 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72  ch to search for
07b0: 20 65 6e 63 6f 64 69 6e 67 20 64 61 74 61 20 66   encoding data f
07c0: 69 6c 65 73 2e 0a 2b 2e 56 45 20 38 2e 35 0a 20  iles..+.VE 8.5. 
07d0: 2e 41 50 20 22 63 6f 6e 73 74 20 63 68 61 72 22  .AP "const char"
07e0: 20 2a 70 61 74 68 20 69 6e 0a 20 41 20 70 61 74   *path in. A pat
07f0: 68 20 74 6f 20 74 68 65 20 6c 6f 63 61 74 69 6f  h to the locatio
0800: 6e 20 6f 66 20 74 68 65 20 65 6e 63 6f 64 69 6e  n of the encodin
0810: 67 20 66 69 6c 65 2e 20 20 0a 20 2e 42 45 0a 40  g file.  . .BE.@
0820: 40 20 2d 31 37 31 2c 36 20 2b 32 30 35 2c 32 35  @ -171,6 +205,25
0830: 20 40 40 0a 20 5c 66 42 54 63 6c 5f 46 72 65 65   @@. \fBTcl_Free
0840: 45 6e 63 6f 64 69 6e 67 5c 66 52 20 77 69 6c 6c  Encoding\fR will
0850: 20 72 65 6c 65 61 73 65 20 61 6c 6c 20 73 74 6f   release all sto
0860: 72 61 67 65 20 74 68 65 20 65 6e 63 6f 64 69 6e  rage the encodin
0870: 67 20 77 61 73 20 75 73 69 6e 67 0a 20 61 6e 64  g was using. and
0880: 20 64 65 6c 65 74 65 20 69 74 20 66 72 6f 6d 20   delete it from 
0890: 74 68 65 20 64 61 74 61 62 61 73 65 2e 20 0a 20  the database. . 
08a0: 2e 50 50 0a 2b 2e 56 53 20 38 2e 35 0a 2b 5c 66  .PP.+.VS 8.5.+\f
08b0: 42 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67  BTcl_GetEncoding
08c0: 46 72 6f 6d 4f 62 6a 5c 66 52 20 74 72 65 61 74  FromObj\fR treat
08d0: 73 20 74 68 65 20 73 74 72 69 6e 67 20 72 65 70  s the string rep
08e0: 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 5c  resentation of \
08f0: 66 49 6f 62 6a 50 74 72 5c 66 52 0a 2b 61 73 20  fIobjPtr\fR.+as 
0900: 61 6e 20 65 6e 63 6f 64 69 6e 67 20 6e 61 6d 65  an encoding name
0910: 2c 20 61 6e 64 20 66 69 6e 64 73 20 61 6e 20 65  , and finds an e
0920: 6e 63 6f 64 69 6e 67 20 77 69 74 68 20 74 68 61  ncoding with tha
0930: 74 20 6e 61 6d 65 2c 20 6a 75 73 74 20 61 73 0a  t name, just as.
0940: 2b 5c 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f 64  +\fBTcl_GetEncod
0950: 69 6e 67 5c 66 52 20 64 6f 65 73 2e 20 20 57 68  ing\fR does.  Wh
0960: 65 6e 20 61 6e 20 65 6e 63 6f 64 69 6e 67 20 69  en an encoding i
0970: 73 20 66 6f 75 6e 64 2c 20 69 74 73 20 5c 66 42  s found, its \fB
0980: 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 5c 66 42 0a  Tcl_Encoding\fB.
0990: 2b 74 6f 6b 65 6e 20 69 73 20 77 72 69 74 74 65  +token is writte
09a0: 6e 20 74 6f 20 74 68 65 20 73 74 6f 72 61 67 65  n to the storage
09b0: 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 5c   pointed to by \
09c0: 66 49 65 6e 63 6f 64 69 6e 67 50 74 72 5c 66 52  fIencodingPtr\fR
09d0: 2c 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 0a  , and the value.
09e0: 2b 5c 66 42 54 43 4c 5f 4f 4b 5c 66 52 20 69 73  +\fBTCL_OK\fR is
09f0: 20 72 65 74 75 72 6e 65 64 2e 20 20 49 6e 20 61   returned.  In a
0a00: 64 64 69 74 69 6f 6e 2c 20 61 20 63 6f 70 79 20  ddition, a copy 
0a10: 6f 66 20 74 68 65 20 5c 66 42 54 63 6c 5f 45 6e  of the \fBTcl_En
0a20: 63 6f 64 69 6e 67 5c 66 52 20 69 73 0a 2b 6b 65  coding\fR is.+ke
0a30: 70 74 20 61 73 20 74 68 65 20 69 6e 74 65 72 6e  pt as the intern
0a40: 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f  al representatio
0a50: 6e 20 6f 66 20 5c 66 49 6f 62 6a 50 74 72 5c 66  n of \fIobjPtr\f
0a60: 52 2e 20 20 49 66 20 6e 6f 20 73 75 63 68 20 65  R.  If no such e
0a70: 6e 63 6f 64 69 6e 67 20 69 73 0a 2b 66 6f 75 6e  ncoding is.+foun
0a80: 64 2c 20 74 68 65 20 76 61 6c 75 65 20 5c 66 42  d, the value \fB
0a90: 54 43 4c 5f 45 52 52 4f 52 5c 66 52 20 69 73 20  TCL_ERROR\fR is 
0aa0: 72 65 74 75 72 6e 65 64 2c 20 61 6e 64 20 6e 6f  returned, and no
0ab0: 20 77 72 69 74 69 6e 67 20 74 6f 0a 2b 5c 66 49   writing to.+\fI
0ac0: 2a 65 6e 63 6f 64 69 6e 67 50 74 72 5c 66 52 20  *encodingPtr\fR 
0ad0: 74 61 6b 65 73 20 70 6c 61 63 65 2e 0a 2b 2e 50  takes place..+.P
0ae0: 50 0a 2b 54 68 65 20 72 65 66 65 72 65 6e 63 65  P.+The reference
0af0: 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 5c 66   count of the \f
0b00: 42 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 5c 66 52  BTcl_Encoding\fR
0b10: 20 74 6f 6b 65 6e 20 6d 61 79 20 62 65 20 69 6e   token may be in
0b20: 63 72 65 6d 65 6e 74 65 64 20 74 77 69 63 65 2c  cremented twice,
0b30: 0a 2b 6f 6e 63 65 20 66 6f 72 20 74 68 65 20 72  .+once for the r
0b40: 65 66 65 72 65 6e 63 65 20 77 72 69 74 74 65 6e  eference written
0b50: 20 74 6f 20 5c 66 49 2a 65 6e 63 6f 64 69 6e 67   to \fI*encoding
0b60: 50 74 72 5c 66 52 20 61 6e 64 20 6f 6e 63 65 20  Ptr\fR and once 
0b70: 66 6f 72 20 74 68 65 0a 2b 72 65 66 65 72 65 6e  for the.+referen
0b80: 63 65 20 73 74 6f 72 65 64 20 69 6e 20 5c 66 49  ce stored in \fI
0b90: 6f 62 6a 50 74 72 5c 66 52 2c 20 69 66 20 61 20  objPtr\fR, if a 
0ba0: 72 65 66 65 72 65 6e 63 65 20 69 73 20 6e 6f 74  reference is not
0bb0: 20 61 6c 72 65 61 64 79 20 69 6e 20 70 6c 61 63   already in plac
0bc0: 65 0a 2b 74 68 65 72 65 2e 20 20 54 68 65 20 63  e.+there.  The c
0bd0: 61 6c 6c 65 72 20 73 68 6f 75 6c 64 20 63 61 6c  aller should cal
0be0: 6c 20 5c 66 42 54 63 6c 5f 46 72 65 65 45 6e 63  l \fBTcl_FreeEnc
0bf0: 6f 64 69 6e 67 5c 66 52 20 6f 6e 20 5c 66 49 2a  oding\fR on \fI*
0c00: 65 6e 63 6f 64 69 6e 67 50 74 72 5c 66 52 0a 2b  encodingPtr\fR.+
0c10: 77 68 65 6e 20 74 68 65 20 74 6f 6b 65 6e 20 77  when the token w
0c20: 69 6c 6c 20 6e 6f 20 6c 6f 6e 67 65 72 20 62 65  ill no longer be
0c30: 20 75 73 65 64 2e 20 20 54 68 65 20 75 73 75 61   used.  The usua
0c40: 6c 20 6d 65 63 68 61 6e 69 73 6d 73 20 66 6f 72  l mechanisms for
0c50: 20 66 72 65 65 69 6e 67 20 74 68 65 0a 2b 69 6e   freeing the.+in
0c60: 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74  ternal represent
0c70: 61 74 69 6f 6e 20 6f 66 20 61 20 5c 66 42 54 63  ation of a \fBTc
0c80: 6c 5f 4f 62 6a 5c 66 52 20 77 69 6c 6c 20 74 61  l_Obj\fR will ta
0c90: 6b 65 20 63 61 72 65 20 6f 66 20 63 61 6c 6c 69  ke care of calli
0ca0: 6e 67 0a 2b 5c 66 42 54 63 6c 5f 46 72 65 65 45  ng.+\fBTcl_FreeE
0cb0: 6e 63 6f 64 69 6e 67 5c 66 52 20 6f 6e 20 74 68  ncoding\fR on th
0cc0: 61 74 20 72 65 66 65 72 65 6e 63 65 20 61 74 20  at reference at 
0cd0: 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20  the appropriate 
0ce0: 74 69 6d 65 2e 0a 2b 2e 56 45 20 38 2e 35 0a 2b  time..+.VE 8.5.+
0cf0: 2e 50 50 0a 20 5c 66 42 54 63 6c 5f 45 78 74 65  .PP. \fBTcl_Exte
0d00: 72 6e 61 6c 54 6f 55 74 66 44 53 74 72 69 6e 67  rnalToUtfDString
0d10: 5c 66 52 20 63 6f 6e 76 65 72 74 73 20 61 20 73  \fR converts a s
0d20: 6f 75 72 63 65 20 62 75 66 66 65 72 20 5c 66 49  ource buffer \fI
0d30: 73 72 63 5c 66 52 20 66 72 6f 6d 20 74 68 65 0a  src\fR from the.
0d40: 20 73 70 65 63 69 66 69 65 64 20 5c 66 49 65 6e   specified \fIen
0d50: 63 6f 64 69 6e 67 5c 66 52 20 69 6e 74 6f 20 55  coding\fR into U
0d60: 54 46 2d 38 2e 20 20 54 68 65 20 63 6f 6e 76 65  TF-8.  The conve
0d70: 72 74 65 64 20 62 79 74 65 73 20 61 72 65 20 73  rted bytes are s
0d80: 74 6f 72 65 64 20 69 6e 20 0a 20 5c 66 49 64 73  tored in . \fIds
0d90: 74 50 74 72 5c 66 52 2c 20 77 68 69 63 68 20 69  tPtr\fR, which i
0da0: 73 20 74 68 65 6e 20 6e 75 6c 6c 2d 74 65 72 6d  s then null-term
0db0: 69 6e 61 74 65 64 2e 20 20 54 68 65 20 63 61 6c  inated.  The cal
0dc0: 6c 65 72 20 73 68 6f 75 6c 64 20 65 76 65 6e 74  ler should event
0dd0: 75 61 6c 6c 79 0a 40 40 20 2d 32 37 37 2c 36 20  ually.@@ -277,6 
0de0: 2b 33 33 30 2c 31 35 20 40 40 0a 20 64 65 63 72  +330,15 @@. decr
0df0: 65 6d 65 6e 74 73 20 74 68 65 20 72 65 66 65 72  ements the refer
0e00: 65 6e 63 65 20 63 6f 75 6e 74 20 6f 66 20 74 68  ence count of th
0e10: 65 20 6f 6c 64 20 73 79 73 74 65 6d 20 65 6e 63  e old system enc
0e20: 6f 64 69 6e 67 2c 20 61 6e 64 20 72 65 74 75 72  oding, and retur
0e30: 6e 73 0a 20 5c 66 42 54 43 4c 5f 4f 4b 5c 66 52  ns. \fBTCL_OK\fR
0e40: 2e 0a 20 2e 50 50 0a 2b 2e 56 53 20 38 2e 35 0a  .. .PP.+.VS 8.5.
0e50: 2b 5c 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f 64  +\fBTcl_GetEncod
0e60: 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72  ingNameFromEnvir
0e70: 6f 6e 6d 65 6e 74 5c 66 52 20 70 72 6f 76 69 64  onment\fR provid
0e80: 65 73 20 61 20 6d 65 61 6e 73 20 66 6f 72 20 74  es a means for t
0e90: 68 65 20 54 63 6c 0a 2b 6c 69 62 72 61 72 79 20  he Tcl.+library 
0ea0: 74 6f 20 72 65 70 6f 72 74 20 74 68 65 20 65 6e  to report the en
0eb0: 63 6f 64 69 6e 67 20 6e 61 6d 65 20 69 74 20 62  coding name it b
0ec0: 65 6c 69 65 76 65 73 20 74 6f 20 62 65 20 74 68  elieves to be th
0ed0: 65 20 63 6f 72 72 65 63 74 20 6f 6e 65 0a 2b 74  e correct one.+t
0ee0: 6f 20 75 73 65 20 61 73 20 74 68 65 20 73 79 73  o use as the sys
0ef0: 74 65 6d 20 65 6e 63 6f 64 69 6e 67 2c 20 62 61  tem encoding, ba
0f00: 73 65 64 20 6f 6e 20 73 79 73 74 65 6d 20 63 61  sed on system ca
0f10: 6c 6c 73 20 61 6e 64 20 65 78 61 6d 69 6e 61 74  lls and examinat
0f20: 69 6f 6e 20 6f 66 0a 2b 74 68 65 20 65 6e 76 69  ion of.+the envi
0f30: 72 6f 6e 6d 65 6e 74 20 73 75 69 74 61 62 6c 65  ronment suitable
0f40: 20 66 6f 72 20 74 68 65 20 70 6c 61 74 66 6f 72   for the platfor
0f50: 6d 2e 20 20 49 74 20 61 63 63 65 70 74 73 20 5c  m.  It accepts \
0f60: 66 49 62 75 66 50 74 72 5c 66 52 2c 0a 2b 61 20  fIbufPtr\fR,.+a 
0f70: 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 75 6e  pointer to an un
0f80: 69 6e 69 74 69 61 6c 69 7a 65 64 20 6f 72 20 66  initialized or f
0f90: 72 65 65 64 20 5c 66 42 54 63 6c 5f 44 53 74 72  reed \fBTcl_DStr
0fa0: 69 6e 67 5c 66 52 20 61 6e 64 20 77 72 69 74 65  ing\fR and write
0fb0: 73 0a 2b 74 68 65 20 65 6e 63 6f 64 69 6e 67 20  s.+the encoding 
0fc0: 6e 61 6d 65 20 74 6f 20 69 74 2e 20 20 54 68 65  name to it.  The
0fd0: 20 5c 66 42 54 63 6c 5f 44 53 74 72 69 6e 67 56   \fBTcl_DStringV
0fe0: 61 6c 75 65 5c 66 52 20 69 73 20 72 65 74 75 72  alue\fR is retur
0ff0: 6e 65 64 2e 0a 2b 2e 56 45 20 38 2e 35 0a 2b 2e  ned..+.VE 8.5.+.
1000: 50 50 0a 20 5c 66 42 54 63 6c 5f 47 65 74 45 6e  PP. \fBTcl_GetEn
1010: 63 6f 64 69 6e 67 4e 61 6d 65 73 5c 66 52 20 73  codingNames\fR s
1020: 65 74 73 20 74 68 65 20 5c 66 49 69 6e 74 65 72  ets the \fIinter
1030: 70 5c 66 52 20 72 65 73 75 6c 74 20 74 6f 20 61  p\fR result to a
1040: 20 6c 69 73 74 0a 20 63 6f 6e 73 69 73 74 69 6e   list. consistin
1050: 67 20 6f 66 20 74 68 65 20 6e 61 6d 65 73 20 6f  g of the names o
1060: 66 20 61 6c 6c 20 74 68 65 20 65 6e 63 6f 64 69  f all the encodi
1070: 6e 67 73 20 74 68 61 74 20 61 72 65 20 63 75 72  ngs that are cur
1080: 72 65 6e 74 6c 79 20 64 65 66 69 6e 65 64 0a 20  rently defined. 
1090: 6f 72 20 63 61 6e 20 62 65 20 64 79 6e 61 6d 69  or can be dynami
10a0: 63 61 6c 6c 79 20 6c 6f 61 64 65 64 2c 20 73 65  cally loaded, se
10b0: 61 72 63 68 69 6e 67 20 74 68 65 20 65 6e 63 6f  arching the enco
10c0: 64 69 6e 67 20 70 61 74 68 20 73 70 65 63 69 66  ding path specif
10d0: 69 65 64 20 62 79 0a 40 40 20 2d 33 37 36 2c 31  ied by.@@ -376,1
10e0: 32 20 2b 34 33 38 2c 33 34 20 40 40 0a 20 5c 66  2 +438,34 @@. \f
10f0: 49 63 6c 69 65 6e 74 44 61 74 61 5c 66 52 20 70  IclientData\fR p
1100: 61 72 61 6d 65 74 65 72 20 69 73 20 74 68 65 20  arameter is the 
1110: 73 61 6d 65 20 61 73 20 74 68 65 20 5c 66 49 63  same as the \fIc
1120: 6c 69 65 6e 74 44 61 74 61 5c 66 52 20 66 69 65  lientData\fR fie
1130: 6c 64 0a 20 73 70 65 63 69 66 69 65 64 20 74 6f  ld. specified to
1140: 20 5c 66 42 54 63 6c 5f 43 72 65 61 74 65 45 6e   \fBTcl_CreateEn
1150: 63 6f 64 69 6e 67 5c 66 52 20 77 68 65 6e 20 74  coding\fR when t
1160: 68 65 20 65 6e 63 6f 64 69 6e 67 20 77 61 73 20  he encoding was 
1170: 63 72 65 61 74 65 64 2e 20 20 0a 20 2e 50 50 0a  created.  . .PP.
1180: 2d 0a 2b 2e 56 53 20 38 2e 35 0a 2b 5c 66 42 54  -.+.VS 8.5.+\fBT
1190: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_GetEncodingSe
11a0: 61 72 63 68 50 61 74 68 5c 66 52 20 61 6e 64 20  archPath\fR and 
11b0: 5c 66 42 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69  \fBTcl_SetEncodi
11c0: 6e 67 53 65 61 72 63 68 50 61 74 68 5c 66 52 0a  ngSearchPath\fR.
11d0: 2b 61 72 65 20 63 61 6c 6c 65 64 20 74 6f 20 61  +are called to a
11e0: 63 63 65 73 73 20 61 6e 64 20 73 65 74 20 74 68  ccess and set th
11f0: 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 79  e list of filesy
1200: 73 74 65 6d 20 64 69 72 65 63 74 6f 72 69 65 73  stem directories
1210: 20 73 65 61 72 63 68 65 64 0a 2b 66 6f 72 20 65   searched.+for e
1220: 6e 63 6f 64 69 6e 67 20 64 61 74 61 20 66 69 6c  ncoding data fil
1230: 65 73 2e 20 20 0a 2b 2e 50 50 0a 2b 54 68 65 20  es.  .+.PP.+The 
1240: 76 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62  value returned b
1250: 79 20 5c 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f  y \fBTcl_GetEnco
1260: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 5c 66  dingSearchPath\f
1270: 52 0a 2b 69 73 20 74 68 65 20 76 61 6c 75 65 20  R.+is the value 
1280: 73 74 6f 72 65 64 20 62 79 20 74 68 65 20 6c 61  stored by the la
1290: 73 74 20 73 75 63 63 65 73 73 66 75 6c 20 63 61  st successful ca
12a0: 6c 6c 20 74 6f 0a 2b 5c 66 42 54 63 6c 5f 53 65  ll to.+\fBTcl_Se
12b0: 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50  tEncodingSearchP
12c0: 61 74 68 5c 66 52 2e 20 20 49 66 20 6e 6f 20 63  ath\fR.  If no c
12d0: 61 6c 6c 73 20 74 6f 0a 2b 5c 66 42 54 63 6c 5f  alls to.+\fBTcl_
12e0: 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  SetEncodingSearc
12f0: 68 50 61 74 68 5c 66 52 20 68 61 76 65 20 6f 63  hPath\fR have oc
1300: 63 75 72 72 65 64 2c 20 54 63 6c 20 77 69 6c 6c  curred, Tcl will
1310: 20 63 6f 6d 70 75 74 65 20 61 6e 20 69 6e 69 74   compute an init
1320: 69 61 6c 0a 2b 76 61 6c 75 65 20 62 61 73 65 64  ial.+value based
1330: 20 6f 6e 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d   on the environm
1340: 65 6e 74 2e 20 20 54 68 65 72 65 20 69 73 20 6f  ent.  There is o
1350: 6e 65 20 65 6e 63 6f 64 69 6e 67 20 73 65 61 72  ne encoding sear
1360: 63 68 20 70 61 74 68 20 66 6f 72 20 74 68 65 0a  ch path for the.
1370: 2b 65 6e 74 69 72 65 20 70 72 6f 63 65 73 73 2c  +entire process,
1380: 20 73 68 61 72 65 64 20 62 79 20 61 6c 6c 20 74   shared by all t
1390: 68 72 65 61 64 73 20 69 6e 20 74 68 65 20 70 72  hreads in the pr
13a0: 6f 63 65 73 73 2e 0a 2b 2e 50 50 0a 2b 5c 66 42  ocess..+.PP.+\fB
13b0: 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67 53  Tcl_SetEncodingS
13c0: 65 61 72 63 68 50 61 74 68 5c 66 52 20 73 74 6f  earchPath\fR sto
13d0: 72 65 73 20 5c 66 49 73 65 61 72 63 68 50 61 74  res \fIsearchPat
13e0: 68 5c 66 52 20 61 6e 64 20 72 65 74 75 72 6e 73  h\fR and returns
13f0: 0a 2b 5c 66 42 54 43 4c 5f 4f 4b 5c 66 52 2c 20  .+\fBTCL_OK\fR, 
1400: 75 6e 6c 65 73 73 20 5c 66 49 73 65 61 72 63 68  unless \fIsearch
1410: 50 61 74 68 5c 66 52 20 69 73 20 6e 6f 74 20 61  Path\fR is not a
1420: 20 76 61 6c 69 64 20 54 63 6c 20 6c 69 73 74 2c   valid Tcl list,
1430: 20 77 68 69 63 68 0a 2b 63 61 75 73 65 73 20 5c   which.+causes \
1440: 66 42 54 43 4c 5f 45 52 52 4f 52 5c 66 52 20 74  fBTCL_ERROR\fR t
1450: 6f 20 62 65 20 72 65 74 75 72 6e 65 64 2e 20 20  o be returned.  
1460: 54 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20  The elements of 
1470: 5c 66 49 73 65 61 72 63 68 50 61 74 68 5c 66 52  \fIsearchPath\fR
1480: 0a 2b 61 72 65 20 6e 6f 74 20 76 65 72 69 66 69  .+are not verifi
1490: 65 64 20 61 73 20 65 78 69 73 74 69 6e 67 20 72  ed as existing r
14a0: 65 61 64 61 62 6c 65 20 66 69 6c 65 73 79 73 74  eadable filesyst
14b0: 65 6d 20 64 69 72 65 63 74 6f 72 69 65 73 2e 20  em directories. 
14c0: 20 57 68 65 6e 0a 2b 73 65 61 72 63 68 69 6e 67   When.+searching
14d0: 20 66 6f 72 20 65 6e 63 6f 64 69 6e 67 20 64 61   for encoding da
14e0: 74 61 20 66 69 6c 65 73 20 74 61 6b 65 73 20 70  ta files takes p
14f0: 6c 61 63 65 2c 20 61 6e 64 20 6e 6f 6e 2d 65 78  lace, and non-ex
1500: 69 73 74 65 6e 74 20 6f 72 0a 2b 6e 6f 6e 2d 72  istent or.+non-r
1510: 65 61 64 61 62 6c 65 20 66 69 6c 65 73 79 73 74  eadable filesyst
1520: 65 6d 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f  em directories o
1530: 6e 20 74 68 65 20 5c 66 49 73 65 61 72 63 68 50  n the \fIsearchP
1540: 61 74 68 5c 66 52 20 61 72 65 20 73 69 6c 65 6e  ath\fR are silen
1550: 74 6c 79 0a 2b 69 67 6e 6f 72 65 64 2e 0a 2b 2e  tly.+ignored..+.
1560: 50 50 0a 20 5c 66 42 54 63 6c 5f 47 65 74 44 65  PP. \fBTcl_GetDe
1570: 66 61 75 6c 74 45 6e 63 6f 64 69 6e 67 44 69 72  faultEncodingDir
1580: 5c 66 52 20 61 6e 64 20 5c 66 42 54 63 6c 5f 53  \fR and \fBTcl_S
1590: 65 74 44 65 66 61 75 6c 74 45 6e 63 6f 64 69 6e  etDefaultEncodin
15a0: 67 44 69 72 5c 66 52 0a 2d 61 63 63 65 73 73 20  gDir\fR.-access 
15b0: 61 6e 64 20 73 65 74 20 74 68 65 20 64 69 72 65  and set the dire
15c0: 63 74 6f 72 79 20 74 6f 20 75 73 65 20 77 68 65  ctory to use whe
15d0: 6e 20 6c 6f 63 61 74 69 6e 67 20 74 68 65 20 64  n locating the d
15e0: 65 66 61 75 6c 74 20 65 6e 63 6f 64 69 6e 67 0a  efault encoding.
15f0: 2d 66 69 6c 65 73 2e 20 20 49 66 20 74 68 69 73  -files.  If this
1600: 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 4e 55   value is not NU
1610: 4c 4c 2c 20 74 68 65 20 5c 66 42 54 63 6c 70 49  LL, the \fBTclpI
1620: 6e 69 74 4c 69 62 72 61 72 79 50 61 74 68 5c 66  nitLibraryPath\f
1630: 52 20 72 6f 75 74 69 6e 65 0a 2d 61 70 70 65 6e  R routine.-appen
1640: 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74  ds the path to t
1650: 68 65 20 68 65 61 64 20 6f 66 20 74 68 65 20 73  he head of the s
1660: 65 61 72 63 68 20 70 61 74 68 2c 20 61 6e 64 20  earch path, and 
1670: 75 73 65 73 20 74 68 69 73 20 70 61 74 68 20 61  uses this path a
1680: 73 0a 2d 74 68 65 20 66 69 72 73 74 20 70 6c 61  s.-the first pla
1690: 63 65 20 74 6f 20 6c 6f 6f 6b 20 69 6e 74 6f 20  ce to look into 
16a0: 77 68 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 6c  when trying to l
16b0: 6f 63 61 74 65 20 74 68 65 20 65 6e 63 6f 64 69  ocate the encodi
16c0: 6e 67 20 66 69 6c 65 2e 0a 2b 61 72 65 20 6f 62  ng file..+are ob
16d0: 73 6f 6c 65 74 65 20 69 6e 74 65 72 66 61 63 65  solete interface
16e0: 73 20 62 65 73 74 20 72 65 70 6c 61 63 65 64 20  s best replaced 
16f0: 77 69 74 68 20 63 61 6c 6c 73 20 74 6f 0a 2b 5c  with calls to.+\
1700: 66 42 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e  fBTcl_GetEncodin
1710: 67 53 65 61 72 63 68 50 61 74 68 5c 66 52 20 61  gSearchPath\fR a
1720: 6e 64 20 5c 66 42 54 63 6c 5f 53 65 74 45 6e 63  nd \fBTcl_SetEnc
1730: 6f 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 5c  odingSearchPath\
1740: 66 52 2e 0a 2b 54 68 65 79 20 61 72 65 20 63 61  fR..+They are ca
1750: 6c 6c 65 64 20 74 6f 20 61 63 63 65 73 73 20 61  lled to access a
1760: 6e 64 20 73 65 74 20 74 68 65 20 66 69 72 73 74  nd set the first
1770: 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20   element of the 
1780: 5c 66 49 73 65 61 72 63 68 50 61 74 68 5c 66 52  \fIsearchPath\fR
1790: 0a 2b 6c 69 73 74 2e 20 20 53 69 6e 63 65 20 54  .+list.  Since T
17a0: 63 6c 20 73 65 61 72 63 68 65 73 20 5c 66 49 73  cl searches \fIs
17b0: 65 61 72 63 68 50 61 74 68 5c 66 52 20 66 6f 72  earchPath\fR for
17c0: 20 65 6e 63 6f 64 69 6e 67 20 64 61 74 61 20 66   encoding data f
17d0: 69 6c 65 73 20 69 6e 0a 2b 6c 69 73 74 20 6f 72  iles in.+list or
17e0: 64 65 72 2c 20 74 68 65 73 65 20 72 6f 75 74 69  der, these routi
17f0: 6e 65 73 20 65 73 74 61 62 6c 69 73 68 20 74 68  nes establish th
1800: 65 20 60 60 64 65 66 61 75 6c 74 27 27 20 64 69  e ``default'' di
1810: 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68  rectory in which
1820: 0a 2b 74 6f 20 66 69 6e 64 20 65 6e 63 6f 64 69  .+to find encodi
1830: 6e 67 20 64 61 74 61 20 66 69 6c 65 73 2e 0a 2b  ng data files..+
1840: 2e 56 45 20 38 2e 35 0a 20 0a 20 2e 53 48 20 22  .VE 8.5. . .SH "
1850: 45 4e 43 4f 44 49 4e 47 20 46 49 4c 45 53 22 0a  ENCODING FILES".
1860: 20 53 70 61 63 65 20 77 6f 75 6c 64 20 70 72 6f   Space would pro
1870: 68 69 62 69 74 20 70 72 65 63 6f 6d 70 69 6c 69  hibit precompili
1880: 6e 67 20 69 6e 74 6f 20 54 63 6c 20 65 76 65 72  ng into Tcl ever
1890: 79 20 70 6f 73 73 69 62 6c 65 20 65 6e 63 6f 64  y possible encod
18a0: 69 6e 67 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 65  ing.Index: doc/e
18b0: 6e 63 6f 64 69 6e 67 2e 6e 0a 3d 3d 3d 3d 3d 3d  ncoding.n.======
18c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
18d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
18e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
18f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43  =============.RC
1900: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74  S file: /cvsroot
1910: 2f 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 65 6e 63  /tcl/tcl/doc/enc
1920: 6f 64 69 6e 67 2e 6e 2c 76 0a 72 65 74 72 69 65  oding.n,v.retrie
1930: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e  ving revision 1.
1940: 36 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 36 20  6.diff -u -r1.6 
1950: 65 6e 63 6f 64 69 6e 67 2e 6e 0a 2d 2d 2d 20 64  encoding.n.--- d
1960: 6f 63 2f 65 6e 63 6f 64 69 6e 67 2e 6e 09 32 37  oc/encoding.n.27
1970: 20 4f 63 74 20 32 30 30 34 20 31 34 3a 32 34 3a   Oct 2004 14:24:
1980: 33 37 20 2d 30 30 30 30 09 31 2e 36 0a 2b 2b 2b  37 -0000.1.6.+++
1990: 20 64 6f 63 2f 65 6e 63 6f 64 69 6e 67 2e 6e 09   doc/encoding.n.
19a0: 38 20 46 65 62 20 32 30 30 36 20 32 31 3a 32 35  8 Feb 2006 21:25
19b0: 3a 33 31 20 2d 30 30 30 30 0a 40 40 20 2d 34 31  :31 -0000.@@ -41
19c0: 2c 36 20 2b 34 31 2c 32 31 20 40 40 0a 20 63 68  ,6 +41,21 @@. ch
19d0: 61 72 61 63 74 65 72 2e 20 20 49 66 20 5c 66 49  aracter.  If \fI
19e0: 65 6e 63 6f 64 69 6e 67 5c 66 52 20 69 73 20 6e  encoding\fR is n
19f0: 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 74 68  ot specified, th
1a00: 65 20 63 75 72 72 65 6e 74 0a 20 73 79 73 74 65  e current. syste
1a10: 6d 20 65 6e 63 6f 64 69 6e 67 20 69 73 20 75 73  m encoding is us
1a20: 65 64 2e 0a 20 2e 54 50 0a 2b 5c 66 42 65 6e 63  ed.. .TP.+\fBenc
1a30: 6f 64 69 6e 67 20 64 69 72 73 5c 66 52 20 3f 5c  oding dirs\fR ?\
1a40: 66 49 64 69 72 65 63 74 6f 72 79 4c 69 73 74 5c  fIdirectoryList\
1a50: 66 52 3f 0a 2b 2e 56 53 20 38 2e 35 0a 2b 54 63  fR?.+.VS 8.5.+Tc
1a60: 6c 20 63 61 6e 20 6c 6f 61 64 20 65 6e 63 6f 64  l can load encod
1a70: 69 6e 67 20 64 61 74 61 20 66 69 6c 65 73 20 66  ing data files f
1a80: 72 6f 6d 20 74 68 65 20 66 69 6c 65 20 73 79 73  rom the file sys
1a90: 74 65 6d 20 74 68 61 74 20 64 65 73 63 72 69 62  tem that describ
1aa0: 65 0a 2b 61 64 64 69 74 69 6f 6e 61 6c 20 65 6e  e.+additional en
1ab0: 63 6f 64 69 6e 67 73 20 66 6f 72 20 69 74 20 74  codings for it t
1ac0: 6f 20 77 6f 72 6b 20 77 69 74 68 2e 20 20 54 68  o work with.  Th
1ad0: 69 73 20 63 6f 6d 6d 61 6e 64 0a 2b 73 65 74 73  is command.+sets
1ae0: 20 74 68 65 20 73 65 61 72 63 68 20 70 61 74 68   the search path
1af0: 20 66 6f 72 20 5c 66 42 2a 2e 65 6e 63 5c 66 52   for \fB*.enc\fR
1b00: 20 65 6e 63 6f 64 69 6e 67 20 64 61 74 61 20 66   encoding data f
1b10: 69 6c 65 73 20 74 6f 0a 2b 74 68 65 20 6c 69 73  iles to.+the lis
1b20: 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73  t of directories
1b30: 20 5c 66 49 64 69 72 65 63 74 6f 72 79 4c 69 73   \fIdirectoryLis
1b40: 74 5c 66 52 2e 20 20 49 66 0a 2b 5c 66 49 64 69  t\fR.  If.+\fIdi
1b50: 72 65 63 74 6f 72 79 4c 69 73 74 5c 66 52 20 69  rectoryList\fR i
1b60: 73 20 6f 6d 69 74 74 65 64 20 74 68 65 6e 20 74  s omitted then t
1b70: 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72  he command retur
1b80: 6e 73 20 74 68 65 0a 2b 63 75 72 72 65 6e 74 20  ns the.+current 
1b90: 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72  list of director
1ba0: 69 65 73 20 74 68 61 74 20 6d 61 6b 65 20 75 70  ies that make up
1bb0: 20 74 68 65 20 73 65 61 72 63 68 20 70 61 74 68   the search path
1bc0: 2e 0a 2b 49 66 20 5c 66 49 64 69 72 65 63 74 6f  ..+If \fIdirecto
1bd0: 72 79 4c 69 73 74 5c 66 52 20 69 73 20 70 72 65  ryList\fR is pre
1be0: 73 65 6e 74 2c 20 62 75 74 20 69 73 20 6e 6f 74  sent, but is not
1bf0: 20 61 20 76 61 6c 69 64 20 54 63 6c 0a 2b 6c 69   a valid Tcl.+li
1c00: 73 74 2c 20 61 6e 20 65 72 72 6f 72 20 69 73 20  st, an error is 
1c10: 72 61 69 73 65 64 2e 20 20 41 6e 79 20 65 6c 65  raised.  Any ele
1c20: 6d 65 6e 74 73 20 69 6e 20 5c 66 49 64 69 72 65  ments in \fIdire
1c30: 63 74 6f 72 79 4c 69 73 74 5c 66 52 0a 2b 74 68  ctoryList\fR.+th
1c40: 61 74 20 61 72 65 20 6e 6f 74 20 69 6e 20 66 61  at are not in fa
1c50: 63 74 20 72 65 61 64 61 62 6c 65 20 64 69 72 65  ct readable dire
1c60: 63 74 6f 72 69 65 73 20 69 6e 20 74 68 65 20 66  ctories in the f
1c70: 69 6c 65 73 79 73 74 65 6d 20 61 72 65 20 69 67  ilesystem are ig
1c80: 6e 6f 72 65 64 0a 2b 77 69 74 68 6f 75 74 20 72  nored.+without r
1c90: 61 69 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 20  aising an error 
1ca0: 77 68 65 6e 20 73 65 61 72 63 68 65 73 20 66 6f  when searches fo
1cb0: 72 20 65 6e 63 6f 64 69 6e 67 20 64 61 74 61 20  r encoding data 
1cc0: 66 69 6c 65 73 0a 2b 74 61 6b 65 20 70 6c 61 63  files.+take plac
1cd0: 65 2e 0a 2b 2e 56 45 20 38 2e 35 0a 2b 2e 54 50  e..+.VE 8.5.+.TP
1ce0: 0a 20 5c 66 42 65 6e 63 6f 64 69 6e 67 20 6e 61  . \fBencoding na
1cf0: 6d 65 73 5c 66 52 0a 20 52 65 74 75 72 6e 73 20  mes\fR. Returns 
1d00: 61 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e  a list containin
1d10: 67 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 61  g the names of a
1d20: 6c 6c 20 6f 66 20 74 68 65 20 65 6e 63 6f 64 69  ll of the encodi
1d30: 6e 67 73 20 74 68 61 74 20 61 72 65 0a 20 63 75  ngs that are. cu
1d40: 72 72 65 6e 74 6c 79 20 61 76 61 69 6c 61 62 6c  rrently availabl
1d50: 65 2e 20 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72  e. .Index: gener
1d60: 69 63 2f 74 63 6c 2e 64 65 63 6c 73 0a 3d 3d 3d  ic/tcl.decls.===
1d70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1da0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1db0: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72  .RCS file: /cvsr
1dc0: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65  oot/tcl/tcl/gene
1dd0: 72 69 63 2f 74 63 6c 2e 64 65 63 6c 73 2c 76 0a  ric/tcl.decls,v.
1de0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
1df0: 69 6f 6e 20 31 2e 31 31 39 0a 64 69 66 66 20 2d  ion 1.119.diff -
1e00: 75 20 2d 72 31 2e 31 31 39 20 74 63 6c 2e 64 65  u -r1.119 tcl.de
1e10: 63 6c 73 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f  cls.--- generic/
1e20: 74 63 6c 2e 64 65 63 6c 73 09 31 20 46 65 62 20  tcl.decls.1 Feb 
1e30: 32 30 30 36 20 31 38 3a 32 37 3a 34 33 20 2d 30  2006 18:27:43 -0
1e40: 30 30 30 09 31 2e 31 31 39 0a 2b 2b 2b 20 67 65  000.1.119.+++ ge
1e50: 6e 65 72 69 63 2f 74 63 6c 2e 64 65 63 6c 73 09  neric/tcl.decls.
1e60: 38 20 46 65 62 20 32 30 30 36 20 32 31 3a 32 35  8 Feb 2006 21:25
1e70: 3a 33 32 20 2d 30 30 30 30 0a 40 40 20 2d 32 30  :32 -0000.@@ -20
1e80: 34 39 2c 36 20 2b 32 30 34 39 2c 32 32 20 40 40  49,6 +2049,22 @@
1e90: 0a 20 20 20 20 20 20 20 20 20 54 63 6c 5f 4f 62  .         Tcl_Ob
1ea0: 6a 20 2a 68 61 6e 64 6c 65 72 50 74 72 29 0a 20  j *handlerPtr). 
1eb0: 7d 0a 20 0a 2b 23 20 54 49 50 23 32 35 38 20 45  }. .+# TIP#258 E
1ec0: 6e 68 61 6e 63 65 64 20 49 6e 74 65 72 66 61 63  nhanced Interfac
1ed0: 65 20 66 6f 72 20 45 6e 63 6f 64 69 6e 67 73 0a  e for Encodings.
1ee0: 2b 0a 2b 64 65 63 6c 61 72 65 20 35 36 39 20 67  +.+declare 569 g
1ef0: 65 6e 65 72 69 63 20 7b 0a 2b 20 20 20 20 69 6e  eneric {.+    in
1f00: 74 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e  t Tcl_GetEncodin
1f10: 67 46 72 6f 6d 4f 62 6a 28 54 63 6c 5f 49 6e 74  gFromObj(Tcl_Int
1f20: 65 72 70 2a 20 69 6e 74 65 72 70 2c 20 54 63 6c  erp* interp, Tcl
1f30: 5f 4f 62 6a 2a 20 6f 62 6a 50 74 72 2c 0a 2b 20  _Obj* objPtr,.+ 
1f40: 20 20 20 20 20 20 20 20 20 54 63 6c 5f 45 6e 63           Tcl_Enc
1f50: 6f 64 69 6e 67 2a 20 65 6e 63 6f 64 69 6e 67 50  oding* encodingP
1f60: 74 72 29 0a 2b 7d 0a 2b 64 65 63 6c 61 72 65 20  tr).+}.+declare 
1f70: 35 37 30 20 67 65 6e 65 72 69 63 20 7b 0a 2b 20  570 generic {.+ 
1f80: 20 20 20 54 63 6c 5f 4f 62 6a 2a 20 54 63 6c 5f     Tcl_Obj* Tcl_
1f90: 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  GetEncodingSearc
1fa0: 68 50 61 74 68 28 76 6f 69 64 29 0a 2b 7d 0a 2b  hPath(void).+}.+
1fb0: 64 65 63 6c 61 72 65 20 35 37 31 20 67 65 6e 65  declare 571 gene
1fc0: 72 69 63 20 7b 0a 2b 20 20 20 20 69 6e 74 20 54  ric {.+    int T
1fd0: 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_SetEncodingSe
1fe0: 61 72 63 68 50 61 74 68 28 54 63 6c 5f 4f 62 6a  archPath(Tcl_Obj
1ff0: 2a 20 73 65 61 72 63 68 50 61 74 68 29 0a 2b 7d  * searchPath).+}
2000: 0a 2b 64 65 63 6c 61 72 65 20 35 37 32 20 67 65  .+declare 572 ge
2010: 6e 65 72 69 63 20 7b 0a 2b 20 20 20 20 43 4f 4e  neric {.+    CON
2020: 53 54 20 63 68 61 72 20 2a 54 63 6c 5f 47 65 74  ST char *Tcl_Get
2030: 45 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d  EncodingNameFrom
2040: 45 6e 76 69 72 6f 6e 6d 65 6e 74 28 54 63 6c 5f  Environment(Tcl_
2050: 44 53 74 72 69 6e 67 2a 20 62 75 66 50 74 72 29  DString* bufPtr)
2060: 0a 2b 7d 0a 2b 0a 20 23 23 23 23 23 23 23 23 23  .+}.+. #########
2070: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2080: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2090: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20b0: 23 23 23 23 23 0a 20 0a 20 23 20 44 65 66 69 6e  #####. . # Defin
20c0: 65 20 74 68 65 20 70 6c 61 74 66 6f 72 6d 20 73  e the platform s
20d0: 70 65 63 69 66 69 63 20 70 75 62 6c 69 63 20 54  pecific public T
20e0: 63 6c 20 69 6e 74 65 72 66 61 63 65 2e 20 20 54  cl interface.  T
20f0: 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61  hese functions a
2100: 72 65 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69  re.Index: generi
2110: 63 2f 74 63 6c 42 61 73 69 63 2e 63 0a 3d 3d 3d  c/tclBasic.c.===
2120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2130: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2140: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2150: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2160: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72  .RCS file: /cvsr
2170: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65  oot/tcl/tcl/gene
2180: 72 69 63 2f 74 63 6c 42 61 73 69 63 2e 63 2c 76  ric/tclBasic.c,v
2190: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69  .retrieving revi
21a0: 73 69 6f 6e 20 31 2e 31 38 39 0a 64 69 66 66 20  sion 1.189.diff 
21b0: 2d 75 20 2d 72 31 2e 31 38 39 20 74 63 6c 42 61  -u -r1.189 tclBa
21c0: 73 69 63 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69  sic.c.--- generi
21d0: 63 2f 74 63 6c 42 61 73 69 63 2e 63 09 31 20 46  c/tclBasic.c.1 F
21e0: 65 62 20 32 30 30 36 20 31 39 3a 32 36 3a 30 31  eb 2006 19:26:01
21f0: 20 2d 30 30 30 30 09 31 2e 31 38 39 0a 2b 2b 2b   -0000.1.189.+++
2200: 20 67 65 6e 65 72 69 63 2f 74 63 6c 42 61 73 69   generic/tclBasi
2210: 63 2e 63 09 38 20 46 65 62 20 32 30 30 36 20 32  c.c.8 Feb 2006 2
2220: 31 3a 32 35 3a 33 34 20 2d 30 30 30 30 0a 40 40  1:25:34 -0000.@@
2230: 20 2d 34 39 33 2c 31 33 20 2b 34 39 33 2c 36 20   -493,13 +493,6 
2240: 40 40 0a 20 09 20 20 20 20 54 63 6c 44 65 66 61  @@. .    TclDefa
2250: 75 6c 74 42 67 45 72 72 6f 72 48 61 6e 64 6c 65  ultBgErrorHandle
2260: 72 4f 62 6a 43 6d 64 2c 09 28 43 6c 69 65 6e 74  rObjCmd,.(Client
2270: 44 61 74 61 29 20 4e 55 4c 4c 2c 20 4e 55 4c 4c  Data) NULL, NULL
2280: 29 3b 0a 20 0a 20 20 20 20 20 2f 2a 0a 2d 20 20  );. .     /*.-  
2290: 20 20 20 2a 20 52 65 67 69 73 74 65 72 20 74 68     * Register th
22a0: 65 20 75 6e 73 75 70 70 6f 72 74 65 64 20 65 6e  e unsupported en
22b0: 63 6f 64 69 6e 67 20 73 65 61 72 63 68 20 70 61  coding search pa
22c0: 74 68 20 63 6f 6d 6d 61 6e 64 2e 0a 2d 20 20 20  th command..-   
22d0: 20 20 2a 2f 0a 2d 0a 2d 20 20 20 20 54 63 6c 5f    */.-.-    Tcl_
22e0: 43 72 65 61 74 65 4f 62 6a 43 6f 6d 6d 61 6e 64  CreateObjCommand
22f0: 28 69 6e 74 65 72 70 2c 20 22 3a 3a 74 63 6c 3a  (interp, "::tcl:
2300: 3a 75 6e 73 75 70 70 6f 72 74 65 64 3a 3a 45 6e  :unsupported::En
2310: 63 6f 64 69 6e 67 44 69 72 73 22 2c 0a 2d 09 20  codingDirs",.-. 
2320: 20 20 20 54 63 6c 45 6e 63 6f 64 69 6e 67 44 69     TclEncodingDi
2330: 72 73 4f 62 6a 43 6d 64 2c 20 4e 55 4c 4c 2c 20  rsObjCmd, NULL, 
2340: 4e 55 4c 4c 29 3b 0a 2d 0a 2d 20 20 20 20 2f 2a  NULL);.-.-    /*
2350: 0a 20 20 20 20 20 20 2a 20 52 65 67 69 73 74 65  .      * Registe
2360: 72 20 74 68 65 20 62 75 69 6c 74 69 6e 20 6d 61  r the builtin ma
2370: 74 68 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20  th functions..  
2380: 20 20 20 20 2a 2f 0a 20 0a 49 6e 64 65 78 3a 20      */. .Index: 
2390: 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 41 48  generic/tclCmdAH
23a0: 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .c.=============
23b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
23c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
23d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
23e0: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a  ======.RCS file:
23f0: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63   /cvsroot/tcl/tc
2400: 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64  l/generic/tclCmd
2410: 41 48 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e  AH.c,v.retrievin
2420: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 37 31 0a  g revision 1.71.
2430: 64 69 66 66 20 2d 75 20 2d 72 31 2e 37 31 20 74  diff -u -r1.71 t
2440: 63 6c 43 6d 64 41 48 2e 63 0a 2d 2d 2d 20 67 65  clCmdAH.c.--- ge
2450: 6e 65 72 69 63 2f 74 63 6c 43 6d 64 41 48 2e 63  neric/tclCmdAH.c
2460: 09 38 20 44 65 63 20 32 30 30 35 20 32 30 3a 32  .8 Dec 2005 20:2
2470: 30 3a 33 34 20 2d 30 30 30 30 09 31 2e 37 31 0a  0:34 -0000.1.71.
2480: 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 43  +++ generic/tclC
2490: 6d 64 41 48 2e 63 09 38 20 46 65 62 20 32 30 30  mdAH.c.8 Feb 200
24a0: 36 20 32 31 3a 32 35 3a 33 34 20 2d 30 30 30 30  6 21:25:34 -0000
24b0: 0a 40 40 20 2d 32 34 2c 36 20 2b 32 34 2c 39 20  .@@ -24,6 +24,9 
24c0: 40 40 0a 20 0a 20 73 74 61 74 69 63 20 69 6e 74  @@. . static int
24d0: 09 09 43 68 65 63 6b 41 63 63 65 73 73 28 54 63  ..CheckAccess(Tc
24e0: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70  l_Interp *interp
24f0: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 50  , Tcl_Obj *pathP
2500: 74 72 2c 0a 20 09 09 09 20 20 20 20 69 6e 74 20  tr,. ...    int 
2510: 6d 6f 64 65 29 3b 0a 2b 73 74 61 74 69 63 20 69  mode);.+static i
2520: 6e 74 09 09 45 6e 63 6f 64 69 6e 67 44 69 72 73  nt..EncodingDirs
2530: 4f 62 6a 43 6d 64 28 43 6c 69 65 6e 74 44 61 74  ObjCmd(ClientDat
2540: 61 20 64 75 6d 6d 79 2c 0a 2b 09 09 09 09 54 63  a dummy,.+....Tc
2550: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70  l_Interp *interp
2560: 2c 20 69 6e 74 20 6f 62 6a 63 2c 0a 2b 09 09 09  , int objc,.+...
2570: 09 54 63 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20  .Tcl_Obj *CONST 
2580: 6f 62 6a 76 5b 5d 29 3b 0a 20 73 74 61 74 69 63  objv[]);. static
2590: 20 69 6e 74 09 09 47 65 74 53 74 61 74 42 75 66   int..GetStatBuf
25a0: 28 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74  (Tcl_Interp *int
25b0: 65 72 70 2c 20 54 63 6c 5f 4f 62 6a 20 2a 70 61  erp, Tcl_Obj *pa
25c0: 74 68 50 74 72 2c 0a 20 09 09 09 20 20 20 20 54  thPtr,. ...    T
25d0: 63 6c 5f 46 53 53 74 61 74 50 72 6f 63 20 2a 73  cl_FSStatProc *s
25e0: 74 61 74 50 72 6f 63 2c 20 54 63 6c 5f 53 74 61  tatProc, Tcl_Sta
25f0: 74 42 75 66 20 2a 73 74 61 74 50 74 72 29 3b 0a  tBuf *statPtr);.
2600: 20 73 74 61 74 69 63 20 63 68 61 72 20 2a 09 09   static char *..
2610: 47 65 74 54 79 70 65 46 72 6f 6d 4d 6f 64 65 28  GetTypeFromMode(
2620: 69 6e 74 20 6d 6f 64 65 29 3b 0a 40 40 20 2d 34  int mode);.@@ -4
2630: 32 37 2c 31 31 20 2b 34 33 30 2c 31 31 20 40 40  27,11 +430,11 @@
2640: 0a 20 20 20 20 20 69 6e 74 20 69 6e 64 65 78 3b  .     int index;
2650: 0a 20 0a 20 20 20 20 20 73 74 61 74 69 63 20 43  . .     static C
2660: 4f 4e 53 54 20 63 68 61 72 20 2a 6f 70 74 69 6f  ONST char *optio
2670: 6e 53 74 72 69 6e 67 73 5b 5d 20 3d 20 7b 0a 2d  nStrings[] = {.-
2680: 09 22 63 6f 6e 76 65 72 74 66 72 6f 6d 22 2c 20  ."convertfrom", 
2690: 22 63 6f 6e 76 65 72 74 74 6f 22 2c 20 22 6e 61  "convertto", "na
26a0: 6d 65 73 22 2c 20 22 73 79 73 74 65 6d 22 2c 0a  mes", "system",.
26b0: 2b 09 22 63 6f 6e 76 65 72 74 66 72 6f 6d 22 2c  +."convertfrom",
26c0: 20 22 63 6f 6e 76 65 72 74 74 6f 22 2c 20 22 64   "convertto", "d
26d0: 69 72 73 22 2c 20 22 6e 61 6d 65 73 22 2c 20 22  irs", "names", "
26e0: 73 79 73 74 65 6d 22 2c 0a 20 09 4e 55 4c 4c 0a  system",. .NULL.
26f0: 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 65 6e 75       };.     enu
2700: 6d 20 6f 70 74 69 6f 6e 73 20 7b 0a 2d 09 45 4e  m options {.-.EN
2710: 43 5f 43 4f 4e 56 45 52 54 46 52 4f 4d 2c 20 45  C_CONVERTFROM, E
2720: 4e 43 5f 43 4f 4e 56 45 52 54 54 4f 2c 20 45 4e  NC_CONVERTTO, EN
2730: 43 5f 4e 41 4d 45 53 2c 20 45 4e 43 5f 53 59 53  C_NAMES, ENC_SYS
2740: 54 45 4d 0a 2b 09 45 4e 43 5f 43 4f 4e 56 45 52  TEM.+.ENC_CONVER
2750: 54 46 52 4f 4d 2c 20 45 4e 43 5f 43 4f 4e 56 45  TFROM, ENC_CONVE
2760: 52 54 54 4f 2c 20 45 4e 43 5f 44 49 52 53 2c 20  RTTO, ENC_DIRS, 
2770: 45 4e 43 5f 4e 41 4d 45 53 2c 20 45 4e 43 5f 53  ENC_NAMES, ENC_S
2780: 59 53 54 45 4d 0a 20 20 20 20 20 7d 3b 0a 20 0a  YSTEM.     };. .
2790: 20 20 20 20 20 69 66 20 28 6f 62 6a 63 20 3c 20       if (objc < 
27a0: 32 29 20 7b 0a 40 40 20 2d 34 35 36 2c 37 20 2b  2) {.@@ -456,7 +
27b0: 34 35 39 2c 37 20 40 40 0a 20 09 20 20 20 20 65  459,7 @@. .    e
27c0: 6e 63 6f 64 69 6e 67 20 3d 20 54 63 6c 5f 47 65  ncoding = Tcl_Ge
27d0: 74 45 6e 63 6f 64 69 6e 67 28 69 6e 74 65 72 70  tEncoding(interp
27e0: 2c 20 4e 55 4c 4c 29 3b 0a 20 09 20 20 20 20 64  , NULL);. .    d
27f0: 61 74 61 20 3d 20 6f 62 6a 76 5b 32 5d 3b 0a 20  ata = objv[2];. 
2800: 09 7d 20 65 6c 73 65 20 69 66 20 28 6f 62 6a 63  .} else if (objc
2810: 20 3d 3d 20 34 29 20 7b 0a 2d 09 20 20 20 20 69   == 4) {.-.    i
2820: 66 20 28 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e  f (TclGetEncodin
2830: 67 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c  gFromObj(interp,
2840: 20 6f 62 6a 76 5b 32 5d 2c 20 26 65 6e 63 6f 64   objv[2], &encod
2850: 69 6e 67 29 20 21 3d 20 54 43 4c 5f 4f 4b 29 20  ing) != TCL_OK) 
2860: 7b 0a 2b 09 20 20 20 20 69 66 20 28 54 63 6c 5f  {.+.    if (Tcl_
2870: 47 65 74 45 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f  GetEncodingFromO
2880: 62 6a 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b  bj(interp, objv[
2890: 32 5d 2c 20 26 65 6e 63 6f 64 69 6e 67 29 20 21  2], &encoding) !
28a0: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 20 09 09 72  = TCL_OK) {. ..r
28b0: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b  eturn TCL_ERROR;
28c0: 0a 20 09 20 20 20 20 7d 0a 20 09 20 20 20 20 64  . .    }. .    d
28d0: 61 74 61 20 3d 20 6f 62 6a 76 5b 33 5d 3b 0a 40  ata = objv[3];.@
28e0: 40 20 2d 34 39 37 2c 36 20 2b 35 30 30 2c 38 20  @ -497,6 +500,8 
28f0: 40 40 0a 20 09 54 63 6c 5f 46 72 65 65 45 6e 63  @@. .Tcl_FreeEnc
2900: 6f 64 69 6e 67 28 65 6e 63 6f 64 69 6e 67 29 3b  oding(encoding);
2910: 0a 20 09 62 72 65 61 6b 3b 0a 20 20 20 20 20 7d  . .break;.     }
2920: 0a 2b 20 20 20 20 63 61 73 65 20 45 4e 43 5f 44  .+    case ENC_D
2930: 49 52 53 3a 0a 2b 09 72 65 74 75 72 6e 20 45 6e  IRS:.+.return En
2940: 63 6f 64 69 6e 67 44 69 72 73 4f 62 6a 43 6d 64  codingDirsObjCmd
2950: 28 64 75 6d 6d 79 2c 20 69 6e 74 65 72 70 2c 20  (dummy, interp, 
2960: 6f 62 6a 63 2d 31 2c 20 6f 62 6a 76 2b 31 29 3b  objc-1, objv+1);
2970: 0a 20 20 20 20 20 63 61 73 65 20 45 4e 43 5f 4e  .     case ENC_N
2980: 41 4d 45 53 3a 0a 20 09 69 66 20 28 6f 62 6a 63  AMES:. .if (objc
2990: 20 3e 20 32 29 20 7b 0a 20 09 20 20 20 20 54 63   > 2) {. .    Tc
29a0: 6c 5f 57 72 6f 6e 67 4e 75 6d 41 72 67 73 28 69  l_WrongNumArgs(i
29b0: 6e 74 65 72 70 2c 20 32 2c 20 6f 62 6a 76 2c 20  nterp, 2, objv, 
29c0: 4e 55 4c 4c 29 3b 0a 40 40 20 2d 35 32 33 2c 37  NULL);.@@ -523,7
29d0: 20 2b 35 32 38 2c 37 20 40 40 0a 20 2f 2a 0a 20   +528,7 @@. /*. 
29e0: 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   *--------------
29f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2a10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2a20: 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 2a 0a 2d 20 2a  --------.  *.- *
2a30: 20 54 63 6c 45 6e 63 6f 64 69 6e 67 44 69 72 73   TclEncodingDirs
2a40: 4f 62 6a 43 6d 64 20 2d 2d 0a 2b 20 2a 20 45 6e  ObjCmd --.+ * En
2a50: 63 6f 64 69 6e 67 44 69 72 73 4f 62 6a 43 6d 64  codingDirsObjCmd
2a60: 20 2d 2d 0a 20 20 2a 0a 20 20 2a 09 54 68 69 73   --.  *.  *.This
2a70: 20 63 6f 6d 6d 61 6e 64 20 6d 61 6e 69 70 75 6c   command manipul
2a80: 61 74 65 73 20 74 68 65 20 65 6e 63 6f 64 69 6e  ates the encodin
2a90: 67 20 73 65 61 72 63 68 20 70 61 74 68 2e 0a 20  g search path.. 
2aa0: 20 2a 0a 40 40 20 2d 35 33 37 2c 37 20 2b 35 34   *.@@ -537,7 +54
2ab0: 32 2c 37 20 40 40 0a 20 20 2a 2f 0a 20 0a 20 69  2,7 @@.  */. . i
2ac0: 6e 74 0a 2d 54 63 6c 45 6e 63 6f 64 69 6e 67 44  nt.-TclEncodingD
2ad0: 69 72 73 4f 62 6a 43 6d 64 28 64 75 6d 6d 79 2c  irsObjCmd(dummy,
2ae0: 20 69 6e 74 65 72 70 2c 20 6f 62 6a 63 2c 20 6f   interp, objc, o
2af0: 62 6a 76 29 0a 2b 45 6e 63 6f 64 69 6e 67 44 69  bjv).+EncodingDi
2b00: 72 73 4f 62 6a 43 6d 64 28 64 75 6d 6d 79 2c 20  rsObjCmd(dummy, 
2b10: 69 6e 74 65 72 70 2c 20 6f 62 6a 63 2c 20 6f 62  interp, objc, ob
2b20: 6a 76 29 0a 20 20 20 20 20 43 6c 69 65 6e 74 44  jv).     ClientD
2b30: 61 74 61 20 64 75 6d 6d 79 3b 09 09 2f 2a 20 4e  ata dummy;../* N
2b40: 6f 74 20 75 73 65 64 2e 20 2a 2f 0a 20 20 20 20  ot used. */.    
2b50: 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74   Tcl_Interp *int
2b60: 65 72 70 3b 09 09 2f 2a 20 43 75 72 72 65 6e 74  erp;../* Current
2b70: 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 2a 2f   interpreter. */
2b80: 0a 20 20 20 20 20 69 6e 74 20 6f 62 6a 63 3b 09  .     int objc;.
2b90: 09 09 2f 2a 20 4e 75 6d 62 65 72 20 6f 66 20 61  ../* Number of a
2ba0: 72 67 75 6d 65 6e 74 73 2e 20 2a 2f 0a 40 40 20  rguments. */.@@ 
2bb0: 2d 35 34 38 2c 31 30 20 2b 35 35 33 2c 31 30 20  -548,10 +553,10 
2bc0: 40 40 0a 20 09 72 65 74 75 72 6e 20 54 43 4c 5f  @@. .return TCL_
2bd0: 45 52 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 20 20  ERROR;.     }.  
2be0: 20 20 20 69 66 20 28 6f 62 6a 63 20 3d 3d 20 31     if (objc == 1
2bf0: 29 20 7b 0a 2d 09 54 63 6c 5f 53 65 74 4f 62 6a  ) {.-.Tcl_SetObj
2c00: 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 54  Result(interp, T
2c10: 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61  clGetEncodingSea
2c20: 72 63 68 50 61 74 68 28 29 29 3b 0a 2b 09 54 63  rchPath());.+.Tc
2c30: 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 28 69  l_SetObjResult(i
2c40: 6e 74 65 72 70 2c 20 54 63 6c 5f 47 65 74 45 6e  nterp, Tcl_GetEn
2c50: 63 6f 64 69 6e 67 53 65 61 72 63 68 50 61 74 68  codingSearchPath
2c60: 28 29 29 3b 0a 20 09 72 65 74 75 72 6e 20 54 43  ());. .return TC
2c70: 4c 5f 4f 4b 3b 0a 20 20 20 20 20 7d 0a 2d 20 20  L_OK;.     }.-  
2c80: 20 20 69 66 20 28 54 63 6c 53 65 74 45 6e 63 6f    if (TclSetEnco
2c90: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 28 6f  dingSearchPath(o
2ca0: 62 6a 76 5b 31 5d 29 20 3d 3d 20 54 43 4c 5f 45  bjv[1]) == TCL_E
2cb0: 52 52 4f 52 29 20 7b 0a 2b 20 20 20 20 69 66 20  RROR) {.+    if 
2cc0: 28 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67  (Tcl_SetEncoding
2cd0: 53 65 61 72 63 68 50 61 74 68 28 6f 62 6a 76 5b  SearchPath(objv[
2ce0: 31 5d 29 20 3d 3d 20 54 43 4c 5f 45 52 52 4f 52  1]) == TCL_ERROR
2cf0: 29 20 7b 0a 20 09 54 63 6c 5f 41 70 70 65 6e 64  ) {. .Tcl_Append
2d00: 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 22  Result(interp, "
2d10: 65 78 70 65 63 74 65 64 20 64 69 72 65 63 74 6f  expected directo
2d20: 72 79 20 6c 69 73 74 20 62 75 74 20 67 6f 74 20  ry list but got 
2d30: 5c 22 22 2c 0a 20 09 09 54 63 6c 5f 47 65 74 53  \"",. ..Tcl_GetS
2d40: 74 72 69 6e 67 28 6f 62 6a 76 5b 31 5d 29 2c 20  tring(objv[1]), 
2d50: 22 5c 22 22 2c 20 4e 55 4c 4c 29 3b 0a 20 09 72  "\"", NULL);. .r
2d60: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b  eturn TCL_ERROR;
2d70: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f  .Index: generic/
2d80: 74 63 6c 44 65 63 6c 73 2e 68 0a 3d 3d 3d 3d 3d  tclDecls.h.=====
2d90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2da0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2db0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2dc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52  ==============.R
2dd0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f  CS file: /cvsroo
2de0: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69  t/tcl/tcl/generi
2df0: 63 2f 74 63 6c 44 65 63 6c 73 2e 68 2c 76 0a 72  c/tclDecls.h,v.r
2e00: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69  etrieving revisi
2e10: 6f 6e 20 31 2e 31 32 31 0a 64 69 66 66 20 2d 75  on 1.121.diff -u
2e20: 20 2d 72 31 2e 31 32 31 20 74 63 6c 44 65 63 6c   -r1.121 tclDecl
2e30: 73 2e 68 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f  s.h.--- generic/
2e40: 74 63 6c 44 65 63 6c 73 2e 68 09 31 20 46 65 62  tclDecls.h.1 Feb
2e50: 20 32 30 30 36 20 31 38 3a 32 37 3a 34 34 20 2d   2006 18:27:44 -
2e60: 30 30 30 30 09 31 2e 31 32 31 0a 2b 2b 2b 20 67  0000.1.121.+++ g
2e70: 65 6e 65 72 69 63 2f 74 63 6c 44 65 63 6c 73 2e  eneric/tclDecls.
2e80: 68 09 38 20 46 65 62 20 32 30 30 36 20 32 31 3a  h.8 Feb 2006 21:
2e90: 32 35 3a 33 37 20 2d 30 30 30 30 0a 40 40 20 2d  25:37 -0000.@@ -
2ea0: 33 35 34 37 2c 36 20 2b 33 35 34 37 2c 33 30 20  3547,6 +3547,30 
2eb0: 40 40 0a 20 09 09 09 09 54 63 6c 5f 49 6e 74 65  @@. ....Tcl_Inte
2ec0: 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 54 63 6c  rp * interp, Tcl
2ed0: 5f 4e 61 6d 65 73 70 61 63 65 20 2a 20 6e 73 50  _Namespace * nsP
2ee0: 74 72 2c 20 0a 20 09 09 09 09 54 63 6c 5f 4f 62  tr, . ....Tcl_Ob
2ef0: 6a 20 2a 20 68 61 6e 64 6c 65 72 50 74 72 29 29  j * handlerPtr))
2f00: 3b 0a 20 23 65 6e 64 69 66 0a 2b 23 69 66 6e 64  ;. #endif.+#ifnd
2f10: 65 66 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69  ef Tcl_GetEncodi
2f20: 6e 67 46 72 6f 6d 4f 62 6a 5f 54 43 4c 5f 44 45  ngFromObj_TCL_DE
2f30: 43 4c 41 52 45 44 0a 2b 23 64 65 66 69 6e 65 20  CLARED.+#define 
2f40: 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 46  Tcl_GetEncodingF
2f50: 72 6f 6d 4f 62 6a 5f 54 43 4c 5f 44 45 43 4c 41  romObj_TCL_DECLA
2f60: 52 45 44 0a 2b 2f 2a 20 35 36 39 20 2a 2f 0a 2b  RED.+/* 569 */.+
2f70: 45 58 54 45 52 4e 20 69 6e 74 09 09 54 63 6c 5f  EXTERN int..Tcl_
2f80: 47 65 74 45 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f  GetEncodingFromO
2f90: 62 6a 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28  bj _ANSI_ARGS_((
2fa0: 0a 2b 09 09 09 09 54 63 6c 5f 49 6e 74 65 72 70  .+....Tcl_Interp
2fb0: 2a 20 69 6e 74 65 72 70 2c 20 54 63 6c 5f 4f 62  * interp, Tcl_Ob
2fc0: 6a 2a 20 6f 62 6a 50 74 72 2c 20 0a 2b 09 09 09  j* objPtr, .+...
2fd0: 09 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 2a 20 65  .Tcl_Encoding* e
2fe0: 6e 63 6f 64 69 6e 67 50 74 72 29 29 3b 0a 2b 23  ncodingPtr));.+#
2ff0: 65 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66 20 54  endif.+#ifndef T
3000: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_GetEncodingSe
3010: 61 72 63 68 50 61 74 68 5f 54 43 4c 5f 44 45 43  archPath_TCL_DEC
3020: 4c 41 52 45 44 0a 2b 23 64 65 66 69 6e 65 20 54  LARED.+#define T
3030: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_GetEncodingSe
3040: 61 72 63 68 50 61 74 68 5f 54 43 4c 5f 44 45 43  archPath_TCL_DEC
3050: 4c 41 52 45 44 0a 2b 2f 2a 20 35 37 30 20 2a 2f  LARED.+/* 570 */
3060: 0a 2b 45 58 54 45 52 4e 20 54 63 6c 5f 4f 62 6a  .+EXTERN Tcl_Obj
3070: 2a 09 09 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69  *..Tcl_GetEncodi
3080: 6e 67 53 65 61 72 63 68 50 61 74 68 20 5f 41 4e  ngSearchPath _AN
3090: 53 49 5f 41 52 47 53 5f 28 28 76 6f 69 64 29 29  SI_ARGS_((void))
30a0: 3b 0a 2b 23 65 6e 64 69 66 0a 2b 23 69 66 6e 64  ;.+#endif.+#ifnd
30b0: 65 66 20 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69  ef Tcl_SetEncodi
30c0: 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54 43 4c  ngSearchPath_TCL
30d0: 5f 44 45 43 4c 41 52 45 44 0a 2b 23 64 65 66 69  _DECLARED.+#defi
30e0: 6e 65 20 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69  ne Tcl_SetEncodi
30f0: 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54 43 4c  ngSearchPath_TCL
3100: 5f 44 45 43 4c 41 52 45 44 0a 2b 2f 2a 20 35 37  _DECLARED.+/* 57
3110: 31 20 2a 2f 0a 2b 45 58 54 45 52 4e 20 69 6e 74  1 */.+EXTERN int
3120: 09 09 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e  ..Tcl_SetEncodin
3130: 67 53 65 61 72 63 68 50 61 74 68 20 5f 41 4e 53  gSearchPath _ANS
3140: 49 5f 41 52 47 53 5f 28 28 0a 2b 09 09 09 09 54  I_ARGS_((.+....T
3150: 63 6c 5f 4f 62 6a 2a 20 73 65 61 72 63 68 50 61  cl_Obj* searchPa
3160: 74 68 29 29 3b 0a 2b 23 65 6e 64 69 66 0a 2b 23  th));.+#endif.+#
3170: 69 66 6e 64 65 66 20 54 63 6c 5f 47 65 74 45 6e  ifndef Tcl_GetEn
3180: 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e  codingNameFromEn
3190: 76 69 72 6f 6e 6d 65 6e 74 5f 54 43 4c 5f 44 45  vironment_TCL_DE
31a0: 43 4c 41 52 45 44 0a 2b 23 64 65 66 69 6e 65 20  CLARED.+#define 
31b0: 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 4e  Tcl_GetEncodingN
31c0: 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65  ameFromEnvironme
31d0: 6e 74 5f 54 43 4c 5f 44 45 43 4c 41 52 45 44 0a  nt_TCL_DECLARED.
31e0: 2b 2f 2a 20 35 37 32 20 2a 2f 0a 2b 45 58 54 45  +/* 572 */.+EXTE
31f0: 52 4e 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 09  RN CONST char *.
3200: 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 4e  Tcl_GetEncodingN
3210: 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65  ameFromEnvironme
3220: 6e 74 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28  nt _ANSI_ARGS_((
3230: 0a 2b 09 09 09 09 54 63 6c 5f 44 53 74 72 69 6e  .+....Tcl_DStrin
3240: 67 2a 20 62 75 66 50 74 72 29 29 3b 0a 2b 23 65  g* bufPtr));.+#e
3250: 6e 64 69 66 0a 20 0a 20 74 79 70 65 64 65 66 20  ndif. . typedef 
3260: 73 74 72 75 63 74 20 54 63 6c 53 74 75 62 48 6f  struct TclStubHo
3270: 6f 6b 73 20 7b 0a 20 20 20 20 20 73 74 72 75 63  oks {.     struc
3280: 74 20 54 63 6c 50 6c 61 74 53 74 75 62 73 20 2a  t TclPlatStubs *
3290: 74 63 6c 50 6c 61 74 53 74 75 62 73 3b 0a 40 40  tclPlatStubs;.@@
32a0: 20 2d 34 31 35 37 2c 36 20 2b 34 31 38 31 2c 31   -4157,6 +4181,1
32b0: 30 20 40 40 0a 20 20 20 20 20 69 6e 74 20 28 2a  0 @@.     int (*
32c0: 74 63 6c 5f 49 6e 69 74 42 69 67 6e 75 6d 46 72  tcl_InitBignumFr
32d0: 6f 6d 44 6f 75 62 6c 65 29 20 5f 41 4e 53 49 5f  omDouble) _ANSI_
32e0: 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74 65 72  ARGS_((Tcl_Inter
32f0: 70 2a 20 69 6e 74 65 72 70 2c 20 64 6f 75 62 6c  p* interp, doubl
3300: 65 20 69 6e 69 74 76 61 6c 2c 20 6d 70 5f 69 6e  e initval, mp_in
3310: 74 20 2a 20 74 6f 49 6e 69 74 29 29 3b 20 2f 2a  t * toInit)); /*
3320: 20 35 36 36 20 2a 2f 0a 20 20 20 20 20 54 63 6c   566 */.     Tcl
3330: 5f 4f 62 6a 20 2a 20 28 2a 74 63 6c 5f 47 65 74  _Obj * (*tcl_Get
3340: 4e 61 6d 65 73 70 61 63 65 55 6e 6b 6e 6f 77 6e  NamespaceUnknown
3350: 48 61 6e 64 6c 65 72 29 20 5f 41 4e 53 49 5f 41  Handler) _ANSI_A
3360: 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74 65 72 70  RGS_((Tcl_Interp
3370: 20 2a 20 69 6e 74 65 72 70 2c 20 54 63 6c 5f 4e   * interp, Tcl_N
3380: 61 6d 65 73 70 61 63 65 20 2a 20 6e 73 50 74 72  amespace * nsPtr
3390: 29 29 3b 20 2f 2a 20 35 36 37 20 2a 2f 0a 20 20  )); /* 567 */.  
33a0: 20 20 20 69 6e 74 20 28 2a 74 63 6c 5f 53 65 74     int (*tcl_Set
33b0: 4e 61 6d 65 73 70 61 63 65 55 6e 6b 6e 6f 77 6e  NamespaceUnknown
33c0: 48 61 6e 64 6c 65 72 29 20 5f 41 4e 53 49 5f 41  Handler) _ANSI_A
33d0: 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74 65 72 70  RGS_((Tcl_Interp
33e0: 20 2a 20 69 6e 74 65 72 70 2c 20 54 63 6c 5f 4e   * interp, Tcl_N
33f0: 61 6d 65 73 70 61 63 65 20 2a 20 6e 73 50 74 72  amespace * nsPtr
3400: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 20 68 61 6e 64  , Tcl_Obj * hand
3410: 6c 65 72 50 74 72 29 29 3b 20 2f 2a 20 35 36 38  lerPtr)); /* 568
3420: 20 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 28 2a 74   */.+    int (*t
3430: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 46 72  cl_GetEncodingFr
3440: 6f 6d 4f 62 6a 29 20 5f 41 4e 53 49 5f 41 52 47  omObj) _ANSI_ARG
3450: 53 5f 28 28 54 63 6c 5f 49 6e 74 65 72 70 2a 20  S_((Tcl_Interp* 
3460: 69 6e 74 65 72 70 2c 20 54 63 6c 5f 4f 62 6a 2a  interp, Tcl_Obj*
3470: 20 6f 62 6a 50 74 72 2c 20 54 63 6c 5f 45 6e 63   objPtr, Tcl_Enc
3480: 6f 64 69 6e 67 2a 20 65 6e 63 6f 64 69 6e 67 50  oding* encodingP
3490: 74 72 29 29 3b 20 2f 2a 20 35 36 39 20 2a 2f 0a  tr)); /* 569 */.
34a0: 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 2a 20 28 2a  +    Tcl_Obj* (*
34b0: 74 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53  tcl_GetEncodingS
34c0: 65 61 72 63 68 50 61 74 68 29 20 5f 41 4e 53 49  earchPath) _ANSI
34d0: 5f 41 52 47 53 5f 28 28 76 6f 69 64 29 29 3b 20  _ARGS_((void)); 
34e0: 2f 2a 20 35 37 30 20 2a 2f 0a 2b 20 20 20 20 69  /* 570 */.+    i
34f0: 6e 74 20 28 2a 74 63 6c 5f 53 65 74 45 6e 63 6f  nt (*tcl_SetEnco
3500: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 29 20  dingSearchPath) 
3510: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c  _ANSI_ARGS_((Tcl
3520: 5f 4f 62 6a 2a 20 73 65 61 72 63 68 50 61 74 68  _Obj* searchPath
3530: 29 29 3b 20 2f 2a 20 35 37 31 20 2a 2f 0a 2b 20  )); /* 571 */.+ 
3540: 20 20 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 20     CONST char * 
3550: 28 2a 74 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e  (*tcl_GetEncodin
3560: 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e  gNameFromEnviron
3570: 6d 65 6e 74 29 20 5f 41 4e 53 49 5f 41 52 47 53  ment) _ANSI_ARGS
3580: 5f 28 28 54 63 6c 5f 44 53 74 72 69 6e 67 2a 20  _((Tcl_DString* 
3590: 62 75 66 50 74 72 29 29 3b 20 2f 2a 20 35 37 32  bufPtr)); /* 572
35a0: 20 2a 2f 0a 20 7d 20 54 63 6c 53 74 75 62 73 3b   */. } TclStubs;
35b0: 0a 20 0a 20 23 69 66 64 65 66 20 5f 5f 63 70 6c  . . #ifdef __cpl
35c0: 75 73 70 6c 75 73 0a 40 40 20 2d 36 34 37 33 2c  usplus.@@ -6473,
35d0: 36 20 2b 36 35 30 31 2c 32 32 20 40 40 0a 20 23  6 +6501,22 @@. #
35e0: 64 65 66 69 6e 65 20 54 63 6c 5f 53 65 74 4e 61  define Tcl_SetNa
35f0: 6d 65 73 70 61 63 65 55 6e 6b 6e 6f 77 6e 48 61  mespaceUnknownHa
3600: 6e 64 6c 65 72 20 5c 0a 20 09 28 74 63 6c 53 74  ndler \. .(tclSt
3610: 75 62 73 50 74 72 2d 3e 74 63 6c 5f 53 65 74 4e  ubsPtr->tcl_SetN
3620: 61 6d 65 73 70 61 63 65 55 6e 6b 6e 6f 77 6e 48  amespaceUnknownH
3630: 61 6e 64 6c 65 72 29 20 2f 2a 20 35 36 38 20 2a  andler) /* 568 *
3640: 2f 0a 20 23 65 6e 64 69 66 0a 2b 23 69 66 6e 64  /. #endif.+#ifnd
3650: 65 66 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69  ef Tcl_GetEncodi
3660: 6e 67 46 72 6f 6d 4f 62 6a 0a 2b 23 64 65 66 69  ngFromObj.+#defi
3670: 6e 65 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69  ne Tcl_GetEncodi
3680: 6e 67 46 72 6f 6d 4f 62 6a 20 5c 0a 2b 09 28 74  ngFromObj \.+.(t
3690: 63 6c 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 5f  clStubsPtr->tcl_
36a0: 47 65 74 45 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f  GetEncodingFromO
36b0: 62 6a 29 20 2f 2a 20 35 36 39 20 2a 2f 0a 2b 23  bj) /* 569 */.+#
36c0: 65 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66 20 54  endif.+#ifndef T
36d0: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_GetEncodingSe
36e0: 61 72 63 68 50 61 74 68 0a 2b 23 64 65 66 69 6e  archPath.+#defin
36f0: 65 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e  e Tcl_GetEncodin
3700: 67 53 65 61 72 63 68 50 61 74 68 20 5c 0a 2b 09  gSearchPath \.+.
3710: 28 74 63 6c 53 74 75 62 73 50 74 72 2d 3e 74 63  (tclStubsPtr->tc
3720: 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61  l_GetEncodingSea
3730: 72 63 68 50 61 74 68 29 20 2f 2a 20 35 37 30 20  rchPath) /* 570 
3740: 2a 2f 0a 2b 23 65 6e 64 69 66 0a 2b 23 69 66 6e  */.+#endif.+#ifn
3750: 64 65 66 20 54 63 6c 5f 53 65 74 45 6e 63 6f 64  def Tcl_SetEncod
3760: 69 6e 67 53 65 61 72 63 68 50 61 74 68 0a 2b 23  ingSearchPath.+#
3770: 64 65 66 69 6e 65 20 54 63 6c 5f 53 65 74 45 6e  define Tcl_SetEn
3780: 63 6f 64 69 6e 67 53 65 61 72 63 68 50 61 74 68  codingSearchPath
3790: 20 5c 0a 2b 09 28 74 63 6c 53 74 75 62 73 50 74   \.+.(tclStubsPt
37a0: 72 2d 3e 74 63 6c 5f 53 65 74 45 6e 63 6f 64 69  r->tcl_SetEncodi
37b0: 6e 67 53 65 61 72 63 68 50 61 74 68 29 20 2f 2a  ngSearchPath) /*
37c0: 20 35 37 31 20 2a 2f 0a 2b 23 65 6e 64 69 66 0a   571 */.+#endif.
37d0: 2b 23 69 66 6e 64 65 66 20 54 63 6c 5f 47 65 74  +#ifndef Tcl_Get
37e0: 45 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d  EncodingNameFrom
37f0: 45 6e 76 69 72 6f 6e 6d 65 6e 74 0a 2b 23 64 65  Environment.+#de
3800: 66 69 6e 65 20 54 63 6c 5f 47 65 74 45 6e 63 6f  fine Tcl_GetEnco
3810: 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69  dingNameFromEnvi
3820: 72 6f 6e 6d 65 6e 74 20 5c 0a 2b 09 28 74 63 6c  ronment \.+.(tcl
3830: 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 5f 47 65  StubsPtr->tcl_Ge
3840: 74 45 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f  tEncodingNameFro
3850: 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74 29 20 2f 2a  mEnvironment) /*
3860: 20 35 37 32 20 2a 2f 0a 2b 23 65 6e 64 69 66 0a   572 */.+#endif.
3870: 20 0a 20 23 65 6e 64 69 66 20 2f 2a 20 64 65 66   . #endif /* def
3880: 69 6e 65 64 28 55 53 45 5f 54 43 4c 5f 53 54 55  ined(USE_TCL_STU
3890: 42 53 29 20 26 26 20 21 64 65 66 69 6e 65 64 28  BS) && !defined(
38a0: 55 53 45 5f 54 43 4c 5f 53 54 55 42 5f 50 52 4f  USE_TCL_STUB_PRO
38b0: 43 53 29 20 2a 2f 0a 20 0a 49 6e 64 65 78 3a 20  CS) */. .Index: 
38c0: 67 65 6e 65 72 69 63 2f 74 63 6c 45 6e 63 6f 64  generic/tclEncod
38d0: 69 6e 67 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ing.c.==========
38e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
38f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3900: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3910: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69  =========.RCS fi
3920: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c  le: /cvsroot/tcl
3930: 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c  /tcl/generic/tcl
3940: 45 6e 63 6f 64 69 6e 67 2e 63 2c 76 0a 72 65 74  Encoding.c,v.ret
3950: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e  rieving revision
3960: 20 31 2e 33 38 0a 64 69 66 66 20 2d 75 20 2d 72   1.38.diff -u -r
3970: 31 2e 33 38 20 74 63 6c 45 6e 63 6f 64 69 6e 67  1.38 tclEncoding
3980: 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74  .c.--- generic/t
3990: 63 6c 45 6e 63 6f 64 69 6e 67 2e 63 09 31 38 20  clEncoding.c.18 
39a0: 4f 63 74 20 32 30 30 35 20 31 35 3a 30 31 3a 35  Oct 2005 15:01:5
39b0: 36 20 2d 30 30 30 30 09 31 2e 33 38 0a 2b 2b 2b  6 -0000.1.38.+++
39c0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 45 6e 63 6f   generic/tclEnco
39d0: 64 69 6e 67 2e 63 09 38 20 46 65 62 20 32 30 30  ding.c.8 Feb 200
39e0: 36 20 32 31 3a 32 35 3a 33 38 20 2d 30 30 30 30  6 21:25:38 -0000
39f0: 0a 40 40 20 2d 32 37 34 2c 37 20 2b 32 37 34 2c  .@@ -274,7 +274,
3a00: 37 20 40 40 0a 20 2f 2a 0a 20 20 2a 2d 2d 2d 2d  7 @@. /*.  *----
3a10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a50: 2d 2d 0a 20 20 2a 0a 2d 20 2a 20 54 63 6c 47 65  --.  *.- * TclGe
3a60: 74 45 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f 62 6a  tEncodingFromObj
3a70: 20 2d 2d 0a 2b 20 2a 20 54 63 6c 5f 47 65 74 45   --.+ * Tcl_GetE
3a80: 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f 62 6a 20 2d  ncodingFromObj -
3a90: 2d 0a 20 20 2a 0a 20 20 2a 09 57 72 69 74 65 73  -.  *.  *.Writes
3aa0: 20 74 6f 20 28 2a 65 6e 63 6f 64 69 6e 67 50 74   to (*encodingPt
3ab0: 72 29 20 74 68 65 20 54 63 6c 5f 45 6e 63 6f 64  r) the Tcl_Encod
3ac0: 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 28 2a 6f  ing value of (*o
3ad0: 62 6a 50 74 72 29 2c 20 69 66 0a 20 20 2a 09 70  bjPtr), if.  *.p
3ae0: 6f 73 73 69 62 6c 65 2c 20 61 6e 64 20 72 65 74  ossible, and ret
3af0: 75 72 6e 73 20 54 43 4c 5f 4f 4b 2e 20 49 66 20  urns TCL_OK. If 
3b00: 6e 6f 20 73 75 63 68 20 65 6e 63 6f 64 69 6e 67  no such encoding
3b10: 20 65 78 69 73 74 73 2c 20 54 43 4c 5f 45 52 52   exists, TCL_ERR
3b20: 4f 52 20 69 73 0a 40 40 20 2d 32 39 31 2c 37 20  OR is.@@ -291,7 
3b30: 2b 32 39 31 2c 37 20 40 40 0a 20 20 2a 2f 0a 20  +291,7 @@.  */. 
3b40: 0a 20 69 6e 74 0a 2d 54 63 6c 47 65 74 45 6e 63  . int.-TclGetEnc
3b50: 6f 64 69 6e 67 46 72 6f 6d 4f 62 6a 28 0a 2b 54  odingFromObj(.+T
3b60: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 46 72  cl_GetEncodingFr
3b70: 6f 6d 4f 62 6a 28 0a 20 20 20 20 20 54 63 6c 5f  omObj(.     Tcl_
3b80: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a  Interp *interp,.
3b90: 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6f 62       Tcl_Obj *ob
3ba0: 6a 50 74 72 2c 0a 20 20 20 20 20 54 63 6c 5f 45  jPtr,.     Tcl_E
3bb0: 6e 63 6f 64 69 6e 67 20 2a 65 6e 63 6f 64 69 6e  ncoding *encodin
3bc0: 67 50 74 72 29 0a 40 40 20 2d 33 35 30 2c 37 20  gPtr).@@ -350,7 
3bd0: 2b 33 35 30 2c 37 20 40 40 0a 20 2f 2a 0a 20 20  +350,7 @@. /*.  
3be0: 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  *---------------
3bf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c20: 2d 2d 2d 2d 2d 2d 2d 0a 20 20 2a 0a 2d 20 2a 20  -------.  *.- * 
3c30: 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  TclGetEncodingSe
3c40: 61 72 63 68 50 61 74 68 20 2d 2d 0a 2b 20 2a 20  archPath --.+ * 
3c50: 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53  Tcl_GetEncodingS
3c60: 65 61 72 63 68 50 61 74 68 20 2d 2d 0a 20 20 2a  earchPath --.  *
3c70: 0a 20 20 2a 09 4b 65 65 70 73 20 74 68 65 20 70  .  *.Keeps the p
3c80: 65 72 2d 74 68 72 65 61 64 20 63 6f 70 79 20 6f  er-thread copy o
3c90: 66 20 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 73  f the encoding s
3ca0: 65 61 72 63 68 20 70 61 74 68 20 63 75 72 72 65  earch path curre
3cb0: 6e 74 20 77 69 74 68 0a 20 20 2a 09 63 68 61 6e  nt with.  *.chan
3cc0: 67 65 73 20 74 6f 20 74 68 65 20 67 6c 6f 62 61  ges to the globa
3cd0: 6c 20 63 6f 70 79 2e 0a 40 40 20 2d 33 36 32 2c  l copy..@@ -362,
3ce0: 37 20 2b 33 36 32 2c 37 20 40 40 0a 20 20 2a 2f  7 +362,7 @@.  */
3cf0: 0a 20 0a 20 54 63 6c 5f 4f 62 6a 20 2a 0a 2d 54  . . Tcl_Obj *.-T
3d00: 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61  clGetEncodingSea
3d10: 72 63 68 50 61 74 68 28 76 6f 69 64 29 0a 2b 54  rchPath(void).+T
3d20: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  cl_GetEncodingSe
3d30: 61 72 63 68 50 61 74 68 28 76 6f 69 64 29 0a 20  archPath(void). 
3d40: 7b 0a 20 20 20 20 20 72 65 74 75 72 6e 20 54 63  {.     return Tc
3d50: 6c 47 65 74 50 72 6f 63 65 73 73 47 6c 6f 62 61  lGetProcessGloba
3d60: 6c 56 61 6c 75 65 28 26 65 6e 63 6f 64 69 6e 67  lValue(&encoding
3d70: 53 65 61 72 63 68 50 61 74 68 29 3b 0a 20 7d 0a  SearchPath);. }.
3d80: 40 40 20 2d 33 37 30 2c 37 20 2b 33 37 30 2c 37  @@ -370,7 +370,7
3d90: 20 40 40 0a 20 2f 2a 0a 20 20 2a 2d 2d 2d 2d 2d   @@. /*.  *-----
3da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3db0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3dc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3dd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3de0: 2d 0a 20 20 2a 0a 2d 20 2a 20 54 63 6c 53 65 74  -.  *.- * TclSet
3df0: 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50 61  EncodingSearchPa
3e00: 74 68 20 2d 2d 0a 2b 20 2a 20 54 63 6c 5f 53 65  th --.+ * Tcl_Se
3e10: 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50  tEncodingSearchP
3e20: 61 74 68 20 2d 2d 0a 20 20 2a 0a 20 20 2a 09 4b  ath --.  *.  *.K
3e30: 65 65 70 73 20 74 68 65 20 70 65 72 2d 74 68 72  eeps the per-thr
3e40: 65 61 64 20 63 6f 70 79 20 6f 66 20 74 68 65 20  ead copy of the 
3e50: 65 6e 63 6f 64 69 6e 67 20 73 65 61 72 63 68 20  encoding search 
3e60: 70 61 74 68 20 63 75 72 72 65 6e 74 20 77 69 74  path current wit
3e70: 68 0a 20 20 2a 09 63 68 61 6e 67 65 73 20 74 6f  h.  *.changes to
3e80: 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 70 79   the global copy
3e90: 2e 0a 40 40 20 2d 33 37 39 2c 37 20 2b 33 37 39  ..@@ -379,7 +379
3ea0: 2c 37 20 40 40 0a 20 20 2a 2f 0a 20 0a 20 69 6e  ,7 @@.  */. . in
3eb0: 74 0a 2d 54 63 6c 53 65 74 45 6e 63 6f 64 69 6e  t.-TclSetEncodin
3ec0: 67 53 65 61 72 63 68 50 61 74 68 28 0a 2b 54 63  gSearchPath(.+Tc
3ed0: 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61  l_SetEncodingSea
3ee0: 72 63 68 50 61 74 68 28 0a 20 20 20 20 20 54 63  rchPath(.     Tc
3ef0: 6c 5f 4f 62 6a 20 2a 73 65 61 72 63 68 50 61 74  l_Obj *searchPat
3f00: 68 29 0a 20 7b 0a 20 20 20 20 20 69 6e 74 20 64  h). {.     int d
3f10: 75 6d 6d 79 3b 0a 40 40 20 2d 34 37 30 2c 37 20  ummy;.@@ -470,7 
3f20: 2b 34 37 30 2c 37 20 40 40 0a 20 20 20 20 20 69  +470,7 @@.     i
3f30: 6e 74 20 69 2c 20 6e 75 6d 44 69 72 73 20 3d 20  nt i, numDirs = 
3f40: 30 3b 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20  0;.     Tcl_Obj 
3f50: 2a 6d 61 70 2c 20 2a 73 65 61 72 63 68 50 61 74  *map, *searchPat
3f60: 68 3b 0a 20 0a 2d 20 20 20 20 73 65 61 72 63 68  h;. .-    search
3f70: 50 61 74 68 20 3d 20 54 63 6c 47 65 74 45 6e 63  Path = TclGetEnc
3f80: 6f 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 28  odingSearchPath(
3f90: 29 3b 0a 2b 20 20 20 20 73 65 61 72 63 68 50 61  );.+    searchPa
3fa0: 74 68 20 3d 20 54 63 6c 5f 47 65 74 45 6e 63 6f  th = Tcl_GetEnco
3fb0: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 28 29  dingSearchPath()
3fc0: 3b 0a 20 20 20 20 20 54 63 6c 5f 49 6e 63 72 52  ;.     Tcl_IncrR
3fd0: 65 66 43 6f 75 6e 74 28 73 65 61 72 63 68 50 61  efCount(searchPa
3fe0: 74 68 29 3b 0a 20 20 20 20 20 54 63 6c 5f 4c 69  th);.     Tcl_Li
3ff0: 73 74 4f 62 6a 4c 65 6e 67 74 68 28 4e 55 4c 4c  stObjLength(NULL
4000: 2c 20 73 65 61 72 63 68 50 61 74 68 2c 20 26 6e  , searchPath, &n
4010: 75 6d 44 69 72 73 29 3b 0a 20 20 20 20 20 6d 61  umDirs);.     ma
4020: 70 20 3d 20 54 63 6c 5f 4e 65 77 44 69 63 74 4f  p = Tcl_NewDictO
4030: 62 6a 28 29 3b 0a 40 40 20 2d 36 34 33 2c 37 20  bj();.@@ -643,7 
4040: 2b 36 34 33 2c 37 20 40 40 0a 20 54 63 6c 5f 47  +643,7 @@. Tcl_G
4050: 65 74 44 65 66 61 75 6c 74 45 6e 63 6f 64 69 6e  etDefaultEncodin
4060: 67 44 69 72 28 76 6f 69 64 29 0a 20 7b 0a 20 20  gDir(void). {.  
4070: 20 20 20 69 6e 74 20 6e 75 6d 44 69 72 73 3b 0a     int numDirs;.
4080: 2d 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 66 69  -    Tcl_Obj *fi
4090: 72 73 74 2c 20 2a 73 65 61 72 63 68 50 61 74 68  rst, *searchPath
40a0: 20 3d 20 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e   = TclGetEncodin
40b0: 67 53 65 61 72 63 68 50 61 74 68 28 29 3b 0a 2b  gSearchPath();.+
40c0: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 72      Tcl_Obj *fir
40d0: 73 74 2c 20 2a 73 65 61 72 63 68 50 61 74 68 20  st, *searchPath 
40e0: 3d 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e  = Tcl_GetEncodin
40f0: 67 53 65 61 72 63 68 50 61 74 68 28 29 3b 0a 20  gSearchPath();. 
4100: 0a 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62  .     Tcl_ListOb
4110: 6a 4c 65 6e 67 74 68 28 4e 55 4c 4c 2c 20 73 65  jLength(NULL, se
4120: 61 72 63 68 50 61 74 68 2c 20 26 6e 75 6d 44 69  archPath, &numDi
4130: 72 73 29 3b 0a 20 20 20 20 20 69 66 20 28 6e 75  rs);.     if (nu
4140: 6d 44 69 72 73 20 3d 3d 20 30 29 20 7b 0a 40 40  mDirs == 0) {.@@
4150: 20 2d 36 37 35 2c 31 32 20 2b 36 37 35 2c 31 32   -675,12 +675,12
4160: 20 40 40 0a 20 54 63 6c 5f 53 65 74 44 65 66 61   @@. Tcl_SetDefa
4170: 75 6c 74 45 6e 63 6f 64 69 6e 67 44 69 72 28 0a  ultEncodingDir(.
4180: 20 20 20 20 20 43 4f 4e 53 54 20 63 68 61 72 20       CONST char 
4190: 2a 70 61 74 68 29 0a 20 7b 0a 2d 20 20 20 20 54  *path). {.-    T
41a0: 63 6c 5f 4f 62 6a 20 2a 73 65 61 72 63 68 50 61  cl_Obj *searchPa
41b0: 74 68 20 3d 20 54 63 6c 47 65 74 45 6e 63 6f 64  th = TclGetEncod
41c0: 69 6e 67 53 65 61 72 63 68 50 61 74 68 28 29 3b  ingSearchPath();
41d0: 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 73  .+    Tcl_Obj *s
41e0: 65 61 72 63 68 50 61 74 68 20 3d 20 54 63 6c 5f  earchPath = Tcl_
41f0: 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  GetEncodingSearc
4200: 68 50 61 74 68 28 29 3b 0a 20 20 20 20 20 54 63  hPath();.     Tc
4210: 6c 5f 4f 62 6a 20 2a 64 69 72 65 63 74 6f 72 79  l_Obj *directory
4220: 20 3d 20 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67   = Tcl_NewString
4230: 4f 62 6a 28 70 61 74 68 2c 20 2d 31 29 3b 0a 20  Obj(path, -1);. 
4240: 0a 20 20 20 20 20 73 65 61 72 63 68 50 61 74 68  .     searchPath
4250: 20 3d 20 54 63 6c 5f 44 75 70 6c 69 63 61 74 65   = Tcl_Duplicate
4260: 4f 62 6a 28 73 65 61 72 63 68 50 61 74 68 29 3b  Obj(searchPath);
4270: 0a 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62  .     Tcl_ListOb
4280: 6a 52 65 70 6c 61 63 65 28 4e 55 4c 4c 2c 20 73  jReplace(NULL, s
4290: 65 61 72 63 68 50 61 74 68 2c 20 30 2c 20 30 2c  earchPath, 0, 0,
42a0: 20 31 2c 20 26 64 69 72 65 63 74 6f 72 79 29 3b   1, &directory);
42b0: 0a 2d 20 20 20 20 54 63 6c 53 65 74 45 6e 63 6f  .-    TclSetEnco
42c0: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 28 73  dingSearchPath(s
42d0: 65 61 72 63 68 50 61 74 68 29 3b 0a 2b 20 20 20  earchPath);.+   
42e0: 20 54 63 6c 5f 53 65 74 45 6e 63 6f 64 69 6e 67   Tcl_SetEncoding
42f0: 53 65 61 72 63 68 50 61 74 68 28 73 65 61 72 63  SearchPath(searc
4300: 68 50 61 74 68 29 3b 0a 20 7d 0a 20 0c 0a 20 2f  hPath);. }. .. /
4310: 2a 0a 40 40 20 2d 31 34 31 32 2c 37 20 2b 31 34  *.@@ -1412,7 +14
4320: 31 32 2c 37 20 40 40 0a 20 7b 0a 20 20 20 20 20  12,7 @@. {.     
4330: 54 63 6c 5f 4f 62 6a 20 2a 6e 61 6d 65 4f 62 6a  Tcl_Obj *nameObj
4340: 20 3d 20 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67   = Tcl_NewString
4350: 4f 62 6a 28 6e 61 6d 65 2c 20 2d 31 29 3b 0a 20  Obj(name, -1);. 
4360: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c      Tcl_Obj *fil
4370: 65 4e 61 6d 65 4f 62 6a 20 3d 20 54 63 6c 5f 44  eNameObj = Tcl_D
4380: 75 70 6c 69 63 61 74 65 4f 62 6a 28 6e 61 6d 65  uplicateObj(name
4390: 4f 62 6a 29 3b 0a 2d 20 20 20 20 54 63 6c 5f 4f  Obj);.-    Tcl_O
43a0: 62 6a 20 2a 73 65 61 72 63 68 50 61 74 68 20 3d  bj *searchPath =
43b0: 20 54 63 6c 5f 44 75 70 6c 69 63 61 74 65 4f 62   Tcl_DuplicateOb
43c0: 6a 28 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67  j(TclGetEncoding
43d0: 53 65 61 72 63 68 50 61 74 68 28 29 29 3b 0a 2b  SearchPath());.+
43e0: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 73 65 61      Tcl_Obj *sea
43f0: 72 63 68 50 61 74 68 20 3d 20 54 63 6c 5f 44 75  rchPath = Tcl_Du
4400: 70 6c 69 63 61 74 65 4f 62 6a 28 54 63 6c 5f 47  plicateObj(Tcl_G
4410: 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68  etEncodingSearch
4420: 50 61 74 68 28 29 29 3b 0a 20 20 20 20 20 54 63  Path());.     Tc
4430: 6c 5f 4f 62 6a 20 2a 6d 61 70 20 3d 20 54 63 6c  l_Obj *map = Tcl
4440: 47 65 74 50 72 6f 63 65 73 73 47 6c 6f 62 61 6c  GetProcessGlobal
4450: 56 61 6c 75 65 28 26 65 6e 63 6f 64 69 6e 67 46  Value(&encodingF
4460: 69 6c 65 4d 61 70 29 3b 0a 20 20 20 20 20 54 63  ileMap);.     Tc
4470: 6c 5f 4f 62 6a 20 2a 2a 64 69 72 2c 20 2a 70 61  l_Obj **dir, *pa
4480: 74 68 2c 20 2a 64 69 72 65 63 74 6f 72 79 20 3d  th, *directory =
4490: 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 54 63 6c 5f   NULL;.     Tcl_
44a0: 43 68 61 6e 6e 65 6c 20 63 68 61 6e 20 3d 20 4e  Channel chan = N
44b0: 55 4c 4c 3b 0a 40 40 20 2d 33 32 31 31 2c 37 20  ULL;.@@ -3211,7 
44c0: 2b 33 32 31 31 2c 37 20 40 40 0a 20 20 2a 0a 20  +3211,7 @@.  *. 
44d0: 20 2a 09 54 68 69 73 20 69 73 20 74 68 65 20 66   *.This is the f
44e0: 61 6c 6c 62 61 63 6b 20 72 6f 75 74 69 6e 65 20  allback routine 
44f0: 74 68 61 74 20 73 65 74 73 20 74 68 65 20 64 65  that sets the de
4500: 66 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 74  fault value of t
4510: 68 65 0a 20 20 2a 09 65 6e 63 6f 64 69 6e 67 20  he.  *.encoding 
4520: 73 65 61 72 63 68 20 70 61 74 68 20 69 66 20 74  search path if t
4530: 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 68  he application h
4540: 61 73 20 6e 6f 74 20 73 65 74 20 6f 6e 65 20 76  as not set one v
4550: 69 61 20 61 20 63 61 6c 6c 20 74 6f 0a 2d 20 2a  ia a call to.- *
4560: 09 54 63 6c 53 65 74 45 6e 63 6f 64 69 6e 67 53  .TclSetEncodingS
4570: 65 61 72 63 68 50 61 74 68 28 29 20 62 79 20 74  earchPath() by t
4580: 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 74 68  he first time th
4590: 65 20 73 65 61 72 63 68 20 70 61 74 68 20 69 73  e search path is
45a0: 20 6e 65 65 64 65 64 0a 2b 20 2a 09 54 63 6c 5f   needed.+ *.Tcl_
45b0: 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  SetEncodingSearc
45c0: 68 50 61 74 68 28 29 20 62 79 20 74 68 65 20 66  hPath() by the f
45d0: 69 72 73 74 20 74 69 6d 65 20 74 68 65 20 73 65  irst time the se
45e0: 61 72 63 68 20 70 61 74 68 20 69 73 20 6e 65 65  arch path is nee
45f0: 64 65 64 0a 20 20 2a 09 74 6f 20 6c 6f 61 64 20  ded.  *.to load 
4600: 65 6e 63 6f 64 69 6e 67 20 64 61 74 61 2e 0a 20  encoding data.. 
4610: 20 2a 0a 20 20 2a 09 54 68 65 20 64 65 66 61 75   *.  *.The defau
4620: 6c 74 20 65 6e 63 6f 64 69 6e 67 20 73 65 61 72  lt encoding sear
4630: 63 68 20 70 61 74 68 20 69 73 20 70 72 6f 64 75  ch path is produ
4640: 63 65 64 20 62 79 20 74 61 6b 69 6e 67 20 65 61  ced by taking ea
4650: 63 68 20 64 69 72 65 63 74 6f 72 79 0a 49 6e 64  ch directory.Ind
4660: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 49  ex: generic/tclI
4670: 6e 74 2e 64 65 63 6c 73 0a 3d 3d 3d 3d 3d 3d 3d  nt.decls.=======
4680: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
46a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
46b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53  ============.RCS
46c0: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f   file: /cvsroot/
46d0: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f  tcl/tcl/generic/
46e0: 74 63 6c 49 6e 74 2e 64 65 63 6c 73 2c 76 0a 72  tclInt.decls,v.r
46f0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69  etrieving revisi
4700: 6f 6e 20 31 2e 39 34 0a 64 69 66 66 20 2d 75 20  on 1.94.diff -u 
4710: 2d 72 31 2e 39 34 20 74 63 6c 49 6e 74 2e 64 65  -r1.94 tclInt.de
4720: 63 6c 73 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f  cls.--- generic/
4730: 74 63 6c 49 6e 74 2e 64 65 63 6c 73 09 31 33 20  tclInt.decls.13 
4740: 44 65 63 20 32 30 30 35 20 32 32 3a 34 33 3a 31  Dec 2005 22:43:1
4750: 37 20 2d 30 30 30 30 09 31 2e 39 34 0a 2b 2b 2b  7 -0000.1.94.+++
4760: 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e   generic/tclInt.
4770: 64 65 63 6c 73 09 38 20 46 65 62 20 32 30 30 36  decls.8 Feb 2006
4780: 20 32 31 3a 32 35 3a 33 38 20 2d 30 30 30 30 0a   21:25:38 -0000.
4790: 40 40 20 2d 38 34 36 2c 31 35 20 2b 38 34 36 2c  @@ -846,15 +846,
47a0: 31 36 20 40 40 0a 20 20 20 20 20 54 63 6c 5f 43  16 @@.     Tcl_C
47b0: 68 61 6e 6e 65 6c 20 54 63 6c 70 4f 70 65 6e 46  hannel TclpOpenF
47c0: 69 6c 65 43 68 61 6e 6e 65 6c 20 28 54 63 6c 5f  ileChannel (Tcl_
47d0: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a  Interp *interp,.
47e0: 20 09 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 70   .    Tcl_Obj *p
47f0: 61 74 68 50 74 72 2c 20 69 6e 74 20 6d 6f 64 65  athPtr, int mode
4800: 2c 20 69 6e 74 20 70 65 72 6d 69 73 73 69 6f 6e  , int permission
4810: 73 29 0a 20 7d 0a 2d 64 65 63 6c 61 72 65 20 32  s). }.-declare 2
4820: 30 39 20 67 65 6e 65 72 69 63 20 7b 0a 2d 20 20  09 generic {.-  
4830: 20 20 54 63 6c 5f 4f 62 6a 20 2a 20 54 63 6c 47    Tcl_Obj * TclG
4840: 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68  etEncodingSearch
4850: 50 61 74 68 28 76 6f 69 64 29 0a 2d 7d 0a 2d 64  Path(void).-}.-d
4860: 65 63 6c 61 72 65 20 32 31 30 20 67 65 6e 65 72  eclare 210 gener
4870: 69 63 20 7b 0a 2d 20 20 20 20 69 6e 74 20 54 63  ic {.-    int Tc
4880: 6c 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72  lSetEncodingSear
4890: 63 68 50 61 74 68 28 54 63 6c 5f 4f 62 6a 20 2a  chPath(Tcl_Obj *
48a0: 73 65 61 72 63 68 50 61 74 68 29 0a 2d 7d 0a 2d  searchPath).-}.-
48b0: 64 65 63 6c 61 72 65 20 32 31 31 20 67 65 6e 65  declare 211 gene
48c0: 72 69 63 20 7b 0a 2d 20 20 20 20 43 4f 4e 53 54  ric {.-    CONST
48d0: 20 63 68 61 72 20 2a 20 54 63 6c 70 47 65 74 45   char * TclpGetE
48e0: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
48f0: 6e 76 69 72 6f 6e 6d 65 6e 74 28 54 63 6c 5f 44  nvironment(Tcl_D
4900: 53 74 72 69 6e 67 20 2a 62 75 66 50 74 72 29 0a  String *bufPtr).
4910: 2d 7d 0a 2b 23 20 4d 61 64 65 20 70 75 62 6c 69  -}.+# Made publi
4920: 63 20 62 79 20 54 49 50 20 32 35 38 0a 2b 23 64  c by TIP 258.+#d
4930: 65 63 6c 61 72 65 20 32 30 39 20 67 65 6e 65 72  eclare 209 gener
4940: 69 63 20 7b 0a 2b 23 20 20 20 20 54 63 6c 5f 4f  ic {.+#    Tcl_O
4950: 62 6a 20 2a 20 54 63 6c 47 65 74 45 6e 63 6f 64  bj * TclGetEncod
4960: 69 6e 67 53 65 61 72 63 68 50 61 74 68 28 76 6f  ingSearchPath(vo
4970: 69 64 29 0a 2b 23 7d 0a 2b 23 64 65 63 6c 61 72  id).+#}.+#declar
4980: 65 20 32 31 30 20 67 65 6e 65 72 69 63 20 7b 0a  e 210 generic {.
4990: 2b 23 20 20 20 20 69 6e 74 20 54 63 6c 53 65 74  +#    int TclSet
49a0: 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50 61  EncodingSearchPa
49b0: 74 68 28 54 63 6c 5f 4f 62 6a 20 2a 73 65 61 72  th(Tcl_Obj *sear
49c0: 63 68 50 61 74 68 29 0a 2b 23 7d 0a 2b 23 64 65  chPath).+#}.+#de
49d0: 63 6c 61 72 65 20 32 31 31 20 67 65 6e 65 72 69  clare 211 generi
49e0: 63 20 7b 0a 2b 23 20 20 20 20 43 4f 4e 53 54 20  c {.+#    CONST 
49f0: 63 68 61 72 20 2a 20 54 63 6c 70 47 65 74 45 6e  char * TclpGetEn
4a00: 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e  codingNameFromEn
4a10: 76 69 72 6f 6e 6d 65 6e 74 28 54 63 6c 5f 44 53  vironment(Tcl_DS
4a20: 74 72 69 6e 67 20 2a 62 75 66 50 74 72 29 0a 2b  tring *bufPtr).+
4a30: 23 7d 0a 20 64 65 63 6c 61 72 65 20 32 31 32 20  #}. declare 212 
4a40: 67 65 6e 65 72 69 63 20 7b 0a 20 20 20 20 20 76  generic {.     v
4a50: 6f 69 64 20 54 63 6c 70 46 69 6e 64 45 78 65 63  oid TclpFindExec
4a60: 75 74 61 62 6c 65 28 43 4f 4e 53 54 20 63 68 61  utable(CONST cha
4a70: 72 20 2a 61 72 67 76 30 29 0a 20 7d 0a 49 6e 64  r *argv0). }.Ind
4a80: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 49  ex: generic/tclI
4a90: 6e 74 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  nt.h.===========
4aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4ad0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c  ========.RCS fil
4ae0: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f  e: /cvsroot/tcl/
4af0: 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 49  tcl/generic/tclI
4b00: 6e 74 2e 68 2c 76 0a 72 65 74 72 69 65 76 69 6e  nt.h,v.retrievin
4b10: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 36 37  g revision 1.267
4b20: 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 32 36 37  .diff -u -r1.267
4b30: 20 74 63 6c 49 6e 74 2e 68 0a 2d 2d 2d 20 67 65   tclInt.h.--- ge
4b40: 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e 68 09 31  neric/tclInt.h.1
4b50: 20 46 65 62 20 32 30 30 36 20 31 39 3a 32 36 3a   Feb 2006 19:26:
4b60: 30 32 20 2d 30 30 30 30 09 31 2e 32 36 37 0a 2b  02 -0000.1.267.+
4b70: 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e  ++ generic/tclIn
4b80: 74 2e 68 09 38 20 46 65 62 20 32 30 30 36 20 32  t.h.8 Feb 2006 2
4b90: 31 3a 32 35 3a 33 39 20 2d 30 30 30 30 0a 40 40  1:25:39 -0000.@@
4ba0: 20 2d 32 30 36 36 2c 38 20 2b 32 30 36 36 2c 36   -2066,8 +2066,6
4bb0: 20 40 40 0a 20 4d 4f 44 55 4c 45 5f 53 43 4f 50   @@. MODULE_SCOP
4bc0: 45 20 69 6e 74 09 54 63 6c 46 53 46 69 6c 65 41  E int.TclFSFileA
4bd0: 74 74 72 49 6e 64 65 78 28 54 63 6c 5f 4f 62 6a  ttrIndex(Tcl_Obj
4be0: 20 2a 70 61 74 68 50 74 72 2c 0a 20 09 09 09 20   *pathPtr,. ... 
4bf0: 20 20 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 61     CONST char *a
4c00: 74 74 72 69 62 75 74 65 4e 61 6d 65 2c 20 69 6e  ttributeName, in
4c10: 74 20 2a 69 6e 64 65 78 50 74 72 29 3b 0a 20 4d  t *indexPtr);. M
4c20: 4f 44 55 4c 45 5f 53 43 4f 50 45 20 54 63 6c 5f  ODULE_SCOPE Tcl_
4c30: 4f 62 6a 20 2a 09 54 63 6c 47 65 74 42 67 45 72  Obj *.TclGetBgEr
4c40: 72 6f 72 48 61 6e 64 6c 65 72 28 54 63 6c 5f 49  rorHandler(Tcl_I
4c50: 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 29 3b 0a  nterp *interp);.
4c60: 2d 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20 69 6e  -MODULE_SCOPE in
4c70: 74 09 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67  t.TclGetEncoding
4c80: 46 72 6f 6d 4f 62 6a 28 54 63 6c 5f 49 6e 74 65  FromObj(Tcl_Inte
4c90: 72 70 20 2a 69 6e 74 65 72 70 2c 0a 2d 09 09 09  rp *interp,.-...
4ca0: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6f 62 6a      Tcl_Obj *obj
4cb0: 50 74 72 2c 20 54 63 6c 5f 45 6e 63 6f 64 69 6e  Ptr, Tcl_Encodin
4cc0: 67 20 2a 65 6e 63 6f 64 69 6e 67 50 74 72 29 3b  g *encodingPtr);
4cd0: 0a 20 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20 69  . MODULE_SCOPE i
4ce0: 6e 74 09 54 63 6c 47 65 74 4e 61 6d 65 73 70 61  nt.TclGetNamespa
4cf0: 63 65 46 72 6f 6d 4f 62 6a 28 54 63 6c 5f 49 6e  ceFromObj(Tcl_In
4d00: 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a 20 09  terp *interp,. .
4d10: 09 09 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6f  ..    Tcl_Obj *o
4d20: 62 6a 50 74 72 2c 20 54 63 6c 5f 4e 61 6d 65 73  bjPtr, Tcl_Names
4d30: 70 61 63 65 20 2a 2a 6e 73 50 74 72 50 74 72 29  pace **nsPtrPtr)
4d40: 3b 0a 20 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20  ;. MODULE_SCOPE 
4d50: 69 6e 74 09 54 63 6c 47 65 74 4e 75 6d 62 65 72  int.TclGetNumber
4d60: 46 72 6f 6d 4f 62 6a 28 54 63 6c 5f 49 6e 74 65  FromObj(Tcl_Inte
4d70: 72 70 20 2a 69 6e 74 65 72 70 2c 0a 40 40 20 2d  rp *interp,.@@ -
4d80: 32 32 39 35 2c 39 20 2b 32 32 39 33 2c 36 20 40  2295,9 +2293,6 @
4d90: 40 0a 20 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20  @. MODULE_SCOPE 
4da0: 69 6e 74 09 54 63 6c 5f 45 6e 63 6f 64 69 6e 67  int.Tcl_Encoding
4db0: 4f 62 6a 43 6d 64 28 43 6c 69 65 6e 74 44 61 74  ObjCmd(ClientDat
4dc0: 61 20 63 6c 69 65 6e 74 44 61 74 61 2c 0a 20 09  a clientData,. .
4dd0: 09 09 20 20 20 20 54 63 6c 5f 49 6e 74 65 72 70  ..    Tcl_Interp
4de0: 20 2a 69 6e 74 65 72 70 2c 20 69 6e 74 20 6f 62   *interp, int ob
4df0: 6a 63 2c 0a 20 09 09 09 20 20 20 20 54 63 6c 5f  jc,. ...    Tcl_
4e00: 4f 62 6a 20 2a 43 4f 4e 53 54 20 6f 62 6a 76 5b  Obj *CONST objv[
4e10: 5d 29 3b 0a 2d 4d 4f 44 55 4c 45 5f 53 43 4f 50  ]);.-MODULE_SCOP
4e20: 45 20 69 6e 74 09 54 63 6c 45 6e 63 6f 64 69 6e  E int.TclEncodin
4e30: 67 44 69 72 73 4f 62 6a 43 6d 64 28 0a 2d 09 09  gDirsObjCmd(.-..
4e40: 09 20 20 20 20 43 6c 69 65 6e 74 44 61 74 61 20  .    ClientData 
4e50: 63 6c 69 65 6e 74 44 61 74 61 2c 20 54 63 6c 5f  clientData, Tcl_
4e60: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a  Interp *interp,.
4e70: 2d 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a 63  -...    int objc
4e80: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54  , Tcl_Obj *CONST
4e90: 20 6f 62 6a 76 5b 5d 29 3b 0a 20 4d 4f 44 55 4c   objv[]);. MODUL
4ea0: 45 5f 53 43 4f 50 45 20 69 6e 74 09 54 63 6c 5f  E_SCOPE int.Tcl_
4eb0: 45 6f 66 4f 62 6a 43 6d 64 28 43 6c 69 65 6e 74  EofObjCmd(Client
4ec0: 44 61 74 61 20 63 6c 69 65 6e 74 44 61 74 61 2c  Data clientData,
4ed0: 0a 20 09 09 09 20 20 20 20 54 63 6c 5f 49 6e 74  . ...    Tcl_Int
4ee0: 65 72 70 20 2a 69 6e 74 65 72 70 2c 20 69 6e 74  erp *interp, int
4ef0: 20 6f 62 6a 63 2c 0a 20 09 09 09 20 20 20 20 54   objc,. ...    T
4f00: 63 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 6f 62  cl_Obj *CONST ob
4f10: 6a 76 5b 5d 29 3b 0a 49 6e 64 65 78 3a 20 67 65  jv[]);.Index: ge
4f20: 6e 65 72 69 63 2f 74 63 6c 49 6e 74 44 65 63 6c  neric/tclIntDecl
4f30: 73 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  s.h.============
4f40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4f50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4f60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4f70: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65  =======.RCS file
4f80: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74  : /cvsroot/tcl/t
4f90: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e  cl/generic/tclIn
4fa0: 74 44 65 63 6c 73 2e 68 2c 76 0a 72 65 74 72 69  tDecls.h,v.retri
4fb0: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31  eving revision 1
4fc0: 2e 38 35 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e  .85.diff -u -r1.
4fd0: 38 35 20 74 63 6c 49 6e 74 44 65 63 6c 73 2e 68  85 tclIntDecls.h
4fe0: 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c  .--- generic/tcl
4ff0: 49 6e 74 44 65 63 6c 73 2e 68 09 31 33 20 44 65  IntDecls.h.13 De
5000: 63 20 32 30 30 35 20 32 32 3a 34 33 3a 31 38 20  c 2005 22:43:18 
5010: 2d 30 30 30 30 09 31 2e 38 35 0a 2b 2b 2b 20 67  -0000.1.85.+++ g
5020: 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 44 65 63  eneric/tclIntDec
5030: 6c 73 2e 68 09 38 20 46 65 62 20 32 30 30 36 20  ls.h.8 Feb 2006 
5040: 32 31 3a 32 35 3a 34 30 20 2d 30 30 30 30 0a 40  21:25:40 -0000.@
5050: 40 20 2d 39 38 38 2c 32 33 20 2b 39 38 38 2c 39  @ -988,23 +988,9
5060: 20 40 40 0a 20 45 58 54 45 52 4e 20 54 63 6c 5f   @@. EXTERN Tcl_
5070: 43 68 61 6e 6e 65 6c 09 54 63 6c 70 4f 70 65 6e  Channel.TclpOpen
5080: 46 69 6c 65 43 68 61 6e 6e 65 6c 20 5f 41 4e 53  FileChannel _ANS
5090: 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74  I_ARGS_((Tcl_Int
50a0: 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 0a 20  erp * interp, . 
50b0: 09 09 09 09 54 63 6c 5f 4f 62 6a 20 2a 20 70 61  ....Tcl_Obj * pa
50c0: 74 68 50 74 72 2c 20 69 6e 74 20 6d 6f 64 65 2c  thPtr, int mode,
50d0: 20 69 6e 74 20 70 65 72 6d 69 73 73 69 6f 6e 73   int permissions
50e0: 29 29 3b 0a 20 23 65 6e 64 69 66 0a 2d 23 69 66  ));. #endif.-#if
50f0: 6e 64 65 66 20 54 63 6c 47 65 74 45 6e 63 6f 64  ndef TclGetEncod
5100: 69 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54 43  ingSearchPath_TC
5110: 4c 5f 44 45 43 4c 41 52 45 44 0a 2d 23 64 65 66  L_DECLARED.-#def
5120: 69 6e 65 20 54 63 6c 47 65 74 45 6e 63 6f 64 69  ine TclGetEncodi
5130: 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54 43 4c  ngSearchPath_TCL
5140: 5f 44 45 43 4c 41 52 45 44 0a 2d 2f 2a 20 32 30  _DECLARED.-/* 20
5150: 39 20 2a 2f 0a 2d 45 58 54 45 52 4e 20 54 63 6c  9 */.-EXTERN Tcl
5160: 5f 4f 62 6a 20 2a 09 54 63 6c 47 65 74 45 6e 63  _Obj *.TclGetEnc
5170: 6f 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 20  odingSearchPath 
5180: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 76 6f 69  _ANSI_ARGS_((voi
5190: 64 29 29 3b 0a 2d 23 65 6e 64 69 66 0a 2d 23 69  d));.-#endif.-#i
51a0: 66 6e 64 65 66 20 54 63 6c 53 65 74 45 6e 63 6f  fndef TclSetEnco
51b0: 64 69 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54  dingSearchPath_T
51c0: 43 4c 5f 44 45 43 4c 41 52 45 44 0a 2d 23 64 65  CL_DECLARED.-#de
51d0: 66 69 6e 65 20 54 63 6c 53 65 74 45 6e 63 6f 64  fine TclSetEncod
51e0: 69 6e 67 53 65 61 72 63 68 50 61 74 68 5f 54 43  ingSearchPath_TC
51f0: 4c 5f 44 45 43 4c 41 52 45 44 0a 2d 2f 2a 20 32  L_DECLARED.-/* 2
5200: 31 30 20 2a 2f 0a 2d 45 58 54 45 52 4e 20 69 6e  10 */.-EXTERN in
5210: 74 09 09 54 63 6c 53 65 74 45 6e 63 6f 64 69 6e  t..TclSetEncodin
5220: 67 53 65 61 72 63 68 50 61 74 68 20 5f 41 4e 53  gSearchPath _ANS
5230: 49 5f 41 52 47 53 5f 28 28 0a 2d 09 09 09 09 54  I_ARGS_((.-....T
5240: 63 6c 5f 4f 62 6a 20 2a 20 73 65 61 72 63 68 50  cl_Obj * searchP
5250: 61 74 68 29 29 3b 0a 2d 23 65 6e 64 69 66 0a 2d  ath));.-#endif.-
5260: 23 69 66 6e 64 65 66 20 54 63 6c 70 47 65 74 45  #ifndef TclpGetE
5270: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
5280: 6e 76 69 72 6f 6e 6d 65 6e 74 5f 54 43 4c 5f 44  nvironment_TCL_D
5290: 45 43 4c 41 52 45 44 0a 2d 23 64 65 66 69 6e 65  ECLARED.-#define
52a0: 20 54 63 6c 70 47 65 74 45 6e 63 6f 64 69 6e 67   TclpGetEncoding
52b0: 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d  NameFromEnvironm
52c0: 65 6e 74 5f 54 43 4c 5f 44 45 43 4c 41 52 45 44  ent_TCL_DECLARED
52d0: 0a 2d 2f 2a 20 32 31 31 20 2a 2f 0a 2d 45 58 54  .-/* 211 */.-EXT
52e0: 45 52 4e 20 43 4f 4e 53 54 20 63 68 61 72 20 2a  ERN CONST char *
52f0: 09 54 63 6c 70 47 65 74 45 6e 63 6f 64 69 6e 67  .TclpGetEncoding
5300: 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d  NameFromEnvironm
5310: 65 6e 74 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28  ent _ANSI_ARGS_(
5320: 28 0a 2d 09 09 09 09 54 63 6c 5f 44 53 74 72 69  (.-....Tcl_DStri
5330: 6e 67 20 2a 20 62 75 66 50 74 72 29 29 3b 0a 2d  ng * bufPtr));.-
5340: 23 65 6e 64 69 66 0a 2b 2f 2a 20 53 6c 6f 74 20  #endif.+/* Slot 
5350: 32 30 39 20 69 73 20 72 65 73 65 72 76 65 64 20  209 is reserved 
5360: 2a 2f 0a 2b 2f 2a 20 53 6c 6f 74 20 32 31 30 20  */.+/* Slot 210 
5370: 69 73 20 72 65 73 65 72 76 65 64 20 2a 2f 0a 2b  is reserved */.+
5380: 2f 2a 20 53 6c 6f 74 20 32 31 31 20 69 73 20 72  /* Slot 211 is r
5390: 65 73 65 72 76 65 64 20 2a 2f 0a 20 23 69 66 6e  eserved */. #ifn
53a0: 64 65 66 20 54 63 6c 70 46 69 6e 64 45 78 65 63  def TclpFindExec
53b0: 75 74 61 62 6c 65 5f 54 43 4c 5f 44 45 43 4c 41  utable_TCL_DECLA
53c0: 52 45 44 0a 20 23 64 65 66 69 6e 65 20 54 63 6c  RED. #define Tcl
53d0: 70 46 69 6e 64 45 78 65 63 75 74 61 62 6c 65 5f  pFindExecutable_
53e0: 54 43 4c 5f 44 45 43 4c 41 52 45 44 0a 20 2f 2a  TCL_DECLARED. /*
53f0: 20 32 31 32 20 2a 2f 0a 40 40 20 2d 31 32 39 31   212 */.@@ -1291
5400: 2c 39 20 2b 31 32 37 37 2c 39 20 40 40 0a 20 20  ,9 +1277,9 @@.  
5410: 20 20 20 69 6e 74 20 28 2a 74 63 6c 70 4f 62 6a     int (*tclpObj
5420: 53 74 61 74 29 20 5f 41 4e 53 49 5f 41 52 47 53  Stat) _ANSI_ARGS
5430: 5f 28 28 54 63 6c 5f 4f 62 6a 20 2a 20 70 61 74  _((Tcl_Obj * pat
5440: 68 50 74 72 2c 20 54 63 6c 5f 53 74 61 74 42 75  hPtr, Tcl_StatBu
5450: 66 20 2a 20 62 75 66 29 29 3b 20 2f 2a 20 32 30  f * buf)); /* 20
5460: 36 20 2a 2f 0a 20 20 20 20 20 69 6e 74 20 28 2a  6 */.     int (*
5470: 74 63 6c 70 4f 62 6a 41 63 63 65 73 73 29 20 5f  tclpObjAccess) _
5480: 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f  ANSI_ARGS_((Tcl_
5490: 4f 62 6a 20 2a 20 70 61 74 68 50 74 72 2c 20 69  Obj * pathPtr, i
54a0: 6e 74 20 6d 6f 64 65 29 29 3b 20 2f 2a 20 32 30  nt mode)); /* 20
54b0: 37 20 2a 2f 0a 20 20 20 20 20 54 63 6c 5f 43 68  7 */.     Tcl_Ch
54c0: 61 6e 6e 65 6c 20 28 2a 74 63 6c 70 4f 70 65 6e  annel (*tclpOpen
54d0: 46 69 6c 65 43 68 61 6e 6e 65 6c 29 20 5f 41 4e  FileChannel) _AN
54e0: 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e  SI_ARGS_((Tcl_In
54f0: 74 65 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 54  terp * interp, T
5500: 63 6c 5f 4f 62 6a 20 2a 20 70 61 74 68 50 74 72  cl_Obj * pathPtr
5510: 2c 20 69 6e 74 20 6d 6f 64 65 2c 20 69 6e 74 20  , int mode, int 
5520: 70 65 72 6d 69 73 73 69 6f 6e 73 29 29 3b 20 2f  permissions)); /
5530: 2a 20 32 30 38 20 2a 2f 0a 2d 20 20 20 20 54 63  * 208 */.-    Tc
5540: 6c 5f 4f 62 6a 20 2a 20 28 2a 74 63 6c 47 65 74  l_Obj * (*tclGet
5550: 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50 61  EncodingSearchPa
5560: 74 68 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28  th) _ANSI_ARGS_(
5570: 28 76 6f 69 64 29 29 3b 20 2f 2a 20 32 30 39 20  (void)); /* 209 
5580: 2a 2f 0a 2d 20 20 20 20 69 6e 74 20 28 2a 74 63  */.-    int (*tc
5590: 6c 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72  lSetEncodingSear
55a0: 63 68 50 61 74 68 29 20 5f 41 4e 53 49 5f 41 52  chPath) _ANSI_AR
55b0: 47 53 5f 28 28 54 63 6c 5f 4f 62 6a 20 2a 20 73  GS_((Tcl_Obj * s
55c0: 65 61 72 63 68 50 61 74 68 29 29 3b 20 2f 2a 20  earchPath)); /* 
55d0: 32 31 30 20 2a 2f 0a 2d 20 20 20 20 43 4f 4e 53  210 */.-    CONS
55e0: 54 20 63 68 61 72 20 2a 20 28 2a 74 63 6c 70 47  T char * (*tclpG
55f0: 65 74 45 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72  etEncodingNameFr
5600: 6f 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74 29 20 5f  omEnvironment) _
5610: 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f  ANSI_ARGS_((Tcl_
5620: 44 53 74 72 69 6e 67 20 2a 20 62 75 66 50 74 72  DString * bufPtr
5630: 29 29 3b 20 2f 2a 20 32 31 31 20 2a 2f 0a 2b 20  )); /* 211 */.+ 
5640: 20 20 20 76 6f 69 64 20 2a 72 65 73 65 72 76 65     void *reserve
5650: 64 32 30 39 3b 0a 2b 20 20 20 20 76 6f 69 64 20  d209;.+    void 
5660: 2a 72 65 73 65 72 76 65 64 32 31 30 3b 0a 2b 20  *reserved210;.+ 
5670: 20 20 20 76 6f 69 64 20 2a 72 65 73 65 72 76 65     void *reserve
5680: 64 32 31 31 3b 0a 20 20 20 20 20 76 6f 69 64 20  d211;.     void 
5690: 28 2a 74 63 6c 70 46 69 6e 64 45 78 65 63 75 74  (*tclpFindExecut
56a0: 61 62 6c 65 29 20 5f 41 4e 53 49 5f 41 52 47 53  able) _ANSI_ARGS
56b0: 5f 28 28 43 4f 4e 53 54 20 63 68 61 72 20 2a 20  _((CONST char * 
56c0: 61 72 67 76 30 29 29 3b 20 2f 2a 20 32 31 32 20  argv0)); /* 212 
56d0: 2a 2f 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20  */.     Tcl_Obj 
56e0: 2a 20 28 2a 74 63 6c 47 65 74 4f 62 6a 4e 61 6d  * (*tclGetObjNam
56f0: 65 4f 66 45 78 65 63 75 74 61 62 6c 65 29 20 5f  eOfExecutable) _
5700: 41 4e 53 49 5f 41 52 47 53 5f 28 28 76 6f 69 64  ANSI_ARGS_((void
5710: 29 29 3b 20 2f 2a 20 32 31 33 20 2a 2f 0a 20 20  )); /* 213 */.  
5720: 20 20 20 76 6f 69 64 20 28 2a 74 63 6c 53 65 74     void (*tclSet
5730: 4f 62 6a 4e 61 6d 65 4f 66 45 78 65 63 75 74 61  ObjNameOfExecuta
5740: 62 6c 65 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f  ble) _ANSI_ARGS_
5750: 28 28 54 63 6c 5f 4f 62 6a 20 2a 20 6e 61 6d 65  ((Tcl_Obj * name
5760: 2c 20 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 20 65  , Tcl_Encoding e
5770: 6e 63 6f 64 69 6e 67 29 29 3b 20 2f 2a 20 32 31  ncoding)); /* 21
5780: 34 20 2a 2f 0a 40 40 20 2d 31 39 37 31 2c 31 38  4 */.@@ -1971,18
5790: 20 2b 31 39 35 37 2c 39 20 40 40 0a 20 23 64 65   +1957,9 @@. #de
57a0: 66 69 6e 65 20 54 63 6c 70 4f 70 65 6e 46 69 6c  fine TclpOpenFil
57b0: 65 43 68 61 6e 6e 65 6c 20 5c 0a 20 09 28 74 63  eChannel \. .(tc
57c0: 6c 49 6e 74 53 74 75 62 73 50 74 72 2d 3e 74 63  lIntStubsPtr->tc
57d0: 6c 70 4f 70 65 6e 46 69 6c 65 43 68 61 6e 6e 65  lpOpenFileChanne
57e0: 6c 29 20 2f 2a 20 32 30 38 20 2a 2f 0a 20 23 65  l) /* 208 */. #e
57f0: 6e 64 69 66 0a 2d 23 69 66 6e 64 65 66 20 54 63  ndif.-#ifndef Tc
5800: 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72  lGetEncodingSear
5810: 63 68 50 61 74 68 0a 2d 23 64 65 66 69 6e 65 20  chPath.-#define 
5820: 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65  TclGetEncodingSe
5830: 61 72 63 68 50 61 74 68 20 5c 0a 2d 09 28 74 63  archPath \.-.(tc
5840: 6c 49 6e 74 53 74 75 62 73 50 74 72 2d 3e 74 63  lIntStubsPtr->tc
5850: 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72  lGetEncodingSear
5860: 63 68 50 61 74 68 29 20 2f 2a 20 32 30 39 20 2a  chPath) /* 209 *
5870: 2f 0a 2d 23 65 6e 64 69 66 0a 2d 23 69 66 6e 64  /.-#endif.-#ifnd
5880: 65 66 20 54 63 6c 53 65 74 45 6e 63 6f 64 69 6e  ef TclSetEncodin
5890: 67 53 65 61 72 63 68 50 61 74 68 0a 2d 23 64 65  gSearchPath.-#de
58a0: 66 69 6e 65 20 54 63 6c 53 65 74 45 6e 63 6f 64  fine TclSetEncod
58b0: 69 6e 67 53 65 61 72 63 68 50 61 74 68 20 5c 0a  ingSearchPath \.
58c0: 2d 09 28 74 63 6c 49 6e 74 53 74 75 62 73 50 74  -.(tclIntStubsPt
58d0: 72 2d 3e 74 63 6c 53 65 74 45 6e 63 6f 64 69 6e  r->tclSetEncodin
58e0: 67 53 65 61 72 63 68 50 61 74 68 29 20 2f 2a 20  gSearchPath) /* 
58f0: 32 31 30 20 2a 2f 0a 2d 23 65 6e 64 69 66 0a 2d  210 */.-#endif.-
5900: 23 69 66 6e 64 65 66 20 54 63 6c 70 47 65 74 45  #ifndef TclpGetE
5910: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
5920: 6e 76 69 72 6f 6e 6d 65 6e 74 0a 2d 23 64 65 66  nvironment.-#def
5930: 69 6e 65 20 54 63 6c 70 47 65 74 45 6e 63 6f 64  ine TclpGetEncod
5940: 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72  ingNameFromEnvir
5950: 6f 6e 6d 65 6e 74 20 5c 0a 2d 09 28 74 63 6c 49  onment \.-.(tclI
5960: 6e 74 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 70  ntStubsPtr->tclp
5970: 47 65 74 45 6e 63 6f 64 69 6e 67 4e 61 6d 65 46  GetEncodingNameF
5980: 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74 29 20  romEnvironment) 
5990: 2f 2a 20 32 31 31 20 2a 2f 0a 2d 23 65 6e 64 69  /* 211 */.-#endi
59a0: 66 0a 2b 2f 2a 20 53 6c 6f 74 20 32 30 39 20 69  f.+/* Slot 209 i
59b0: 73 20 72 65 73 65 72 76 65 64 20 2a 2f 0a 2b 2f  s reserved */.+/
59c0: 2a 20 53 6c 6f 74 20 32 31 30 20 69 73 20 72 65  * Slot 210 is re
59d0: 73 65 72 76 65 64 20 2a 2f 0a 2b 2f 2a 20 53 6c  served */.+/* Sl
59e0: 6f 74 20 32 31 31 20 69 73 20 72 65 73 65 72 76  ot 211 is reserv
59f0: 65 64 20 2a 2f 0a 20 23 69 66 6e 64 65 66 20 54  ed */. #ifndef T
5a00: 63 6c 70 46 69 6e 64 45 78 65 63 75 74 61 62 6c  clpFindExecutabl
5a10: 65 0a 20 23 64 65 66 69 6e 65 20 54 63 6c 70 46  e. #define TclpF
5a20: 69 6e 64 45 78 65 63 75 74 61 62 6c 65 20 5c 0a  indExecutable \.
5a30: 20 09 28 74 63 6c 49 6e 74 53 74 75 62 73 50 74   .(tclIntStubsPt
5a40: 72 2d 3e 74 63 6c 70 46 69 6e 64 45 78 65 63 75  r->tclpFindExecu
5a50: 74 61 62 6c 65 29 20 2f 2a 20 32 31 32 20 2a 2f  table) /* 212 */
5a60: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f  .Index: generic/
5a70: 74 63 6c 53 74 75 62 49 6e 69 74 2e 63 0a 3d 3d  tclStubInit.c.==
5a80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5a90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5ac0: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73  =.RCS file: /cvs
5ad0: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e  root/tcl/tcl/gen
5ae0: 65 72 69 63 2f 74 63 6c 53 74 75 62 49 6e 69 74  eric/tclStubInit
5af0: 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20  .c,v.retrieving 
5b00: 72 65 76 69 73 69 6f 6e 20 31 2e 31 32 38 0a 64  revision 1.128.d
5b10: 69 66 66 20 2d 75 20 2d 72 31 2e 31 32 38 20 74  iff -u -r1.128 t
5b20: 63 6c 53 74 75 62 49 6e 69 74 2e 63 0a 2d 2d 2d  clStubInit.c.---
5b30: 20 67 65 6e 65 72 69 63 2f 74 63 6c 53 74 75 62   generic/tclStub
5b40: 49 6e 69 74 2e 63 09 31 20 46 65 62 20 32 30 30  Init.c.1 Feb 200
5b50: 36 20 31 38 3a 32 37 3a 34 38 20 2d 30 30 30 30  6 18:27:48 -0000
5b60: 09 31 2e 31 32 38 0a 2b 2b 2b 20 67 65 6e 65 72  .1.128.+++ gener
5b70: 69 63 2f 74 63 6c 53 74 75 62 49 6e 69 74 2e 63  ic/tclStubInit.c
5b80: 09 38 20 46 65 62 20 32 30 30 36 20 32 31 3a 32  .8 Feb 2006 21:2
5b90: 35 3a 34 31 20 2d 30 30 30 30 0a 40 40 20 2d 33  5:41 -0000.@@ -3
5ba0: 30 30 2c 39 20 2b 33 30 30 2c 39 20 40 40 0a 20  00,9 +300,9 @@. 
5bb0: 20 20 20 20 54 63 6c 70 4f 62 6a 53 74 61 74 2c      TclpObjStat,
5bc0: 20 2f 2a 20 32 30 36 20 2a 2f 0a 20 20 20 20 20   /* 206 */.     
5bd0: 54 63 6c 70 4f 62 6a 41 63 63 65 73 73 2c 20 2f  TclpObjAccess, /
5be0: 2a 20 32 30 37 20 2a 2f 0a 20 20 20 20 20 54 63  * 207 */.     Tc
5bf0: 6c 70 4f 70 65 6e 46 69 6c 65 43 68 61 6e 6e 65  lpOpenFileChanne
5c00: 6c 2c 20 2f 2a 20 32 30 38 20 2a 2f 0a 2d 20 20  l, /* 208 */.-  
5c10: 20 20 54 63 6c 47 65 74 45 6e 63 6f 64 69 6e 67    TclGetEncoding
5c20: 53 65 61 72 63 68 50 61 74 68 2c 20 2f 2a 20 32  SearchPath, /* 2
5c30: 30 39 20 2a 2f 0a 2d 20 20 20 20 54 63 6c 53 65  09 */.-    TclSe
5c40: 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63 68 50  tEncodingSearchP
5c50: 61 74 68 2c 20 2f 2a 20 32 31 30 20 2a 2f 0a 2d  ath, /* 210 */.-
5c60: 20 20 20 20 54 63 6c 70 47 65 74 45 6e 63 6f 64      TclpGetEncod
5c70: 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72  ingNameFromEnvir
5c80: 6f 6e 6d 65 6e 74 2c 20 2f 2a 20 32 31 31 20 2a  onment, /* 211 *
5c90: 2f 0a 2b 20 20 20 20 4e 55 4c 4c 2c 20 2f 2a 20  /.+    NULL, /* 
5ca0: 32 30 39 20 2a 2f 0a 2b 20 20 20 20 4e 55 4c 4c  209 */.+    NULL
5cb0: 2c 20 2f 2a 20 32 31 30 20 2a 2f 0a 2b 20 20 20  , /* 210 */.+   
5cc0: 20 4e 55 4c 4c 2c 20 2f 2a 20 32 31 31 20 2a 2f   NULL, /* 211 */
5cd0: 0a 20 20 20 20 20 54 63 6c 70 46 69 6e 64 45 78  .     TclpFindEx
5ce0: 65 63 75 74 61 62 6c 65 2c 20 2f 2a 20 32 31 32  ecutable, /* 212
5cf0: 20 2a 2f 0a 20 20 20 20 20 54 63 6c 47 65 74 4f   */.     TclGetO
5d00: 62 6a 4e 61 6d 65 4f 66 45 78 65 63 75 74 61 62  bjNameOfExecutab
5d10: 6c 65 2c 20 2f 2a 20 32 31 33 20 2a 2f 0a 20 20  le, /* 213 */.  
5d20: 20 20 20 54 63 6c 53 65 74 4f 62 6a 4e 61 6d 65     TclSetObjName
5d30: 4f 66 45 78 65 63 75 74 61 62 6c 65 2c 20 2f 2a  OfExecutable, /*
5d40: 20 32 31 34 20 2a 2f 0a 40 40 20 2d 31 30 36 35   214 */.@@ -1065
5d50: 2c 36 20 2b 31 30 36 35 2c 31 30 20 40 40 0a 20  ,6 +1065,10 @@. 
5d60: 20 20 20 20 54 63 6c 5f 49 6e 69 74 42 69 67 6e      Tcl_InitBign
5d70: 75 6d 46 72 6f 6d 44 6f 75 62 6c 65 2c 20 2f 2a  umFromDouble, /*
5d80: 20 35 36 36 20 2a 2f 0a 20 20 20 20 20 54 63 6c   566 */.     Tcl
5d90: 5f 47 65 74 4e 61 6d 65 73 70 61 63 65 55 6e 6b  _GetNamespaceUnk
5da0: 6e 6f 77 6e 48 61 6e 64 6c 65 72 2c 20 2f 2a 20  nownHandler, /* 
5db0: 35 36 37 20 2a 2f 0a 20 20 20 20 20 54 63 6c 5f  567 */.     Tcl_
5dc0: 53 65 74 4e 61 6d 65 73 70 61 63 65 55 6e 6b 6e  SetNamespaceUnkn
5dd0: 6f 77 6e 48 61 6e 64 6c 65 72 2c 20 2f 2a 20 35  ownHandler, /* 5
5de0: 36 38 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 47  68 */.+    Tcl_G
5df0: 65 74 45 6e 63 6f 64 69 6e 67 46 72 6f 6d 4f 62  etEncodingFromOb
5e00: 6a 2c 20 2f 2a 20 35 36 39 20 2a 2f 0a 2b 20 20  j, /* 569 */.+  
5e10: 20 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e    Tcl_GetEncodin
5e20: 67 53 65 61 72 63 68 50 61 74 68 2c 20 2f 2a 20  gSearchPath, /* 
5e30: 35 37 30 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f  570 */.+    Tcl_
5e40: 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  SetEncodingSearc
5e50: 68 50 61 74 68 2c 20 2f 2a 20 35 37 31 20 2a 2f  hPath, /* 571 */
5e60: 0a 2b 20 20 20 20 54 63 6c 5f 47 65 74 45 6e 63  .+    Tcl_GetEnc
5e70: 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76  odingNameFromEnv
5e80: 69 72 6f 6e 6d 65 6e 74 2c 20 2f 2a 20 35 37 32  ironment, /* 572
5e90: 20 2a 2f 0a 20 7d 3b 0a 20 0a 20 2f 2a 20 21 45   */. };. . /* !E
5ea0: 4e 44 21 3a 20 44 6f 20 6e 6f 74 20 65 64 69 74  ND!: Do not edit
5eb0: 20 61 62 6f 76 65 20 74 68 69 73 20 6c 69 6e 65   above this line
5ec0: 2e 20 2a 2f 0a 49 6e 64 65 78 3a 20 67 65 6e 65  . */.Index: gene
5ed0: 72 69 63 2f 74 63 6c 54 65 73 74 2e 63 0a 3d 3d  ric/tclTest.c.==
5ee0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5ef0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5f00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5f10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5f20: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73  =.RCS file: /cvs
5f30: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e  root/tcl/tcl/gen
5f40: 65 72 69 63 2f 74 63 6c 54 65 73 74 2e 63 2c 76  eric/tclTest.c,v
5f50: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69  .retrieving revi
5f60: 73 69 6f 6e 20 31 2e 31 30 30 0a 64 69 66 66 20  sion 1.100.diff 
5f70: 2d 75 20 2d 72 31 2e 31 30 30 20 74 63 6c 54 65  -u -r1.100 tclTe
5f80: 73 74 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63  st.c.--- generic
5f90: 2f 74 63 6c 54 65 73 74 2e 63 09 31 35 20 44 65  /tclTest.c.15 De
5fa0: 63 20 32 30 30 35 20 30 34 3a 30 38 3a 33 33 20  c 2005 04:08:33 
5fb0: 2d 30 30 30 30 09 31 2e 31 30 30 0a 2b 2b 2b 20  -0000.1.100.+++ 
5fc0: 67 65 6e 65 72 69 63 2f 74 63 6c 54 65 73 74 2e  generic/tclTest.
5fd0: 63 09 38 20 46 65 62 20 32 30 30 36 20 32 31 3a  c.8 Feb 2006 21:
5fe0: 32 35 3a 34 33 20 2d 30 30 30 30 0a 40 40 20 2d  25:43 -0000.@@ -
5ff0: 31 37 33 36 2c 31 31 20 2b 31 37 33 36 2c 31 30  1736,11 +1736,10
6000: 20 40 40 0a 20 20 20 20 20 63 68 61 72 20 2a 73   @@.     char *s
6010: 74 72 69 6e 67 3b 0a 20 20 20 20 20 54 63 6c 45  tring;.     TclE
6020: 6e 63 6f 64 69 6e 67 20 2a 65 6e 63 6f 64 69 6e  ncoding *encodin
6030: 67 50 74 72 3b 0a 20 20 20 20 20 73 74 61 74 69  gPtr;.     stati
6040: 63 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 6f 70  c CONST char *op
6050: 74 69 6f 6e 53 74 72 69 6e 67 73 5b 5d 20 3d 20  tionStrings[] = 
6060: 7b 0a 2d 09 22 63 72 65 61 74 65 22 2c 09 22 64  {.-."create",."d
6070: 65 6c 65 74 65 22 2c 09 22 70 61 74 68 22 2c 0a  elete",."path",.
6080: 2d 09 4e 55 4c 4c 0a 2b 09 22 63 72 65 61 74 65  -.NULL.+."create
6090: 22 2c 09 22 64 65 6c 65 74 65 22 2c 09 4e 55 4c  ",."delete",.NUL
60a0: 4c 0a 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 65  L.     };.     e
60b0: 6e 75 6d 20 6f 70 74 69 6f 6e 73 20 7b 0a 2d 09  num options {.-.
60c0: 45 4e 43 5f 43 52 45 41 54 45 2c 09 45 4e 43 5f  ENC_CREATE,.ENC_
60d0: 44 45 4c 45 54 45 2c 09 45 4e 43 5f 50 41 54 48  DELETE,.ENC_PATH
60e0: 0a 2b 09 45 4e 43 5f 43 52 45 41 54 45 2c 09 45  .+.ENC_CREATE,.E
60f0: 4e 43 5f 44 45 4c 45 54 45 0a 20 20 20 20 20 7d  NC_DELETE.     }
6100: 3b 0a 20 0a 20 20 20 20 20 69 66 20 28 54 63 6c  ;. .     if (Tcl
6110: 5f 47 65 74 49 6e 64 65 78 46 72 6f 6d 4f 62 6a  _GetIndexFromObj
6120: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 31 5d  (interp, objv[1]
6130: 2c 20 6f 70 74 69 6f 6e 53 74 72 69 6e 67 73 2c  , optionStrings,
6140: 20 22 6f 70 74 69 6f 6e 22 2c 20 30 2c 0a 40 40   "option", 0,.@@
6150: 20 2d 31 37 38 37 2c 31 34 20 2b 31 37 38 36 2c   -1787,14 +1786,
6160: 36 20 40 40 0a 20 09 20 20 20 20 54 63 6c 5f 46  6 @@. .    Tcl_F
6170: 72 65 65 45 6e 63 6f 64 69 6e 67 28 65 6e 63 6f  reeEncoding(enco
6180: 64 69 6e 67 29 3b 0a 20 09 20 20 20 20 62 72 65  ding);. .    bre
6190: 61 6b 3b 0a 20 09 7d 0a 2d 09 63 61 73 65 20 45  ak;. .}.-.case E
61a0: 4e 43 5f 50 41 54 48 3a 20 7b 0a 2d 09 20 20 20  NC_PATH: {.-.   
61b0: 20 69 66 20 28 6f 62 6a 63 20 3d 3d 20 32 29 20   if (objc == 2) 
61c0: 7b 0a 2d 09 09 54 63 6c 5f 53 65 74 4f 62 6a 52  {.-..Tcl_SetObjR
61d0: 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 54 63  esult(interp, Tc
61e0: 6c 47 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72  lGetEncodingSear
61f0: 63 68 50 61 74 68 28 29 29 3b 0a 2d 09 20 20 20  chPath());.-.   
6200: 20 7d 20 65 6c 73 65 20 7b 0a 2d 09 09 54 63 6c   } else {.-..Tcl
6210: 53 65 74 45 6e 63 6f 64 69 6e 67 53 65 61 72 63  SetEncodingSearc
6220: 68 50 61 74 68 28 6f 62 6a 76 5b 32 5d 29 3b 0a  hPath(objv[2]);.
6230: 2d 09 20 20 20 20 7d 0a 2d 09 20 20 20 20 62 72  -.    }.-.    br
6240: 65 61 6b 3b 0a 2d 09 7d 0a 20 20 20 20 20 7d 0a  eak;.-.}.     }.
6250: 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f       return TCL_
6260: 4f 4b 3b 0a 20 7d 0a 49 6e 64 65 78 3a 20 6c 69  OK;. }.Index: li
6270: 62 72 61 72 79 2f 69 6e 69 74 2e 74 63 6c 0a 3d  brary/init.tcl.=
6280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6290: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
62a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
62b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
62c0: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76  ==.RCS file: /cv
62d0: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 6c 69  sroot/tcl/tcl/li
62e0: 62 72 61 72 79 2f 69 6e 69 74 2e 74 63 6c 2c 76  brary/init.tcl,v
62f0: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69  .retrieving revi
6300: 73 69 6f 6e 20 31 2e 38 34 0a 64 69 66 66 20 2d  sion 1.84.diff -
6310: 75 20 2d 72 31 2e 38 34 20 69 6e 69 74 2e 74 63  u -r1.84 init.tc
6320: 6c 0a 2d 2d 2d 20 6c 69 62 72 61 72 79 2f 69 6e  l.--- library/in
6330: 69 74 2e 74 63 6c 09 33 30 20 53 65 70 20 32 30  it.tcl.30 Sep 20
6340: 30 35 20 31 38 3a 35 33 3a 33 33 20 2d 30 30 30  05 18:53:33 -000
6350: 30 09 31 2e 38 34 0a 2b 2b 2b 20 6c 69 62 72 61  0.1.84.+++ libra
6360: 72 79 2f 69 6e 69 74 2e 74 63 6c 09 38 20 46 65  ry/init.tcl.8 Fe
6370: 62 20 32 30 30 36 20 32 31 3a 32 35 3a 34 33 20  b 2006 21:25:43 
6380: 2d 30 30 30 30 0a 40 40 20 2d 36 36 2c 31 31 20  -0000.@@ -66,11 
6390: 2b 36 36 2c 31 33 20 40 40 0a 20 09 7d 0a 20 20  +66,13 @@. .}.  
63a0: 20 20 20 7d 0a 20 0a 2d 20 20 20 20 76 61 72 69     }. .-    vari
63b0: 61 62 6c 65 20 50 61 74 68 20 5b 75 6e 73 75 70  able Path [unsup
63c0: 70 6f 72 74 65 64 3a 3a 45 6e 63 6f 64 69 6e 67  ported::Encoding
63d0: 44 69 72 73 5d 0a 2d 20 20 20 20 73 65 74 20 44  Dirs].-    set D
63e0: 69 72 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 3a  ir [file join $:
63f0: 3a 74 63 6c 5f 6c 69 62 72 61 72 79 20 65 6e 63  :tcl_library enc
6400: 6f 64 69 6e 67 5d 0a 2d 20 20 20 20 69 66 20 7b  oding].-    if {
6410: 24 44 69 72 20 6e 69 20 24 50 61 74 68 7d 20 7b  $Dir ni $Path} {
6420: 0a 2d 09 6c 61 70 70 65 6e 64 20 50 61 74 68 20  .-.lappend Path 
6430: 24 44 69 72 0a 2d 09 75 6e 73 75 70 70 6f 72 74  $Dir.-.unsupport
6440: 65 64 3a 3a 45 6e 63 6f 64 69 6e 67 44 69 72 73  ed::EncodingDirs
6450: 20 24 50 61 74 68 0a 2b 20 20 20 20 69 66 20 7b   $Path.+    if {
6460: 21 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d  ![interp issafe]
6470: 7d 20 7b 0a 2b 20 20 20 20 20 20 20 20 76 61 72  } {.+        var
6480: 69 61 62 6c 65 20 50 61 74 68 20 5b 65 6e 63 6f  iable Path [enco
6490: 64 69 6e 67 20 64 69 72 73 5d 0a 2b 20 20 20 20  ding dirs].+    
64a0: 20 20 20 20 73 65 74 20 44 69 72 20 5b 66 69 6c      set Dir [fil
64b0: 65 20 6a 6f 69 6e 20 24 3a 3a 74 63 6c 5f 6c 69  e join $::tcl_li
64c0: 62 72 61 72 79 20 65 6e 63 6f 64 69 6e 67 5d 0a  brary encoding].
64d0: 2b 20 20 20 20 20 20 20 20 69 66 20 7b 24 44 69  +        if {$Di
64e0: 72 20 6e 69 20 24 50 61 74 68 7d 20 7b 0a 2b 09  r ni $Path} {.+.
64f0: 20 20 20 20 6c 61 70 70 65 6e 64 20 50 61 74 68      lappend Path
6500: 20 24 44 69 72 0a 2b 09 20 20 20 20 65 6e 63 6f   $Dir.+.    enco
6510: 64 69 6e 67 20 64 69 72 73 20 24 50 61 74 68 0a  ding dirs $Path.
6520: 2b 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20  +        }.     
6530: 7d 0a 20 0a 20 20 20 20 20 23 20 53 65 74 20 75  }. .     # Set u
6540: 70 20 74 68 65 20 27 63 68 61 6e 27 20 65 6e 73  p the 'chan' ens
6550: 65 6d 62 6c 65 20 28 54 49 50 20 23 32 30 38 29  emble (TIP #208)
6560: 2e 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 63  ..Index: tests/c
6570: 6d 64 41 48 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d  mdAH.test.======
6580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
65a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
65b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43  =============.RC
65c0: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74  S file: /cvsroot
65d0: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 63  /tcl/tcl/tests/c
65e0: 6d 64 41 48 2e 74 65 73 74 2c 76 0a 72 65 74 72  mdAH.test,v.retr
65f0: 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20  ieving revision 
6600: 31 2e 35 30 0a 64 69 66 66 20 2d 75 20 2d 72 31  1.50.diff -u -r1
6610: 2e 35 30 20 63 6d 64 41 48 2e 74 65 73 74 0a 2d  .50 cmdAH.test.-
6620: 2d 2d 20 74 65 73 74 73 2f 63 6d 64 41 48 2e 74  -- tests/cmdAH.t
6630: 65 73 74 09 31 20 4e 6f 76 20 32 30 30 34 20 31  est.1 Nov 2004 1
6640: 36 3a 35 38 3a 33 37 20 2d 30 30 30 30 09 31 2e  6:58:37 -0000.1.
6650: 35 30 0a 2b 2b 2b 20 74 65 73 74 73 2f 63 6d 64  50.+++ tests/cmd
6660: 41 48 2e 74 65 73 74 09 38 20 46 65 62 20 32 30  AH.test.8 Feb 20
6670: 30 36 20 32 31 3a 32 35 3a 35 30 20 2d 30 30 30  06 21:25:50 -000
6680: 30 0a 40 40 20 2d 31 32 34 2c 37 20 2b 31 32 34  0.@@ -124,7 +124
6690: 2c 37 20 40 40 0a 20 7d 20 7b 31 20 7b 77 72 6f  ,7 @@. } {1 {wro
66a0: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c  ng # args: shoul
66b0: 64 20 62 65 20 22 65 6e 63 6f 64 69 6e 67 20 6f  d be "encoding o
66c0: 70 74 69 6f 6e 20 3f 61 72 67 20 2e 2e 2e 3f 22  ption ?arg ...?"
66d0: 7d 7d 0a 20 74 65 73 74 20 63 6d 64 41 48 2d 34  }}. test cmdAH-4
66e0: 2e 32 20 7b 54 63 6c 5f 45 6e 63 6f 64 69 6e 67  .2 {Tcl_Encoding
66f0: 4f 62 6a 43 6d 64 7d 20 7b 0a 20 20 20 20 20 6c  ObjCmd} {.     l
6700: 69 73 74 20 5b 63 61 74 63 68 20 7b 65 6e 63 6f  ist [catch {enco
6710: 64 69 6e 67 20 66 6f 6f 7d 20 6d 73 67 5d 20 24  ding foo} msg] $
6720: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 6f  msg.-} {1 {bad o
6730: 70 74 69 6f 6e 20 22 66 6f 6f 22 3a 20 6d 75 73  ption "foo": mus
6740: 74 20 62 65 20 63 6f 6e 76 65 72 74 66 72 6f 6d  t be convertfrom
6750: 2c 20 63 6f 6e 76 65 72 74 74 6f 2c 20 6e 61 6d  , convertto, nam
6760: 65 73 2c 20 6f 72 20 73 79 73 74 65 6d 7d 7d 0a  es, or system}}.
6770: 2b 7d 20 7b 31 20 7b 62 61 64 20 6f 70 74 69 6f  +} {1 {bad optio
6780: 6e 20 22 66 6f 6f 22 3a 20 6d 75 73 74 20 62 65  n "foo": must be
6790: 20 63 6f 6e 76 65 72 74 66 72 6f 6d 2c 20 63 6f   convertfrom, co
67a0: 6e 76 65 72 74 74 6f 2c 20 64 69 72 73 2c 20 6e  nvertto, dirs, n
67b0: 61 6d 65 73 2c 20 6f 72 20 73 79 73 74 65 6d 7d  ames, or system}
67c0: 7d 0a 20 74 65 73 74 20 63 6d 64 41 48 2d 34 2e  }. test cmdAH-4.
67d0: 33 20 7b 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 4f  3 {Tcl_EncodingO
67e0: 62 6a 43 6d 64 7d 20 7b 0a 20 20 20 20 20 6c 69  bjCmd} {.     li
67f0: 73 74 20 5b 63 61 74 63 68 20 7b 65 6e 63 6f 64  st [catch {encod
6800: 69 6e 67 20 63 6f 6e 76 65 72 74 74 6f 7d 20 6d  ing convertto} m
6810: 73 67 5d 20 24 6d 73 67 0a 20 7d 20 7b 31 20 7b  sg] $msg. } {1 {
6820: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68  wrong # args: sh
6830: 6f 75 6c 64 20 62 65 20 22 65 6e 63 6f 64 69 6e  ould be "encodin
6840: 67 20 63 6f 6e 76 65 72 74 74 6f 20 3f 65 6e 63  g convertto ?enc
6850: 6f 64 69 6e 67 3f 20 64 61 74 61 22 7d 7d 0a 49  oding? data"}}.I
6860: 6e 64 65 78 3a 20 74 65 73 74 73 2f 65 6e 63 6f  ndex: tests/enco
6870: 64 69 6e 67 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d  ding.test.======
6880: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6890: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
68a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
68b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43  =============.RC
68c0: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74  S file: /cvsroot
68d0: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 65  /tcl/tcl/tests/e
68e0: 6e 63 6f 64 69 6e 67 2e 74 65 73 74 2c 76 0a 72  ncoding.test,v.r
68f0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69  etrieving revisi
6900: 6f 6e 20 31 2e 32 33 0a 64 69 66 66 20 2d 75 20  on 1.23.diff -u 
6910: 2d 72 31 2e 32 33 20 65 6e 63 6f 64 69 6e 67 2e  -r1.23 encoding.
6920: 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 65  test.--- tests/e
6930: 6e 63 6f 64 69 6e 67 2e 74 65 73 74 09 31 30 20  ncoding.test.10 
6940: 4d 61 79 20 32 30 30 35 20 31 38 3a 33 35 3a 31  May 2005 18:35:1
6950: 38 20 2d 30 30 30 30 09 31 2e 32 33 0a 2b 2b 2b  8 -0000.1.23.+++
6960: 20 74 65 73 74 73 2f 65 6e 63 6f 64 69 6e 67 2e   tests/encoding.
6970: 74 65 73 74 09 38 20 46 65 62 20 32 30 30 36 20  test.8 Feb 2006 
6980: 32 31 3a 32 35 3a 35 30 20 2d 30 30 30 30 0a 40  21:25:50 -0000.@
6990: 40 20 2d 35 36 2c 31 34 20 2b 35 36 2c 31 34 20  @ -56,14 +56,14 
69a0: 40 40 0a 20 7d 20 7b 38 43 7d 0a 20 74 65 73 74  @@. } {8C}. test
69b0: 20 65 6e 63 6f 64 69 6e 67 2d 32 2e 32 20 7b 54   encoding-2.2 {T
69c0: 63 6c 5f 46 72 65 65 45 6e 63 6f 64 69 6e 67 3a  cl_FreeEncoding:
69d0: 20 72 65 66 63 6f 75 6e 74 20 21 3d 20 30 7d 20   refcount != 0} 
69e0: 7b 74 65 73 74 65 6e 63 6f 64 69 6e 67 7d 20 7b  {testencoding} {
69f0: 0a 20 20 20 20 20 73 65 74 20 73 79 73 74 65 6d  .     set system
6a00: 20 5b 65 6e 63 6f 64 69 6e 67 20 73 79 73 74 65   [encoding syste
6a10: 6d 5d 0a 2d 20 20 20 20 73 65 74 20 70 61 74 68  m].-    set path
6a20: 20 5b 74 65 73 74 65 6e 63 6f 64 69 6e 67 20 70   [testencoding p
6a30: 61 74 68 5d 0a 2b 20 20 20 20 73 65 74 20 70 61  ath].+    set pa
6a40: 74 68 20 5b 65 6e 63 6f 64 69 6e 67 20 64 69 72  th [encoding dir
6a50: 73 5d 0a 20 20 20 20 20 65 6e 63 6f 64 69 6e 67  s].     encoding
6a60: 20 73 79 73 74 65 6d 20 73 68 69 66 74 6a 69 73   system shiftjis
6a70: 09 09 3b 23 20 69 6e 63 72 20 72 65 66 20 63 6f  ..;# incr ref co
6a80: 75 6e 74 0a 2d 20 20 20 20 74 65 73 74 65 6e 63  unt.-    testenc
6a90: 6f 64 69 6e 67 20 70 61 74 68 20 5b 6c 69 73 74  oding path [list
6aa0: 20 5b 70 77 64 5d 5d 0a 2b 20 20 20 20 65 6e 63   [pwd]].+    enc
6ab0: 6f 64 69 6e 67 20 64 69 72 73 20 5b 6c 69 73 74  oding dirs [list
6ac0: 20 5b 70 77 64 5d 5d 0a 20 20 20 20 20 73 65 74   [pwd]].     set
6ad0: 20 78 20 5b 65 6e 63 6f 64 69 6e 67 20 63 6f 6e   x [encoding con
6ae0: 76 65 72 74 74 6f 20 73 68 69 66 74 6a 69 73 20  vertto shiftjis 
6af0: 5c 75 34 65 34 65 5d 09 3b 23 20 6f 6c 64 20 6f  \u4e4e].;# old o
6b00: 6e 65 20 66 6f 75 6e 64 20 20 20 0a 20 20 20 20  ne found   .    
6b10: 20 65 6e 63 6f 64 69 6e 67 20 73 79 73 74 65 6d   encoding system
6b20: 20 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 6c   identity.     l
6b30: 61 70 70 65 6e 64 20 78 20 5b 63 61 74 63 68 20  append x [catch 
6b40: 7b 65 6e 63 6f 64 69 6e 67 20 63 6f 6e 76 65 72  {encoding conver
6b50: 74 74 6f 20 73 68 69 66 74 6a 69 73 20 5c 75 34  tto shiftjis \u4
6b60: 65 34 65 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20  e4e} msg] $msg. 
6b70: 20 20 20 20 65 6e 63 6f 64 69 6e 67 20 73 79 73      encoding sys
6b80: 74 65 6d 20 69 64 65 6e 74 69 74 79 0a 2d 20 20  tem identity.-  
6b90: 20 20 74 65 73 74 65 6e 63 6f 64 69 6e 67 20 70    testencoding p
6ba0: 61 74 68 20 24 70 61 74 68 0a 2b 20 20 20 20 65  ath $path.+    e
6bb0: 6e 63 6f 64 69 6e 67 20 64 69 72 73 20 24 70 61  ncoding dirs $pa
6bc0: 74 68 0a 20 20 20 20 20 65 6e 63 6f 64 69 6e 67  th.     encoding
6bd0: 20 73 79 73 74 65 6d 20 24 73 79 73 74 65 6d 0a   system $system.
6be0: 20 20 20 20 20 73 65 74 20 78 0a 20 7d 20 22 5c       set x. } "\
6bf0: 75 30 30 38 63 5c 75 30 30 63 31 20 31 20 7b 75  u008c\u00c1 1 {u
6c00: 6e 6b 6e 6f 77 6e 20 65 6e 63 6f 64 69 6e 67 20  nknown encoding 
6c10: 5c 22 73 68 69 66 74 6a 69 73 5c 22 7d 22 0a 40  \"shiftjis\"}".@
6c20: 40 20 2d 38 38 2c 32 30 20 2b 38 38 2c 32 30 20  @ -88,20 +88,20 
6c30: 40 40 0a 20 20 20 20 20 6d 61 6b 65 44 69 72 65  @@.     makeDire
6c40: 63 74 6f 72 79 20 5b 66 69 6c 65 20 6a 6f 69 6e  ctory [file join
6c50: 20 74 6d 70 20 65 6e 63 6f 64 69 6e 67 5d 0a 20   tmp encoding]. 
6c60: 20 20 20 20 6d 61 6b 65 46 69 6c 65 20 7b 7d 20      makeFile {} 
6c70: 5b 66 69 6c 65 20 6a 6f 69 6e 20 74 6d 70 20 65  [file join tmp e
6c80: 6e 63 6f 64 69 6e 67 20 6a 75 6e 6b 2e 65 6e 63  ncoding junk.enc
6c90: 5d 0a 20 20 20 20 20 6d 61 6b 65 46 69 6c 65 20  ].     makeFile 
6ca0: 7b 7d 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 74 6d  {} [file join tm
6cb0: 70 20 65 6e 63 6f 64 69 6e 67 20 6a 75 6e 6b 32  p encoding junk2
6cc0: 2e 65 6e 63 5d 0a 2d 20 20 20 20 73 65 74 20 70  .enc].-    set p
6cd0: 61 74 68 20 5b 74 65 73 74 65 6e 63 6f 64 69 6e  ath [testencodin
6ce0: 67 20 70 61 74 68 5d 0a 2d 20 20 20 20 74 65 73  g path].-    tes
6cf0: 74 65 6e 63 6f 64 69 6e 67 20 70 61 74 68 20 7b  tencoding path {
6d00: 7d 0a 2b 20 20 20 20 73 65 74 20 70 61 74 68 20  }.+    set path 
6d10: 5b 65 6e 63 6f 64 69 6e 67 20 64 69 72 73 5d 0a  [encoding dirs].
6d20: 2b 20 20 20 20 65 6e 63 6f 64 69 6e 67 20 64 69  +    encoding di
6d30: 72 73 20 7b 7d 0a 20 20 20 20 20 63 61 74 63 68  rs {}.     catch
6d40: 20 7b 75 6e 73 65 74 20 65 6e 63 6f 64 69 6e 67   {unset encoding
6d50: 73 7d 0a 20 20 20 20 20 63 61 74 63 68 20 7b 75  s}.     catch {u
6d60: 6e 73 65 74 20 78 7d 0a 20 20 20 20 20 66 6f 72  nset x}.     for
6d70: 65 61 63 68 20 65 6e 63 6f 64 69 6e 67 20 5b 65  each encoding [e
6d80: 6e 63 6f 64 69 6e 67 20 6e 61 6d 65 73 5d 20 7b  ncoding names] {
6d90: 0a 20 09 73 65 74 20 65 6e 63 6f 64 69 6e 67 73  . .set encodings
6da0: 28 24 65 6e 63 6f 64 69 6e 67 29 20 31 0a 20 20  ($encoding) 1.  
6db0: 20 20 20 7d 0a 2d 20 20 20 20 74 65 73 74 65 6e     }.-    testen
6dc0: 63 6f 64 69 6e 67 20 70 61 74 68 20 5b 6c 69 73  coding path [lis
6dd0: 74 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 70 77  t [file join [pw
6de0: 64 5d 20 65 6e 63 6f 64 69 6e 67 5d 5d 0a 2b 20  d] encoding]].+ 
6df0: 20 20 20 65 6e 63 6f 64 69 6e 67 20 64 69 72 73     encoding dirs
6e00: 20 5b 6c 69 73 74 20 5b 66 69 6c 65 20 6a 6f 69   [list [file joi
6e10: 6e 20 5b 70 77 64 5d 20 65 6e 63 6f 64 69 6e 67  n [pwd] encoding
6e20: 5d 5d 0a 20 20 20 20 20 66 6f 72 65 61 63 68 20  ]].     foreach 
6e30: 65 6e 63 6f 64 69 6e 67 20 5b 65 6e 63 6f 64 69  encoding [encodi
6e40: 6e 67 20 6e 61 6d 65 73 5d 20 7b 0a 20 09 69 66  ng names] {. .if
6e50: 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20   {![info exists 
6e60: 65 6e 63 6f 64 69 6e 67 73 28 24 65 6e 63 6f 64  encodings($encod
6e70: 69 6e 67 29 5d 7d 20 7b 0a 20 09 20 20 20 20 6c  ing)]} {. .    l
6e80: 61 70 70 65 6e 64 20 78 20 24 65 6e 63 6f 64 69  append x $encodi
6e90: 6e 67 0a 20 09 7d 0a 20 20 20 20 20 7d 0a 2d 20  ng. .}.     }.- 
6ea0: 20 20 20 74 65 73 74 65 6e 63 6f 64 69 6e 67 20     testencoding 
6eb0: 70 61 74 68 20 24 70 61 74 68 0a 2b 20 20 20 20  path $path.+    
6ec0: 65 6e 63 6f 64 69 6e 67 20 64 69 72 73 20 24 70  encoding dirs $p
6ed0: 61 74 68 0a 20 20 20 20 20 63 64 20 5b 77 6f 72  ath.     cd [wor
6ee0: 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 5d 0a 20  kingDirectory]. 
6ef0: 20 20 20 20 72 65 6d 6f 76 65 46 69 6c 65 20 5b      removeFile [
6f00: 66 69 6c 65 20 6a 6f 69 6e 20 74 6d 70 20 65 6e  file join tmp en
6f10: 63 6f 64 69 6e 67 20 6a 75 6e 6b 32 2e 65 6e 63  coding junk2.enc
6f20: 5d 0a 20 20 20 20 20 72 65 6d 6f 76 65 46 69 6c  ].     removeFil
6f30: 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 74 6d 70  e [file join tmp
6f40: 20 65 6e 63 6f 64 69 6e 67 20 6a 75 6e 6b 2e 65   encoding junk.e
6f50: 6e 63 5d 0a 40 40 20 2d 32 30 39 2c 31 31 20 2b  nc].@@ -209,11 +
6f60: 32 30 39 2c 31 31 20 40 40 0a 20 0a 20 74 65 73  209,11 @@. . tes
6f70: 74 20 65 6e 63 6f 64 69 6e 67 2d 31 31 2e 31 20  t encoding-11.1 
6f80: 7b 4c 6f 61 64 45 6e 63 6f 64 69 6e 67 46 69 6c  {LoadEncodingFil
6f90: 65 3a 20 75 6e 6b 6e 6f 77 6e 20 65 6e 63 6f 64  e: unknown encod
6fa0: 69 6e 67 7d 20 7b 74 65 73 74 65 6e 63 6f 64 69  ing} {testencodi
6fb0: 6e 67 7d 20 7b 0a 20 20 20 20 20 73 65 74 20 73  ng} {.     set s
6fc0: 79 73 74 65 6d 20 5b 65 6e 63 6f 64 69 6e 67 20  ystem [encoding 
6fd0: 73 79 73 74 65 6d 5d 0a 2d 20 20 20 20 73 65 74  system].-    set
6fe0: 20 70 61 74 68 20 5b 74 65 73 74 65 6e 63 6f 64   path [testencod
6ff0: 69 6e 67 20 70 61 74 68 5d 0a 2b 20 20 20 20 73  ing path].+    s
7000: 65 74 20 70 61 74 68 20 5b 65 6e 63 6f 64 69 6e  et path [encodin
7010: 67 20 64 69 72 73 5d 0a 20 20 20 20 20 65 6e 63  g dirs].     enc
7020: 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 69 73 6f  oding system iso
7030: 38 38 35 39 2d 31 0a 2d 20 20 20 20 74 65 73 74  8859-1.-    test
7040: 65 6e 63 6f 64 69 6e 67 20 70 61 74 68 20 7b 7d  encoding path {}
7050: 0a 2b 20 20 20 20 65 6e 63 6f 64 69 6e 67 20 64  .+    encoding d
7060: 69 72 73 20 7b 7d 0a 20 20 20 20 20 73 65 74 20  irs {}.     set 
7070: 78 20 5b 6c 69 73 74 20 5b 63 61 74 63 68 20 7b  x [list [catch {
7080: 65 6e 63 6f 64 69 6e 67 20 63 6f 6e 76 65 72 74  encoding convert
7090: 74 6f 20 6a 69 73 30 32 30 38 20 5c 75 34 65 34  to jis0208 \u4e4
70a0: 65 7d 20 6d 73 67 5d 20 24 6d 73 67 5d 0a 2d 20  e} msg] $msg].- 
70b0: 20 20 20 74 65 73 74 65 6e 63 6f 64 69 6e 67 20     testencoding 
70c0: 70 61 74 68 20 24 70 61 74 68 0a 2b 20 20 20 20  path $path.+    
70d0: 65 6e 63 6f 64 69 6e 67 20 64 69 72 73 20 24 70  encoding dirs $p
70e0: 61 74 68 0a 20 20 20 20 20 65 6e 63 6f 64 69 6e  ath.     encodin
70f0: 67 20 73 79 73 74 65 6d 20 24 73 79 73 74 65 6d  g system $system
7100: 0a 20 20 20 20 20 6c 61 70 70 65 6e 64 20 78 20  .     lappend x 
7110: 5b 65 6e 63 6f 64 69 6e 67 20 63 6f 6e 76 65 72  [encoding conver
7120: 74 74 6f 20 6a 69 73 30 32 30 38 20 5c 75 34 65  tto jis0208 \u4e
7130: 34 65 5d 0a 20 7d 20 7b 31 20 7b 75 6e 6b 6e 6f  4e]. } {1 {unkno
7140: 77 6e 20 65 6e 63 6f 64 69 6e 67 20 22 6a 69 73  wn encoding "jis
7150: 30 32 30 38 22 7d 20 38 43 7d 0a 40 40 20 2d 32  0208"} 8C}.@@ -2
7160: 33 34 2c 31 30 20 2b 32 33 34 2c 31 30 20 40 40  34,10 +234,10 @@
7170: 0a 20 7d 20 5b 76 69 65 77 61 62 6c 65 20 22 5c  . } [viewable "\
7180: 78 31 62 5c 24 42 38 43 5c 78 31 62 28 42 22 5d  x1b\$B8C\x1b(B"]
7190: 0a 20 74 65 73 74 20 65 6e 63 6f 64 69 6e 67 2d  . test encoding-
71a0: 31 31 2e 36 20 7b 4c 6f 61 64 45 6e 63 6f 64 69  11.6 {LoadEncodi
71b0: 6e 67 46 69 6c 65 3a 20 69 6e 76 61 6c 69 64 20  ngFile: invalid 
71c0: 66 69 6c 65 7d 20 7b 74 65 73 74 65 6e 63 6f 64  file} {testencod
71d0: 69 6e 67 7d 20 7b 0a 20 20 20 20 20 73 65 74 20  ing} {.     set 
71e0: 73 79 73 74 65 6d 20 5b 65 6e 63 6f 64 69 6e 67  system [encoding
71f0: 20 73 79 73 74 65 6d 5d 0a 2d 20 20 20 20 73 65   system].-    se
7200: 74 20 70 61 74 68 20 5b 74 65 73 74 65 6e 63 6f  t path [testenco
7210: 64 69 6e 67 20 70 61 74 68 5d 0a 2b 20 20 20 20  ding path].+    
7220: 73 65 74 20 70 61 74 68 20 5b 65 6e 63 6f 64 69  set path [encodi
7230: 6e 67 20 64 69 72 73 5d 0a 20 20 20 20 20 65 6e  ng dirs].     en
7240: 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 69 64  coding system id
7250: 65 6e 74 69 74 79 0a 20 20 20 20 20 63 64 20 5b  entity.     cd [
7260: 74 65 6d 70 6f 72 61 72 79 44 69 72 65 63 74 6f  temporaryDirecto
7270: 72 79 5d 0a 2d 20 20 20 20 74 65 73 74 65 6e 63  ry].-    testenc
7280: 6f 64 69 6e 67 20 70 61 74 68 20 5b 66 69 6c 65  oding path [file
7290: 20 6a 6f 69 6e 20 74 6d 70 20 65 6e 63 6f 64 69   join tmp encodi
72a0: 6e 67 5d 0a 2b 20 20 20 20 65 6e 63 6f 64 69 6e  ng].+    encodin
72b0: 67 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69  g dirs [file joi
72c0: 6e 20 74 6d 70 20 65 6e 63 6f 64 69 6e 67 5d 0a  n tmp encoding].
72d0: 20 20 20 20 20 6d 61 6b 65 44 69 72 65 63 74 6f       makeDirecto
72e0: 72 79 20 74 6d 70 0a 20 20 20 20 20 6d 61 6b 65  ry tmp.     make
72f0: 44 69 72 65 63 74 6f 72 79 20 5b 66 69 6c 65 20  Directory [file 
7300: 6a 6f 69 6e 20 74 6d 70 20 65 6e 63 6f 64 69 6e  join tmp encodin
7310: 67 5d 0a 20 20 20 20 20 73 65 74 20 66 20 5b 6f  g].     set f [o
7320: 70 65 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 74  pen [file join t
7330: 6d 70 20 65 6e 63 6f 64 69 6e 67 20 73 70 6c 61  mp encoding spla
7340: 74 2e 65 6e 63 5d 20 77 5d 0a 40 40 20 2d 32 34  t.enc] w].@@ -24
7350: 39 2c 37 20 2b 32 34 39 2c 37 20 40 40 0a 20 20  9,7 +249,7 @@.  
7360: 20 20 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f     removeDirecto
7370: 72 79 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 74 6d  ry [file join tm
7380: 70 20 65 6e 63 6f 64 69 6e 67 5d 0a 20 20 20 20  p encoding].    
7390: 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79   removeDirectory
73a0: 20 74 6d 70 0a 20 20 20 20 20 63 64 20 5b 77 6f   tmp.     cd [wo
73b0: 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 5d 0a  rkingDirectory].
73c0: 2d 20 20 20 20 74 65 73 74 65 6e 63 6f 64 69 6e  -    testencodin
73d0: 67 20 70 61 74 68 20 24 70 61 74 68 0a 2b 20 20  g path $path.+  
73e0: 20 20 65 6e 63 6f 64 69 6e 67 20 64 69 72 73 20    encoding dirs 
73f0: 24 70 61 74 68 0a 20 20 20 20 20 65 6e 63 6f 64  $path.     encod
7400: 69 6e 67 20 73 79 73 74 65 6d 20 24 73 79 73 74  ing system $syst
7410: 65 6d 0a 20 20 20 20 20 73 65 74 20 78 0a 20 7d  em.     set x. }
7420: 20 7b 31 20 7b 69 6e 76 61 6c 69 64 20 65 6e 63   {1 {invalid enc
7430: 6f 64 69 6e 67 20 66 69 6c 65 20 22 73 70 6c 61  oding file "spla
7440: 74 22 7d 7d 0a 49 6e 64 65 78 3a 20 75 6e 69 78  t"}}.Index: unix
7450: 2f 74 63 6c 55 6e 69 78 49 6e 69 74 2e 63 0a 3d  /tclUnixInit.c.=
7460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7470: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7480: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7490: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
74a0: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76  ==.RCS file: /cv
74b0: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 75 6e  sroot/tcl/tcl/un
74c0: 69 78 2f 74 63 6c 55 6e 69 78 49 6e 69 74 2e 63  ix/tclUnixInit.c
74d0: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65  ,v.retrieving re
74e0: 76 69 73 69 6f 6e 20 31 2e 36 32 0a 64 69 66 66  vision 1.62.diff
74f0: 20 2d 75 20 2d 72 31 2e 36 32 20 74 63 6c 55 6e   -u -r1.62 tclUn
7500: 69 78 49 6e 69 74 2e 63 0a 2d 2d 2d 20 75 6e 69  ixInit.c.--- uni
7510: 78 2f 74 63 6c 55 6e 69 78 49 6e 69 74 2e 63 09  x/tclUnixInit.c.
7520: 32 35 20 4a 61 6e 20 32 30 30 36 20 32 32 3a 35  25 Jan 2006 22:5
7530: 37 3a 35 33 20 2d 30 30 30 30 09 31 2e 36 32 0a  7:53 -0000.1.62.
7540: 2b 2b 2b 20 75 6e 69 78 2f 74 63 6c 55 6e 69 78  +++ unix/tclUnix
7550: 49 6e 69 74 2e 63 09 38 20 46 65 62 20 32 30 30  Init.c.8 Feb 200
7560: 36 20 32 31 3a 32 35 3a 35 31 20 2d 30 30 30 30  6 21:25:51 -0000
7570: 0a 40 40 20 2d 35 37 31 2c 37 20 2b 35 37 31 2c  .@@ -571,7 +571,
7580: 37 20 40 40 0a 20 7b 0a 20 20 20 20 20 54 63 6c  7 @@. {.     Tcl
7590: 5f 44 53 74 72 69 6e 67 20 65 6e 63 6f 64 69 6e  _DString encodin
75a0: 67 4e 61 6d 65 3b 0a 20 20 20 20 20 54 63 6c 5f  gName;.     Tcl_
75b0: 53 65 74 53 79 73 74 65 6d 45 6e 63 6f 64 69 6e  SetSystemEncodin
75c0: 67 28 4e 55 4c 4c 2c 0a 2d 09 20 20 20 20 54 63  g(NULL,.-.    Tc
75d0: 6c 70 47 65 74 45 6e 63 6f 64 69 6e 67 4e 61 6d  lpGetEncodingNam
75e0: 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74  eFromEnvironment
75f0: 28 26 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 29  (&encodingName))
7600: 3b 0a 2b 09 20 20 20 20 54 63 6c 5f 47 65 74 45  ;.+.    Tcl_GetE
7610: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
7620: 6e 76 69 72 6f 6e 6d 65 6e 74 28 26 65 6e 63 6f  nvironment(&enco
7630: 64 69 6e 67 4e 61 6d 65 29 29 3b 0a 20 20 20 20  dingName));.    
7640: 20 54 63 6c 5f 44 53 74 72 69 6e 67 46 72 65 65   Tcl_DStringFree
7650: 28 26 65 6e 63 6f 64 69 6e 67 4e 61 6d 65 29 3b  (&encodingName);
7660: 0a 20 7d 0a 20 0a 40 40 20 2d 36 30 35 2c 37 20  . }. .@@ -605,7 
7670: 2b 36 30 35 2c 37 20 40 40 0a 20 7d 0a 20 0a 20  +605,7 @@. }. . 
7680: 43 4f 4e 53 54 20 63 68 61 72 20 2a 0a 2d 54 63  CONST char *.-Tc
7690: 6c 70 47 65 74 45 6e 63 6f 64 69 6e 67 4e 61 6d  lpGetEncodingNam
76a0: 65 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74  eFromEnvironment
76b0: 28 0a 2b 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69  (.+Tcl_GetEncodi
76c0: 6e 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f  ngNameFromEnviro
76d0: 6e 6d 65 6e 74 28 0a 20 20 20 20 20 54 63 6c 5f  nment(.     Tcl_
76e0: 44 53 74 72 69 6e 67 20 2a 62 75 66 50 74 72 29  DString *bufPtr)
76f0: 0a 20 7b 0a 20 20 20 20 20 43 4f 4e 53 54 20 63  . {.     CONST c
7700: 68 61 72 20 2a 65 6e 63 6f 64 69 6e 67 3b 0a 49  har *encoding;.I
7710: 6e 64 65 78 3a 20 77 69 6e 2f 74 63 6c 57 69 6e  ndex: win/tclWin
7720: 49 6e 69 74 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d  Init.c.=========
7730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7740: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7750: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7760: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66  ==========.RCS f
7770: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63  ile: /cvsroot/tc
7780: 6c 2f 74 63 6c 2f 77 69 6e 2f 74 63 6c 57 69 6e  l/tcl/win/tclWin
7790: 49 6e 69 74 2e 63 2c 76 0a 72 65 74 72 69 65 76  Init.c,v.retriev
77a0: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 36  ing revision 1.6
77b0: 38 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 36 38  8.diff -u -r1.68
77c0: 20 74 63 6c 57 69 6e 49 6e 69 74 2e 63 0a 2d 2d   tclWinInit.c.--
77d0: 2d 20 77 69 6e 2f 74 63 6c 57 69 6e 49 6e 69 74  - win/tclWinInit
77e0: 2e 63 09 34 20 4e 6f 76 20 32 30 30 35 20 30 30  .c.4 Nov 2005 00
77f0: 3a 30 36 3a 35 30 20 2d 30 30 30 30 09 31 2e 36  :06:50 -0000.1.6
7800: 38 0a 2b 2b 2b 20 77 69 6e 2f 74 63 6c 57 69 6e  8.+++ win/tclWin
7810: 49 6e 69 74 2e 63 09 38 20 46 65 62 20 32 30 30  Init.c.8 Feb 200
7820: 36 20 32 31 3a 32 35 3a 35 32 20 2d 30 30 30 30  6 21:25:52 -0000
7830: 0a 40 40 20 2d 34 35 30 2c 37 20 2b 34 35 30 2c  .@@ -450,7 +450,
7840: 37 20 40 40 0a 20 0a 20 20 20 20 20 54 63 6c 70  7 @@. .     Tclp
7850: 53 65 74 49 6e 74 65 72 66 61 63 65 73 28 29 3b  SetInterfaces();
7860: 0a 20 20 20 20 20 54 63 6c 5f 53 65 74 53 79 73  .     Tcl_SetSys
7870: 74 65 6d 45 6e 63 6f 64 69 6e 67 28 4e 55 4c 4c  temEncoding(NULL
7880: 2c 0a 2d 09 20 20 20 20 54 63 6c 70 47 65 74 45  ,.-.    TclpGetE
7890: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
78a0: 6e 76 69 72 6f 6e 6d 65 6e 74 28 26 65 6e 63 6f  nvironment(&enco
78b0: 64 69 6e 67 4e 61 6d 65 29 29 3b 0a 2b 09 20 20  dingName));.+.  
78c0: 20 20 54 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e    Tcl_GetEncodin
78d0: 67 4e 61 6d 65 46 72 6f 6d 45 6e 76 69 72 6f 6e  gNameFromEnviron
78e0: 6d 65 6e 74 28 26 65 6e 63 6f 64 69 6e 67 4e 61  ment(&encodingNa
78f0: 6d 65 29 29 3b 0a 20 20 20 20 20 54 63 6c 5f 44  me));.     Tcl_D
7900: 53 74 72 69 6e 67 46 72 65 65 28 26 65 6e 63 6f  StringFree(&enco
7910: 64 69 6e 67 4e 61 6d 65 29 3b 0a 20 7d 0a 20 0a  dingName);. }. .
7920: 40 40 20 2d 34 36 36 2c 37 20 2b 34 36 36 2c 37  @@ -466,7 +466,7
7930: 20 40 40 0a 20 7d 0a 20 0a 20 43 4f 4e 53 54 20   @@. }. . CONST 
7940: 63 68 61 72 20 2a 0a 2d 54 63 6c 70 47 65 74 45  char *.-TclpGetE
7950: 6e 63 6f 64 69 6e 67 4e 61 6d 65 46 72 6f 6d 45  ncodingNameFromE
7960: 6e 76 69 72 6f 6e 6d 65 6e 74 28 0a 2b 54 63 6c  nvironment(.+Tcl
7970: 5f 47 65 74 45 6e 63 6f 64 69 6e 67 4e 61 6d 65  _GetEncodingName
7980: 46 72 6f 6d 45 6e 76 69 72 6f 6e 6d 65 6e 74 28  FromEnvironment(
7990: 0a 20 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e  .     Tcl_DStrin
79a0: 67 20 2a 62 75 66 50 74 72 29 0a 20 7b 0a 20 20  g *bufPtr). {.  
79b0: 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 49 6e     Tcl_DStringIn
79c0: 69 74 28 62 75 66 50 74 72 29 3b 0a              it(bufPtr);.