Tcl Source Code

Hex Artifact Content
Login

Artifact c42996f531f16b6d549fab7f0aa74d774ce3d776:

Attachment "tip118.patch" to ticket [626360ffff] added by das 2003-05-15 02:20:23.
0000: 00 0c 74 69 70 31 31 38 2e 70 61 74 63 68 00 00  ..tip118.patch..
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0050: 00 00 00 00 00 c3 a9 c2 a1 00 00 00 00 c2 ba c3  .....é¡....º�
0060: a8 c3 8d c2 8e c2 ba c3 a8 c3 92 c2 87 00 00 00  �͎ºè҇...
0070: 6d 42 49 4e 00 00 00 00 00 00 00 00 00 00 00 00  mBIN............
0080: 00 00 00 00 c2 82 c2 81 c3 ab 41 00 00 49 6e 64  ....‚ëA..Ind
0090: 65 78 3a 20 43 68 61 6e 67 65 4c 6f 67 0a 3d 3d  ex: ChangeLog.==
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00e0: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73  =.RCS file: /cvs
00f0: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 43 68 61  root/tcl/tcl/Cha
0100: 6e 67 65 4c 6f 67 2c 76 0a 72 65 74 72 69 65 76  ngeLog,v.retriev
0110: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 31  ing revision 1.1
0120: 35 37 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e  573.diff -u -r1.
0130: 31 35 37 33 20 43 68 61 6e 67 65 4c 6f 67 0a 2d  1573 ChangeLog.-
0140: 2d 2d 20 43 68 61 6e 67 65 4c 6f 67 09 31 34 20  -- ChangeLog.14 
0150: 4d 61 79 20 32 30 30 33 20 30 36 3a 31 39 3a 35  May 2003 06:19:5
0160: 31 20 2d 30 30 30 30 09 31 2e 31 35 37 33 0a 2b  1 -0000.1.1573.+
0170: 2b 2b 20 43 68 61 6e 67 65 4c 6f 67 09 31 34 20  ++ ChangeLog.14 
0180: 4d 61 79 20 32 30 30 33 20 31 39 3a 31 33 3a 33  May 2003 19:13:3
0190: 31 20 2d 30 30 30 30 0a 40 40 20 2d 31 2c 33 20  1 -0000.@@ -1,3 
01a0: 2b 31 2c 34 37 20 40 40 0a 2b 32 30 30 33 2d 30  +1,47 @@.+2003-0
01b0: 35 2d 31 35 20 20 44 61 6e 69 65 6c 20 53 74 65  5-15  Daniel Ste
01c0: 66 66 65 6e 20 20 3c 64 61 73 40 75 73 65 72 73  ffen  <das@users
01d0: 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74  .sourceforge.net
01e0: 3e 0a 2b 0a 2b 09 49 6d 70 6c 65 6d 65 6e 74 61  >.+.+.Implementa
01f0: 74 69 6f 6e 20 6f 66 20 54 49 50 20 31 31 38 3a  tion of TIP 118:
0200: 0a 2b 09 0a 2b 09 2a 20 67 65 6e 65 72 69 63 2f  .+..+.* generic/
0210: 74 63 6c 46 43 6d 64 2e 63 20 28 54 63 6c 46 69  tclFCmd.c (TclFi
0220: 6c 65 41 74 74 72 73 43 6d 64 29 3a 20 72 65 74  leAttrsCmd): ret
0230: 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20  urn the list of 
0240: 61 74 74 72 69 62 75 74 65 73 0a 2b 09 74 68 61  attributes.+.tha
0250: 74 20 63 61 6e 20 62 65 20 72 65 74 72 69 65 76  t can be retriev
0260: 65 64 20 77 69 74 68 6f 75 74 20 65 72 72 6f 72  ed without error
0270: 20 66 6f 72 20 61 20 67 69 76 65 6e 20 66 69 6c   for a given fil
0280: 65 2c 20 69 6e 73 74 65 61 64 20 6f 66 0a 2b 09  e, instead of.+.
0290: 61 62 6f 72 74 69 6e 67 20 74 68 65 20 77 68 6f  aborting the who
02a0: 6c 65 20 63 6f 6d 6d 61 6e 64 20 77 68 65 6e 20  le command when 
02b0: 61 6e 79 20 65 72 72 6f 72 20 6f 63 63 75 72 73  any error occurs
02c0: 2e 0a 2b 0a 2b 09 2a 20 75 6e 69 78 2f 74 63 6c  ..+.+.* unix/tcl
02d0: 55 6e 69 78 46 43 6d 64 2e 63 3a 20 61 64 64 65  UnixFCmd.c: adde
02e0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e 65  d support for ne
02f0: 77 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65  w file attribute
0300: 73 20 61 6e 64 20 66 6f 72 0a 2b 09 63 6f 70 79  s and for.+.copy
0310: 69 6e 67 20 4d 61 63 20 4f 53 20 58 20 66 69 6c  ing Mac OS X fil
0320: 65 20 61 74 74 72 69 62 75 74 65 73 20 26 20 72  e attributes & r
0330: 65 73 6f 75 72 63 65 20 66 6f 72 6b 20 64 75 72  esource fork dur
0340: 69 6e 67 20 5b 66 69 6c 65 20 63 6f 70 79 5d 2e  ing [file copy].
0350: 0a 2b 0a 2b 09 2a 20 67 65 6e 65 72 69 63 2f 74  .+.+.* generic/t
0360: 63 6c 49 6e 74 2e 64 65 63 6c 73 3a 20 61 64 64  clInt.decls: add
0370: 65 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20  ed declarations 
0380: 6f 66 20 6e 65 77 20 65 78 74 65 72 6e 61 6c 20  of new external 
0390: 63 6f 6d 6d 61 6e 64 73 0a 2b 09 6e 65 65 64 65  commands.+.neede
03a0: 64 20 62 79 20 6e 65 77 20 66 69 6c 65 20 61 74  d by new file at
03b0: 74 72 69 62 75 74 65 73 20 73 75 70 70 6f 72 74  tributes support
03c0: 20 69 6e 20 74 63 6c 55 6e 69 78 46 43 6d 64 2e   in tclUnixFCmd.
03d0: 63 2e 0a 2b 0a 2b 09 2a 20 6d 61 63 6f 73 78 2f  c..+.+.* macosx/
03e0: 74 63 6c 4d 61 63 4f 53 58 46 43 6d 64 2e 63 20  tclMacOSXFCmd.c 
03f0: 28 6e 65 77 29 3a 20 4d 61 63 20 4f 53 20 58 20  (new): Mac OS X 
0400: 73 70 65 63 69 66 69 63 20 69 6d 70 6c 65 6d 65  specific impleme
0410: 6e 74 61 74 69 6f 6e 20 6f 66 0a 2b 09 6e 65 77  ntation of.+.new
0420: 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73   file attributes
0430: 20 61 6e 64 20 6f 66 20 61 74 74 72 69 62 75 74   and of attribut
0440: 65 20 26 20 72 65 73 6f 75 72 63 65 20 66 6f 72  e & resource for
0450: 6b 20 63 6f 70 79 69 6e 67 2e 0a 2b 0a 2b 09 2a  k copying..+.+.*
0460: 20 6d 61 63 2f 74 63 6c 4d 61 63 46 43 6d 64 2e   mac/tclMacFCmd.
0470: 63 3a 20 61 64 64 65 64 20 69 6d 70 6c 65 6d 65  c: added impleme
0480: 6e 74 61 74 69 6f 6e 20 6f 66 20 2d 72 73 72 63  ntation of -rsrc
0490: 6c 65 6e 67 74 68 20 61 74 74 72 69 62 75 74 65  length attribute
04a0: 20 26 0a 2b 09 66 69 78 65 73 20 74 6f 20 6f 74   &.+.fixes to ot
04b0: 68 65 72 20 61 74 74 72 69 62 75 74 65 73 20 66  her attributes f
04c0: 6f 72 20 63 6f 6e 73 69 73 74 65 6e 63 79 20 77  or consistency w
04d0: 69 74 68 20 4f 53 58 20 69 6d 70 6c 65 6d 65 6e  ith OSX implemen
04e0: 74 61 74 69 6f 6e 2e 0a 2b 0a 2b 09 2a 20 6d 61  tation..+.+.* ma
04f0: 63 2f 74 63 6c 4d 61 63 52 65 73 6f 75 72 63 65  c/tclMacResource
0500: 2e 63 3a 20 66 69 78 65 73 20 74 6f 20 4f 53 54  .c: fixes to OST
0510: 79 70 65 20 68 61 6e 64 6c 69 6e 67 2e 0a 2b 0a  ype handling..+.
0520: 2b 09 2a 20 64 6f 63 2f 66 69 6c 65 2e 6e 3a 20  +.* doc/file.n: 
0530: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66  documentation of
0540: 20 5b 66 69 6c 65 20 61 74 74 72 69 62 75 74 65   [file attribute
0550: 73 5d 20 63 68 61 6e 67 65 73 2e 0a 2b 0a 2b 09  s] changes..+.+.
0560: 2a 20 75 6e 69 78 2f 63 6f 6e 66 69 67 75 72 65  * unix/configure
0570: 2e 69 6e 3a 20 63 68 65 63 6b 20 66 6f 72 20 41  .in: check for A
0580: 50 49 73 20 6e 65 65 64 65 64 20 62 79 20 6e 65  PIs needed by ne
0590: 77 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65  w file attribute
05a0: 73 2e 0a 2b 0a 2b 09 2a 20 75 6e 69 78 2f 4d 61  s..+.+.* unix/Ma
05b0: 6b 65 66 69 6c 65 2e 69 6e 3a 0a 2b 09 2a 20 75  kefile.in:.+.* u
05c0: 6e 69 78 2f 74 63 6c 2e 6d 34 3a 20 61 64 64 65  nix/tcl.m4: adde
05d0: 64 20 6e 65 77 20 70 6c 61 74 66 6f 72 6d 20 73  d new platform s
05e0: 70 65 63 69 66 63 20 74 63 6c 4d 61 63 4f 53 58  pecifc tclMacOSX
05f0: 46 43 6d 64 2e 63 20 73 6f 75 72 63 65 2e 0a 2b  FCmd.c source..+
0600: 0a 2b 09 2a 20 75 6e 69 78 2f 63 6f 6e 66 69 67  .+.* unix/config
0610: 75 72 65 3a 0a 2b 09 2a 20 67 65 6e 65 72 69 63  ure:.+.* generic
0620: 2f 74 63 6c 53 74 75 62 49 6e 69 74 2e 63 3a 0a  /tclStubInit.c:.
0630: 2b 09 2a 20 67 65 6e 65 72 69 63 2f 74 63 6c 49  +.* generic/tclI
0640: 6e 74 50 6c 61 74 44 65 63 6c 73 2e 68 3a 20 72  ntPlatDecls.h: r
0650: 65 67 65 6e 2e 0a 2b 0a 2b 09 2a 20 74 6f 6f 6c  egen..+.+.* tool
0660: 73 2f 67 65 6e 53 74 75 62 73 2e 74 63 6c 3a 20  s/genStubs.tcl: 
0670: 66 69 78 65 73 20 74 6f 20 63 6f 6d 70 6c 65 74  fixes to complet
0680: 65 6c 79 20 62 72 6f 6b 65 6e 20 63 6f 64 65 20  ely broken code 
0690: 74 72 79 69 6e 67 20 74 6f 0a 2b 09 70 72 65 76  trying to.+.prev
06a0: 65 6e 74 20 6f 76 65 72 6c 61 70 20 6f 66 20 22  ent overlap of "
06b0: 61 71 75 61 22 2c 20 22 6d 61 63 6f 73 78 22 2c  aqua", "macosx",
06c0: 20 22 78 31 31 22 20 61 6e 64 20 22 75 6e 69 78   "x11" and "unix
06d0: 22 20 73 74 75 62 20 65 6e 74 72 69 65 73 2e 0a  " stub entries..
06e0: 2b 0a 2b 09 2a 20 74 65 73 74 73 2f 75 6e 69 78  +.+.* tests/unix
06f0: 46 43 6d 64 2e 74 65 73 74 3a 20 61 64 64 65 64  FCmd.test: added
0700: 20 74 65 73 74 73 20 6f 66 20 2d 72 65 61 64 6f   tests of -reado
0710: 6e 6c 79 20 61 74 74 72 69 62 75 74 65 2e 0a 2b  nly attribute..+
0720: 09 0a 2b 09 2a 20 74 65 73 74 73 2f 6d 61 63 4f  ..+.* tests/macO
0730: 53 58 46 43 6d 64 2e 74 65 73 74 20 28 6e 65 77  SXFCmd.test (new
0740: 29 3a 20 74 65 73 74 73 20 6f 66 20 6d 61 63 6f  ): tests of maco
0750: 73 78 20 66 69 6c 65 20 61 74 74 72 69 62 75 74  sx file attribut
0760: 65 73 20 61 6e 64 0a 2b 09 6f 66 20 70 72 65 73  es and.+.of pres
0770: 65 72 76 61 74 69 6f 6e 20 6f 66 20 61 74 74 72  ervation of attr
0780: 69 62 75 74 65 73 20 26 20 72 65 73 6f 75 72 63  ibutes & resourc
0790: 65 20 66 6f 72 6b 20 64 75 72 69 6e 67 20 5b 66  e fork during [f
07a0: 69 6c 65 20 63 6f 70 79 5d 2e 0a 2b 09 0a 2b 09  ile copy]..+..+.
07b0: 2a 20 74 65 73 74 73 2f 6d 61 63 46 43 6d 64 2e  * tests/macFCmd.
07c0: 74 65 73 74 3a 20 72 65 73 74 6f 72 65 20 2d 72  test: restore -r
07d0: 65 61 64 6f 6e 6c 79 20 61 74 74 72 69 62 75 74  eadonly attribut
07e0: 65 20 6f 66 20 74 65 73 74 20 64 69 72 2c 20 61  e of test dir, a
07f0: 73 0a 2b 09 6f 74 68 65 72 77 69 73 65 20 69 74  s.+.otherwise it
0800: 73 20 72 65 6d 6f 76 61 6c 20 63 61 6e 20 66 61  s removal can fa
0810: 69 6c 20 6f 6e 20 75 6e 69 63 65 73 20 73 75 70  il on unices sup
0820: 70 6f 72 74 69 6e 67 20 2d 72 65 61 64 6f 6e 6c  porting -readonl
0830: 79 2e 0a 2b 0a 20 32 30 30 33 2d 30 35 2d 31 33  y..+. 2003-05-13
0840: 20 20 44 61 76 69 64 20 47 72 61 76 65 72 65 61    David Graverea
0850: 75 78 20 3c 64 61 76 79 67 72 76 79 40 70 6f 62  ux <davygrvy@pob
0860: 6f 78 2e 63 6f 6d 3e 0a 20 0a 20 09 2a 20 67 65  ox.com>. . .* ge
0870: 6e 65 72 69 63 2f 74 63 6c 45 6e 76 2e 63 3a 20  neric/tclEnv.c: 
0880: 41 6e 6f 74 68 65 72 20 70 75 74 65 6e 76 28 29  Another putenv()
0890: 20 63 6f 70 79 20 62 65 68 61 76 69 6f 72 20 70   copy behavior p
08a0: 72 6f 62 6c 65 6d 0a 49 6e 64 65 78 3a 20 64 6f  roblem.Index: do
08b0: 63 2f 66 69 6c 65 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d  c/file.n.=======
08c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
08d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
08e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
08f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53  ============.RCS
0900: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f   file: /cvsroot/
0910: 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 66 69 6c 65  tcl/tcl/doc/file
0920: 2e 6e 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20  .n,v.retrieving 
0930: 72 65 76 69 73 69 6f 6e 20 31 2e 32 33 0a 64 69  revision 1.23.di
0940: 66 66 20 2d 75 20 2d 72 31 2e 32 33 20 66 69 6c  ff -u -r1.23 fil
0950: 65 2e 6e 0a 2d 2d 2d 20 64 6f 63 2f 66 69 6c 65  e.n.--- doc/file
0960: 2e 6e 09 32 38 20 46 65 62 20 32 30 30 33 20 31  .n.28 Feb 2003 1
0970: 32 3a 31 31 3a 34 39 20 2d 30 30 30 30 09 31 2e  2:11:49 -0000.1.
0980: 32 33 0a 2b 2b 2b 20 64 6f 63 2f 66 69 6c 65 2e  23.+++ doc/file.
0990: 6e 09 31 34 20 4d 61 79 20 32 30 30 33 20 31 39  n.14 May 2003 19
09a0: 3a 31 33 3a 33 32 20 2d 30 30 30 30 0a 40 40 20  :13:32 -0000.@@ 
09b0: 2d 35 39 2c 36 20 2b 35 39 2c 39 20 40 40 0a 20  -59,6 +59,9 @@. 
09c0: 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 6f 72 20  permissions for 
09d0: 67 72 6f 75 70 20 61 6e 64 20 6f 74 68 65 72 29  group and other)
09e0: 2e 20 20 41 20 73 69 6d 70 6c 69 66 69 65 64 20  .  A simplified 
09f0: 5c 66 42 6c 73 5c 66 52 20 73 74 79 6c 65 20 73  \fBls\fR style s
0a00: 74 72 69 6e 67 2c 0a 20 6f 66 20 74 68 65 20 66  tring,. of the f
0a10: 6f 72 6d 20 72 77 78 72 77 78 72 77 78 20 28 6d  orm rwxrwxrwx (m
0a20: 75 73 74 20 62 65 20 39 20 63 68 61 72 61 63 74  ust be 9 charact
0a30: 65 72 73 29 2c 20 69 73 20 61 6c 73 6f 20 73 75  ers), is also su
0a40: 70 70 6f 72 74 65 64 0a 20 28 65 78 61 6d 70 6c  pported. (exampl
0a50: 65 3a 20 5c 66 42 72 77 78 72 5c 2d 78 72 5c 2d  e: \fBrwxr\-xr\-
0a60: 74 5c 66 52 20 69 73 20 65 71 75 69 76 61 6c 65  t\fR is equivale
0a70: 6e 74 20 74 6f 20 30 31 37 35 35 29 2e 0a 2b 4f  nt to 01755)..+O
0a80: 6e 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 55 6e  n versions of Un
0a90: 69 78 20 73 75 70 70 6f 72 74 69 6e 67 20 66 69  ix supporting fi
0aa0: 6c 65 20 66 6c 61 67 73 2c 20 5c 66 42 2d 72 65  le flags, \fB-re
0ab0: 61 64 6f 6e 6c 79 5c 66 52 20 67 69 76 65 73 20  adonly\fR gives 
0ac0: 74 68 65 0a 2b 76 61 6c 75 65 20 6f 72 20 73 65  the.+value or se
0ad0: 74 73 20 6f 72 20 63 6c 65 61 72 73 20 74 68 65  ts or clears the
0ae0: 20 72 65 61 64 6f 6e 6c 79 20 61 74 74 72 69 62   readonly attrib
0af0: 75 74 65 20 6f 66 20 74 68 65 20 66 69 6c 65 2c  ute of the file,
0b00: 0a 2b 69 2e 65 2e 20 74 68 65 20 75 73 65 72 20  .+i.e. the user 
0b10: 69 6d 6d 75 74 61 62 6c 65 20 66 6c 61 67 20 5c  immutable flag \
0b20: 66 42 75 63 68 67 5c 66 52 20 74 6f 20 63 68 66  fBuchg\fR to chf
0b30: 6c 61 67 73 28 31 29 2e 0a 20 2e 50 50 0a 20 4f  lags(1).. .PP. O
0b40: 6e 20 57 69 6e 64 6f 77 73 2c 20 5c 66 42 2d 61  n Windows, \fB-a
0b50: 72 63 68 69 76 65 5c 66 52 20 67 69 76 65 73 20  rchive\fR gives 
0b60: 74 68 65 20 76 61 6c 75 65 20 6f 72 20 73 65 74  the value or set
0b70: 73 20 6f 72 20 63 6c 65 61 72 73 20 74 68 65 0a  s or clears the.
0b80: 20 61 72 63 68 69 76 65 20 61 74 74 72 69 62 75   archive attribu
0b90: 74 65 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 20  te of the file. 
0ba0: 5c 66 42 2d 68 69 64 64 65 6e 5c 66 52 20 67 69  \fB-hidden\fR gi
0bb0: 76 65 73 20 74 68 65 20 76 61 6c 75 65 20 6f 72  ves the value or
0bc0: 20 73 65 74 73 0a 40 40 20 2d 37 30 2c 31 32 20   sets.@@ -70,12 
0bd0: 2b 37 33 2c 31 35 20 40 40 0a 20 6e 61 6d 65 2e  +73,15 @@. name.
0be0: 20 54 68 69 73 20 61 74 74 72 69 62 75 74 65 20   This attribute 
0bf0: 63 61 6e 6e 6f 74 20 62 65 20 73 65 74 2e 20 5c  cannot be set. \
0c00: 66 42 2d 73 79 73 74 65 6d 5c 66 52 20 67 69 76  fB-system\fR giv
0c10: 65 73 20 6f 72 20 73 65 74 73 20 6f 72 0a 20 63  es or sets or. c
0c20: 6c 65 61 72 73 20 74 68 65 20 76 61 6c 75 65 20  lears the value 
0c30: 6f 66 20 74 68 65 20 73 79 73 74 65 6d 20 61 74  of the system at
0c40: 74 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 66  tribute of the f
0c50: 69 6c 65 2e 0a 20 2e 50 50 0a 2d 4f 6e 20 4d 61  ile.. .PP.-On Ma
0c60: 63 69 6e 74 6f 73 68 2c 20 5c 66 42 2d 63 72 65  cintosh, \fB-cre
0c70: 61 74 6f 72 5c 66 52 20 67 69 76 65 73 20 6f 72  ator\fR gives or
0c80: 20 73 65 74 73 20 74 68 65 20 46 69 6e 64 65 72   sets the Finder
0c90: 20 63 72 65 61 74 6f 72 20 74 79 70 65 20 6f 66   creator type of
0ca0: 0a 2d 74 68 65 20 66 69 6c 65 2e 20 5c 66 42 2d  .-the file. \fB-
0cb0: 68 69 64 64 65 6e 5c 66 52 20 67 69 76 65 73 20  hidden\fR gives 
0cc0: 6f 72 20 73 65 74 73 20 6f 72 20 63 6c 65 61 72  or sets or clear
0cd0: 73 20 74 68 65 20 68 69 64 64 65 6e 20 61 74 74  s the hidden att
0ce0: 72 69 62 75 74 65 0a 2d 6f 66 20 74 68 65 20 66  ribute.-of the f
0cf0: 69 6c 65 2e 20 5c 66 42 2d 72 65 61 64 6f 6e 6c  ile. \fB-readonl
0d00: 79 5c 66 52 20 67 69 76 65 73 20 6f 72 20 73 65  y\fR gives or se
0d10: 74 73 20 6f 72 20 63 6c 65 61 72 73 20 74 68 65  ts or clears the
0d20: 20 72 65 61 64 6f 6e 6c 79 0a 2d 61 74 74 72 69   readonly.-attri
0d30: 62 75 74 65 20 6f 66 20 74 68 65 20 66 69 6c 65  bute of the file
0d40: 2e 20 4e 6f 74 65 20 74 68 61 74 20 64 69 72 65  . Note that dire
0d50: 63 74 6f 72 69 65 73 20 63 61 6e 20 6f 6e 6c 79  ctories can only
0d60: 20 62 65 20 6c 6f 63 6b 65 64 20 69 66 0a 2d 46   be locked if.-F
0d70: 69 6c 65 20 53 68 61 72 69 6e 67 20 69 73 20 74  ile Sharing is t
0d80: 75 72 6e 65 64 20 6f 6e 2e 20 5c 66 42 2d 74 79  urned on. \fB-ty
0d90: 70 65 5c 66 52 20 67 69 76 65 73 20 6f 72 20 73  pe\fR gives or s
0da0: 65 74 73 20 74 68 65 20 46 69 6e 64 65 72 20 66  ets the Finder f
0db0: 69 6c 65 0a 2d 74 79 70 65 20 66 6f 72 20 74 68  ile.-type for th
0dc0: 65 20 66 69 6c 65 2e 0a 2b 4f 6e 20 4d 61 63 20  e file..+On Mac 
0dd0: 4f 53 20 39 2c 20 4d 61 63 20 4f 53 20 58 20 61  OS 9, Mac OS X a
0de0: 6e 64 20 44 61 72 77 69 6e 2c 20 5c 66 42 2d 63  nd Darwin, \fB-c
0df0: 72 65 61 74 6f 72 5c 66 52 20 67 69 76 65 73 20  reator\fR gives 
0e00: 6f 72 20 73 65 74 73 20 74 68 65 0a 2b 46 69 6e  or sets the.+Fin
0e10: 64 65 72 20 63 72 65 61 74 6f 72 20 74 79 70 65  der creator type
0e20: 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 20 5c 66   of the file. \f
0e30: 42 2d 68 69 64 64 65 6e 5c 66 52 20 67 69 76 65  B-hidden\fR give
0e40: 73 20 6f 72 20 73 65 74 73 20 6f 72 20 63 6c 65  s or sets or cle
0e50: 61 72 73 0a 2b 74 68 65 20 68 69 64 64 65 6e 20  ars.+the hidden 
0e60: 61 74 74 72 69 62 75 74 65 20 6f 66 20 74 68 65  attribute of the
0e70: 20 66 69 6c 65 2e 20 5c 66 42 2d 72 65 61 64 6f   file. \fB-reado
0e80: 6e 6c 79 5c 66 52 20 67 69 76 65 73 20 6f 72 20  nly\fR gives or 
0e90: 73 65 74 73 20 6f 72 0a 2b 63 6c 65 61 72 73 20  sets or.+clears 
0ea0: 74 68 65 20 72 65 61 64 6f 6e 6c 79 20 61 74 74  the readonly att
0eb0: 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 66 69  ribute of the fi
0ec0: 6c 65 2e 20 4e 6f 74 65 20 74 68 61 74 20 6f 6e  le. Note that on
0ed0: 20 4d 61 63 20 4f 53 20 39 2c 0a 2b 64 69 72 65   Mac OS 9,.+dire
0ee0: 63 74 6f 72 69 65 73 20 63 61 6e 20 6f 6e 6c 79  ctories can only
0ef0: 20 62 65 20 6c 6f 63 6b 65 64 20 69 66 20 46 69   be locked if Fi
0f00: 6c 65 20 53 68 61 72 69 6e 67 20 69 73 20 74 75  le Sharing is tu
0f10: 72 6e 65 64 20 6f 6e 2e 20 5c 66 42 2d 74 79 70  rned on. \fB-typ
0f20: 65 5c 66 52 0a 2b 67 69 76 65 73 20 6f 72 20 73  e\fR.+gives or s
0f30: 65 74 73 20 74 68 65 20 46 69 6e 64 65 72 20 66  ets the Finder f
0f40: 69 6c 65 20 74 79 70 65 20 66 6f 72 20 74 68 65  ile type for the
0f50: 20 66 69 6c 65 2e 20 5c 66 42 2d 72 73 72 63 6c   file. \fB-rsrcl
0f60: 65 6e 67 74 68 5c 66 52 20 67 69 76 65 73 0a 2b  ength\fR gives.+
0f70: 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68  the length of th
0f80: 65 20 72 65 73 6f 75 72 63 65 20 66 6f 72 6b 20  e resource fork 
0f90: 6f 66 20 74 68 65 20 66 69 6c 65 2c 20 74 68 69  of the file, thi
0fa0: 73 20 61 74 74 72 69 62 75 74 65 20 63 61 6e 20  s attribute can 
0fb0: 6f 6e 6c 79 20 62 65 0a 2b 73 65 74 20 74 6f 20  only be.+set to 
0fc0: 74 68 65 20 76 61 6c 75 65 20 30 2c 20 77 68 69  the value 0, whi
0fd0: 63 68 20 72 65 73 75 6c 74 73 20 69 6e 20 74 68  ch results in th
0fe0: 65 20 72 65 73 6f 75 72 63 65 20 66 6f 72 6b 20  e resource fork 
0ff0: 62 65 69 6e 67 20 73 74 72 69 70 70 65 64 0a 2b  being stripped.+
1000: 6f 66 66 20 74 68 65 20 66 69 6c 65 2e 0a 20 2e  off the file.. .
1010: 52 45 0a 20 2e 56 53 0a 20 2e 54 50 0a 49 6e 64  RE. .VS. .TP.Ind
1020: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 46  ex: generic/tclF
1030: 43 6d 64 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  Cmd.c.==========
1040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1060: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69  =========.RCS fi
1080: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c  le: /cvsroot/tcl
1090: 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c  /tcl/generic/tcl
10a0: 46 43 6d 64 2e 63 2c 76 0a 72 65 74 72 69 65 76  FCmd.c,v.retriev
10b0: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 32  ing revision 1.2
10c0: 30 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 32 30  0.diff -u -r1.20
10d0: 20 74 63 6c 46 43 6d 64 2e 63 0a 2d 2d 2d 20 67   tclFCmd.c.--- g
10e0: 65 6e 65 72 69 63 2f 74 63 6c 46 43 6d 64 2e 63  eneric/tclFCmd.c
10f0: 09 38 20 41 75 67 20 32 30 30 32 20 31 30 3a 34  .8 Aug 2002 10:4
1100: 31 3a 32 32 20 2d 30 30 30 30 09 31 2e 32 30 0a  1:22 -0000.1.20.
1110: 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 46  +++ generic/tclF
1120: 43 6d 64 2e 63 09 31 34 20 4d 61 79 20 32 30 30  Cmd.c.14 May 200
1130: 33 20 31 39 3a 31 33 3a 33 32 20 2d 30 30 30 30  3 19:13:32 -0000
1140: 0a 40 40 20 2d 39 31 38 2c 32 31 20 2b 39 31 38  .@@ -918,21 +918
1150: 2c 32 39 20 40 40 0a 20 09 20 2a 20 47 65 74 20  ,29 @@. . * Get 
1160: 61 6c 6c 20 61 74 74 72 69 62 75 74 65 73 2e 0a  all attributes..
1170: 20 09 20 2a 2f 0a 20 0a 2d 09 69 6e 74 20 69 6e   . */. .-.int in
1180: 64 65 78 3b 0a 2b 09 69 6e 74 20 69 6e 64 65 78  dex;.+.int index
1190: 2c 20 72 65 73 20 3d 20 54 43 4c 5f 4f 4b 2c 20  , res = TCL_OK, 
11a0: 6e 62 41 74 74 73 20 3d 20 30 3b 0a 20 09 54 63  nbAtts = 0;. .Tc
11b0: 6c 5f 4f 62 6a 20 2a 6c 69 73 74 50 74 72 3b 0a  l_Obj *listPtr;.
11c0: 20 09 20 0a 20 09 6c 69 73 74 50 74 72 20 3d 20   . . .listPtr = 
11d0: 54 63 6c 5f 4e 65 77 4c 69 73 74 4f 62 6a 28 30  Tcl_NewListObj(0
11e0: 2c 20 4e 55 4c 4c 29 3b 0a 20 09 66 6f 72 20 28  , NULL);. .for (
11f0: 69 6e 64 65 78 20 3d 20 30 3b 20 61 74 74 72 69  index = 0; attri
1200: 62 75 74 65 53 74 72 69 6e 67 73 5b 69 6e 64 65  buteStrings[inde
1210: 78 5d 20 21 3d 20 4e 55 4c 4c 3b 20 69 6e 64 65  x] != NULL; inde
1220: 78 2b 2b 29 20 7b 0a 2d 09 20 20 20 20 54 63 6c  x++) {.-.    Tcl
1230: 5f 4f 62 6a 20 2a 6f 62 6a 50 74 72 20 3d 20 54  _Obj *objPtr = T
1240: 63 6c 5f 4e 65 77 53 74 72 69 6e 67 4f 62 6a 28  cl_NewStringObj(
1250: 61 74 74 72 69 62 75 74 65 53 74 72 69 6e 67 73  attributeStrings
1260: 5b 69 6e 64 65 78 5d 2c 20 2d 31 29 3b 0a 2d 09  [index], -1);.-.
1270: 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41      Tcl_ListObjA
1280: 70 70 65 6e 64 45 6c 65 6d 65 6e 74 28 69 6e 74  ppendElement(int
1290: 65 72 70 2c 20 6c 69 73 74 50 74 72 2c 20 6f 62  erp, listPtr, ob
12a0: 6a 50 74 72 29 3b 0a 2d 09 20 20 20 20 2f 2a 20  jPtr);.-.    /* 
12b0: 57 65 20 6e 6f 77 20 66 6f 72 67 65 74 20 61 62  We now forget ab
12c0: 6f 75 74 20 6f 62 6a 50 74 72 2c 20 69 74 20 69  out objPtr, it i
12d0: 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20 2a 2f  s in the list */
12e0: 0a 2d 09 20 20 20 20 6f 62 6a 50 74 72 20 3d 20  .-.    objPtr = 
12f0: 4e 55 4c 4c 3b 0a 2d 09 20 20 20 20 69 66 20 28  NULL;.-.    if (
1300: 54 63 6c 5f 46 53 46 69 6c 65 41 74 74 72 73 47  Tcl_FSFileAttrsG
1310: 65 74 28 69 6e 74 65 72 70 2c 20 69 6e 64 65 78  et(interp, index
1320: 2c 20 66 69 6c 65 50 74 72 2c 0a 2d 09 09 20 20  , filePtr,.-..  
1330: 20 20 26 6f 62 6a 50 74 72 29 20 21 3d 20 54 43    &objPtr) != TC
1340: 4c 5f 4f 4b 29 20 7b 0a 2d 09 09 54 63 6c 5f 44  L_OK) {.-..Tcl_D
1350: 65 63 72 52 65 66 43 6f 75 6e 74 28 6c 69 73 74  ecrRefCount(list
1360: 50 74 72 29 3b 0a 2d 09 09 67 6f 74 6f 20 65 6e  Ptr);.-..goto en
1370: 64 3b 0a 2b 09 20 20 20 20 54 63 6c 5f 4f 62 6a  d;.+.    Tcl_Obj
1380: 20 2a 6f 62 6a 50 74 72 41 74 74 72 3b 0a 2b 09   *objPtrAttr;.+.
1390: 20 20 20 20 0a 2b 09 20 20 20 20 69 66 20 28 72      .+.    if (r
13a0: 65 73 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a  es != TCL_OK) {.
13b0: 2b 09 20 20 20 20 20 20 20 20 2f 2a 20 43 6c 65  +.        /* Cle
13c0: 61 72 20 74 68 65 20 65 72 72 6f 72 20 66 72 6f  ar the error fro
13d0: 6d 20 74 68 65 20 6c 61 73 74 20 69 74 65 72 61  m the last itera
13e0: 74 69 6f 6e 20 2a 2f 0a 2b 09 20 20 20 20 20 20  tion */.+.      
13f0: 20 20 54 63 6c 5f 52 65 73 65 74 52 65 73 75 6c    Tcl_ResetResul
1400: 74 28 69 6e 74 65 72 70 29 3b 0a 20 09 20 20 20  t(interp);. .   
1410: 20 7d 0a 2d 09 20 20 20 20 54 63 6c 5f 4c 69 73   }.-.    Tcl_Lis
1420: 74 4f 62 6a 41 70 70 65 6e 64 45 6c 65 6d 65 6e  tObjAppendElemen
1430: 74 28 69 6e 74 65 72 70 2c 20 6c 69 73 74 50 74  t(interp, listPt
1440: 72 2c 20 6f 62 6a 50 74 72 29 3b 0a 2b 09 20 20  r, objPtr);.+.  
1450: 20 20 72 65 73 20 3d 20 54 63 6c 5f 46 53 46 69    res = Tcl_FSFi
1460: 6c 65 41 74 74 72 73 47 65 74 28 69 6e 74 65 72  leAttrsGet(inter
1470: 70 2c 20 69 6e 64 65 78 2c 20 66 69 6c 65 50 74  p, index, filePt
1480: 72 2c 20 26 6f 62 6a 50 74 72 41 74 74 72 29 3b  r, &objPtrAttr);
1490: 0a 2b 09 20 20 20 20 69 66 20 28 72 65 73 20 3d  .+.    if (res =
14a0: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2b 09 20 20  = TCL_OK) {.+.  
14b0: 20 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6f        Tcl_Obj *o
14c0: 62 6a 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 53  bjPtr = Tcl_NewS
14d0: 74 72 69 6e 67 4f 62 6a 28 61 74 74 72 69 62 75  tringObj(attribu
14e0: 74 65 53 74 72 69 6e 67 73 5b 69 6e 64 65 78 5d  teStrings[index]
14f0: 2c 20 2d 31 29 3b 0a 2b 09 20 20 20 20 20 20 20  , -1);.+.       
1500: 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65   Tcl_ListObjAppe
1510: 6e 64 45 6c 65 6d 65 6e 74 28 69 6e 74 65 72 70  ndElement(interp
1520: 2c 20 6c 69 73 74 50 74 72 2c 20 6f 62 6a 50 74  , listPtr, objPt
1530: 72 29 3b 0a 2b 09 20 20 20 20 20 20 20 20 54 63  r);.+.        Tc
1540: 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 6e 64 45  l_ListObjAppendE
1550: 6c 65 6d 65 6e 74 28 69 6e 74 65 72 70 2c 20 6c  lement(interp, l
1560: 69 73 74 50 74 72 2c 20 6f 62 6a 50 74 72 41 74  istPtr, objPtrAt
1570: 74 72 29 3b 0a 2b 09 20 20 20 20 20 20 20 20 6e  tr);.+.        n
1580: 62 41 74 74 73 2b 2b 3b 0a 2b 09 20 20 20 20 7d  bAtts++;.+.    }
1590: 0a 2b 09 7d 0a 2b 09 69 66 20 28 69 6e 64 65 78  .+.}.+.if (index
15a0: 20 3e 20 30 20 26 26 20 6e 62 41 74 74 73 20 3d   > 0 && nbAtts =
15b0: 3d 20 30 29 20 7b 0a 2b 09 20 20 20 20 2f 2a 20  = 0) {.+.    /* 
15c0: 45 72 72 6f 72 3a 20 6e 6f 20 76 61 6c 69 64 20  Error: no valid 
15d0: 61 74 74 72 69 62 75 74 65 73 20 66 6f 75 6e 64  attributes found
15e0: 20 2a 2f 0a 2b 09 20 20 20 20 54 63 6c 5f 44 65   */.+.    Tcl_De
15f0: 63 72 52 65 66 43 6f 75 6e 74 28 6c 69 73 74 50  crRefCount(listP
1600: 74 72 29 3b 0a 2b 09 20 20 20 20 67 6f 74 6f 20  tr);.+.    goto 
1610: 65 6e 64 3b 0a 20 09 7d 0a 20 20 20 20 20 09 54  end;. .}.     .T
1620: 63 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 28  cl_SetObjResult(
1630: 69 6e 74 65 72 70 2c 20 6c 69 73 74 50 74 72 29  interp, listPtr)
1640: 3b 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66  ;.     } else if
1650: 20 28 6f 62 6a 63 20 3d 3d 20 31 29 20 7b 0a 49   (objc == 1) {.I
1660: 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63  ndex: generic/tc
1670: 6c 49 6e 74 2e 64 65 63 6c 73 0a 3d 3d 3d 3d 3d  lInt.decls.=====
1680: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
16a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
16b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52  ==============.R
16c0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f  CS file: /cvsroo
16d0: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69  t/tcl/tcl/generi
16e0: 63 2f 74 63 6c 49 6e 74 2e 64 65 63 6c 73 2c 76  c/tclInt.decls,v
16f0: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69  .retrieving revi
1700: 73 69 6f 6e 20 31 2e 36 30 0a 64 69 66 66 20 2d  sion 1.60.diff -
1710: 75 20 2d 72 31 2e 36 30 20 74 63 6c 49 6e 74 2e  u -r1.60 tclInt.
1720: 64 65 63 6c 73 0a 2d 2d 2d 20 67 65 6e 65 72 69  decls.--- generi
1730: 63 2f 74 63 6c 49 6e 74 2e 64 65 63 6c 73 09 32  c/tclInt.decls.2
1740: 38 20 41 70 72 20 32 30 30 33 20 31 32 3a 33 34  8 Apr 2003 12:34
1750: 3a 32 37 20 2d 30 30 30 30 09 31 2e 36 30 0a 2b  :27 -0000.1.60.+
1760: 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e  ++ generic/tclIn
1770: 74 2e 64 65 63 6c 73 09 31 34 20 4d 61 79 20 32  t.decls.14 May 2
1780: 30 30 33 20 31 39 3a 31 33 3a 33 32 20 2d 30 30  003 19:13:32 -00
1790: 30 30 0a 40 40 20 2d 39 39 33 2c 33 20 2b 39 39  00.@@ -993,3 +99
17a0: 33 2c 32 36 20 40 40 0a 20 64 65 63 6c 61 72 65  3,26 @@. declare
17b0: 20 31 33 20 75 6e 69 78 20 7b 0a 20 20 20 20 20   13 unix {.     
17c0: 63 68 61 72 20 2a 54 63 6c 70 49 6e 65 74 4e 74  char *TclpInetNt
17d0: 6f 61 28 73 74 72 75 63 74 20 69 6e 5f 61 64 64  oa(struct in_add
17e0: 72 20 61 64 64 72 29 0a 20 7d 0a 2b 0a 2b 23 20  r addr). }.+.+# 
17f0: 41 64 64 65 64 20 69 6e 20 38 2e 35 3a 0a 2b 0a  Added in 8.5:.+.
1800: 2b 64 65 63 6c 61 72 65 20 31 34 20 75 6e 69 78  +declare 14 unix
1810: 20 7b 0a 2b 20 20 20 20 69 6e 74 20 54 63 6c 55   {.+    int TclU
1820: 6e 69 78 43 6f 70 79 46 69 6c 65 20 28 43 4f 4e  nixCopyFile (CON
1830: 53 54 20 63 68 61 72 20 2a 73 72 63 2c 20 43 4f  ST char *src, CO
1840: 4e 53 54 20 63 68 61 72 20 2a 64 73 74 2c 0a 2b  NST char *dst,.+
1850: 09 20 20 20 20 43 4f 4e 53 54 20 54 63 6c 5f 53  .    CONST Tcl_S
1860: 74 61 74 42 75 66 20 2a 73 74 61 74 42 75 66 50  tatBuf *statBufP
1870: 74 72 2c 20 69 6e 74 20 64 6f 6e 74 43 6f 70 79  tr, int dontCopy
1880: 41 74 74 73 29 0a 2b 7d 0a 2b 0a 2b 64 65 63 6c  Atts).+}.+.+decl
1890: 61 72 65 20 31 35 20 6d 61 63 6f 73 78 20 7b 0a  are 15 macosx {.
18a0: 2b 20 20 20 20 69 6e 74 20 54 63 6c 4d 61 63 4f  +    int TclMacO
18b0: 53 58 47 65 74 46 69 6c 65 41 74 74 72 69 62 75  SXGetFileAttribu
18c0: 74 65 28 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69  te(Tcl_Interp *i
18d0: 6e 74 65 72 70 2c 20 69 6e 74 20 6f 62 6a 49 6e  nterp, int objIn
18e0: 64 65 78 2c 0a 2b 09 20 20 20 20 54 63 6c 5f 4f  dex,.+.    Tcl_O
18f0: 62 6a 20 2a 66 69 6c 65 4e 61 6d 65 2c 20 54 63  bj *fileName, Tc
1900: 6c 5f 4f 62 6a 20 2a 2a 61 74 74 72 69 62 75 74  l_Obj **attribut
1910: 65 50 74 72 50 74 72 29 0a 2b 7d 0a 2b 0a 2b 64  ePtrPtr).+}.+.+d
1920: 65 63 6c 61 72 65 20 31 36 20 6d 61 63 6f 73 78  eclare 16 macosx
1930: 20 7b 0a 2b 20 20 20 20 69 6e 74 20 54 63 6c 4d   {.+    int TclM
1940: 61 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72  acOSXSetFileAttr
1950: 69 62 75 74 65 28 54 63 6c 5f 49 6e 74 65 72 70  ibute(Tcl_Interp
1960: 20 2a 69 6e 74 65 72 70 2c 20 69 6e 74 20 6f 62   *interp, int ob
1970: 6a 49 6e 64 65 78 2c 0a 2b 09 20 20 20 20 54 63  jIndex,.+.    Tc
1980: 6c 5f 4f 62 6a 20 2a 66 69 6c 65 4e 61 6d 65 2c  l_Obj *fileName,
1990: 20 54 63 6c 5f 4f 62 6a 20 2a 61 74 74 72 69 62   Tcl_Obj *attrib
19a0: 75 74 65 50 74 72 29 0a 2b 7d 0a 2b 0a 2b 64 65  utePtr).+}.+.+de
19b0: 63 6c 61 72 65 20 31 37 20 6d 61 63 6f 73 78 20  clare 17 macosx 
19c0: 7b 0a 2b 20 20 20 20 69 6e 74 20 54 63 6c 4d 61  {.+    int TclMa
19d0: 63 4f 53 58 43 6f 70 79 46 69 6c 65 41 74 74 72  cOSXCopyFileAttr
19e0: 69 62 75 74 65 73 28 43 4f 4e 53 54 20 63 68 61  ibutes(CONST cha
19f0: 72 20 2a 73 72 63 2c 20 43 4f 4e 53 54 20 63 68  r *src, CONST ch
1a00: 61 72 20 2a 64 73 74 2c 0a 2b 09 20 20 20 20 43  ar *dst,.+.    C
1a10: 4f 4e 53 54 20 54 63 6c 5f 53 74 61 74 42 75 66  ONST Tcl_StatBuf
1a20: 20 2a 73 74 61 74 42 75 66 50 74 72 29 0a 2b 7d   *statBufPtr).+}
1a30: 0a 2b 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69  .+.Index: generi
1a40: 63 2f 74 63 6c 49 6e 74 50 6c 61 74 44 65 63 6c  c/tclIntPlatDecl
1a50: 73 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  s.h.============
1a60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1a70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1a80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1a90: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65  =======.RCS file
1aa0: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74  : /cvsroot/tcl/t
1ab0: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e  cl/generic/tclIn
1ac0: 74 50 6c 61 74 44 65 63 6c 73 2e 68 2c 76 0a 72  tPlatDecls.h,v.r
1ad0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69  etrieving revisi
1ae0: 6f 6e 20 31 2e 31 39 0a 64 69 66 66 20 2d 75 20  on 1.19.diff -u 
1af0: 2d 72 31 2e 31 39 20 74 63 6c 49 6e 74 50 6c 61  -r1.19 tclIntPla
1b00: 74 44 65 63 6c 73 2e 68 0a 2d 2d 2d 20 67 65 6e  tDecls.h.--- gen
1b10: 65 72 69 63 2f 74 63 6c 49 6e 74 50 6c 61 74 44  eric/tclIntPlatD
1b20: 65 63 6c 73 2e 68 09 36 20 44 65 63 20 32 30 30  ecls.h.6 Dec 200
1b30: 32 20 32 33 3a 32 32 3a 35 39 20 2d 30 30 30 30  2 23:22:59 -0000
1b40: 09 31 2e 31 39 0a 2b 2b 2b 20 67 65 6e 65 72 69  .1.19.+++ generi
1b50: 63 2f 74 63 6c 49 6e 74 50 6c 61 74 44 65 63 6c  c/tclIntPlatDecl
1b60: 73 2e 68 09 31 34 20 4d 61 79 20 32 30 30 33 20  s.h.14 May 2003 
1b70: 31 39 3a 31 33 3a 33 32 20 2d 30 30 30 30 0a 40  19:13:32 -0000.@
1b80: 40 20 2d 36 37 2c 36 20 2b 36 37 2c 31 31 20 40  @ -67,6 +67,11 @
1b90: 40 0a 20 45 58 54 45 52 4e 20 73 74 72 75 63 74  @. EXTERN struct
1ba0: 20 74 6d 20 2a 09 54 63 6c 70 47 6d 74 69 6d 65   tm *.TclpGmtime
1bb0: 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 74 69   _ANSI_ARGS_((ti
1bc0: 6d 65 5f 74 20 2a 20 63 6c 6f 63 6b 29 29 3b 0a  me_t * clock));.
1bd0: 20 2f 2a 20 31 33 20 2a 2f 0a 20 45 58 54 45 52   /* 13 */. EXTER
1be0: 4e 20 63 68 61 72 20 2a 09 09 54 63 6c 70 49 6e  N char *..TclpIn
1bf0: 65 74 4e 74 6f 61 20 5f 41 4e 53 49 5f 41 52 47  etNtoa _ANSI_ARG
1c00: 53 5f 28 28 73 74 72 75 63 74 20 69 6e 5f 61 64  S_((struct in_ad
1c10: 64 72 20 61 64 64 72 29 29 3b 0a 2b 2f 2a 20 31  dr addr));.+/* 1
1c20: 34 20 2a 2f 0a 2b 45 58 54 45 52 4e 20 69 6e 74  4 */.+EXTERN int
1c30: 09 09 54 63 6c 55 6e 69 78 43 6f 70 79 46 69 6c  ..TclUnixCopyFil
1c40: 65 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 43  e _ANSI_ARGS_((C
1c50: 4f 4e 53 54 20 63 68 61 72 20 2a 20 73 72 63 2c  ONST char * src,
1c60: 20 0a 2b 09 09 09 09 43 4f 4e 53 54 20 63 68 61   .+....CONST cha
1c70: 72 20 2a 20 64 73 74 2c 20 0a 2b 09 09 09 09 43  r * dst, .+....C
1c80: 4f 4e 53 54 20 54 63 6c 5f 53 74 61 74 42 75 66  ONST Tcl_StatBuf
1c90: 20 2a 20 73 74 61 74 42 75 66 50 74 72 2c 20 0a   * statBufPtr, .
1ca0: 2b 09 09 09 09 69 6e 74 20 64 6f 6e 74 43 6f 70  +....int dontCop
1cb0: 79 41 74 74 73 29 29 3b 0a 20 23 65 6e 64 69 66  yAtts));. #endif
1cc0: 20 2f 2a 20 55 4e 49 58 20 2a 2f 0a 20 23 69 66   /* UNIX */. #if
1cd0: 64 65 66 20 5f 5f 57 49 4e 33 32 5f 5f 0a 20 2f  def __WIN32__. /
1ce0: 2a 20 30 20 2a 2f 0a 40 40 20 2d 32 31 32 2c 36  * 0 */.@@ -212,6
1cf0: 20 2b 32 31 37 2c 32 31 20 40 40 0a 20 45 58 54   +217,21 @@. EXT
1d00: 45 52 4e 20 69 6e 74 09 09 46 53 70 4c 4c 6f 63  ERN int..FSpLLoc
1d10: 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 20 5f 41  ationFromPath _A
1d20: 4e 53 49 5f 41 52 47 53 5f 28 28 69 6e 74 20 6c  NSI_ARGS_((int l
1d30: 65 6e 67 74 68 2c 20 0a 20 09 09 09 09 43 4f 4e  ength, . ....CON
1d40: 53 54 20 63 68 61 72 20 2a 20 70 61 74 68 2c 20  ST char * path, 
1d50: 46 53 53 70 65 63 50 74 72 20 74 68 65 53 70 65  FSSpecPtr theSpe
1d60: 63 29 29 3b 0a 20 23 65 6e 64 69 66 20 2f 2a 20  c));. #endif /* 
1d70: 4d 41 43 5f 54 43 4c 20 2a 2f 0a 2b 23 69 66 64  MAC_TCL */.+#ifd
1d80: 65 66 20 4d 41 43 5f 4f 53 58 5f 54 43 4c 0a 2b  ef MAC_OSX_TCL.+
1d90: 2f 2a 20 31 35 20 2a 2f 0a 2b 45 58 54 45 52 4e  /* 15 */.+EXTERN
1da0: 20 69 6e 74 09 09 54 63 6c 4d 61 63 4f 53 58 47   int..TclMacOSXG
1db0: 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 20  etFileAttribute 
1dc0: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 0a 2b 09  _ANSI_ARGS_((.+.
1dd0: 09 09 09 54 63 6c 5f 49 6e 74 65 72 70 20 2a 20  ...Tcl_Interp * 
1de0: 69 6e 74 65 72 70 2c 20 69 6e 74 20 6f 62 6a 49  interp, int objI
1df0: 6e 64 65 78 2c 20 0a 2b 09 09 09 09 54 63 6c 5f  ndex, .+....Tcl_
1e00: 4f 62 6a 20 2a 20 66 69 6c 65 4e 61 6d 65 2c 20  Obj * fileName, 
1e10: 0a 2b 09 09 09 09 54 63 6c 5f 4f 62 6a 20 2a 2a  .+....Tcl_Obj **
1e20: 20 61 74 74 72 69 62 75 74 65 50 74 72 50 74 72   attributePtrPtr
1e30: 29 29 3b 0a 2b 2f 2a 20 31 36 20 2a 2f 0a 2b 45  ));.+/* 16 */.+E
1e40: 58 54 45 52 4e 20 69 6e 74 09 09 54 63 6c 4d 61  XTERN int..TclMa
1e50: 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72 69  cOSXSetFileAttri
1e60: 62 75 74 65 20 5f 41 4e 53 49 5f 41 52 47 53 5f  bute _ANSI_ARGS_
1e70: 28 28 0a 2b 09 09 09 09 54 63 6c 5f 49 6e 74 65  ((.+....Tcl_Inte
1e80: 72 70 20 2a 20 69 6e 74 65 72 70 2c 20 69 6e 74  rp * interp, int
1e90: 20 6f 62 6a 49 6e 64 65 78 2c 20 0a 2b 09 09 09   objIndex, .+...
1ea0: 09 54 63 6c 5f 4f 62 6a 20 2a 20 66 69 6c 65 4e  .Tcl_Obj * fileN
1eb0: 61 6d 65 2c 20 54 63 6c 5f 4f 62 6a 20 2a 20 61  ame, Tcl_Obj * a
1ec0: 74 74 72 69 62 75 74 65 50 74 72 29 29 3b 0a 2b  ttributePtr));.+
1ed0: 2f 2a 20 31 37 20 2a 2f 0a 2b 45 58 54 45 52 4e  /* 17 */.+EXTERN
1ee0: 20 69 6e 74 09 09 54 63 6c 4d 61 63 4f 53 58 43   int..TclMacOSXC
1ef0: 6f 70 79 46 69 6c 65 41 74 74 72 69 62 75 74 65  opyFileAttribute
1f00: 73 20 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 0a  s _ANSI_ARGS_((.
1f10: 2b 09 09 09 09 43 4f 4e 53 54 20 63 68 61 72 20  +....CONST char 
1f20: 2a 20 73 72 63 2c 20 43 4f 4e 53 54 20 63 68 61  * src, CONST cha
1f30: 72 20 2a 20 64 73 74 2c 20 0a 2b 09 09 09 09 43  r * dst, .+....C
1f40: 4f 4e 53 54 20 54 63 6c 5f 53 74 61 74 42 75 66  ONST Tcl_StatBuf
1f50: 20 2a 20 73 74 61 74 42 75 66 50 74 72 29 29 3b   * statBufPtr));
1f60: 0a 2b 23 65 6e 64 69 66 20 2f 2a 20 4d 41 43 5f  .+#endif /* MAC_
1f70: 4f 53 58 5f 54 43 4c 20 2a 2f 0a 20 0a 20 74 79  OSX_TCL */. . ty
1f80: 70 65 64 65 66 20 73 74 72 75 63 74 20 54 63 6c  pedef struct Tcl
1f90: 49 6e 74 50 6c 61 74 53 74 75 62 73 20 7b 0a 20  IntPlatStubs {. 
1fa0: 20 20 20 20 69 6e 74 20 6d 61 67 69 63 3b 0a 40      int magic;.@
1fb0: 40 20 2d 32 33 32 2c 36 20 2b 32 35 32 2c 37 20  @ -232,6 +252,7 
1fc0: 40 40 0a 20 20 20 20 20 73 74 72 75 63 74 20 74  @@.     struct t
1fd0: 6d 20 2a 20 28 2a 74 63 6c 70 4c 6f 63 61 6c 74  m * (*tclpLocalt
1fe0: 69 6d 65 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f  ime) _ANSI_ARGS_
1ff0: 28 28 74 69 6d 65 5f 74 20 2a 20 63 6c 6f 63 6b  ((time_t * clock
2000: 29 29 3b 20 2f 2a 20 31 31 20 2a 2f 0a 20 20 20  )); /* 11 */.   
2010: 20 20 73 74 72 75 63 74 20 74 6d 20 2a 20 28 2a    struct tm * (*
2020: 74 63 6c 70 47 6d 74 69 6d 65 29 20 5f 41 4e 53  tclpGmtime) _ANS
2030: 49 5f 41 52 47 53 5f 28 28 74 69 6d 65 5f 74 20  I_ARGS_((time_t 
2040: 2a 20 63 6c 6f 63 6b 29 29 3b 20 2f 2a 20 31 32  * clock)); /* 12
2050: 20 2a 2f 0a 20 20 20 20 20 63 68 61 72 20 2a 20   */.     char * 
2060: 28 2a 74 63 6c 70 49 6e 65 74 4e 74 6f 61 29 20  (*tclpInetNtoa) 
2070: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 73 74 72  _ANSI_ARGS_((str
2080: 75 63 74 20 69 6e 5f 61 64 64 72 20 61 64 64 72  uct in_addr addr
2090: 29 29 3b 20 2f 2a 20 31 33 20 2a 2f 0a 2b 20 20  )); /* 13 */.+  
20a0: 20 20 69 6e 74 20 28 2a 74 63 6c 55 6e 69 78 43    int (*tclUnixC
20b0: 6f 70 79 46 69 6c 65 29 20 5f 41 4e 53 49 5f 41  opyFile) _ANSI_A
20c0: 52 47 53 5f 28 28 43 4f 4e 53 54 20 63 68 61 72  RGS_((CONST char
20d0: 20 2a 20 73 72 63 2c 20 43 4f 4e 53 54 20 63 68   * src, CONST ch
20e0: 61 72 20 2a 20 64 73 74 2c 20 43 4f 4e 53 54 20  ar * dst, CONST 
20f0: 54 63 6c 5f 53 74 61 74 42 75 66 20 2a 20 73 74  Tcl_StatBuf * st
2100: 61 74 42 75 66 50 74 72 2c 20 69 6e 74 20 64 6f  atBufPtr, int do
2110: 6e 74 43 6f 70 79 41 74 74 73 29 29 3b 20 2f 2a  ntCopyAtts)); /*
2120: 20 31 34 20 2a 2f 0a 20 23 65 6e 64 69 66 20 2f   14 */. #endif /
2130: 2a 20 55 4e 49 58 20 2a 2f 0a 20 23 69 66 64 65  * UNIX */. #ifde
2140: 66 20 5f 5f 57 49 4e 33 32 5f 5f 0a 20 20 20 20  f __WIN32__.    
2150: 20 76 6f 69 64 20 28 2a 74 63 6c 57 69 6e 43 6f   void (*tclWinCo
2160: 6e 76 65 72 74 45 72 72 6f 72 29 20 5f 41 4e 53  nvertError) _ANS
2170: 49 5f 41 52 47 53 5f 28 28 44 57 4f 52 44 20 65  I_ARGS_((DWORD e
2180: 72 72 43 6f 64 65 29 29 3b 20 2f 2a 20 30 20 2a  rrCode)); /* 0 *
2190: 2f 0a 40 40 20 2d 32 39 33 2c 36 20 2b 33 31 34  /.@@ -293,6 +314
21a0: 2c 31 31 20 40 40 0a 20 20 20 20 20 69 6e 74 20  ,11 @@.     int 
21b0: 28 2a 74 63 6c 4d 61 63 43 68 6d 6f 64 29 20 5f  (*tclMacChmod) _
21c0: 41 4e 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e 53  ANSI_ARGS_((CONS
21d0: 54 20 63 68 61 72 20 2a 20 70 61 74 68 2c 20 69  T char * path, i
21e0: 6e 74 20 6d 6f 64 65 29 29 3b 20 2f 2a 20 32 35  nt mode)); /* 25
21f0: 20 2a 2f 0a 20 20 20 20 20 69 6e 74 20 28 2a 66   */.     int (*f
2200: 53 70 4c 4c 6f 63 61 74 69 6f 6e 46 72 6f 6d 50  SpLLocationFromP
2210: 61 74 68 29 20 5f 41 4e 53 49 5f 41 52 47 53 5f  ath) _ANSI_ARGS_
2220: 28 28 69 6e 74 20 6c 65 6e 67 74 68 2c 20 43 4f  ((int length, CO
2230: 4e 53 54 20 63 68 61 72 20 2a 20 70 61 74 68 2c  NST char * path,
2240: 20 46 53 53 70 65 63 50 74 72 20 74 68 65 53 70   FSSpecPtr theSp
2250: 65 63 29 29 3b 20 2f 2a 20 32 36 20 2a 2f 0a 20  ec)); /* 26 */. 
2260: 23 65 6e 64 69 66 20 2f 2a 20 4d 41 43 5f 54 43  #endif /* MAC_TC
2270: 4c 20 2a 2f 0a 2b 23 69 66 64 65 66 20 4d 41 43  L */.+#ifdef MAC
2280: 5f 4f 53 58 5f 54 43 4c 0a 2b 20 20 20 20 69 6e  _OSX_TCL.+    in
2290: 74 20 28 2a 74 63 6c 4d 61 63 4f 53 58 47 65 74  t (*tclMacOSXGet
22a0: 46 69 6c 65 41 74 74 72 69 62 75 74 65 29 20 5f  FileAttribute) _
22b0: 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f  ANSI_ARGS_((Tcl_
22c0: 49 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70 2c  Interp * interp,
22d0: 20 69 6e 74 20 6f 62 6a 49 6e 64 65 78 2c 20 54   int objIndex, T
22e0: 63 6c 5f 4f 62 6a 20 2a 20 66 69 6c 65 4e 61 6d  cl_Obj * fileNam
22f0: 65 2c 20 54 63 6c 5f 4f 62 6a 20 2a 2a 20 61 74  e, Tcl_Obj ** at
2300: 74 72 69 62 75 74 65 50 74 72 50 74 72 29 29 3b  tributePtrPtr));
2310: 20 2f 2a 20 31 35 20 2a 2f 0a 2b 20 20 20 20 69   /* 15 */.+    i
2320: 6e 74 20 28 2a 74 63 6c 4d 61 63 4f 53 58 53 65  nt (*tclMacOSXSe
2330: 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 29 20  tFileAttribute) 
2340: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 54 63 6c  _ANSI_ARGS_((Tcl
2350: 5f 49 6e 74 65 72 70 20 2a 20 69 6e 74 65 72 70  _Interp * interp
2360: 2c 20 69 6e 74 20 6f 62 6a 49 6e 64 65 78 2c 20  , int objIndex, 
2370: 54 63 6c 5f 4f 62 6a 20 2a 20 66 69 6c 65 4e 61  Tcl_Obj * fileNa
2380: 6d 65 2c 20 54 63 6c 5f 4f 62 6a 20 2a 20 61 74  me, Tcl_Obj * at
2390: 74 72 69 62 75 74 65 50 74 72 29 29 3b 20 2f 2a  tributePtr)); /*
23a0: 20 31 36 20 2a 2f 0a 2b 20 20 20 20 69 6e 74 20   16 */.+    int 
23b0: 28 2a 74 63 6c 4d 61 63 4f 53 58 43 6f 70 79 46  (*tclMacOSXCopyF
23c0: 69 6c 65 41 74 74 72 69 62 75 74 65 73 29 20 5f  ileAttributes) _
23d0: 41 4e 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e 53  ANSI_ARGS_((CONS
23e0: 54 20 63 68 61 72 20 2a 20 73 72 63 2c 20 43 4f  T char * src, CO
23f0: 4e 53 54 20 63 68 61 72 20 2a 20 64 73 74 2c 20  NST char * dst, 
2400: 43 4f 4e 53 54 20 54 63 6c 5f 53 74 61 74 42 75  CONST Tcl_StatBu
2410: 66 20 2a 20 73 74 61 74 42 75 66 50 74 72 29 29  f * statBufPtr))
2420: 3b 20 2f 2a 20 31 37 20 2a 2f 0a 2b 23 65 6e 64  ; /* 17 */.+#end
2430: 69 66 20 2f 2a 20 4d 41 43 5f 4f 53 58 5f 54 43  if /* MAC_OSX_TC
2440: 4c 20 2a 2f 0a 20 7d 20 54 63 6c 49 6e 74 50 6c  L */. } TclIntPl
2450: 61 74 53 74 75 62 73 3b 0a 20 0a 20 23 69 66 64  atStubs;. . #ifd
2460: 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 40  ef __cplusplus.@
2470: 40 20 2d 33 36 33 2c 36 20 2b 33 38 39 2c 31 30  @ -363,6 +389,10
2480: 20 40 40 0a 20 23 64 65 66 69 6e 65 20 54 63 6c   @@. #define Tcl
2490: 70 49 6e 65 74 4e 74 6f 61 20 5c 0a 20 09 28 74  pInetNtoa \. .(t
24a0: 63 6c 49 6e 74 50 6c 61 74 53 74 75 62 73 50 74  clIntPlatStubsPt
24b0: 72 2d 3e 74 63 6c 70 49 6e 65 74 4e 74 6f 61 29  r->tclpInetNtoa)
24c0: 20 2f 2a 20 31 33 20 2a 2f 0a 20 23 65 6e 64 69   /* 13 */. #endi
24d0: 66 0a 2b 23 69 66 6e 64 65 66 20 54 63 6c 55 6e  f.+#ifndef TclUn
24e0: 69 78 43 6f 70 79 46 69 6c 65 0a 2b 23 64 65 66  ixCopyFile.+#def
24f0: 69 6e 65 20 54 63 6c 55 6e 69 78 43 6f 70 79 46  ine TclUnixCopyF
2500: 69 6c 65 20 5c 0a 2b 09 28 74 63 6c 49 6e 74 50  ile \.+.(tclIntP
2510: 6c 61 74 53 74 75 62 73 50 74 72 2d 3e 74 63 6c  latStubsPtr->tcl
2520: 55 6e 69 78 43 6f 70 79 46 69 6c 65 29 20 2f 2a  UnixCopyFile) /*
2530: 20 31 34 20 2a 2f 0a 2b 23 65 6e 64 69 66 0a 20   14 */.+#endif. 
2540: 23 65 6e 64 69 66 20 2f 2a 20 55 4e 49 58 20 2a  #endif /* UNIX *
2550: 2f 0a 20 23 69 66 64 65 66 20 5f 5f 57 49 4e 33  /. #ifdef __WIN3
2560: 32 5f 5f 0a 20 23 69 66 6e 64 65 66 20 54 63 6c  2__. #ifndef Tcl
2570: 57 69 6e 43 6f 6e 76 65 72 74 45 72 72 6f 72 0a  WinConvertError.
2580: 40 40 20 2d 35 37 37 2c 36 20 2b 36 30 37 2c 32  @@ -577,6 +607,2
2590: 30 20 40 40 0a 20 09 28 74 63 6c 49 6e 74 50 6c  0 @@. .(tclIntPl
25a0: 61 74 53 74 75 62 73 50 74 72 2d 3e 66 53 70 4c  atStubsPtr->fSpL
25b0: 4c 6f 63 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68  LocationFromPath
25c0: 29 20 2f 2a 20 32 36 20 2a 2f 0a 20 23 65 6e 64  ) /* 26 */. #end
25d0: 69 66 0a 20 23 65 6e 64 69 66 20 2f 2a 20 4d 41  if. #endif /* MA
25e0: 43 5f 54 43 4c 20 2a 2f 0a 2b 23 69 66 64 65 66  C_TCL */.+#ifdef
25f0: 20 4d 41 43 5f 4f 53 58 5f 54 43 4c 0a 2b 23 69   MAC_OSX_TCL.+#i
2600: 66 6e 64 65 66 20 54 63 6c 4d 61 63 4f 53 58 47  fndef TclMacOSXG
2610: 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 0a  etFileAttribute.
2620: 2b 23 64 65 66 69 6e 65 20 54 63 6c 4d 61 63 4f  +#define TclMacO
2630: 53 58 47 65 74 46 69 6c 65 41 74 74 72 69 62 75  SXGetFileAttribu
2640: 74 65 20 5c 0a 2b 09 28 74 63 6c 49 6e 74 50 6c  te \.+.(tclIntPl
2650: 61 74 53 74 75 62 73 50 74 72 2d 3e 74 63 6c 4d  atStubsPtr->tclM
2660: 61 63 4f 53 58 47 65 74 46 69 6c 65 41 74 74 72  acOSXGetFileAttr
2670: 69 62 75 74 65 29 20 2f 2a 20 31 35 20 2a 2f 0a  ibute) /* 15 */.
2680: 2b 23 65 6e 64 69 66 0a 2b 23 69 66 6e 64 65 66  +#endif.+#ifndef
2690: 20 54 63 6c 4d 61 63 4f 53 58 53 65 74 46 69 6c   TclMacOSXSetFil
26a0: 65 41 74 74 72 69 62 75 74 65 0a 2b 23 64 65 66  eAttribute.+#def
26b0: 69 6e 65 20 54 63 6c 4d 61 63 4f 53 58 53 65 74  ine TclMacOSXSet
26c0: 46 69 6c 65 41 74 74 72 69 62 75 74 65 20 5c 0a  FileAttribute \.
26d0: 2b 09 28 74 63 6c 49 6e 74 50 6c 61 74 53 74 75  +.(tclIntPlatStu
26e0: 62 73 50 74 72 2d 3e 74 63 6c 4d 61 63 4f 53 58  bsPtr->tclMacOSX
26f0: 53 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65  SetFileAttribute
2700: 29 20 2f 2a 20 31 36 20 2a 2f 0a 2b 23 65 6e 64  ) /* 16 */.+#end
2710: 69 66 0a 2b 23 69 66 6e 64 65 66 20 54 63 6c 4d  if.+#ifndef TclM
2720: 61 63 4f 53 58 43 6f 70 79 46 69 6c 65 41 74 74  acOSXCopyFileAtt
2730: 72 69 62 75 74 65 73 0a 2b 23 64 65 66 69 6e 65  ributes.+#define
2740: 20 54 63 6c 4d 61 63 4f 53 58 43 6f 70 79 46 69   TclMacOSXCopyFi
2750: 6c 65 41 74 74 72 69 62 75 74 65 73 20 5c 0a 2b  leAttributes \.+
2760: 09 28 74 63 6c 49 6e 74 50 6c 61 74 53 74 75 62  .(tclIntPlatStub
2770: 73 50 74 72 2d 3e 74 63 6c 4d 61 63 4f 53 58 43  sPtr->tclMacOSXC
2780: 6f 70 79 46 69 6c 65 41 74 74 72 69 62 75 74 65  opyFileAttribute
2790: 73 29 20 2f 2a 20 31 37 20 2a 2f 0a 2b 23 65 6e  s) /* 17 */.+#en
27a0: 64 69 66 0a 2b 23 65 6e 64 69 66 20 2f 2a 20 4d  dif.+#endif /* M
27b0: 41 43 5f 4f 53 58 5f 54 43 4c 20 2a 2f 0a 20 0a  AC_OSX_TCL */. .
27c0: 20 23 65 6e 64 69 66 20 2f 2a 20 64 65 66 69 6e   #endif /* defin
27d0: 65 64 28 55 53 45 5f 54 43 4c 5f 53 54 55 42 53  ed(USE_TCL_STUBS
27e0: 29 20 26 26 20 21 64 65 66 69 6e 65 64 28 55 53  ) && !defined(US
27f0: 45 5f 54 43 4c 5f 53 54 55 42 5f 50 52 4f 43 53  E_TCL_STUB_PROCS
2800: 29 20 2a 2f 0a 20 0a 49 6e 64 65 78 3a 20 67 65  ) */. .Index: ge
2810: 6e 65 72 69 63 2f 74 63 6c 53 74 75 62 49 6e 69  neric/tclStubIni
2820: 74 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  t.c.============
2830: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2840: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2850: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2860: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65  =======.RCS file
2870: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74  : /cvsroot/tcl/t
2880: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 53 74  cl/generic/tclSt
2890: 75 62 49 6e 69 74 2e 63 2c 76 0a 72 65 74 72 69  ubInit.c,v.retri
28a0: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31  eving revision 1
28b0: 2e 38 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e  .83.diff -u -r1.
28c0: 38 33 20 74 63 6c 53 74 75 62 49 6e 69 74 2e 63  83 tclStubInit.c
28d0: 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c  .--- generic/tcl
28e0: 53 74 75 62 49 6e 69 74 2e 63 09 31 33 20 4d 61  StubInit.c.13 Ma
28f0: 79 20 32 30 30 33 20 30 38 3a 34 30 3a 33 31 20  y 2003 08:40:31 
2900: 2d 30 30 30 30 09 31 2e 38 33 0a 2b 2b 2b 20 67  -0000.1.83.+++ g
2910: 65 6e 65 72 69 63 2f 74 63 6c 53 74 75 62 49 6e  eneric/tclStubIn
2920: 69 74 2e 63 09 31 34 20 4d 61 79 20 32 30 30 33  it.c.14 May 2003
2930: 20 31 39 3a 31 33 3a 33 32 20 2d 30 30 30 30 0a   19:13:32 -0000.
2940: 40 40 20 2d 32 38 39 2c 36 20 2b 32 38 39 2c 37  @@ -289,6 +289,7
2950: 20 40 40 0a 20 20 20 20 20 54 63 6c 70 4c 6f 63   @@.     TclpLoc
2960: 61 6c 74 69 6d 65 2c 20 2f 2a 20 31 31 20 2a 2f  altime, /* 11 */
2970: 0a 20 20 20 20 20 54 63 6c 70 47 6d 74 69 6d 65  .     TclpGmtime
2980: 2c 20 2f 2a 20 31 32 20 2a 2f 0a 20 20 20 20 20  , /* 12 */.     
2990: 54 63 6c 70 49 6e 65 74 4e 74 6f 61 2c 20 2f 2a  TclpInetNtoa, /*
29a0: 20 31 33 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 55   13 */.+    TclU
29b0: 6e 69 78 43 6f 70 79 46 69 6c 65 2c 20 2f 2a 20  nixCopyFile, /* 
29c0: 31 34 20 2a 2f 0a 20 23 65 6e 64 69 66 20 2f 2a  14 */. #endif /*
29d0: 20 55 4e 49 58 20 2a 2f 0a 20 23 69 66 64 65 66   UNIX */. #ifdef
29e0: 20 5f 5f 57 49 4e 33 32 5f 5f 0a 20 20 20 20 20   __WIN32__.     
29f0: 54 63 6c 57 69 6e 43 6f 6e 76 65 72 74 45 72 72  TclWinConvertErr
2a00: 6f 72 2c 20 2f 2a 20 30 20 2a 2f 0a 40 40 20 2d  or, /* 0 */.@@ -
2a10: 33 35 30 2c 36 20 2b 33 35 31 2c 31 31 20 40 40  350,6 +351,11 @@
2a20: 0a 20 20 20 20 20 54 63 6c 4d 61 63 43 68 6d 6f  .     TclMacChmo
2a30: 64 2c 20 2f 2a 20 32 35 20 2a 2f 0a 20 20 20 20  d, /* 25 */.    
2a40: 20 46 53 70 4c 4c 6f 63 61 74 69 6f 6e 46 72 6f   FSpLLocationFro
2a50: 6d 50 61 74 68 2c 20 2f 2a 20 32 36 20 2a 2f 0a  mPath, /* 26 */.
2a60: 20 23 65 6e 64 69 66 20 2f 2a 20 4d 41 43 5f 54   #endif /* MAC_T
2a70: 43 4c 20 2a 2f 0a 2b 23 69 66 64 65 66 20 4d 41  CL */.+#ifdef MA
2a80: 43 5f 4f 53 58 5f 54 43 4c 0a 2b 20 20 20 20 54  C_OSX_TCL.+    T
2a90: 63 6c 4d 61 63 4f 53 58 47 65 74 46 69 6c 65 41  clMacOSXGetFileA
2aa0: 74 74 72 69 62 75 74 65 2c 20 2f 2a 20 31 35 20  ttribute, /* 15 
2ab0: 2a 2f 0a 2b 20 20 20 20 54 63 6c 4d 61 63 4f 53  */.+    TclMacOS
2ac0: 58 53 65 74 46 69 6c 65 41 74 74 72 69 62 75 74  XSetFileAttribut
2ad0: 65 2c 20 2f 2a 20 31 36 20 2a 2f 0a 2b 20 20 20  e, /* 16 */.+   
2ae0: 20 54 63 6c 4d 61 63 4f 53 58 43 6f 70 79 46 69   TclMacOSXCopyFi
2af0: 6c 65 41 74 74 72 69 62 75 74 65 73 2c 20 2f 2a  leAttributes, /*
2b00: 20 31 37 20 2a 2f 0a 2b 23 65 6e 64 69 66 20 2f   17 */.+#endif /
2b10: 2a 20 4d 41 43 5f 4f 53 58 5f 54 43 4c 20 2a 2f  * MAC_OSX_TCL */
2b20: 0a 20 7d 3b 0a 20 0a 20 54 63 6c 50 6c 61 74 53  . };. . TclPlatS
2b30: 74 75 62 73 20 74 63 6c 50 6c 61 74 53 74 75 62  tubs tclPlatStub
2b40: 73 20 3d 20 7b 0a 49 6e 64 65 78 3a 20 6d 61 63  s = {.Index: mac
2b50: 2f 74 63 6c 4d 61 63 46 43 6d 64 2e 63 0a 3d 3d  /tclMacFCmd.c.==
2b60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2b70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2b80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2b90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2ba0: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73  =.RCS file: /cvs
2bb0: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 6d 61 63  root/tcl/tcl/mac
2bc0: 2f 74 63 6c 4d 61 63 46 43 6d 64 2e 63 2c 76 0a  /tclMacFCmd.c,v.
2bd0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
2be0: 69 6f 6e 20 31 2e 31 39 0a 64 69 66 66 20 2d 75  ion 1.19.diff -u
2bf0: 20 2d 72 31 2e 31 39 20 74 63 6c 4d 61 63 46 43   -r1.19 tclMacFC
2c00: 6d 64 2e 63 0a 2d 2d 2d 20 6d 61 63 2f 74 63 6c  md.c.--- mac/tcl
2c10: 4d 61 63 46 43 6d 64 2e 63 09 34 20 46 65 62 20  MacFCmd.c.4 Feb 
2c20: 32 30 30 33 20 31 37 3a 30 36 3a 35 31 20 2d 30  2003 17:06:51 -0
2c30: 30 30 30 09 31 2e 31 39 0a 2b 2b 2b 20 6d 61 63  000.1.19.+++ mac
2c40: 2f 74 63 6c 4d 61 63 46 43 6d 64 2e 63 09 31 34  /tclMacFCmd.c.14
2c50: 20 4d 61 79 20 32 30 30 33 20 31 39 3a 31 33 3a   May 2003 19:13:
2c60: 33 32 20 2d 30 30 30 30 0a 40 40 20 2d 32 36 2c  32 -0000.@@ -26,
2c70: 36 20 2b 32 36 2c 37 20 40 40 0a 20 23 69 6e 63  6 +26,7 @@. #inc
2c80: 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a  lude <string.h>.
2c90: 20 23 69 6e 63 6c 75 64 65 20 3c 46 69 6e 64 65   #include <Finde
2ca0: 72 2e 68 3e 0a 20 23 69 6e 63 6c 75 64 65 20 3c  r.h>. #include <
2cb0: 41 6c 69 61 73 65 73 2e 68 3e 0a 2b 23 69 6e 63  Aliases.h>.+#inc
2cc0: 6c 75 64 65 20 3c 52 65 73 6f 75 72 63 65 73 2e  lude <Resources.
2cd0: 68 3e 0a 20 0a 20 2f 2a 0a 20 20 2a 20 43 61 6c  h>. . /*.  * Cal
2ce0: 6c 62 61 63 6b 20 66 6f 72 20 74 68 65 20 66 69  lback for the fi
2cf0: 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 63 6f  le attributes co
2d00: 64 65 2e 0a 40 40 20 2d 35 32 2c 31 37 20 2b 35  de..@@ -52,17 +5
2d10: 33 2c 31 39 20 40 40 0a 20 23 64 65 66 69 6e 65  3,19 @@. #define
2d20: 20 4d 41 43 5f 48 49 44 44 45 4e 5f 41 54 54 52   MAC_HIDDEN_ATTR
2d30: 49 42 55 54 45 09 31 0a 20 23 64 65 66 69 6e 65  IBUTE.1. #define
2d40: 20 4d 41 43 5f 52 45 41 44 4f 4e 4c 59 5f 41 54   MAC_READONLY_AT
2d50: 54 52 49 42 55 54 45 09 32 0a 20 23 64 65 66 69  TRIBUTE.2. #defi
2d60: 6e 65 20 4d 41 43 5f 54 59 50 45 5f 41 54 54 52  ne MAC_TYPE_ATTR
2d70: 49 42 55 54 45 09 33 0a 2b 23 64 65 66 69 6e 65  IBUTE.3.+#define
2d80: 20 4d 41 43 5f 52 53 52 43 4c 45 4e 47 54 48 5f   MAC_RSRCLENGTH_
2d90: 41 54 54 52 49 42 55 54 45 09 34 0a 20 0a 20 2f  ATTRIBUTE.4. . /
2da0: 2a 0a 20 20 2a 20 47 6c 6f 62 61 6c 20 76 61 72  *.  * Global var
2db0: 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 66  iables for the f
2dc0: 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 63  ile attributes c
2dd0: 6f 64 65 2e 0a 20 20 2a 2f 0a 20 0a 20 43 4f 4e  ode..  */. . CON
2de0: 53 54 20 63 68 61 72 20 2a 74 63 6c 70 46 69 6c  ST char *tclpFil
2df0: 65 41 74 74 72 53 74 72 69 6e 67 73 5b 5d 20 3d  eAttrStrings[] =
2e00: 20 7b 22 2d 63 72 65 61 74 6f 72 22 2c 20 22 2d   {"-creator", "-
2e10: 68 69 64 64 65 6e 22 2c 20 22 2d 72 65 61 64 6f  hidden", "-reado
2e20: 6e 6c 79 22 2c 0a 2d 09 22 2d 74 79 70 65 22 2c  nly",.-."-type",
2e30: 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 7d 3b   (char *) NULL};
2e40: 0a 2b 09 22 2d 74 79 70 65 22 2c 20 22 2d 72 73  .+."-type", "-rs
2e50: 72 63 6c 65 6e 67 74 68 22 2c 20 28 63 68 61 72  rclength", (char
2e60: 20 2a 29 20 4e 55 4c 4c 7d 3b 0a 20 43 4f 4e 53   *) NULL};. CONS
2e70: 54 20 54 63 6c 46 69 6c 65 41 74 74 72 50 72 6f  T TclFileAttrPro
2e80: 63 73 20 74 63 6c 70 46 69 6c 65 41 74 74 72 50  cs tclpFileAttrP
2e90: 72 6f 63 73 5b 5d 20 3d 20 7b 0a 20 09 7b 47 65  rocs[] = {. .{Ge
2ea0: 74 46 69 6c 65 46 69 6e 64 65 72 41 74 74 72 69  tFileFinderAttri
2eb0: 62 75 74 65 73 2c 20 53 65 74 46 69 6c 65 46 69  butes, SetFileFi
2ec0: 6e 64 65 72 41 74 74 72 69 62 75 74 65 73 7d 2c  nderAttributes},
2ed0: 0a 20 09 7b 47 65 74 46 69 6c 65 46 69 6e 64 65  . .{GetFileFinde
2ee0: 72 41 74 74 72 69 62 75 74 65 73 2c 20 53 65 74  rAttributes, Set
2ef0: 46 69 6c 65 46 69 6e 64 65 72 41 74 74 72 69 62  FileFinderAttrib
2f00: 75 74 65 73 7d 2c 0a 20 09 7b 47 65 74 46 69 6c  utes},. .{GetFil
2f10: 65 52 65 61 64 4f 6e 6c 79 2c 20 53 65 74 46 69  eReadOnly, SetFi
2f20: 6c 65 52 65 61 64 4f 6e 6c 79 7d 2c 0a 2b 09 7b  leReadOnly},.+.{
2f30: 47 65 74 46 69 6c 65 46 69 6e 64 65 72 41 74 74  GetFileFinderAtt
2f40: 72 69 62 75 74 65 73 2c 20 53 65 74 46 69 6c 65  ributes, SetFile
2f50: 46 69 6e 64 65 72 41 74 74 72 69 62 75 74 65 73  FinderAttributes
2f60: 7d 2c 0a 20 09 7b 47 65 74 46 69 6c 65 46 69 6e  },. .{GetFileFin
2f70: 64 65 72 41 74 74 72 69 62 75 74 65 73 2c 20 53  derAttributes, S
2f80: 65 74 46 69 6c 65 46 69 6e 64 65 72 41 74 74 72  etFileFinderAttr
2f90: 69 62 75 74 65 73 7d 7d 3b 0a 20 0a 20 2f 2a 0a  ibutes}};. . /*.
2fa0: 40 40 20 2d 31 31 30 32 2c 36 20 2b 31 31 30 35  @@ -1102,6 +1105
2fb0: 2c 37 20 40 40 0a 20 20 20 20 20 4f 53 45 72 72  ,7 @@.     OSErr
2fc0: 20 65 72 72 3b 0a 20 20 20 20 20 46 53 53 70 65   err;.     FSSpe
2fd0: 63 20 66 69 6c 65 53 70 65 63 3b 0a 20 20 20 20  c fileSpec;.    
2fe0: 20 46 49 6e 66 6f 20 66 69 6e 66 6f 3b 0a 2b 20   FInfo finfo;.+ 
2ff0: 20 20 20 43 49 6e 66 6f 50 42 52 65 63 20 70 62     CInfoPBRec pb
3000: 3b 0a 20 20 20 20 20 43 4f 4e 53 54 20 63 68 61  ;.     CONST cha
3010: 72 20 2a 6e 61 74 69 76 65 3b 0a 20 0a 20 20 20  r *native;. .   
3020: 20 20 6e 61 74 69 76 65 3d 54 63 6c 5f 46 53 47    native=Tcl_FSG
3030: 65 74 4e 61 74 69 76 65 50 61 74 68 28 66 69 6c  etNativePath(fil
3040: 65 4e 61 6d 65 29 3b 0a 40 40 20 2d 31 31 30 39  eName);.@@ -1109
3050: 2c 37 20 2b 31 31 31 33 2c 31 36 20 40 40 0a 20  ,7 +1113,16 @@. 
3060: 09 20 20 20 20 6e 61 74 69 76 65 2c 20 26 66 69  .    native, &fi
3070: 6c 65 53 70 65 63 29 3b 0a 20 0a 20 20 20 20 20  leSpec);. .     
3080: 69 66 20 28 65 72 72 20 3d 3d 20 6e 6f 45 72 72  if (err == noErr
3090: 29 20 7b 0a 2d 20 20 20 20 09 65 72 72 20 3d 20  ) {.-    .err = 
30a0: 46 53 70 47 65 74 46 49 6e 66 6f 28 26 66 69 6c  FSpGetFInfo(&fil
30b0: 65 53 70 65 63 2c 20 26 66 69 6e 66 6f 29 3b 0a  eSpec, &finfo);.
30c0: 2b 20 20 20 20 09 69 66 20 28 6f 62 6a 49 6e 64  +    .if (objInd
30d0: 65 78 20 21 3d 20 4d 41 43 5f 52 53 52 43 4c 45  ex != MAC_RSRCLE
30e0: 4e 47 54 48 5f 41 54 54 52 49 42 55 54 45 29 20  NGTH_ATTRIBUTE) 
30f0: 7b 0a 2b 20 20 20 20 09 20 20 20 20 65 72 72 20  {.+    .    err 
3100: 3d 20 46 53 70 47 65 74 46 49 6e 66 6f 28 26 66  = FSpGetFInfo(&f
3110: 69 6c 65 53 70 65 63 2c 20 26 66 69 6e 66 6f 29  ileSpec, &finfo)
3120: 3b 0a 2b 20 20 20 20 09 7d 20 65 6c 73 65 20 7b  ;.+    .} else {
3130: 0a 2b 20 20 20 20 09 20 20 20 20 70 62 2e 68 46  .+    .    pb.hF
3140: 69 6c 65 49 6e 66 6f 2e 69 6f 43 6f 6d 70 6c 65  ileInfo.ioComple
3150: 74 69 6f 6e 20 3d 20 4e 55 4c 4c 3b 0a 2b 20 20  tion = NULL;.+  
3160: 20 20 09 20 20 20 20 70 62 2e 68 46 69 6c 65 49    .    pb.hFileI
3170: 6e 66 6f 2e 69 6f 4e 61 6d 65 50 74 72 20 3d 20  nfo.ioNamePtr = 
3180: 66 69 6c 65 53 70 65 63 2e 6e 61 6d 65 3b 0a 2b  fileSpec.name;.+
3190: 20 20 20 20 09 20 20 20 20 70 62 2e 68 46 69 6c      .    pb.hFil
31a0: 65 49 6e 66 6f 2e 69 6f 56 52 65 66 4e 75 6d 20  eInfo.ioVRefNum 
31b0: 3d 20 66 69 6c 65 53 70 65 63 2e 76 52 65 66 4e  = fileSpec.vRefN
31c0: 75 6d 3b 0a 2b 20 20 20 20 09 20 20 20 20 70 62  um;.+    .    pb
31d0: 2e 68 46 69 6c 65 49 6e 66 6f 2e 69 6f 46 44 69  .hFileInfo.ioFDi
31e0: 72 49 6e 64 65 78 20 3d 20 30 3b 0a 2b 20 20 20  rIndex = 0;.+   
31f0: 20 09 20 20 20 20 70 62 2e 68 46 69 6c 65 49 6e   .    pb.hFileIn
3200: 66 6f 2e 69 6f 44 69 72 49 44 20 3d 20 66 69 6c  fo.ioDirID = fil
3210: 65 53 70 65 63 2e 70 61 72 49 44 3b 0a 2b 20 20  eSpec.parID;.+  
3220: 20 20 09 20 20 20 20 65 72 72 20 3d 20 50 42 47    .    err = PBG
3230: 65 74 43 61 74 49 6e 66 6f 28 26 70 62 2c 20 30  etCatInfo(&pb, 0
3240: 29 3b 0a 2b 20 20 20 20 09 7d 0a 20 20 20 20 20  );.+    .}.     
3250: 7d 0a 20 20 20 20 20 0a 20 20 20 20 20 69 66 20  }.     .     if 
3260: 28 65 72 72 20 3d 3d 20 6e 6f 45 72 72 29 20 7b  (err == noErr) {
3270: 0a 40 40 20 2d 31 31 32 34 2c 36 20 2b 31 31 33  .@@ -1124,6 +113
3280: 37 2c 39 20 40 40 0a 20 20 20 20 20 09 20 20 20  7,9 @@.     .   
3290: 20 63 61 73 65 20 4d 41 43 5f 54 59 50 45 5f 41   case MAC_TYPE_A
32a0: 54 54 52 49 42 55 54 45 3a 0a 20 20 20 20 20 09  TTRIBUTE:.     .
32b0: 20 20 20 20 09 2a 61 74 74 72 69 62 75 74 65 50      .*attributeP
32c0: 74 72 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 4f  trPtr = Tcl_NewO
32d0: 53 54 79 70 65 4f 62 6a 28 66 69 6e 66 6f 2e 66  STypeObj(finfo.f
32e0: 64 54 79 70 65 29 3b 0a 20 20 20 20 20 09 20 20  dType);.     .  
32f0: 20 20 09 62 72 65 61 6b 3b 0a 2b 20 20 20 20 09    .break;.+    .
3300: 20 20 20 20 63 61 73 65 20 4d 41 43 5f 52 53 52      case MAC_RSR
3310: 43 4c 45 4e 47 54 48 5f 41 54 54 52 49 42 55 54  CLENGTH_ATTRIBUT
3320: 45 3a 0a 2b 20 20 20 20 09 20 20 20 20 09 2a 61  E:.+    .    .*a
3330: 74 74 72 69 62 75 74 65 50 74 72 50 74 72 20 3d  ttributePtrPtr =
3340: 20 54 63 6c 5f 4e 65 77 4c 6f 6e 67 4f 62 6a 28   Tcl_NewLongObj(
3350: 70 62 2e 68 46 69 6c 65 49 6e 66 6f 2e 69 6f 46  pb.hFileInfo.ioF
3360: 6c 52 4c 67 4c 65 6e 29 3b 0a 2b 20 20 20 20 09  lRLgLen);.+    .
3370: 20 20 20 20 09 62 72 65 61 6b 3b 0a 20 20 20 20      .break;.    
3380: 20 09 7d 0a 20 20 20 20 20 7d 20 65 6c 73 65 20   .}.     } else 
3390: 69 66 20 28 65 72 72 20 3d 3d 20 66 6e 66 45 72  if (err == fnfEr
33a0: 72 29 20 7b 0a 20 20 20 20 20 09 6c 6f 6e 67 20  r) {.     .long 
33b0: 64 69 72 49 44 3b 0a 40 40 20 2d 31 31 33 34 2c  dirID;.@@ -1134,
33c0: 37 20 2b 31 31 35 30 2c 31 31 20 40 40 0a 20 20  7 +1150,11 @@.  
33d0: 20 20 20 09 20 20 20 20 69 66 20 28 6f 62 6a 49     .    if (objI
33e0: 6e 64 65 78 20 3d 3d 20 4d 41 43 5f 48 49 44 44  ndex == MAC_HIDD
33f0: 45 4e 5f 41 54 54 52 49 42 55 54 45 29 20 7b 0a  EN_ATTRIBUTE) {.
3400: 20 20 20 20 20 09 20 20 20 20 09 2a 61 74 74 72       .    .*attr
3410: 69 62 75 74 65 50 74 72 50 74 72 20 3d 20 54 63  ibutePtrPtr = Tc
3420: 6c 5f 4e 65 77 42 6f 6f 6c 65 61 6e 4f 62 6a 28  l_NewBooleanObj(
3430: 30 29 3b 0a 20 20 20 20 20 09 20 20 20 20 7d 20  0);.     .    } 
3440: 65 6c 73 65 20 7b 0a 2d 20 20 20 20 09 20 20 20  else {.-    .   
3450: 20 09 2a 61 74 74 72 69 62 75 74 65 50 74 72 50   .*attributePtrP
3460: 74 72 20 3d 20 54 63 6c 5f 4e 65 77 4f 53 54 79  tr = Tcl_NewOSTy
3470: 70 65 4f 62 6a 28 27 46 6c 64 72 27 29 3b 0a 2b  peObj('Fldr');.+
3480: 20 20 20 20 09 20 20 20 20 09 2f 2a 20 44 69 72      .    ./* Dir
3490: 65 63 74 6f 72 69 65 73 20 6f 6e 6c 79 20 73 75  ectories only su
34a0: 70 70 6f 72 74 20 61 74 74 72 69 62 75 74 65 20  pport attribute 
34b0: 22 2d 68 69 64 64 65 6e 22 20 2a 2f 0a 2b 20 20  "-hidden" */.+  
34c0: 20 20 09 20 20 20 20 09 65 72 72 6e 6f 20 3d 20    .    .errno = 
34d0: 45 49 53 44 49 52 3b 0a 2b 20 20 20 20 09 20 20  EISDIR;.+    .  
34e0: 20 20 09 54 63 6c 5f 41 70 70 65 6e 64 52 65 73    .Tcl_AppendRes
34f0: 75 6c 74 28 69 6e 74 65 72 70 2c 20 22 69 6e 76  ult(interp, "inv
3500: 61 6c 69 64 20 61 74 74 72 69 62 75 74 65 3a 20  alid attribute: 
3510: 22 2c 20 0a 2b 20 20 20 20 09 20 20 20 20 09 20  ", .+    .    . 
3520: 20 20 20 20 20 20 20 54 63 6c 5f 50 6f 73 69 78         Tcl_Posix
3530: 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c 20 28  Error(interp), (
3540: 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b  char *) NULL);.+
3550: 20 20 20 20 09 20 20 20 20 09 72 65 74 75 72 6e      .    .return
3560: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 20   TCL_ERROR;.    
3570: 20 09 20 20 20 20 7d 0a 20 20 20 20 20 09 7d 0a   .    }.     .}.
3580: 20 20 20 20 20 7d 0a 40 40 20 2d 31 32 34 34 2c       }.@@ -1244,
3590: 36 20 2b 31 32 36 34 2c 37 20 40 40 0a 20 20 20  6 +1264,7 @@.   
35a0: 20 20 4f 53 45 72 72 20 65 72 72 3b 0a 20 20 20    OSErr err;.   
35b0: 20 20 46 53 53 70 65 63 20 66 69 6c 65 53 70 65    FSSpec fileSpe
35c0: 63 3b 0a 20 20 20 20 20 46 49 6e 66 6f 20 66 69  c;.     FInfo fi
35d0: 6e 66 6f 3b 0a 2b 20 20 20 20 43 49 6e 66 6f 50  nfo;.+    CInfoP
35e0: 42 52 65 63 20 70 62 3b 0a 20 20 20 20 20 43 4f  BRec pb;.     CO
35f0: 4e 53 54 20 63 68 61 72 20 2a 6e 61 74 69 76 65  NST char *native
3600: 3b 0a 20 0a 20 20 20 20 20 6e 61 74 69 76 65 3d  ;. .     native=
3610: 54 63 6c 5f 46 53 47 65 74 4e 61 74 69 76 65 50  Tcl_FSGetNativeP
3620: 61 74 68 28 66 69 6c 65 4e 61 6d 65 29 3b 0a 40  ath(fileName);.@
3630: 40 20 2d 31 32 35 31 2c 37 20 2b 31 32 37 32 2c  @ -1251,7 +1272,
3640: 31 36 20 40 40 0a 20 09 20 20 20 20 6e 61 74 69  16 @@. .    nati
3650: 76 65 2c 20 26 66 69 6c 65 53 70 65 63 29 3b 0a  ve, &fileSpec);.
3660: 20 20 20 20 20 0a 20 20 20 20 20 69 66 20 28 65       .     if (e
3670: 72 72 20 3d 3d 20 6e 6f 45 72 72 29 20 7b 0a 2d  rr == noErr) {.-
3680: 20 20 20 20 09 65 72 72 20 3d 20 46 53 70 47 65      .err = FSpGe
3690: 74 46 49 6e 66 6f 28 26 66 69 6c 65 53 70 65 63  tFInfo(&fileSpec
36a0: 2c 20 26 66 69 6e 66 6f 29 3b 0a 2b 20 20 20 20  , &finfo);.+    
36b0: 09 69 66 20 28 6f 62 6a 49 6e 64 65 78 20 21 3d  .if (objIndex !=
36c0: 20 4d 41 43 5f 52 53 52 43 4c 45 4e 47 54 48 5f   MAC_RSRCLENGTH_
36d0: 41 54 54 52 49 42 55 54 45 29 20 7b 0a 2b 20 20  ATTRIBUTE) {.+  
36e0: 20 20 09 20 20 20 20 65 72 72 20 3d 20 46 53 70    .    err = FSp
36f0: 47 65 74 46 49 6e 66 6f 28 26 66 69 6c 65 53 70  GetFInfo(&fileSp
3700: 65 63 2c 20 26 66 69 6e 66 6f 29 3b 0a 2b 20 20  ec, &finfo);.+  
3710: 20 20 09 7d 20 65 6c 73 65 20 7b 0a 2b 20 20 20    .} else {.+   
3720: 20 09 20 20 20 20 70 62 2e 68 46 69 6c 65 49 6e   .    pb.hFileIn
3730: 66 6f 2e 69 6f 43 6f 6d 70 6c 65 74 69 6f 6e 20  fo.ioCompletion 
3740: 3d 20 4e 55 4c 4c 3b 0a 2b 20 20 20 20 09 20 20  = NULL;.+    .  
3750: 20 20 70 62 2e 68 46 69 6c 65 49 6e 66 6f 2e 69    pb.hFileInfo.i
3760: 6f 4e 61 6d 65 50 74 72 20 3d 20 66 69 6c 65 53  oNamePtr = fileS
3770: 70 65 63 2e 6e 61 6d 65 3b 0a 2b 20 20 20 20 09  pec.name;.+    .
3780: 20 20 20 20 70 62 2e 68 46 69 6c 65 49 6e 66 6f      pb.hFileInfo
3790: 2e 69 6f 56 52 65 66 4e 75 6d 20 3d 20 66 69 6c  .ioVRefNum = fil
37a0: 65 53 70 65 63 2e 76 52 65 66 4e 75 6d 3b 0a 2b  eSpec.vRefNum;.+
37b0: 20 20 20 20 09 20 20 20 20 70 62 2e 68 46 69 6c      .    pb.hFil
37c0: 65 49 6e 66 6f 2e 69 6f 46 44 69 72 49 6e 64 65  eInfo.ioFDirInde
37d0: 78 20 3d 20 30 3b 0a 2b 20 20 20 20 09 20 20 20  x = 0;.+    .   
37e0: 20 70 62 2e 68 46 69 6c 65 49 6e 66 6f 2e 69 6f   pb.hFileInfo.io
37f0: 44 69 72 49 44 20 3d 20 66 69 6c 65 53 70 65 63  DirID = fileSpec
3800: 2e 70 61 72 49 44 3b 0a 2b 20 20 20 20 09 20 20  .parID;.+    .  
3810: 20 20 65 72 72 20 3d 20 50 42 47 65 74 43 61 74    err = PBGetCat
3820: 49 6e 66 6f 28 26 70 62 2c 20 30 29 3b 0a 2b 20  Info(&pb, 0);.+ 
3830: 20 20 20 09 7d 0a 20 20 20 20 20 7d 0a 20 20 20     .}.     }.   
3840: 20 20 0a 20 20 20 20 20 69 66 20 28 65 72 72 20    .     if (err 
3850: 3d 3d 20 6e 6f 45 72 72 29 20 7b 0a 40 40 20 2d  == noErr) {.@@ -
3860: 31 32 38 32 2c 38 20 2b 31 33 31 32 2c 34 37 20  1282,8 +1312,47 
3870: 40 40 0a 20 20 20 20 20 09 20 20 20 20 09 20 20  @@.     .    .  
3880: 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52    return TCL_ERR
3890: 4f 52 3b 0a 20 20 20 20 20 09 20 20 20 20 09 7d  OR;.     .    .}
38a0: 0a 20 20 20 20 20 09 20 20 20 20 09 62 72 65 61  .     .    .brea
38b0: 6b 3b 0a 2b 20 20 20 20 09 20 20 20 20 63 61 73  k;.+    .    cas
38c0: 65 20 4d 41 43 5f 52 53 52 43 4c 45 4e 47 54 48  e MAC_RSRCLENGTH
38d0: 5f 41 54 54 52 49 42 55 54 45 3a 0a 2b 20 20 20  _ATTRIBUTE:.+   
38e0: 20 09 20 20 20 20 7b 0a 2b 20 20 20 20 09 20 20   .    {.+    .  
38f0: 20 20 09 6c 6f 6e 67 20 6e 65 77 52 73 72 63 46    .long newRsrcF
3900: 6f 72 6b 53 69 7a 65 3b 0a 2b 20 20 20 20 09 20  orkSize;.+    . 
3910: 20 20 20 09 0a 2b 20 20 20 20 09 20 20 20 20 09     ..+    .    .
3920: 69 66 20 28 54 63 6c 5f 47 65 74 4c 6f 6e 67 46  if (Tcl_GetLongF
3930: 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 20 61  romObj(interp, a
3940: 74 74 72 69 62 75 74 65 50 74 72 2c 0a 2b 20 20  ttributePtr,.+  
3950: 20 20 09 20 20 20 20 09 09 26 6e 65 77 52 73 72    .    ..&newRsr
3960: 63 46 6f 72 6b 53 69 7a 65 29 20 21 3d 20 54 43  cForkSize) != TC
3970: 4c 5f 4f 4b 29 20 7b 0a 2b 20 20 20 20 09 20 20  L_OK) {.+    .  
3980: 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 54 43    .    return TC
3990: 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 09 20  L_ERROR;.+    . 
39a0: 20 20 20 09 7d 0a 2b 09 09 69 66 28 6e 65 77 52     .}.+..if(newR
39b0: 73 72 63 46 6f 72 6b 53 69 7a 65 20 21 3d 20 70  srcForkSize != p
39c0: 62 2e 68 46 69 6c 65 49 6e 66 6f 2e 69 6f 46 6c  b.hFileInfo.ioFl
39d0: 52 4c 67 4c 65 6e 29 20 7b 0a 2b 09 09 20 20 20  RLgLen) {.+..   
39e0: 20 73 68 6f 72 74 20 72 66 3b 0a 2b 09 09 20 20   short rf;.+..  
39f0: 20 20 2f 2a 0a 2b 09 09 20 20 20 20 20 2a 20 4f    /*.+..     * O
3a00: 6e 6c 79 20 73 65 74 74 69 6e 67 20 72 73 72 63  nly setting rsrc
3a10: 6c 65 6e 67 74 68 20 74 6f 20 30 20 74 6f 20 73  length to 0 to s
3a20: 74 72 69 70 0a 2b 09 09 20 20 20 20 20 2a 20 61  trip.+..     * a
3a30: 20 66 69 6c 65 27 73 20 72 65 73 6f 75 72 63 65   file's resource
3a40: 20 66 6f 72 6b 20 69 73 20 73 75 70 70 6f 72 74   fork is support
3a50: 65 64 2e 0a 2b 09 09 20 20 20 20 20 2a 2f 0a 2b  ed..+..     */.+
3a60: 09 09 20 20 20 20 69 66 28 6e 65 77 52 73 72 63  ..    if(newRsrc
3a70: 46 6f 72 6b 53 69 7a 65 20 21 3d 20 30 29 20 7b  ForkSize != 0) {
3a80: 0a 2b 09 09 09 54 63 6c 5f 41 70 70 65 6e 64 52  .+...Tcl_AppendR
3a90: 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 0a 2b 09  esult(interp,.+.
3aa0: 09 09 09 22 73 65 74 74 69 6e 67 20 6e 6f 6e 7a  ..."setting nonz
3ab0: 65 72 6f 20 72 73 72 63 6c 65 6e 67 74 68 20 6e  ero rsrclength n
3ac0: 6f 74 20 73 75 70 70 6f 72 74 65 64 22 2c 20 0a  ot supported", .
3ad0: 2b 09 09 09 09 28 63 68 61 72 20 2a 29 20 4e 55  +....(char *) NU
3ae0: 4c 4c 29 3b 0a 2b 09 09 09 72 65 74 75 72 6e 20  LL);.+...return 
3af0: 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 09 20 20  TCL_ERROR;.+..  
3b00: 20 20 7d 0a 2b 09 09 20 20 20 20 09 0a 2b 09 09    }.+..    ..+..
3b10: 20 20 20 20 69 66 20 28 28 72 66 20 3d 20 46 53      if ((rf = FS
3b20: 70 4f 70 65 6e 52 65 73 46 69 6c 65 28 26 66 69  pOpenResFile(&fi
3b30: 6c 65 53 70 65 63 2c 20 66 73 57 72 50 65 72 6d  leSpec, fsWrPerm
3b40: 29 29 20 3e 3d 20 30 29 20 7b 0a 2b 09 09 09 65  )) >= 0) {.+...e
3b50: 72 72 20 3d 20 53 65 74 45 4f 46 28 72 66 2c 20  rr = SetEOF(rf, 
3b60: 30 29 3b 0a 2b 09 09 09 43 6c 6f 73 65 52 65 73  0);.+...CloseRes
3b70: 46 69 6c 65 28 72 66 29 3b 0a 2b 09 09 20 20 20  File(rf);.+..   
3b80: 20 7d 0a 2b 09 0a 2b 09 09 20 20 20 20 69 66 20   }.+..+..    if 
3b90: 28 65 72 72 20 21 3d 20 6e 6f 45 72 72 29 20 7b  (err != noErr) {
3ba0: 0a 2b 09 09 20 20 20 20 09 65 72 72 6e 6f 20 3d  .+..    .errno =
3bb0: 20 54 63 6c 4d 61 63 4f 53 45 72 72 6f 72 54 6f   TclMacOSErrorTo
3bc0: 50 6f 73 69 78 45 72 72 6f 72 28 65 72 72 29 3b  PosixError(err);
3bd0: 0a 2b 09 09 09 54 63 6c 5f 41 70 70 65 6e 64 52  .+...Tcl_AppendR
3be0: 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 0a 2b  esult(interp, .+
3bf0: 09 09 09 09 22 63 6f 75 6c 64 20 6e 6f 74 20 74  ...."could not t
3c00: 72 75 6e 63 61 74 65 20 72 65 73 6f 75 72 63 65  runcate resource
3c10: 20 66 6f 72 6b 20 6f 66 20 5c 22 22 2c 0a 2b 09   fork of \"",.+.
3c20: 09 09 09 54 63 6c 5f 47 65 74 53 74 72 69 6e 67  ...Tcl_GetString
3c30: 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c 22 3a  (fileName), "\":
3c40: 20 22 2c 0a 2b 09 09 09 09 54 63 6c 5f 50 6f 73   ",.+....Tcl_Pos
3c50: 69 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c  ixError(interp),
3c60: 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b   (char *) NULL);
3c70: 0a 2b 09 09 09 72 65 74 75 72 6e 20 54 43 4c 5f  .+...return TCL_
3c80: 45 52 52 4f 52 3b 0a 2b 09 09 20 20 20 20 7d 0a  ERROR;.+..    }.
3c90: 2b 09 09 7d 0a 2b 20 20 20 20 09 20 20 20 20 09  +..}.+    .    .
3ca0: 62 72 65 61 6b 3b 0a 2b 20 20 20 20 09 20 20 20  break;.+    .   
3cb0: 20 7d 0a 2b 20 20 20 20 09 7d 0a 2b 20 20 20 20   }.+    .}.+    
3cc0: 09 69 66 20 28 6f 62 6a 49 6e 64 65 78 20 21 3d  .if (objIndex !=
3cd0: 20 4d 41 43 5f 52 53 52 43 4c 45 4e 47 54 48 5f   MAC_RSRCLENGTH_
3ce0: 41 54 54 52 49 42 55 54 45 29 20 7b 0a 2b 20 20  ATTRIBUTE) {.+  
3cf0: 20 20 09 20 20 20 20 65 72 72 20 3d 20 46 53 70    .    err = FSp
3d00: 53 65 74 46 49 6e 66 6f 28 26 66 69 6c 65 53 70  SetFInfo(&fileSp
3d10: 65 63 2c 20 26 66 69 6e 66 6f 29 3b 0a 20 20 20  ec, &finfo);.   
3d20: 20 20 09 7d 0a 2d 20 20 20 20 09 65 72 72 20 3d    .}.-    .err =
3d30: 20 46 53 70 53 65 74 46 49 6e 66 6f 28 26 66 69   FSpSetFInfo(&fi
3d40: 6c 65 53 70 65 63 2c 20 26 66 69 6e 66 6f 29 3b  leSpec, &finfo);
3d50: 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20  .     } else if 
3d60: 28 65 72 72 20 3d 3d 20 66 6e 66 45 72 72 29 20  (err == fnfErr) 
3d70: 7b 0a 20 20 20 20 20 09 6c 6f 6e 67 20 64 69 72  {.     .long dir
3d80: 49 44 3b 0a 20 20 20 20 20 09 42 6f 6f 6c 65 61  ID;.     .Boolea
3d90: 6e 20 69 73 44 69 72 65 63 74 6f 72 79 20 3d 20  n isDirectory = 
3da0: 30 3b 0a 49 6e 64 65 78 3a 20 6d 61 63 2f 74 63  0;.Index: mac/tc
3db0: 6c 4d 61 63 52 65 73 6f 75 72 63 65 2e 63 0a 3d  lMacResource.c.=
3dc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3dd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3de0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3df0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3e00: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76  ==.RCS file: /cv
3e10: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 6d 61  sroot/tcl/tcl/ma
3e20: 63 2f 74 63 6c 4d 61 63 52 65 73 6f 75 72 63 65  c/tclMacResource
3e30: 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20  .c,v.retrieving 
3e40: 72 65 76 69 73 69 6f 6e 20 31 2e 31 34 0a 64 69  revision 1.14.di
3e50: 66 66 20 2d 75 20 2d 72 31 2e 31 34 20 74 63 6c  ff -u -r1.14 tcl
3e60: 4d 61 63 52 65 73 6f 75 72 63 65 2e 63 0a 2d 2d  MacResource.c.--
3e70: 2d 20 6d 61 63 2f 74 63 6c 4d 61 63 52 65 73 6f  - mac/tclMacReso
3e80: 75 72 63 65 2e 63 09 35 20 4a 75 6e 20 32 30 30  urce.c.5 Jun 200
3e90: 32 20 31 31 3a 35 39 3a 34 39 20 2d 30 30 30 30  2 11:59:49 -0000
3ea0: 09 31 2e 31 34 0a 2b 2b 2b 20 6d 61 63 2f 74 63  .1.14.+++ mac/tc
3eb0: 6c 4d 61 63 52 65 73 6f 75 72 63 65 2e 63 09 31  lMacResource.c.1
3ec0: 34 20 4d 61 79 20 32 30 30 33 20 31 39 3a 31 33  4 May 2003 19:13
3ed0: 3a 33 32 20 2d 30 30 30 30 0a 40 40 20 2d 31 37  :32 -0000.@@ -17
3ee0: 31 31 2c 32 34 20 2b 31 37 31 31 2c 32 39 20 40  11,24 +1711,29 @
3ef0: 40 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 54 79  @.     Tcl_ObjTy
3f00: 70 65 20 2a 6f 6c 64 54 79 70 65 50 74 72 20 3d  pe *oldTypePtr =
3f10: 20 6f 62 6a 50 74 72 2d 3e 74 79 70 65 50 74 72   objPtr->typePtr
3f20: 3b 0a 20 20 20 20 20 63 68 61 72 20 2a 73 74 72  ;.     char *str
3f30: 69 6e 67 3b 0a 20 20 20 20 20 69 6e 74 20 6c 65  ing;.     int le
3f40: 6e 67 74 68 3b 0a 2d 20 20 20 20 6c 6f 6e 67 20  ngth;.-    long 
3f50: 6e 65 77 4f 53 54 79 70 65 3b 0a 2b 20 20 20 20  newOSType;.+    
3f60: 4f 53 54 79 70 65 20 6e 65 77 4f 53 54 79 70 65  OSType newOSType
3f70: 20 3d 20 30 55 4c 3b 0a 2b 20 20 20 20 54 63 6c   = 0UL;.+    Tcl
3f80: 5f 44 53 74 72 69 6e 67 20 64 73 3b 0a 20 0a 20  _DString ds;. . 
3f90: 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 2a 20 47      /*.      * G
3fa0: 65 74 20 74 68 65 20 73 74 72 69 6e 67 20 72 65  et the string re
3fb0: 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 20 4d 61  presentation. Ma
3fc0: 6b 65 20 69 74 20 75 70 2d 74 6f 2d 64 61 74 65  ke it up-to-date
3fd0: 20 69 66 20 6e 65 63 65 73 73 61 72 79 2e 0a 20   if necessary.. 
3fe0: 20 20 20 20 20 2a 2f 0a 20 0a 20 20 20 20 20 73       */. .     s
3ff0: 74 72 69 6e 67 20 3d 20 54 63 6c 5f 47 65 74 53  tring = Tcl_GetS
4000: 74 72 69 6e 67 46 72 6f 6d 4f 62 6a 28 6f 62 6a  tringFromObj(obj
4010: 50 74 72 2c 20 26 6c 65 6e 67 74 68 29 3b 0a 2b  Ptr, &length);.+
4020: 20 20 20 20 54 63 6c 5f 55 74 66 54 6f 45 78 74      Tcl_UtfToExt
4030: 65 72 6e 61 6c 44 53 74 72 69 6e 67 28 4e 55 4c  ernalDString(NUL
4040: 4c 2c 20 73 74 72 69 6e 67 2c 20 6c 65 6e 67 74  L, string, lengt
4050: 68 2c 20 26 64 73 29 3b 0a 20 0a 2d 20 20 20 20  h, &ds);. .-    
4060: 69 66 20 28 6c 65 6e 67 74 68 20 21 3d 20 34 29  if (length != 4)
4070: 20 7b 0a 2b 20 20 20 20 69 66 20 28 54 63 6c 5f   {.+    if (Tcl_
4080: 44 53 74 72 69 6e 67 4c 65 6e 67 74 68 28 26 64  DStringLength(&d
4090: 73 29 20 3e 20 73 69 7a 65 6f 66 28 4f 53 54 79  s) > sizeof(OSTy
40a0: 70 65 29 29 20 7b 0a 20 09 69 66 20 28 69 6e 74  pe)) {. .if (int
40b0: 65 72 70 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20  erp != NULL) {. 
40c0: 09 20 20 20 20 54 63 6c 5f 52 65 73 65 74 52 65  .    Tcl_ResetRe
40d0: 73 75 6c 74 28 69 6e 74 65 72 70 29 3b 0a 20 09  sult(interp);. .
40e0: 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 53 74      Tcl_AppendSt
40f0: 72 69 6e 67 73 54 6f 4f 62 6a 28 54 63 6c 5f 47  ringsToObj(Tcl_G
4100: 65 74 4f 62 6a 52 65 73 75 6c 74 28 69 6e 74 65  etObjResult(inte
4110: 72 70 29 2c 0a 20 09 09 20 20 20 20 22 65 78 70  rp),. ..    "exp
4120: 65 63 74 65 64 20 4d 61 63 69 6e 74 6f 73 68 20  ected Macintosh 
4130: 4f 53 20 74 79 70 65 20 62 75 74 20 67 6f 74 20  OS type but got 
4140: 5c 22 22 2c 20 73 74 72 69 6e 67 2c 20 22 5c 22  \"", string, "\"
4150: 22 2c 0a 20 09 09 20 20 20 20 28 63 68 61 72 20  ",. ..    (char 
4160: 2a 29 20 4e 55 4c 4c 29 3b 0a 20 09 7d 0a 2b 09  *) NULL);. .}.+.
4170: 54 63 6c 5f 44 53 74 72 69 6e 67 46 72 65 65 28  Tcl_DStringFree(
4180: 26 64 73 29 3b 0a 20 09 72 65 74 75 72 6e 20 54  &ds);. .return T
4190: 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 7d  CL_ERROR;.     }
41a0: 0a 2d 20 20 20 20 6e 65 77 4f 53 54 79 70 65 20  .-    newOSType 
41b0: 3d 20 20 2a 28 28 6c 6f 6e 67 20 2a 29 20 73 74  =  *((long *) st
41c0: 72 69 6e 67 29 3b 0a 2b 20 20 20 20 6d 65 6d 63  ring);.+    memc
41d0: 70 79 28 26 6e 65 77 4f 53 54 79 70 65 2c 20 54  py(&newOSType, T
41e0: 63 6c 5f 44 53 74 72 69 6e 67 56 61 6c 75 65 28  cl_DStringValue(
41f0: 26 64 73 29 2c 0a 2b 20 20 20 20 20 20 20 20 20  &ds),.+         
4200: 20 20 20 28 73 69 7a 65 5f 74 29 20 54 63 6c 5f     (size_t) Tcl_
4210: 44 53 74 72 69 6e 67 4c 65 6e 67 74 68 28 26 64  DStringLength(&d
4220: 73 29 29 3b 0a 2b 20 20 20 20 54 63 6c 5f 44 53  s));.+    Tcl_DS
4230: 74 72 69 6e 67 46 72 65 65 28 26 64 73 29 3b 0a  tringFree(&ds);.
4240: 20 20 20 20 20 0a 20 20 20 20 20 2f 2a 0a 20 20       .     /*.  
4250: 20 20 20 20 2a 20 54 68 65 20 63 6f 6e 76 65 72      * The conver
4260: 73 69 6f 6e 20 74 6f 20 72 65 73 6f 75 72 63 65  sion to resource
4270: 20 74 79 70 65 20 73 75 63 63 65 65 64 65 64 2e   type succeeded.
4280: 20 46 72 65 65 20 74 68 65 20 6f 6c 64 20 69 6e   Free the old in
4290: 74 65 72 6e 61 6c 52 65 70 20 0a 40 40 20 2d 31  ternalRep .@@ -1
42a0: 37 36 37 2c 39 20 2b 31 37 37 32 2c 31 36 20 40  767,9 +1772,16 @
42b0: 40 0a 20 55 70 64 61 74 65 53 74 72 69 6e 67 4f  @. UpdateStringO
42c0: 66 4f 53 54 79 70 65 28 0a 20 20 20 20 20 72 65  fOSType(.     re
42d0: 67 69 73 74 65 72 20 54 63 6c 5f 4f 62 6a 20 2a  gister Tcl_Obj *
42e0: 6f 62 6a 50 74 72 29 09 2f 2a 20 49 6e 74 20 6f  objPtr)./* Int o
42f0: 62 6a 65 63 74 20 77 68 6f 73 65 20 73 74 72 69  bject whose stri
4300: 6e 67 20 72 65 70 20 74 6f 20 75 70 64 61 74 65  ng rep to update
4310: 2e 20 2a 2f 0a 20 7b 0a 2d 20 20 20 20 6f 62 6a  . */. {.-    obj
4320: 50 74 72 2d 3e 62 79 74 65 73 20 3d 20 63 6b 61  Ptr->bytes = cka
4330: 6c 6c 6f 63 28 35 29 3b 0a 2d 20 20 20 20 73 70  lloc(5);.-    sp
4340: 72 69 6e 74 66 28 6f 62 6a 50 74 72 2d 3e 62 79  rintf(objPtr->by
4350: 74 65 73 2c 20 22 25 2d 34 2e 34 73 22 2c 20 26  tes, "%-4.4s", &
4360: 28 6f 62 6a 50 74 72 2d 3e 69 6e 74 65 72 6e 61  (objPtr->interna
4370: 6c 52 65 70 2e 6c 6f 6e 67 56 61 6c 75 65 29 29  lRep.longValue))
4380: 3b 0a 2d 20 20 20 20 6f 62 6a 50 74 72 2d 3e 6c  ;.-    objPtr->l
4390: 65 6e 67 74 68 20 3d 20 34 3b 0a 2b 20 20 20 20  ength = 4;.+    
43a0: 63 68 61 72 20 73 74 72 69 6e 67 5b 73 69 7a 65  char string[size
43b0: 6f 66 28 4f 53 54 79 70 65 29 2b 31 5d 3b 0a 2b  of(OSType)+1];.+
43c0: 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 20      Tcl_DString 
43d0: 64 73 3b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 6d  ds;.+    .+    m
43e0: 65 6d 63 70 79 28 73 74 72 69 6e 67 2c 20 26 28  emcpy(string, &(
43f0: 6f 62 6a 50 74 72 2d 3e 69 6e 74 65 72 6e 61 6c  objPtr->internal
4400: 52 65 70 2e 6c 6f 6e 67 56 61 6c 75 65 29 2c 20  Rep.longValue), 
4410: 73 69 7a 65 6f 66 28 4f 53 54 79 70 65 29 29 3b  sizeof(OSType));
4420: 0a 2b 20 20 20 20 73 74 72 69 6e 67 5b 73 69 7a  .+    string[siz
4430: 65 6f 66 28 4f 53 54 79 70 65 29 5d 20 3d 20 27  eof(OSType)] = '
4440: 5c 30 27 3b 0a 2b 20 20 20 20 54 63 6c 5f 45 78  \0';.+    Tcl_Ex
4450: 74 65 72 6e 61 6c 54 6f 55 74 66 44 53 74 72 69  ternalToUtfDStri
4460: 6e 67 28 4e 55 4c 4c 2c 20 73 74 72 69 6e 67 2c  ng(NULL, string,
4470: 20 2d 31 2c 20 26 64 73 29 3b 0a 2b 20 20 20 20   -1, &ds);.+    
4480: 6f 62 6a 50 74 72 2d 3e 62 79 74 65 73 20 3d 20  objPtr->bytes = 
4490: 63 6b 61 6c 6c 6f 63 28 54 63 6c 5f 44 53 74 72  ckalloc(Tcl_DStr
44a0: 69 6e 67 4c 65 6e 67 74 68 28 26 64 73 29 20 2b  ingLength(&ds) +
44b0: 20 31 29 3b 0a 2b 20 20 20 20 6d 65 6d 63 70 79   1);.+    memcpy
44c0: 28 6f 62 6a 50 74 72 2d 3e 62 79 74 65 73 2c 20  (objPtr->bytes, 
44d0: 54 63 6c 5f 44 53 74 72 69 6e 67 56 61 6c 75 65  Tcl_DStringValue
44e0: 28 26 64 73 29 2c 20 54 63 6c 5f 44 53 74 72 69  (&ds), Tcl_DStri
44f0: 6e 67 4c 65 6e 67 74 68 28 26 64 73 29 20 2b 20  ngLength(&ds) + 
4500: 31 29 3b 0a 2b 20 20 20 20 6f 62 6a 50 74 72 2d  1);.+    objPtr-
4510: 3e 6c 65 6e 67 74 68 20 3d 20 54 63 6c 5f 44 53  >length = Tcl_DS
4520: 74 72 69 6e 67 4c 65 6e 67 74 68 28 26 64 73 29  tringLength(&ds)
4530: 3b 0a 2b 20 20 20 20 54 63 6c 5f 44 53 74 72 69  ;.+    Tcl_DStri
4540: 6e 67 46 72 65 65 28 26 64 73 29 3b 0a 20 7d 0a  ngFree(&ds);. }.
4550: 20 0c 0a 20 2f 2a 0a 49 6e 64 65 78 3a 20 6d 61   .. /*.Index: ma
4560: 63 6f 73 78 2f 74 63 6c 4d 61 63 4f 53 58 46 43  cosx/tclMacOSXFC
4570: 6d 64 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  md.c.===========
4580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
45a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
45b0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c  ========.RCS fil
45c0: 65 3a 20 6d 61 63 6f 73 78 2f 74 63 6c 4d 61 63  e: macosx/tclMac
45d0: 4f 53 58 46 43 6d 64 2e 63 0a 64 69 66 66 20 2d  OSXFCmd.c.diff -
45e0: 4e 20 6d 61 63 6f 73 78 2f 74 63 6c 4d 61 63 4f  N macosx/tclMacO
45f0: 53 58 46 43 6d 64 2e 63 0a 2d 2d 2d 20 2f 64 65  SXFCmd.c.--- /de
4600: 76 2f 6e 75 6c 6c 09 31 20 4a 61 6e 20 31 39 37  v/null.1 Jan 197
4610: 30 20 30 30 3a 30 30 3a 30 30 20 2d 30 30 30 30  0 00:00:00 -0000
4620: 0a 2b 2b 2b 20 6d 61 63 6f 73 78 2f 74 63 6c 4d  .+++ macosx/tclM
4630: 61 63 4f 53 58 46 43 6d 64 2e 63 09 31 34 20 4d  acOSXFCmd.c.14 M
4640: 61 79 20 32 30 30 33 20 31 39 3a 31 33 3a 33 32  ay 2003 19:13:32
4650: 20 2d 30 30 30 30 0a 40 40 20 2d 30 2c 30 20 2b   -0000.@@ -0,0 +
4660: 31 2c 34 36 32 20 40 40 0a 2b 2f 2a 0a 2b 20 2a  1,462 @@.+/*.+ *
4670: 20 74 63 6c 4d 61 63 4f 53 58 46 43 6d 64 2e 63   tclMacOSXFCmd.c
4680: 0a 2b 20 2a 0a 2b 20 2a 20 20 20 20 20 20 54 68  .+ *.+ *      Th
4690: 69 73 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e  is file implemen
46a0: 74 73 20 74 68 65 20 4d 61 63 4f 53 58 20 73 70  ts the MacOSX sp
46b0: 65 63 69 66 69 63 20 70 6f 72 74 69 6f 6e 20 6f  ecific portion o
46c0: 66 20 66 69 6c 65 20 6d 61 6e 69 70 75 6c 61 74  f file manipulat
46d0: 69 6f 6e 20 0a 2b 20 2a 20 20 20 20 20 20 73 75  ion .+ *      su
46e0: 62 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74 68 65  bcommands of the
46f0: 20 22 66 69 6c 65 22 20 63 6f 6d 6d 61 6e 64 2e   "file" command.
4700: 0a 2b 20 2a 0a 2b 20 2a 20 43 6f 70 79 72 69 67  .+ *.+ * Copyrig
4710: 68 74 20 28 63 29 20 32 30 30 33 20 54 63 6c 20  ht (c) 2003 Tcl 
4720: 43 6f 72 65 20 54 65 61 6d 2e 0a 2b 20 2a 0a 2b  Core Team..+ *.+
4730: 20 2a 20 53 65 65 20 74 68 65 20 66 69 6c 65 20   * See the file 
4740: 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20  "license.terms" 
4750: 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  for information 
4760: 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64  on usage and red
4770: 69 73 74 72 69 62 75 74 69 6f 6e 0a 2b 20 2a 20  istribution.+ * 
4780: 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e  of this file, an
4790: 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d  d for a DISCLAIM
47a0: 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e  ER OF ALL WARRAN
47b0: 54 49 45 53 2e 0a 2b 20 2a 0a 2b 20 2a 20 52 43  TIES..+ *.+ * RC
47c0: 53 3a 20 40 28 23 29 20 24 49 64 24 0a 2b 20 2a  S: @(#) $Id$.+ *
47d0: 2f 0a 2b 0a 2b 23 69 6e 63 6c 75 64 65 20 22 74  /.+.+#include "t
47e0: 63 6c 49 6e 74 2e 68 22 0a 2b 23 69 6e 63 6c 75  clInt.h".+#inclu
47f0: 64 65 20 22 74 63 6c 50 6f 72 74 2e 68 22 0a 2b  de "tclPort.h".+
4800: 0a 2b 23 69 66 64 65 66 20 48 41 56 45 5f 47 45  .+#ifdef HAVE_GE
4810: 54 41 54 54 52 4c 49 53 54 0a 2b 23 69 6e 63 6c  TATTRLIST.+#incl
4820: 75 64 65 20 3c 73 79 73 2f 61 74 74 72 2e 68 3e  ude <sys/attr.h>
4830: 0a 2b 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f  .+#include <sys/
4840: 70 61 74 68 73 2e 68 3e 0a 2b 23 65 6e 64 69 66  paths.h>.+#endif
4850: 0a 2b 0a 2b 2f 2a 0a 2b 20 2a 20 43 6f 6e 73 74  .+.+/*.+ * Const
4860: 61 6e 74 73 20 66 6f 72 20 66 69 6c 65 20 61 74  ants for file at
4870: 74 72 69 62 75 74 65 73 20 73 75 62 63 6f 6d 6d  tributes subcomm
4880: 61 6e 64 2e 0a 2b 20 2a 20 4e 65 65 64 20 74 6f  and..+ * Need to
4890: 20 62 65 20 6b 65 70 74 20 69 6e 20 73 79 6e 63   be kept in sync
48a0: 20 77 69 74 68 20 74 63 6c 55 6e 69 78 46 43 6d   with tclUnixFCm
48b0: 64 2e 63 20 21 0a 2b 20 2a 2f 0a 2b 0a 2b 65 6e  d.c !.+ */.+.+en
48c0: 75 6d 20 7b 0a 2b 20 20 20 20 55 4e 49 58 5f 47  um {.+    UNIX_G
48d0: 52 4f 55 50 5f 41 54 54 52 49 42 55 54 45 2c 0a  ROUP_ATTRIBUTE,.
48e0: 2b 20 20 20 20 55 4e 49 58 5f 4f 57 4e 45 52 5f  +    UNIX_OWNER_
48f0: 41 54 54 52 49 42 55 54 45 2c 0a 2b 20 20 20 20  ATTRIBUTE,.+    
4900: 55 4e 49 58 5f 50 45 52 4d 49 53 53 49 4f 4e 53  UNIX_PERMISSIONS
4910: 5f 41 54 54 52 49 42 55 54 45 2c 0a 2b 23 69 66  _ATTRIBUTE,.+#if
4920: 64 65 66 20 48 41 56 45 5f 43 48 46 4c 41 47 53  def HAVE_CHFLAGS
4930: 0a 2b 20 20 20 20 55 4e 49 58 5f 52 45 41 44 4f  .+    UNIX_READO
4940: 4e 4c 59 5f 41 54 54 52 49 42 55 54 45 2c 0a 2b  NLY_ATTRIBUTE,.+
4950: 23 65 6e 64 69 66 0a 2b 23 69 66 64 65 66 20 4d  #endif.+#ifdef M
4960: 41 43 5f 4f 53 58 5f 54 43 4c 0a 2b 20 20 20 20  AC_OSX_TCL.+    
4970: 4d 41 43 4f 53 58 5f 43 52 45 41 54 4f 52 5f 41  MACOSX_CREATOR_A
4980: 54 54 52 49 42 55 54 45 2c 0a 2b 20 20 20 20 4d  TTRIBUTE,.+    M
4990: 41 43 4f 53 58 5f 54 59 50 45 5f 41 54 54 52 49  ACOSX_TYPE_ATTRI
49a0: 42 55 54 45 2c 0a 2b 20 20 20 20 4d 41 43 4f 53  BUTE,.+    MACOS
49b0: 58 5f 48 49 44 44 45 4e 5f 41 54 54 52 49 42 55  X_HIDDEN_ATTRIBU
49c0: 54 45 2c 0a 2b 20 20 20 20 4d 41 43 4f 53 58 5f  TE,.+    MACOSX_
49d0: 52 53 52 43 4c 45 4e 47 54 48 5f 41 54 54 52 49  RSRCLENGTH_ATTRI
49e0: 42 55 54 45 2c 0a 2b 23 65 6e 64 69 66 0a 2b 7d  BUTE,.+#endif.+}
49f0: 3b 0a 2b 0a 2b 74 79 70 65 64 65 66 20 75 5f 69  ;.+.+typedef u_i
4a00: 6e 74 33 32 5f 74 20 4f 53 54 79 70 65 3b 0a 2b  nt32_t OSType;.+
4a10: 0a 2b 73 74 61 74 69 63 20 69 6e 74 20 54 63 6c  .+static int Tcl
4a20: 5f 47 65 74 4f 53 54 79 70 65 46 72 6f 6d 4f 62  _GetOSTypeFromOb
4a30: 6a 28 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e  j(Tcl_Interp *in
4a40: 74 65 72 70 2c 20 54 63 6c 5f 4f 62 6a 20 2a 6f  terp, Tcl_Obj *o
4a50: 62 6a 50 74 72 2c 20 0a 2b 09 09 4f 53 54 79 70  bjPtr, .+..OSTyp
4a60: 65 20 2a 6f 73 54 79 70 65 50 74 72 29 3b 0a 2b  e *osTypePtr);.+
4a70: 73 74 61 74 69 63 20 54 63 6c 5f 4f 62 6a 20 2a  static Tcl_Obj *
4a80: 54 63 6c 5f 4e 65 77 4f 53 54 79 70 65 53 74 72  Tcl_NewOSTypeStr
4a90: 69 6e 67 4f 62 6a 28 43 4f 4e 53 54 20 4f 53 54  ingObj(CONST OST
4aa0: 79 70 65 20 6e 65 77 4f 53 54 79 70 65 29 3b 0a  ype newOSType);.
4ab0: 2b 0a 2b 65 6e 75 6d 20 7b 0a 2b 20 20 20 6b 46  +.+enum {.+   kF
4ac0: 69 6e 66 6f 49 73 49 6e 76 69 73 69 62 6c 65 20  infoIsInvisible 
4ad0: 3d 20 30 78 34 30 30 30 2c 0a 2b 7d 3b 0a 2b 0a  = 0x4000,.+};.+.
4ae0: 2b 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20  +typedef struct 
4af0: 66 69 6c 65 69 6e 66 6f 62 75 66 20 7b 0a 2b 20  fileinfobuf {.+ 
4b00: 20 20 75 5f 69 6e 74 33 32 5f 74 20 69 6e 66 6f    u_int32_t info
4b10: 5f 6c 65 6e 67 74 68 3b 0a 2b 20 20 20 75 6e 69  _length;.+   uni
4b20: 6f 6e 20 7b 0a 2b 20 20 20 20 20 73 74 72 75 63  on {.+     struc
4b30: 74 20 7b 0a 2b 20 20 20 20 20 20 20 75 5f 69 6e  t {.+       u_in
4b40: 74 33 32 5f 74 20 74 79 70 65 3b 0a 2b 20 20 20  t32_t type;.+   
4b50: 20 20 20 20 75 5f 69 6e 74 33 32 5f 74 20 63 72      u_int32_t cr
4b60: 65 61 74 6f 72 3b 0a 2b 20 20 20 20 20 20 20 75  eator;.+       u
4b70: 5f 69 6e 74 31 36 5f 74 20 66 64 46 6c 61 67 73  _int16_t fdFlags
4b80: 3b 0a 2b 20 20 20 20 20 20 20 75 5f 69 6e 74 31  ;.+       u_int1
4b90: 36 5f 74 20 6c 6f 63 61 74 69 6f 6e 3b 0a 2b 20  6_t location;.+ 
4ba0: 20 20 20 20 20 20 75 5f 69 6e 74 33 32 5f 74 20        u_int32_t 
4bb0: 70 61 64 64 69 6e 67 5b 34 5d 3b 0a 2b 20 20 20  padding[4];.+   
4bc0: 20 20 7d 20 66 69 6e 64 65 72 3b 0a 2b 20 20 20    } finder;.+   
4bd0: 20 20 6f 66 66 5f 74 20 72 73 72 63 46 6f 72 6b    off_t rsrcFork
4be0: 53 69 7a 65 3b 0a 2b 20 20 20 7d 20 64 61 74 61  Size;.+   } data
4bf0: 3b 0a 2b 7d 20 66 69 6c 65 69 6e 66 6f 62 75 66  ;.+} fileinfobuf
4c00: 3b 0a 2b 0c 0a 2b 2f 2a 0a 2b 20 2a 2d 2d 2d 2d  ;.+..+/*.+ *----
4c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c50: 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 54 63 6c 4d 61  --.+ *.+ * TclMa
4c60: 63 4f 53 58 47 65 74 46 69 6c 65 41 74 74 72 69  cOSXGetFileAttri
4c70: 62 75 74 65 0a 2b 20 2a 0a 2b 20 2a 20 20 20 20  bute.+ *.+ *    
4c80: 20 20 47 65 74 73 20 61 20 4d 61 63 4f 53 58 20    Gets a MacOSX 
4c90: 61 74 74 72 69 62 75 74 65 20 6f 66 20 61 20 66  attribute of a f
4ca0: 69 6c 65 2e 20 20 57 68 69 63 68 20 61 74 74 72  ile.  Which attr
4cb0: 69 62 75 74 65 20 69 73 0a 2b 20 2a 20 20 20 20  ibute is.+ *    
4cc0: 20 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20    controlled by 
4cd0: 6f 62 6a 49 6e 64 65 78 2e 20 54 68 65 20 6f 62  objIndex. The ob
4ce0: 6a 65 63 74 20 77 69 6c 6c 20 68 61 76 65 20 72  ject will have r
4cf0: 65 66 20 63 6f 75 6e 74 20 30 2e 0a 2b 20 2a 0a  ef count 0..+ *.
4d00: 2b 20 2a 20 52 65 73 75 6c 74 73 3a 0a 2b 20 2a  + * Results:.+ *
4d10: 20 20 20 20 20 20 53 74 61 6e 64 61 72 64 20 54        Standard T
4d20: 43 4c 20 72 65 73 75 6c 74 2e 20 52 65 74 75 72  CL result. Retur
4d30: 6e 73 20 61 20 6e 65 77 20 54 63 6c 5f 4f 62 6a  ns a new Tcl_Obj
4d40: 20 69 6e 20 61 74 74 72 69 62 75 74 65 50 74 72   in attributePtr
4d50: 50 74 72 0a 2b 20 2a 20 20 20 20 20 20 20 20 69  Ptr.+ *        i
4d60: 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 65 72  f there is no er
4d70: 72 6f 72 2e 0a 2b 20 2a 0a 2b 20 2a 20 53 69 64  ror..+ *.+ * Sid
4d80: 65 20 65 66 66 65 63 74 73 3a 0a 2b 20 2a 20 20  e effects:.+ *  
4d90: 20 20 20 20 41 20 6e 65 77 20 6f 62 6a 65 63 74      A new object
4da0: 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 2e 0a 2b   is allocated..+
4db0: 20 2a 20 20 20 20 20 20 0a 2b 20 2a 2d 2d 2d 2d   *      .+ *----
4dc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4dd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4de0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4e00: 2d 2d 0a 2b 20 2a 2f 0a 2b 0a 2b 69 6e 74 0a 2b  --.+ */.+.+int.+
4e10: 54 63 6c 4d 61 63 4f 53 58 47 65 74 46 69 6c 65  TclMacOSXGetFile
4e20: 41 74 74 72 69 62 75 74 65 28 69 6e 74 65 72 70  Attribute(interp
4e30: 2c 20 6f 62 6a 49 6e 64 65 78 2c 20 66 69 6c 65  , objIndex, file
4e40: 4e 61 6d 65 2c 20 61 74 74 72 69 62 75 74 65 50  Name, attributeP
4e50: 74 72 50 74 72 29 0a 2b 20 20 20 20 54 63 6c 5f  trPtr).+    Tcl_
4e60: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 3b 20  Interp *interp; 
4e70: 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20           /* The 
4e80: 69 6e 74 65 72 70 20 77 65 20 61 72 65 20 75 73  interp we are us
4e90: 69 6e 67 20 66 6f 72 20 65 72 72 6f 72 73 2e 20  ing for errors. 
4ea0: 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 6f 62 6a 49  */.+    int objI
4eb0: 6e 64 65 78 3b 20 20 20 20 20 20 20 20 20 20 20  ndex;           
4ec0: 20 20 20 20 20 2f 2a 20 54 68 65 20 69 6e 64 65       /* The inde
4ed0: 78 20 6f 66 20 74 68 65 20 61 74 74 72 69 62 75  x of the attribu
4ee0: 74 65 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f  te. */.+    Tcl_
4ef0: 4f 62 6a 20 2a 66 69 6c 65 4e 61 6d 65 3b 20 20  Obj *fileName;  
4f00: 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20           /* The 
4f10: 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65  name of the file
4f20: 20 28 55 54 46 2d 38 29 2e 20 2a 2f 0a 2b 20 20   (UTF-8). */.+  
4f30: 20 20 54 63 6c 5f 4f 62 6a 20 2a 2a 61 74 74 72    Tcl_Obj **attr
4f40: 69 62 75 74 65 50 74 72 50 74 72 3b 20 20 20 2f  ibutePtrPtr;   /
4f50: 2a 20 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 72  * A pointer to r
4f60: 65 74 75 72 6e 20 74 68 65 20 6f 62 6a 65 63 74  eturn the object
4f70: 20 77 69 74 68 2e 20 2a 2f 0a 2b 7b 0a 2b 23 69   with. */.+{.+#i
4f80: 66 64 65 66 20 48 41 56 45 5f 47 45 54 41 54 54  fdef HAVE_GETATT
4f90: 52 4c 49 53 54 0a 2b 20 20 20 20 69 6e 74 20 72  RLIST.+    int r
4fa0: 65 73 75 6c 74 3b 0a 2b 20 20 20 20 54 63 6c 5f  esult;.+    Tcl_
4fb0: 53 74 61 74 42 75 66 20 73 74 61 74 42 75 66 3b  StatBuf statBuf;
4fc0: 0a 2b 20 20 20 20 73 74 72 75 63 74 20 61 74 74  .+    struct att
4fd0: 72 6c 69 73 74 20 61 6c 69 73 74 3b 0a 2b 20 20  rlist alist;.+  
4fe0: 20 20 66 69 6c 65 69 6e 66 6f 62 75 66 20 66 69    fileinfobuf fi
4ff0: 6e 66 6f 3b 0a 2b 20 20 20 20 43 4f 4e 53 54 20  nfo;.+    CONST 
5000: 63 68 61 72 20 2a 6e 61 74 69 76 65 3b 0a 2b 20  char *native;.+ 
5010: 20 20 20 0a 2b 20 20 20 20 72 65 73 75 6c 74 20     .+    result 
5020: 3d 20 54 63 6c 70 4f 62 6a 53 74 61 74 28 66 69  = TclpObjStat(fi
5030: 6c 65 4e 61 6d 65 2c 20 26 73 74 61 74 42 75 66  leName, &statBuf
5040: 29 3b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 69 66  );.+    .+    if
5050: 20 28 72 65 73 75 6c 74 20 21 3d 20 30 29 20 7b   (result != 0) {
5060: 0a 2b 09 54 63 6c 5f 41 70 70 65 6e 64 52 65 73  .+.Tcl_AppendRes
5070: 75 6c 74 28 69 6e 74 65 72 70 2c 20 22 63 6f 75  ult(interp, "cou
5080: 6c 64 20 6e 6f 74 20 72 65 61 64 20 5c 22 22 2c  ld not read \"",
5090: 20 0a 2b 09 09 54 63 6c 5f 47 65 74 53 74 72 69   .+..Tcl_GetStri
50a0: 6e 67 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c  ng(fileName), "\
50b0: 22 3a 20 22 2c 0a 2b 09 09 54 63 6c 5f 50 6f 73  ": ",.+..Tcl_Pos
50c0: 69 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c  ixError(interp),
50d0: 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b   (char *) NULL);
50e0: 0a 2b 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52  .+.return TCL_ER
50f0: 52 4f 52 3b 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20  ROR;.+    }.+.+ 
5100: 20 20 20 69 66 20 28 53 5f 49 53 44 49 52 28 73     if (S_ISDIR(s
5110: 74 61 74 42 75 66 2e 73 74 5f 6d 6f 64 65 29 20  tatBuf.st_mode) 
5120: 26 26 20 6f 62 6a 49 6e 64 65 78 20 21 3d 20 4d  && objIndex != M
5130: 41 43 4f 53 58 5f 48 49 44 44 45 4e 5f 41 54 54  ACOSX_HIDDEN_ATT
5140: 52 49 42 55 54 45 29 20 7b 0a 2b 20 20 20 20 20  RIBUTE) {.+     
5150: 20 20 20 2f 2a 20 44 69 72 65 63 74 6f 72 69 65     /* Directorie
5160: 73 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 20 61  s only support a
5170: 74 74 72 69 62 75 74 65 20 22 2d 68 69 64 64 65  ttribute "-hidde
5180: 6e 22 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20 65  n" */.+        e
5190: 72 72 6e 6f 20 3d 20 45 49 53 44 49 52 3b 0a 2b  rrno = EISDIR;.+
51a0: 20 20 20 20 20 20 20 20 54 63 6c 5f 41 70 70 65          Tcl_Appe
51b0: 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c  ndResult(interp,
51c0: 20 22 69 6e 76 61 6c 69 64 20 61 74 74 72 69 62   "invalid attrib
51d0: 75 74 65 3a 20 22 2c 20 0a 2b 20 20 20 20 20 20  ute: ", .+      
51e0: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 50 6f            Tcl_Po
51f0: 73 69 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29  sixError(interp)
5200: 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29  , (char *) NULL)
5210: 3b 0a 2b 20 20 20 20 20 20 20 20 72 65 74 75 72  ;.+        retur
5220: 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20  n TCL_ERROR;.+  
5230: 20 20 7d 0a 2b 0a 2b 20 20 20 20 6d 65 6d 73 65    }.+.+    memse
5240: 74 28 26 61 6c 69 73 74 2c 20 30 2c 20 73 69 7a  t(&alist, 0, siz
5250: 65 6f 66 28 73 74 72 75 63 74 20 61 74 74 72 6c  eof(struct attrl
5260: 69 73 74 29 29 3b 0a 2b 20 20 20 20 61 6c 69 73  ist));.+    alis
5270: 74 2e 62 69 74 6d 61 70 63 6f 75 6e 74 20 3d 20  t.bitmapcount = 
5280: 41 54 54 52 5f 42 49 54 5f 4d 41 50 5f 43 4f 55  ATTR_BIT_MAP_COU
5290: 4e 54 3b 0a 2b 20 20 20 20 69 66 28 6f 62 6a 49  NT;.+    if(objI
52a0: 6e 64 65 78 20 3d 3d 20 4d 41 43 4f 53 58 5f 52  ndex == MACOSX_R
52b0: 53 52 43 4c 45 4e 47 54 48 5f 41 54 54 52 49 42  SRCLENGTH_ATTRIB
52c0: 55 54 45 29 20 7b 0a 2b 20 20 20 20 20 20 20 20  UTE) {.+        
52d0: 61 6c 69 73 74 2e 66 69 6c 65 61 74 74 72 20 3d  alist.fileattr =
52e0: 20 41 54 54 52 5f 46 49 4c 45 5f 52 53 52 43 4c   ATTR_FILE_RSRCL
52f0: 45 4e 47 54 48 3b 0a 2b 20 20 20 20 7d 20 65 6c  ENGTH;.+    } el
5300: 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 61 6c  se {.+        al
5310: 69 73 74 2e 63 6f 6d 6d 6f 6e 61 74 74 72 20 3d  ist.commonattr =
5320: 20 41 54 54 52 5f 43 4d 4e 5f 46 4e 44 52 49 4e   ATTR_CMN_FNDRIN
5330: 46 4f 3b 20 20 20 20 0a 2b 20 20 20 20 7d 0a 2b  FO;    .+    }.+
5340: 20 20 20 20 6e 61 74 69 76 65 20 3d 20 54 63 6c      native = Tcl
5350: 5f 46 53 47 65 74 4e 61 74 69 76 65 50 61 74 68  _FSGetNativePath
5360: 28 66 69 6c 65 4e 61 6d 65 29 3b 0a 2b 20 20 20  (fileName);.+   
5370: 20 72 65 73 75 6c 74 20 3d 20 67 65 74 61 74 74   result = getatt
5380: 72 6c 69 73 74 28 6e 61 74 69 76 65 2c 20 26 61  rlist(native, &a
5390: 6c 69 73 74 2c 20 26 66 69 6e 66 6f 2c 20 73 69  list, &finfo, si
53a0: 7a 65 6f 66 28 66 69 6c 65 69 6e 66 6f 62 75 66  zeof(fileinfobuf
53b0: 29 2c 20 30 29 3b 0a 2b 0a 2b 20 20 20 20 69 66  ), 0);.+.+    if
53c0: 20 28 72 65 73 75 6c 74 20 21 3d 20 30 29 20 7b   (result != 0) {
53d0: 0a 2b 20 20 20 20 20 20 20 20 54 63 6c 5f 41 70  .+        Tcl_Ap
53e0: 70 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72  pendResult(inter
53f0: 70 2c 20 22 63 6f 75 6c 64 20 6e 6f 74 20 72 65  p, "could not re
5400: 61 64 20 61 74 74 72 69 62 75 74 65 73 20 6f 66  ad attributes of
5410: 20 5c 22 22 2c 20 0a 2b 20 20 20 20 20 20 20 20   \"", .+        
5420: 20 20 20 20 20 20 20 20 54 63 6c 5f 47 65 74 53          Tcl_GetS
5430: 74 72 69 6e 67 28 66 69 6c 65 4e 61 6d 65 29 2c  tring(fileName),
5440: 20 22 5c 22 3a 20 22 2c 0a 2b 20 20 20 20 20 20   "\": ",.+      
5450: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 50 6f            Tcl_Po
5460: 73 69 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29  sixError(interp)
5470: 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29  , (char *) NULL)
5480: 3b 0a 2b 20 20 20 20 20 20 20 20 72 65 74 75 72  ;.+        retur
5490: 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20  n TCL_ERROR;.+  
54a0: 20 20 7d 0a 2b 0a 2b 20 20 20 20 73 77 69 74 63    }.+.+    switc
54b0: 68 20 28 6f 62 6a 49 6e 64 65 78 29 20 7b 0a 2b  h (objIndex) {.+
54c0: 20 20 20 20 20 20 20 20 63 61 73 65 20 4d 41 43          case MAC
54d0: 4f 53 58 5f 43 52 45 41 54 4f 52 5f 41 54 54 52  OSX_CREATOR_ATTR
54e0: 49 42 55 54 45 3a 0a 2b 20 20 20 20 20 20 20 20  IBUTE:.+        
54f0: 20 20 20 20 2a 61 74 74 72 69 62 75 74 65 50 74      *attributePt
5500: 72 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 4f 53  rPtr = Tcl_NewOS
5510: 54 79 70 65 53 74 72 69 6e 67 4f 62 6a 28 66 69  TypeStringObj(fi
5520: 6e 66 6f 2e 64 61 74 61 2e 66 69 6e 64 65 72 2e  nfo.data.finder.
5530: 63 72 65 61 74 6f 72 29 3b 0a 2b 20 20 20 20 20  creator);.+     
5540: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2b 20         break;.+ 
5550: 20 20 20 20 20 20 20 63 61 73 65 20 4d 41 43 4f         case MACO
5560: 53 58 5f 54 59 50 45 5f 41 54 54 52 49 42 55 54  SX_TYPE_ATTRIBUT
5570: 45 3a 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  E:.+            
5580: 2a 61 74 74 72 69 62 75 74 65 50 74 72 50 74 72  *attributePtrPtr
5590: 20 3d 20 54 63 6c 5f 4e 65 77 4f 53 54 79 70 65   = Tcl_NewOSType
55a0: 53 74 72 69 6e 67 4f 62 6a 28 66 69 6e 66 6f 2e  StringObj(finfo.
55b0: 64 61 74 61 2e 66 69 6e 64 65 72 2e 74 79 70 65  data.finder.type
55c0: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  );.+            
55d0: 62 72 65 61 6b 3b 0a 2b 20 20 20 20 20 20 20 20  break;.+        
55e0: 63 61 73 65 20 4d 41 43 4f 53 58 5f 48 49 44 44  case MACOSX_HIDD
55f0: 45 4e 5f 41 54 54 52 49 42 55 54 45 3a 0a 2b 20  EN_ATTRIBUTE:.+ 
5600: 20 20 20 20 20 20 20 20 20 20 20 2a 61 74 74 72             *attr
5610: 69 62 75 74 65 50 74 72 50 74 72 20 3d 20 54 63  ibutePtrPtr = Tc
5620: 6c 5f 4e 65 77 42 6f 6f 6c 65 61 6e 4f 62 6a 28  l_NewBooleanObj(
5630: 20 28 66 69 6e 66 6f 2e 64 61 74 61 2e 66 69 6e   (finfo.data.fin
5640: 64 65 72 2e 66 64 46 6c 61 67 73 0a 2b 20 20 20  der.fdFlags.+   
5650: 20 20 20 20 20 20 20 20 20 20 20 20 20 26 20 6b               & k
5660: 46 69 6e 66 6f 49 73 49 6e 76 69 73 69 62 6c 65  FinfoIsInvisible
5670: 29 20 21 3d 20 30 29 3b 0a 2b 20 20 20 20 20 20  ) != 0);.+      
5680: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2b 20 20        break;.+  
5690: 20 20 20 20 20 20 63 61 73 65 20 4d 41 43 4f 53        case MACOS
56a0: 58 5f 52 53 52 43 4c 45 4e 47 54 48 5f 41 54 54  X_RSRCLENGTH_ATT
56b0: 52 49 42 55 54 45 3a 0a 2b 20 20 20 20 20 20 20  RIBUTE:.+       
56c0: 20 20 20 20 20 2a 61 74 74 72 69 62 75 74 65 50       *attributeP
56d0: 74 72 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 57  trPtr = Tcl_NewW
56e0: 69 64 65 49 6e 74 4f 62 6a 28 66 69 6e 66 6f 2e  ideIntObj(finfo.
56f0: 64 61 74 61 2e 72 73 72 63 46 6f 72 6b 53 69 7a  data.rsrcForkSiz
5700: 65 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20  e);.+           
5710: 20 62 72 65 61 6b 3b 0a 2b 20 20 20 20 7d 0a 2b   break;.+    }.+
5720: 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 4f      return TCL_O
5730: 4b 3b 0a 2b 23 65 6c 73 65 0a 2b 20 20 20 20 54  K;.+#else.+    T
5740: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28  cl_AppendResult(
5750: 69 6e 74 65 72 70 2c 20 22 4d 61 63 20 4f 53 20  interp, "Mac OS 
5760: 58 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65  X file attribute
5770: 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22  s not supported"
5780: 2c 0a 2b 09 09 28 63 68 61 72 20 2a 29 20 4e 55  ,.+..(char *) NU
5790: 4c 4c 29 3b 0a 2b 20 20 20 20 72 65 74 75 72 6e  LL);.+    return
57a0: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 23 65 6e   TCL_ERROR;.+#en
57b0: 64 69 66 0a 2b 7d 0a 2b 0c 0a 2b 2f 2a 0a 2b 20  dif.+}.+..+/*.+ 
57c0: 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  *---------------
57d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
57e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
57f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a  ------------.+ *
5810: 0a 2b 20 2a 20 54 63 6c 4d 61 63 4f 53 58 53 65  .+ * TclMacOSXSe
5820: 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 20 2d  tFileAttribute -
5830: 2d 0a 2b 20 2a 0a 2b 20 2a 20 20 20 20 20 20 53  -.+ *.+ *      S
5840: 65 74 73 20 61 20 4d 61 63 4f 53 58 20 61 74 74  ets a MacOSX att
5850: 72 69 62 75 74 65 20 6f 66 20 61 20 66 69 6c 65  ribute of a file
5860: 2e 20 20 57 68 69 63 68 20 61 74 74 72 69 62 75  .  Which attribu
5870: 74 65 20 69 73 0a 2b 20 2a 20 20 20 20 20 20 63  te is.+ *      c
5880: 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 6f 62 6a  ontrolled by obj
5890: 49 6e 64 65 78 2e 0a 2b 20 2a 0a 2b 20 2a 20 52  Index..+ *.+ * R
58a0: 65 73 75 6c 74 73 3a 0a 2b 20 2a 20 20 20 20 20  esults:.+ *     
58b0: 20 53 74 61 6e 64 61 72 64 20 54 43 4c 20 72 65   Standard TCL re
58c0: 73 75 6c 74 2e 0a 2b 20 2a 0a 2b 20 2a 20 53 69  sult..+ *.+ * Si
58d0: 64 65 20 65 66 66 65 63 74 73 3a 0a 2b 20 2a 20  de effects:.+ * 
58e0: 20 20 20 20 20 41 73 20 61 62 6f 76 65 2e 0a 2b       As above..+
58f0: 20 2a 20 20 20 20 20 20 0a 2b 20 2a 2d 2d 2d 2d   *      .+ *----
5900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5940: 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 2f 0a 2b 0a 2b  -------.+ */.+.+
5950: 69 6e 74 0a 2b 54 63 6c 4d 61 63 4f 53 58 53 65  int.+TclMacOSXSe
5960: 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 28 69  tFileAttribute(i
5970: 6e 74 65 72 70 2c 20 6f 62 6a 49 6e 64 65 78 2c  nterp, objIndex,
5980: 20 66 69 6c 65 4e 61 6d 65 2c 20 61 74 74 72 69   fileName, attri
5990: 62 75 74 65 50 74 72 29 0a 2b 20 20 20 20 54 63  butePtr).+    Tc
59a0: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70  l_Interp *interp
59b0: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f  ;              /
59c0: 2a 20 54 68 65 20 69 6e 74 65 72 70 20 66 6f 72  * The interp for
59d0: 20 65 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67   error reporting
59e0: 2e 20 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 6f 62  . */.+    int ob
59f0: 6a 49 6e 64 65 78 3b 20 20 20 20 20 20 20 20 20  jIndex;         
5a00: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68             /* Th
5a10: 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 61  e index of the a
5a20: 74 74 72 69 62 75 74 65 2e 20 2a 2f 0a 2b 20 20  ttribute. */.+  
5a30: 20 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c 65 4e    Tcl_Obj *fileN
5a40: 61 6d 65 3b 20 20 20 20 20 20 20 20 20 20 20 20  ame;            
5a50: 20 20 20 2f 2a 20 54 68 65 20 6e 61 6d 65 20 6f     /* The name o
5a60: 66 20 74 68 65 20 66 69 6c 65 20 28 55 54 46 2d  f the file (UTF-
5a70: 38 29 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f  8). */.+    Tcl_
5a80: 4f 62 6a 20 2a 61 74 74 72 69 62 75 74 65 50 74  Obj *attributePt
5a90: 72 3b 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20  r;           /* 
5aa0: 4e 65 77 20 6f 77 6e 65 72 20 66 6f 72 20 66 69  New owner for fi
5ab0: 6c 65 2e 20 2a 2f 0a 2b 7b 0a 2b 23 69 66 64 65  le. */.+{.+#ifde
5ac0: 66 20 48 41 56 45 5f 47 45 54 41 54 54 52 4c 49  f HAVE_GETATTRLI
5ad0: 53 54 0a 2b 20 20 20 20 69 6e 74 20 72 65 73 75  ST.+    int resu
5ae0: 6c 74 3b 0a 2b 20 20 20 20 54 63 6c 5f 53 74 61  lt;.+    Tcl_Sta
5af0: 74 42 75 66 20 73 74 61 74 42 75 66 3b 0a 2b 20  tBuf statBuf;.+ 
5b00: 20 20 20 73 74 72 75 63 74 20 61 74 74 72 6c 69     struct attrli
5b10: 73 74 20 61 6c 69 73 74 3b 0a 2b 20 20 20 20 66  st alist;.+    f
5b20: 69 6c 65 69 6e 66 6f 62 75 66 20 66 69 6e 66 6f  ileinfobuf finfo
5b30: 3b 0a 2b 20 20 20 20 43 4f 4e 53 54 20 63 68 61  ;.+    CONST cha
5b40: 72 20 2a 6e 61 74 69 76 65 3b 0a 2b 20 20 20 20  r *native;.+    
5b50: 0a 2b 20 20 20 20 72 65 73 75 6c 74 20 3d 20 54  .+    result = T
5b60: 63 6c 70 4f 62 6a 53 74 61 74 28 66 69 6c 65 4e  clpObjStat(fileN
5b70: 61 6d 65 2c 20 26 73 74 61 74 42 75 66 29 3b 0a  ame, &statBuf);.
5b80: 2b 20 20 20 20 0a 2b 20 20 20 20 69 66 20 28 72  +    .+    if (r
5b90: 65 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 2b 09  esult != 0) {.+.
5ba0: 54 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74  Tcl_AppendResult
5bb0: 28 69 6e 74 65 72 70 2c 20 22 63 6f 75 6c 64 20  (interp, "could 
5bc0: 6e 6f 74 20 72 65 61 64 20 5c 22 22 2c 20 0a 2b  not read \"", .+
5bd0: 09 09 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28  ..Tcl_GetString(
5be0: 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c 22 3a 20  fileName), "\": 
5bf0: 22 2c 0a 2b 09 09 54 63 6c 5f 50 6f 73 69 78 45  ",.+..Tcl_PosixE
5c00: 72 72 6f 72 28 69 6e 74 65 72 70 29 2c 20 28 63  rror(interp), (c
5c10: 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b 09  har *) NULL);.+.
5c20: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52  return TCL_ERROR
5c30: 3b 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20  ;.+    }.+.+    
5c40: 69 66 20 28 53 5f 49 53 44 49 52 28 73 74 61 74  if (S_ISDIR(stat
5c50: 42 75 66 2e 73 74 5f 6d 6f 64 65 29 20 26 26 20  Buf.st_mode) && 
5c60: 6f 62 6a 49 6e 64 65 78 20 21 3d 20 4d 41 43 4f  objIndex != MACO
5c70: 53 58 5f 48 49 44 44 45 4e 5f 41 54 54 52 49 42  SX_HIDDEN_ATTRIB
5c80: 55 54 45 29 20 7b 0a 2b 20 20 20 20 20 20 20 20  UTE) {.+        
5c90: 2f 2a 20 44 69 72 65 63 74 6f 72 69 65 73 20 6f  /* Directories o
5ca0: 6e 6c 79 20 73 75 70 70 6f 72 74 20 61 74 74 72  nly support attr
5cb0: 69 62 75 74 65 20 22 2d 68 69 64 64 65 6e 22 20  ibute "-hidden" 
5cc0: 2a 2f 0a 2b 20 20 20 20 20 20 20 20 65 72 72 6e  */.+        errn
5cd0: 6f 20 3d 20 45 49 53 44 49 52 3b 0a 2b 20 20 20  o = EISDIR;.+   
5ce0: 20 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 52       Tcl_AppendR
5cf0: 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 22 69  esult(interp, "i
5d00: 6e 76 61 6c 69 64 20 61 74 74 72 69 62 75 74 65  nvalid attribute
5d10: 3a 20 22 2c 20 0a 2b 20 20 20 20 20 20 20 20 20  : ", .+         
5d20: 20 20 20 20 20 20 20 54 63 6c 5f 50 6f 73 69 78         Tcl_Posix
5d30: 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c 20 28  Error(interp), (
5d40: 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b  char *) NULL);.+
5d50: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54          return T
5d60: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 7d  CL_ERROR;.+    }
5d70: 0a 2b 0a 2b 20 20 20 20 6d 65 6d 73 65 74 28 26  .+.+    memset(&
5d80: 61 6c 69 73 74 2c 20 30 2c 20 73 69 7a 65 6f 66  alist, 0, sizeof
5d90: 28 73 74 72 75 63 74 20 61 74 74 72 6c 69 73 74  (struct attrlist
5da0: 29 29 3b 0a 2b 20 20 20 20 61 6c 69 73 74 2e 62  ));.+    alist.b
5db0: 69 74 6d 61 70 63 6f 75 6e 74 20 3d 20 41 54 54  itmapcount = ATT
5dc0: 52 5f 42 49 54 5f 4d 41 50 5f 43 4f 55 4e 54 3b  R_BIT_MAP_COUNT;
5dd0: 0a 2b 20 20 20 20 69 66 28 6f 62 6a 49 6e 64 65  .+    if(objInde
5de0: 78 20 3d 3d 20 4d 41 43 4f 53 58 5f 52 53 52 43  x == MACOSX_RSRC
5df0: 4c 45 4e 47 54 48 5f 41 54 54 52 49 42 55 54 45  LENGTH_ATTRIBUTE
5e00: 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 61 6c 69  ) {.+        ali
5e10: 73 74 2e 66 69 6c 65 61 74 74 72 20 3d 20 41 54  st.fileattr = AT
5e20: 54 52 5f 46 49 4c 45 5f 52 53 52 43 4c 45 4e 47  TR_FILE_RSRCLENG
5e30: 54 48 3b 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20  TH;.+    } else 
5e40: 7b 0a 2b 20 20 20 20 20 20 20 20 61 6c 69 73 74  {.+        alist
5e50: 2e 63 6f 6d 6d 6f 6e 61 74 74 72 20 3d 20 41 54  .commonattr = AT
5e60: 54 52 5f 43 4d 4e 5f 46 4e 44 52 49 4e 46 4f 3b  TR_CMN_FNDRINFO;
5e70: 20 20 20 20 0a 2b 20 20 20 20 7d 0a 2b 20 20 20      .+    }.+   
5e80: 20 6e 61 74 69 76 65 20 3d 20 54 63 6c 5f 46 53   native = Tcl_FS
5e90: 47 65 74 4e 61 74 69 76 65 50 61 74 68 28 66 69  GetNativePath(fi
5ea0: 6c 65 4e 61 6d 65 29 3b 0a 2b 20 20 20 20 72 65  leName);.+    re
5eb0: 73 75 6c 74 20 3d 20 67 65 74 61 74 74 72 6c 69  sult = getattrli
5ec0: 73 74 28 6e 61 74 69 76 65 2c 20 26 61 6c 69 73  st(native, &alis
5ed0: 74 2c 20 26 66 69 6e 66 6f 2c 20 73 69 7a 65 6f  t, &finfo, sizeo
5ee0: 66 28 66 69 6c 65 69 6e 66 6f 62 75 66 29 2c 20  f(fileinfobuf), 
5ef0: 30 29 3b 0a 2b 0a 2b 20 20 20 20 69 66 20 28 72  0);.+.+    if (r
5f00: 65 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 2b 20  esult != 0) {.+ 
5f10: 20 20 20 20 20 20 20 54 63 6c 5f 41 70 70 65 6e         Tcl_Appen
5f20: 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20  dResult(interp, 
5f30: 22 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20  "could not read 
5f40: 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 5c 22  attributes of \"
5f50: 22 2c 20 0a 2b 20 20 20 20 20 20 20 20 20 20 20  ", .+           
5f60: 20 20 20 20 20 54 63 6c 5f 47 65 74 53 74 72 69       Tcl_GetStri
5f70: 6e 67 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c  ng(fileName), "\
5f80: 22 3a 20 22 2c 0a 2b 20 20 20 20 20 20 20 20 20  ": ",.+         
5f90: 20 20 20 20 20 20 20 54 63 6c 5f 50 6f 73 69 78         Tcl_Posix
5fa0: 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c 20 28  Error(interp), (
5fb0: 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b  char *) NULL);.+
5fc0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54          return T
5fd0: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 7d  CL_ERROR;.+    }
5fe0: 0a 2b 0a 2b 20 20 20 20 69 66 20 28 6f 62 6a 49  .+.+    if (objI
5ff0: 6e 64 65 78 20 21 3d 20 4d 41 43 4f 53 58 5f 52  ndex != MACOSX_R
6000: 53 52 43 4c 45 4e 47 54 48 5f 41 54 54 52 49 42  SRCLENGTH_ATTRIB
6010: 55 54 45 29 20 7b 0a 2b 20 20 20 20 20 20 20 20  UTE) {.+        
6020: 73 77 69 74 63 68 20 28 6f 62 6a 49 6e 64 65 78  switch (objIndex
6030: 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20  ) {.+           
6040: 20 63 61 73 65 20 4d 41 43 4f 53 58 5f 43 52 45   case MACOSX_CRE
6050: 41 54 4f 52 5f 41 54 54 52 49 42 55 54 45 3a 0a  ATOR_ATTRIBUTE:.
6060: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  +               
6070: 20 69 66 20 28 54 63 6c 5f 47 65 74 4f 53 54 79   if (Tcl_GetOSTy
6080: 70 65 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70  peFromObj(interp
6090: 2c 20 61 74 74 72 69 62 75 74 65 50 74 72 2c 0a  , attributePtr,.
60a0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  +               
60b0: 20 20 20 20 20 20 20 20 20 26 66 69 6e 66 6f 2e           &finfo.
60c0: 64 61 74 61 2e 66 69 6e 64 65 72 2e 63 72 65 61  data.finder.crea
60d0: 74 6f 72 29 20 21 3d 20 54 43 4c 5f 4f 4b 29 20  tor) != TCL_OK) 
60e0: 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20  {.+             
60f0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54 43         return TC
6100: 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20 20  L_ERROR;.+      
6110: 20 20 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20            }.+   
6120: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65               bre
6130: 61 6b 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20  ak;.+           
6140: 20 63 61 73 65 20 4d 41 43 4f 53 58 5f 54 59 50   case MACOSX_TYP
6150: 45 5f 41 54 54 52 49 42 55 54 45 3a 0a 2b 20 20  E_ATTRIBUTE:.+  
6160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
6170: 20 28 54 63 6c 5f 47 65 74 4f 53 54 79 70 65 46   (Tcl_GetOSTypeF
6180: 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 20 61  romObj(interp, a
6190: 74 74 72 69 62 75 74 65 50 74 72 2c 0a 2b 20 20  ttributePtr,.+  
61a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
61b0: 20 20 20 20 20 20 26 66 69 6e 66 6f 2e 64 61 74        &finfo.dat
61c0: 61 2e 66 69 6e 64 65 72 2e 74 79 70 65 29 20 21  a.finder.type) !
61d0: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2b 20 20 20  = TCL_OK) {.+   
61e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
61f0: 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f   return TCL_ERRO
6200: 52 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  R;.+            
6210: 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 20      }.+         
6220: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2b 20         break;.+ 
6230: 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20             case 
6240: 4d 41 43 4f 53 58 5f 48 49 44 44 45 4e 5f 41 54  MACOSX_HIDDEN_AT
6250: 54 52 49 42 55 54 45 3a 0a 2b 20 20 20 20 20 20  TRIBUTE:.+      
6260: 20 20 20 20 20 20 20 20 20 20 7b 0a 2b 20 20 20            {.+   
6270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6280: 20 69 6e 74 20 68 69 64 64 65 6e 3b 0a 2b 20 20   int hidden;.+  
6290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
62a0: 20 20 69 66 20 28 54 63 6c 5f 47 65 74 42 6f 6f    if (Tcl_GetBoo
62b0: 6c 65 61 6e 46 72 6f 6d 4f 62 6a 28 69 6e 74 65  leanFromObj(inte
62c0: 72 70 2c 20 61 74 74 72 69 62 75 74 65 50 74 72  rp, attributePtr
62d0: 2c 20 26 68 69 64 64 65 6e 29 0a 2b 20 20 20 20  , &hidden).+    
62e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
62f0: 20 20 20 20 20 20 20 20 21 3d 20 54 43 4c 5f 4f          != TCL_O
6300: 4b 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20  K) {.+          
6310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65                re
6320: 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a  turn TCL_ERROR;.
6330: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  +               
6340: 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20       }.+        
6350: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
6360: 68 69 64 64 65 6e 29 20 7b 0a 2b 20 20 20 20 20  hidden) {.+     
6370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6380: 20 20 20 66 69 6e 66 6f 2e 64 61 74 61 2e 66 69     finfo.data.fi
6390: 6e 64 65 72 2e 66 64 46 6c 61 67 73 20 7c 3d 20  nder.fdFlags |= 
63a0: 6b 46 69 6e 66 6f 49 73 49 6e 76 69 73 69 62 6c  kFinfoIsInvisibl
63b0: 65 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  e;.+            
63c0: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b          } else {
63d0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .+              
63e0: 20 20 20 20 20 20 20 20 20 20 66 69 6e 66 6f 2e            finfo.
63f0: 64 61 74 61 2e 66 69 6e 64 65 72 2e 66 64 46 6c  data.finder.fdFl
6400: 61 67 73 20 26 3d 20 7e 6b 46 69 6e 66 6f 49 73  ags &= ~kFinfoIs
6410: 49 6e 76 69 73 69 62 6c 65 3b 0a 2b 20 20 20 20  Invisible;.+    
6420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6430: 7d 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20  }.+             
6440: 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 20 20     }.+          
6450: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2b 20 20        break;.+  
6460: 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20        }.+       
6470: 20 72 65 73 75 6c 74 20 3d 20 73 65 74 61 74 74   result = setatt
6480: 72 6c 69 73 74 28 6e 61 74 69 76 65 2c 20 26 61  rlist(native, &a
6490: 6c 69 73 74 2c 20 26 66 69 6e 66 6f 2e 64 61 74  list, &finfo.dat
64a0: 61 2c 20 73 69 7a 65 6f 66 28 66 69 6e 66 6f 2e  a, sizeof(finfo.
64b0: 64 61 74 61 29 2c 20 30 29 3b 0a 2b 20 20 20 20  data), 0);.+    
64c0: 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 72 65  .+        if (re
64d0: 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 2b 20 20  sult != 0) {.+  
64e0: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 41 70            Tcl_Ap
64f0: 70 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72  pendResult(inter
6500: 70 2c 20 22 63 6f 75 6c 64 20 6e 6f 74 20 73 65  p, "could not se
6510: 74 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20  t attributes of 
6520: 5c 22 22 2c 20 0a 2b 20 20 20 20 20 20 20 20 20  \"", .+         
6530: 20 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 47             Tcl_G
6540: 65 74 53 74 72 69 6e 67 28 66 69 6c 65 4e 61 6d  etString(fileNam
6550: 65 29 2c 20 22 5c 22 3a 20 22 2c 0a 2b 20 20 20  e), "\": ",.+   
6560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6570: 20 54 63 6c 5f 50 6f 73 69 78 45 72 72 6f 72 28   Tcl_PosixError(
6580: 69 6e 74 65 72 70 29 2c 20 28 63 68 61 72 20 2a  interp), (char *
6590: 29 20 4e 55 4c 4c 29 3b 0a 2b 20 20 20 20 20 20  ) NULL);.+      
65a0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c        return TCL
65b0: 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20 20 20  _ERROR;.+       
65c0: 20 7d 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 7b   }.+    } else {
65d0: 0a 2b 20 20 20 20 20 20 20 20 6f 66 66 5f 74 20  .+        off_t 
65e0: 6e 65 77 52 73 72 63 46 6f 72 6b 53 69 7a 65 3b  newRsrcForkSize;
65f0: 0a 2b 20 20 20 20 20 20 20 20 0a 2b 20 20 20 20  .+        .+    
6600: 20 20 20 20 69 66 20 28 54 63 6c 5f 47 65 74 57      if (Tcl_GetW
6610: 69 64 65 49 6e 74 46 72 6f 6d 4f 62 6a 28 69 6e  ideIntFromObj(in
6620: 74 65 72 70 2c 20 61 74 74 72 69 62 75 74 65 50  terp, attributeP
6630: 74 72 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 20  tr,.+           
6640: 20 20 20 20 20 26 6e 65 77 52 73 72 63 46 6f 72       &newRsrcFor
6650: 6b 53 69 7a 65 29 20 21 3d 20 54 43 4c 5f 4f 4b  kSize) != TCL_OK
6660: 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20  ) {.+           
6670: 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f   return TCL_ERRO
6680: 52 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20  R;.+        }.+ 
6690: 20 20 20 20 20 20 20 0a 2b 20 20 20 20 20 20 20         .+       
66a0: 20 69 66 28 6e 65 77 52 73 72 63 46 6f 72 6b 53   if(newRsrcForkS
66b0: 69 7a 65 20 21 3d 20 66 69 6e 66 6f 2e 64 61 74  ize != finfo.dat
66c0: 61 2e 72 73 72 63 46 6f 72 6b 53 69 7a 65 29 20  a.rsrcForkSize) 
66d0: 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 54  {.+            T
66e0: 63 6c 5f 44 53 74 72 69 6e 67 20 64 73 3b 0a 2b  cl_DString ds;.+
66f0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 0a 2b              /*.+
6700: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 4f               * O
6710: 6e 6c 79 20 73 65 74 74 69 6e 67 20 72 73 72 63  nly setting rsrc
6720: 6c 65 6e 67 74 68 20 74 6f 20 30 20 74 6f 20 73  length to 0 to s
6730: 74 72 69 70 0a 2b 20 20 20 20 20 20 20 20 20 20  trip.+          
6740: 20 20 20 2a 20 61 20 66 69 6c 65 27 73 20 72 65     * a file's re
6750: 73 6f 75 72 63 65 20 66 6f 72 6b 20 69 73 20 73  source fork is s
6760: 75 70 70 6f 72 74 65 64 2e 0a 2b 20 20 20 20 20  upported..+     
6770: 20 20 20 20 20 20 20 20 2a 2f 0a 2b 20 20 20 20          */.+    
6780: 20 20 20 20 20 20 20 20 69 66 28 6e 65 77 52 73          if(newRs
6790: 72 63 46 6f 72 6b 53 69 7a 65 20 21 3d 20 30 29  rcForkSize != 0)
67a0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20   {.+            
67b0: 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 52 65      Tcl_AppendRe
67c0: 73 75 6c 74 28 69 6e 74 65 72 70 2c 0a 2b 20 20  sult(interp,.+  
67d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
67e0: 20 20 20 20 20 20 22 73 65 74 74 69 6e 67 20 6e        "setting n
67f0: 6f 6e 7a 65 72 6f 20 72 73 72 63 6c 65 6e 67 74  onzero rsrclengt
6800: 68 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22  h not supported"
6810: 2c 20 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  , .+            
6820: 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61              (cha
6830: 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b 20 20 20  r *) NULL);.+   
6840: 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74               ret
6850: 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b  urn TCL_ERROR;.+
6860: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 2b 20              }.+ 
6870: 20 20 20 20 20 20 20 20 20 20 20 0a 2b 20 20 20             .+   
6880: 20 20 20 20 20 20 20 20 20 2f 2a 20 63 6f 6e 73           /* cons
6890: 74 72 75 63 74 20 70 61 74 68 20 74 6f 20 72 65  truct path to re
68a0: 73 6f 75 72 63 65 20 66 6f 72 6b 20 2a 2f 0a 2b  source fork */.+
68b0: 20 20 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f              Tcl_
68c0: 44 53 74 72 69 6e 67 49 6e 69 74 28 26 64 73 29  DStringInit(&ds)
68d0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 54  ;.+            T
68e0: 63 6c 5f 44 53 74 72 69 6e 67 41 70 70 65 6e 64  cl_DStringAppend
68f0: 28 26 64 73 2c 20 6e 61 74 69 76 65 2c 20 2d 31  (&ds, native, -1
6900: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  );.+            
6910: 54 63 6c 5f 44 53 74 72 69 6e 67 41 70 70 65 6e  Tcl_DStringAppen
6920: 64 28 26 64 73 2c 20 5f 50 41 54 48 5f 52 53 52  d(&ds, _PATH_RSR
6930: 43 46 4f 52 4b 53 50 45 43 2c 20 2d 31 29 3b 0a  CFORKSPEC, -1);.
6940: 2b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 72  +.+            r
6950: 65 73 75 6c 74 20 3d 20 74 72 75 6e 63 61 74 65  esult = truncate
6960: 28 54 63 6c 5f 44 53 74 72 69 6e 67 56 61 6c 75  (Tcl_DStringValu
6970: 65 28 26 64 73 29 2c 20 28 6f 66 66 5f 74 29 30  e(&ds), (off_t)0
6980: 29 3b 0a 2b 0a 2b 20 20 20 20 20 20 20 20 20 20  );.+.+          
6990: 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 46 72 65    Tcl_DStringFre
69a0: 65 28 26 64 73 29 3b 0a 2b 20 20 20 20 0a 2b 20  e(&ds);.+    .+ 
69b0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 72             if (r
69c0: 65 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 2b 20  esult != 0) {.+ 
69d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54                 T
69e0: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28  cl_AppendResult(
69f0: 69 6e 74 65 72 70 2c 20 0a 2b 20 20 20 20 20 20  interp, .+      
6a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6a10: 20 20 22 63 6f 75 6c 64 20 6e 6f 74 20 74 72 75    "could not tru
6a20: 6e 63 61 74 65 20 72 65 73 6f 75 72 63 65 20 66  ncate resource f
6a30: 6f 72 6b 20 6f 66 20 5c 22 22 2c 0a 2b 20 20 20  ork of \"",.+   
6a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6a50: 20 20 20 20 20 54 63 6c 5f 47 65 74 53 74 72 69       Tcl_GetStri
6a60: 6e 67 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c  ng(fileName), "\
6a70: 22 3a 20 22 2c 0a 2b 20 20 20 20 20 20 20 20 20  ": ",.+         
6a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54                 T
6a90: 63 6c 5f 50 6f 73 69 78 45 72 72 6f 72 28 69 6e  cl_PosixError(in
6aa0: 74 65 72 70 29 2c 20 28 63 68 61 72 20 2a 29 20  terp), (char *) 
6ab0: 4e 55 4c 4c 29 3b 0a 2b 20 20 20 20 20 20 20 20  NULL);.+        
6ac0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54          return T
6ad0: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20  CL_ERROR;.+     
6ae0: 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20         }.+      
6af0: 20 20 7d 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20    }.+    }.+    
6b00: 72 65 74 75 72 6e 20 54 43 4c 5f 4f 4b 3b 0a 2b  return TCL_OK;.+
6b10: 23 65 6c 73 65 0a 2b 20 20 20 20 54 63 6c 5f 41  #else.+    Tcl_A
6b20: 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65  ppendResult(inte
6b30: 72 70 2c 20 22 4d 61 63 20 4f 53 20 58 20 66 69  rp, "Mac OS X fi
6b40: 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 6e 6f  le attributes no
6b50: 74 20 73 75 70 70 6f 72 74 65 64 22 2c 0a 2b 09  t supported",.+.
6b60: 09 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b  .(char *) NULL);
6b70: 0a 2b 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c  .+    return TCL
6b80: 5f 45 52 52 4f 52 3b 0a 2b 23 65 6e 64 69 66 0a  _ERROR;.+#endif.
6b90: 2b 7d 0a 2b 0c 0a 2b 2f 2a 0a 2b 20 2a 2d 2d 2d  +}.+..+/*.+ *---
6ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6bc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6bd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6be0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 2b 20 2a  --------.+ *.+ *
6bf0: 20 54 63 6c 4d 61 63 4f 53 58 43 6f 70 79 46 69   TclMacOSXCopyFi
6c00: 6c 65 41 74 74 72 69 62 75 74 65 73 20 2d 2d 0a  leAttributes --.
6c10: 2b 20 2a 0a 2b 20 2a 09 43 6f 70 79 20 74 68 65  + *.+ *.Copy the
6c20: 20 4d 61 63 4f 53 58 20 61 74 74 72 69 62 75 74   MacOSX attribut
6c30: 65 73 20 61 6e 64 20 72 65 73 6f 75 72 63 65 20  es and resource 
6c40: 66 6f 72 6b 20 28 69 66 20 70 72 65 73 65 6e 74  fork (if present
6c50: 29 20 66 72 6f 6d 20 6f 6e 65 0a 2b 20 2a 09 66  ) from one.+ *.f
6c60: 69 6c 65 20 74 6f 20 61 6e 6f 74 68 65 72 2e 0a  ile to another..
6c70: 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c 74 73 3a  + *.+ * Results:
6c80: 0a 2b 20 2a 09 53 74 61 6e 64 61 72 64 20 54 63  .+ *.Standard Tc
6c90: 6c 20 72 65 73 75 6c 74 2e 0a 2b 20 2a 0a 2b 20  l result..+ *.+ 
6ca0: 2a 20 53 69 64 65 20 65 66 66 65 63 74 73 3a 0a  * Side effects:.
6cb0: 2b 20 2a 09 4d 61 63 4f 53 58 20 61 74 74 72 69  + *.MacOSX attri
6cc0: 62 75 74 65 73 20 61 6e 64 20 72 65 73 6f 75 72  butes and resour
6cd0: 63 65 20 66 6f 72 6b 20 61 72 65 20 75 70 64 61  ce fork are upda
6ce0: 74 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 66  ted in the new f
6cf0: 69 6c 65 0a 2b 20 2a 09 74 6f 20 72 65 66 6c 65  ile.+ *.to refle
6d00: 63 74 20 74 68 65 20 6f 6c 64 20 66 69 6c 65 2e  ct the old file.
6d10: 0a 2b 20 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d  .+ *.+ *--------
6d20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6d40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6d60: 2d 2d 2d 0a 2b 20 2a 2f 0a 2b 0a 2b 69 6e 74 0a  ---.+ */.+.+int.
6d70: 2b 54 63 6c 4d 61 63 4f 53 58 43 6f 70 79 46 69  +TclMacOSXCopyFi
6d80: 6c 65 41 74 74 72 69 62 75 74 65 73 28 73 72 63  leAttributes(src
6d90: 2c 20 64 73 74 2c 20 73 74 61 74 42 75 66 50 74  , dst, statBufPt
6da0: 72 29 20 0a 2b 20 20 20 20 43 4f 4e 53 54 20 63  r) .+    CONST c
6db0: 68 61 72 20 2a 73 72 63 3b 09 09 2f 2a 20 50 61  har *src;../* Pa
6dc0: 74 68 20 6e 61 6d 65 20 6f 66 20 73 6f 75 72 63  th name of sourc
6dd0: 65 20 66 69 6c 65 20 28 6e 61 74 69 76 65 29 2e  e file (native).
6de0: 20 2a 2f 0a 2b 20 20 20 20 43 4f 4e 53 54 20 63   */.+    CONST c
6df0: 68 61 72 20 2a 64 73 74 3b 09 09 2f 2a 20 50 61  har *dst;../* Pa
6e00: 74 68 20 6e 61 6d 65 20 6f 66 20 74 61 72 67 65  th name of targe
6e10: 74 20 66 69 6c 65 20 28 6e 61 74 69 76 65 29 2e  t file (native).
6e20: 20 2a 2f 0a 2b 20 20 20 20 43 4f 4e 53 54 20 54   */.+    CONST T
6e30: 63 6c 5f 53 74 61 74 42 75 66 20 2a 73 74 61 74  cl_StatBuf *stat
6e40: 42 75 66 50 74 72 3b 0a 2b 09 09 09 09 2f 2a 20  BufPtr;.+..../* 
6e50: 53 74 61 74 20 69 6e 66 6f 20 66 6f 72 20 73 6f  Stat info for so
6e60: 75 72 63 65 20 66 69 6c 65 20 2a 2f 0a 2b 7b 0a  urce file */.+{.
6e70: 2b 23 69 66 64 65 66 20 48 41 56 45 5f 47 45 54  +#ifdef HAVE_GET
6e80: 41 54 54 52 4c 49 53 54 0a 2b 20 20 20 20 73 74  ATTRLIST.+    st
6e90: 72 75 63 74 20 61 74 74 72 6c 69 73 74 20 61 6c  ruct attrlist al
6ea0: 69 73 74 3b 0a 2b 20 20 20 20 66 69 6c 65 69 6e  ist;.+    filein
6eb0: 66 6f 62 75 66 20 66 69 6e 66 6f 3b 0a 2b 20 20  fobuf finfo;.+  
6ec0: 20 20 0a 2b 20 20 20 20 6d 65 6d 73 65 74 28 26    .+    memset(&
6ed0: 61 6c 69 73 74 2c 20 30 2c 20 73 69 7a 65 6f 66  alist, 0, sizeof
6ee0: 28 73 74 72 75 63 74 20 61 74 74 72 6c 69 73 74  (struct attrlist
6ef0: 29 29 3b 0a 2b 20 20 20 20 61 6c 69 73 74 2e 62  ));.+    alist.b
6f00: 69 74 6d 61 70 63 6f 75 6e 74 20 3d 20 41 54 54  itmapcount = ATT
6f10: 52 5f 42 49 54 5f 4d 41 50 5f 43 4f 55 4e 54 3b  R_BIT_MAP_COUNT;
6f20: 0a 2b 20 20 20 20 61 6c 69 73 74 2e 63 6f 6d 6d  .+    alist.comm
6f30: 6f 6e 61 74 74 72 20 3d 20 41 54 54 52 5f 43 4d  onattr = ATTR_CM
6f40: 4e 5f 46 4e 44 52 49 4e 46 4f 3b 20 20 20 20 0a  N_FNDRINFO;    .
6f50: 2b 0a 2b 20 20 20 20 69 66 20 28 67 65 74 61 74  +.+    if (getat
6f60: 74 72 6c 69 73 74 28 73 72 63 2c 20 26 61 6c 69  trlist(src, &ali
6f70: 73 74 2c 20 26 66 69 6e 66 6f 2c 20 73 69 7a 65  st, &finfo, size
6f80: 6f 66 28 66 69 6c 65 69 6e 66 6f 62 75 66 29 2c  of(fileinfobuf),
6f90: 20 30 29 29 20 7b 0a 2b 20 20 20 20 20 20 20 20   0)) {.+        
6fa0: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52  return TCL_ERROR
6fb0: 3b 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20  ;.+    }.+.+    
6fc0: 69 66 20 28 73 65 74 61 74 74 72 6c 69 73 74 28  if (setattrlist(
6fd0: 64 73 74 2c 20 26 61 6c 69 73 74 2c 20 26 66 69  dst, &alist, &fi
6fe0: 6e 66 6f 2e 64 61 74 61 2c 20 73 69 7a 65 6f 66  nfo.data, sizeof
6ff0: 28 66 69 6e 66 6f 2e 64 61 74 61 29 2c 20 30 29  (finfo.data), 0)
7000: 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 72 65 74  ) {.+        ret
7010: 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b  urn TCL_ERROR;.+
7020: 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 69 66 20      }.+.+    if 
7030: 28 21 53 5f 49 53 44 49 52 28 73 74 61 74 42 75  (!S_ISDIR(statBu
7040: 66 50 74 72 2d 3e 73 74 5f 6d 6f 64 65 29 29 20  fPtr->st_mode)) 
7050: 7b 0a 2b 20 20 20 20 20 20 20 20 2f 2a 20 6f 6e  {.+        /* on
7060: 6c 79 20 63 6f 70 79 20 6e 6f 6e 2d 65 6d 70 74  ly copy non-empt
7070: 79 20 72 65 73 6f 75 72 63 65 20 66 6f 72 6b 20  y resource fork 
7080: 2a 2f 0a 2b 20 20 20 20 20 20 20 20 61 6c 69 73  */.+        alis
7090: 74 2e 63 6f 6d 6d 6f 6e 61 74 74 72 20 3d 20 30  t.commonattr = 0
70a0: 3b 20 20 20 20 0a 2b 20 20 20 20 20 20 20 20 61  ;    .+        a
70b0: 6c 69 73 74 2e 66 69 6c 65 61 74 74 72 20 3d 20  list.fileattr = 
70c0: 41 54 54 52 5f 46 49 4c 45 5f 52 53 52 43 4c 45  ATTR_FILE_RSRCLE
70d0: 4e 47 54 48 3b 0a 2b 20 20 20 20 20 20 20 20 0a  NGTH;.+        .
70e0: 2b 09 69 66 20 28 67 65 74 61 74 74 72 6c 69 73  +.if (getattrlis
70f0: 74 28 73 72 63 2c 20 26 61 6c 69 73 74 2c 20 26  t(src, &alist, &
7100: 66 69 6e 66 6f 2c 20 73 69 7a 65 6f 66 28 66 69  finfo, sizeof(fi
7110: 6c 65 69 6e 66 6f 62 75 66 29 2c 20 30 29 29 20  leinfobuf), 0)) 
7120: 7b 0a 2b 09 20 20 20 20 72 65 74 75 72 6e 20 54  {.+.    return T
7130: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 7d 0a 2b 20  CL_ERROR;.+.}.+ 
7140: 20 20 20 20 20 20 20 0a 2b 20 20 20 20 20 20 20         .+       
7150: 20 69 66 28 66 69 6e 66 6f 2e 64 61 74 61 2e 72   if(finfo.data.r
7160: 73 72 63 46 6f 72 6b 53 69 7a 65 20 3e 20 30 29  srcForkSize > 0)
7170: 20 7b 0a 2b 09 20 20 20 20 69 6e 74 20 72 65 73   {.+.    int res
7180: 75 6c 74 3b 0a 2b 20 20 20 20 20 20 20 20 20 20  ult;.+          
7190: 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 20 64 73    Tcl_DString ds
71a0: 5f 73 72 63 2c 20 64 73 5f 64 73 74 3b 0a 2b 20  _src, ds_dst;.+ 
71b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
71c0: 20 20 20 20 20 20 20 0a 2b 20 20 20 20 20 20 20         .+       
71d0: 20 20 20 20 20 2f 2a 20 63 6f 6e 73 74 72 75 63       /* construc
71e0: 74 20 70 61 74 68 73 20 74 6f 20 72 65 73 6f 75  t paths to resou
71f0: 72 63 65 20 66 6f 72 6b 73 20 2a 2f 0a 2b 20 20  rce forks */.+  
7200: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 44 53            Tcl_DS
7210: 74 72 69 6e 67 49 6e 69 74 28 26 64 73 5f 73 72  tringInit(&ds_sr
7220: 63 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20  c);.+           
7230: 20 54 63 6c 5f 44 53 74 72 69 6e 67 41 70 70 65   Tcl_DStringAppe
7240: 6e 64 28 26 64 73 5f 73 72 63 2c 20 73 72 63 2c  nd(&ds_src, src,
7250: 20 2d 31 29 3b 0a 2b 20 20 20 20 20 20 20 20 20   -1);.+         
7260: 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 41 70     Tcl_DStringAp
7270: 70 65 6e 64 28 26 64 73 5f 73 72 63 2c 20 5f 50  pend(&ds_src, _P
7280: 41 54 48 5f 52 53 52 43 46 4f 52 4b 53 50 45 43  ATH_RSRCFORKSPEC
7290: 2c 20 2d 31 29 3b 0a 2b 20 20 20 20 20 20 20 20  , -1);.+        
72a0: 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 49      Tcl_DStringI
72b0: 6e 69 74 28 26 64 73 5f 64 73 74 29 3b 0a 2b 20  nit(&ds_dst);.+ 
72c0: 20 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 44             Tcl_D
72d0: 53 74 72 69 6e 67 41 70 70 65 6e 64 28 26 64 73  StringAppend(&ds
72e0: 5f 64 73 74 2c 20 64 73 74 2c 20 2d 31 29 3b 0a  _dst, dst, -1);.
72f0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 54 63 6c  +            Tcl
7300: 5f 44 53 74 72 69 6e 67 41 70 70 65 6e 64 28 26  _DStringAppend(&
7310: 64 73 5f 64 73 74 2c 20 5f 50 41 54 48 5f 52 53  ds_dst, _PATH_RS
7320: 52 43 46 4f 52 4b 53 50 45 43 2c 20 2d 31 29 3b  RCFORKSPEC, -1);
7330: 0a 2b 20 0a 2b 20 20 20 20 20 20 20 20 20 20 20  .+ .+           
7340: 20 72 65 73 75 6c 74 20 3d 20 54 63 6c 55 6e 69   result = TclUni
7350: 78 43 6f 70 79 46 69 6c 65 28 54 63 6c 5f 44 53  xCopyFile(Tcl_DS
7360: 74 72 69 6e 67 56 61 6c 75 65 28 26 64 73 5f 73  tringValue(&ds_s
7370: 72 63 29 2c 0a 2b 20 20 20 20 20 20 20 20 20 20  rc),.+          
7380: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 44 53            Tcl_DS
7390: 74 72 69 6e 67 56 61 6c 75 65 28 26 64 73 5f 64  tringValue(&ds_d
73a0: 73 74 29 2c 20 73 74 61 74 42 75 66 50 74 72 2c  st), statBufPtr,
73b0: 20 31 29 3b 0a 2b 0a 2b 20 20 20 20 20 20 20 20   1);.+.+        
73c0: 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e 67 46      Tcl_DStringF
73d0: 72 65 65 28 26 64 73 5f 73 72 63 29 3b 0a 2b 20  ree(&ds_src);.+ 
73e0: 20 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 44             Tcl_D
73f0: 53 74 72 69 6e 67 46 72 65 65 28 26 64 73 5f 64  StringFree(&ds_d
7400: 73 74 29 3b 0a 2b 20 20 20 20 0a 2b 09 20 20 20  st);.+    .+.   
7410: 20 69 66 20 28 72 65 73 75 6c 74 20 21 3d 20 30   if (result != 0
7420: 29 20 7b 0a 2b 09 09 72 65 74 75 72 6e 20 54 43  ) {.+..return TC
7430: 4c 5f 45 52 52 4f 52 3b 0a 2b 09 20 20 20 20 7d  L_ERROR;.+.    }
7440: 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20  .+        }.+   
7450: 20 7d 0a 2b 20 20 20 20 72 65 74 75 72 6e 20 54   }.+    return T
7460: 43 4c 5f 4f 4b 3b 0a 2b 23 65 6c 73 65 0a 2b 20  CL_OK;.+#else.+ 
7470: 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52     return TCL_ER
7480: 52 4f 52 3b 0a 2b 23 65 6e 64 69 66 0a 2b 7d 0a  ROR;.+#endif.+}.
7490: 2b 0c 0a 2b 2f 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d  +..+/*.+ *------
74a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
74b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
74c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
74d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
74e0: 0a 2b 20 2a 0a 2b 20 2a 20 54 63 6c 5f 47 65 74  .+ *.+ * Tcl_Get
74f0: 4f 53 54 79 70 65 46 72 6f 6d 4f 62 6a 20 2d 2d  OSTypeFromObj --
7500: 0a 2b 20 2a 0a 2b 20 2a 09 41 74 74 65 6d 70 74  .+ *.+ *.Attempt
7510: 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 20 4f 53   to return an OS
7520: 54 79 70 65 20 66 72 6f 6d 20 74 68 65 20 54 63  Type from the Tc
7530: 6c 20 6f 62 6a 65 63 74 20 22 6f 62 6a 50 74 72  l object "objPtr
7540: 22 2e 0a 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c  "..+ *.+ * Resul
7550: 74 73 3a 0a 2b 20 2a 09 53 74 61 6e 64 61 72 64  ts:.+ *.Standard
7560: 20 54 43 4c 20 72 65 73 75 6c 74 2e 20 49 66 20   TCL result. If 
7570: 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 20  an error occurs 
7580: 64 75 72 69 6e 67 20 63 6f 6e 76 65 72 73 69 6f  during conversio
7590: 6e 2c 0a 2b 20 2a 09 61 6e 20 65 72 72 6f 72 20  n,.+ *.an error 
75a0: 6d 65 73 73 61 67 65 20 69 73 20 6c 65 66 74 20  message is left 
75b0: 69 6e 20 69 6e 74 65 72 70 2d 3e 6f 62 6a 52 65  in interp->objRe
75c0: 73 75 6c 74 2e 0a 2b 20 2a 0a 2b 20 2a 20 53 69  sult..+ *.+ * Si
75d0: 64 65 20 65 66 66 65 63 74 73 3a 0a 2b 20 2a 09  de effects:.+ *.
75e0: 54 68 65 20 73 74 72 69 6e 67 20 72 65 70 72 65  The string repre
75f0: 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 6f 62 6a  sentation of obj
7600: 50 74 72 20 77 69 6c 6c 20 62 65 20 75 70 64 61  Ptr will be upda
7610: 74 65 64 20 69 66 20 6e 65 63 65 73 73 61 72 79  ted if necessary
7620: 2e 0a 2b 20 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d  ..+ *.+ *-------
7630: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7640: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
7670: 2b 20 2a 2f 0a 2b 0a 2b 73 74 61 74 69 63 20 69  + */.+.+static i
7680: 6e 74 0a 2b 54 63 6c 5f 47 65 74 4f 53 54 79 70  nt.+Tcl_GetOSTyp
7690: 65 46 72 6f 6d 4f 62 6a 28 0a 2b 20 20 20 20 54  eFromObj(.+    T
76a0: 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72  cl_Interp *inter
76b0: 70 2c 20 20 20 20 20 20 20 20 20 2f 2a 20 55 73  p,         /* Us
76c0: 65 64 20 66 6f 72 20 65 72 72 6f 72 20 72 65 70  ed for error rep
76d0: 6f 72 74 69 6e 67 20 69 66 20 6e 6f 74 20 4e 55  orting if not NU
76e0: 4c 4c 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f  LL. */.+    Tcl_
76f0: 4f 62 6a 20 2a 6f 62 6a 50 74 72 2c 20 20 20 20  Obj *objPtr,    
7700: 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20 6f          /* The o
7710: 62 6a 65 63 74 20 66 72 6f 6d 20 77 68 69 63 68  bject from which
7720: 20 74 6f 20 67 65 74 20 61 6e 20 4f 53 54 79 70   to get an OSTyp
7730: 65 2e 20 2a 2f 0a 2b 20 20 20 20 4f 53 54 79 70  e. */.+    OSTyp
7740: 65 20 2a 6f 73 54 79 70 65 50 74 72 29 20 20 20  e *osTypePtr)   
7750: 20 20 20 20 20 20 20 2f 2a 20 50 6c 61 63 65 20         /* Place 
7760: 74 6f 20 73 74 6f 72 65 20 72 65 73 75 6c 74 69  to store resulti
7770: 6e 67 20 4f 53 54 79 70 65 2e 20 2a 2f 0a 2b 7b  ng OSType. */.+{
7780: 0a 2b 20 20 20 20 63 68 61 72 20 2a 73 74 72 69  .+    char *stri
7790: 6e 67 3b 0a 2b 20 20 20 20 69 6e 74 20 6c 65 6e  ng;.+    int len
77a0: 67 74 68 2c 20 72 65 73 75 6c 74 20 3d 20 54 43  gth, result = TC
77b0: 4c 5f 4f 4b 3b 0a 2b 20 20 20 20 54 63 6c 5f 44  L_OK;.+    Tcl_D
77c0: 53 74 72 69 6e 67 20 64 73 3b 0a 2b 20 20 20 20  String ds;.+    
77d0: 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 20 65 6e 63  Tcl_Encoding enc
77e0: 6f 64 69 6e 67 20 3d 20 54 63 6c 5f 47 65 74 45  oding = Tcl_GetE
77f0: 6e 63 6f 64 69 6e 67 28 4e 55 4c 4c 2c 20 22 6d  ncoding(NULL, "m
7800: 61 63 52 6f 6d 61 6e 22 29 3b 0a 2b 0a 2b 20 20  acRoman");.+.+  
7810: 20 20 73 74 72 69 6e 67 20 3d 20 54 63 6c 5f 47    string = Tcl_G
7820: 65 74 53 74 72 69 6e 67 46 72 6f 6d 4f 62 6a 28  etStringFromObj(
7830: 6f 62 6a 50 74 72 2c 20 26 6c 65 6e 67 74 68 29  objPtr, &length)
7840: 3b 0a 2b 20 20 20 20 54 63 6c 5f 55 74 66 54 6f  ;.+    Tcl_UtfTo
7850: 45 78 74 65 72 6e 61 6c 44 53 74 72 69 6e 67 28  ExternalDString(
7860: 65 6e 63 6f 64 69 6e 67 2c 20 73 74 72 69 6e 67  encoding, string
7870: 2c 20 6c 65 6e 67 74 68 2c 20 26 64 73 29 3b 0a  , length, &ds);.
7880: 2b 0a 2b 20 20 20 20 69 66 20 28 54 63 6c 5f 44  +.+    if (Tcl_D
7890: 53 74 72 69 6e 67 4c 65 6e 67 74 68 28 26 64 73  StringLength(&ds
78a0: 29 20 3e 20 73 69 7a 65 6f 66 28 4f 53 54 79 70  ) > sizeof(OSTyp
78b0: 65 29 29 20 7b 0a 2b 09 54 63 6c 5f 41 70 70 65  e)) {.+.Tcl_Appe
78c0: 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c  ndResult(interp,
78d0: 20 0a 2b 09 09 22 65 78 70 65 63 74 65 64 20 4d   .+.."expected M
78e0: 61 63 69 6e 74 6f 73 68 20 4f 53 20 74 79 70 65  acintosh OS type
78f0: 20 62 75 74 20 67 6f 74 20 5c 22 22 2c 0a 2b 09   but got \"",.+.
7900: 09 73 74 72 69 6e 67 2c 20 22 5c 22 3a 20 22 2c  .string, "\": ",
7910: 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b   (char *) NULL);
7920: 0a 2b 20 20 20 20 20 20 20 20 72 65 73 75 6c 74  .+        result
7930: 20 3d 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20   = TCL_ERROR;.+ 
7940: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2b 09 6d 65     } else {.+.me
7950: 6d 73 65 74 28 6f 73 54 79 70 65 50 74 72 2c 20  mset(osTypePtr, 
7960: 30 2c 20 73 69 7a 65 6f 66 28 4f 53 54 79 70 65  0, sizeof(OSType
7970: 29 29 3b 0a 2b 09 6d 65 6d 63 70 79 28 6f 73 54  ));.+.memcpy(osT
7980: 79 70 65 50 74 72 2c 20 54 63 6c 5f 44 53 74 72  ypePtr, Tcl_DStr
7990: 69 6e 67 56 61 6c 75 65 28 26 64 73 29 2c 0a 2b  ingValue(&ds),.+
79a0: 09 20 20 20 20 20 20 20 20 28 73 69 7a 65 5f 74  .        (size_t
79b0: 29 20 54 63 6c 5f 44 53 74 72 69 6e 67 4c 65 6e  ) Tcl_DStringLen
79c0: 67 74 68 28 26 64 73 29 29 3b 0a 2b 20 20 20 20  gth(&ds));.+    
79d0: 7d 0a 2b 20 20 20 20 54 63 6c 5f 44 53 74 72 69  }.+    Tcl_DStri
79e0: 6e 67 46 72 65 65 28 26 64 73 29 3b 0a 2b 20 20  ngFree(&ds);.+  
79f0: 20 20 54 63 6c 5f 46 72 65 65 45 6e 63 6f 64 69    Tcl_FreeEncodi
7a00: 6e 67 28 65 6e 63 6f 64 69 6e 67 29 3b 0a 2b 20  ng(encoding);.+ 
7a10: 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74     return result
7a20: 3b 0a 2b 7d 0a 2b 0c 0a 2b 2f 2a 0a 2b 20 2a 2d  ;.+}.+..+/*.+ *-
7a30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7a70: 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 54 63  -----.+ *.+ * Tc
7a80: 6c 5f 4e 65 77 4f 53 54 79 70 65 53 74 72 69 6e  l_NewOSTypeStrin
7a90: 67 4f 62 6a 20 2d 2d 0a 2b 20 2a 0a 2b 20 2a 09  gObj --.+ *.+ *.
7aa0: 43 72 65 61 74 65 20 61 20 6e 65 77 20 4f 53 54  Create a new OST
7ab0: 79 70 65 20 73 74 72 69 6e 67 20 6f 62 6a 65 63  ype string objec
7ac0: 74 2e 0a 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c  t..+ *.+ * Resul
7ad0: 74 73 3a 0a 2b 20 2a 09 54 68 65 20 6e 65 77 6c  ts:.+ *.The newl
7ae0: 79 20 63 72 65 61 74 65 64 20 73 74 72 69 6e 67  y created string
7af0: 20 6f 62 6a 65 63 74 20 69 73 20 72 65 74 75 72   object is retur
7b00: 6e 65 64 2c 20 69 74 20 68 61 73 20 72 65 66 20  ned, it has ref 
7b10: 63 6f 75 6e 74 20 30 2e 0a 2b 20 2a 0a 2b 20 2a  count 0..+ *.+ *
7b20: 20 53 69 64 65 20 65 66 66 65 63 74 73 3a 0a 2b   Side effects:.+
7b30: 20 2a 09 4e 6f 6e 65 2e 0a 2b 20 2a 0a 2b 20 2a   *.None..+ *.+ *
7b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7b80: 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 2f 0a 2b 0a 2b 73  ------.+ */.+.+s
7b90: 74 61 74 69 63 20 54 63 6c 5f 4f 62 6a 20 2a 0a  tatic Tcl_Obj *.
7ba0: 2b 54 63 6c 5f 4e 65 77 4f 53 54 79 70 65 53 74  +Tcl_NewOSTypeSt
7bb0: 72 69 6e 67 4f 62 6a 28 0a 2b 20 20 20 20 43 4f  ringObj(.+    CO
7bc0: 4e 53 54 20 4f 53 54 79 70 65 20 6e 65 77 4f 53  NST OSType newOS
7bd0: 54 79 70 65 29 20 20 20 20 2f 2a 20 4f 53 54 79  Type)    /* OSTy
7be0: 70 65 20 75 73 65 64 20 74 6f 20 69 6e 69 74 69  pe used to initi
7bf0: 61 6c 69 7a 65 20 74 68 65 20 6e 65 77 20 6f 62  alize the new ob
7c00: 6a 65 63 74 2e 20 2a 2f 0a 2b 7b 0a 2b 20 20 20  ject. */.+{.+   
7c10: 20 63 68 61 72 20 73 74 72 69 6e 67 5b 73 69 7a   char string[siz
7c20: 65 6f 66 28 4f 53 54 79 70 65 29 2b 31 5d 3b 0a  eof(OSType)+1];.
7c30: 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 72 65  +    Tcl_Obj *re
7c40: 73 75 6c 74 50 74 72 3b 0a 2b 20 20 20 20 54 63  sultPtr;.+    Tc
7c50: 6c 5f 44 53 74 72 69 6e 67 20 64 73 3b 0a 2b 20  l_DString ds;.+ 
7c60: 20 20 20 54 63 6c 5f 45 6e 63 6f 64 69 6e 67 20     Tcl_Encoding 
7c70: 65 6e 63 6f 64 69 6e 67 20 3d 20 54 63 6c 5f 47  encoding = Tcl_G
7c80: 65 74 45 6e 63 6f 64 69 6e 67 28 4e 55 4c 4c 2c  etEncoding(NULL,
7c90: 20 22 6d 61 63 52 6f 6d 61 6e 22 29 3b 0a 2b 0a   "macRoman");.+.
7ca0: 2b 20 20 20 20 6d 65 6d 63 70 79 28 73 74 72 69  +    memcpy(stri
7cb0: 6e 67 2c 20 26 6e 65 77 4f 53 54 79 70 65 2c 20  ng, &newOSType, 
7cc0: 73 69 7a 65 6f 66 28 4f 53 54 79 70 65 29 29 3b  sizeof(OSType));
7cd0: 0a 2b 20 20 20 20 73 74 72 69 6e 67 5b 73 69 7a  .+    string[siz
7ce0: 65 6f 66 28 4f 53 54 79 70 65 29 5d 20 3d 20 27  eof(OSType)] = '
7cf0: 5c 30 27 3b 0a 2b 20 20 20 20 54 63 6c 5f 45 78  \0';.+    Tcl_Ex
7d00: 74 65 72 6e 61 6c 54 6f 55 74 66 44 53 74 72 69  ternalToUtfDStri
7d10: 6e 67 28 65 6e 63 6f 64 69 6e 67 2c 20 73 74 72  ng(encoding, str
7d20: 69 6e 67 2c 20 2d 31 2c 20 26 64 73 29 3b 0a 2b  ing, -1, &ds);.+
7d30: 20 20 20 20 72 65 73 75 6c 74 50 74 72 20 3d 20      resultPtr = 
7d40: 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67 4f 62 6a  Tcl_NewStringObj
7d50: 28 54 63 6c 5f 44 53 74 72 69 6e 67 56 61 6c 75  (Tcl_DStringValu
7d60: 65 28 26 64 73 29 2c 20 54 63 6c 5f 44 53 74 72  e(&ds), Tcl_DStr
7d70: 69 6e 67 4c 65 6e 67 74 68 28 26 64 73 29 29 3b  ingLength(&ds));
7d80: 0a 2b 20 20 20 20 54 63 6c 5f 44 53 74 72 69 6e  .+    Tcl_DStrin
7d90: 67 46 72 65 65 28 26 64 73 29 3b 0a 2b 20 20 20  gFree(&ds);.+   
7da0: 20 54 63 6c 5f 46 72 65 65 45 6e 63 6f 64 69 6e   Tcl_FreeEncodin
7db0: 67 28 65 6e 63 6f 64 69 6e 67 29 3b 0a 2b 20 20  g(encoding);.+  
7dc0: 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 50    return resultP
7dd0: 74 72 3b 0a 2b 7d 0a 49 6e 64 65 78 3a 20 74 65  tr;.+}.Index: te
7de0: 73 74 73 2f 6d 61 63 46 43 6d 64 2e 74 65 73 74  sts/macFCmd.test
7df0: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
7e00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7e10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7e20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
7e30: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f  ====.RCS file: /
7e40: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f  cvsroot/tcl/tcl/
7e50: 74 65 73 74 73 2f 6d 61 63 46 43 6d 64 2e 74 65  tests/macFCmd.te
7e60: 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20  st,v.retrieving 
7e70: 72 65 76 69 73 69 6f 6e 20 31 2e 31 30 0a 64 69  revision 1.10.di
7e80: 66 66 20 2d 75 20 2d 72 31 2e 31 30 20 6d 61 63  ff -u -r1.10 mac
7e90: 46 43 6d 64 2e 74 65 73 74 0a 2d 2d 2d 20 74 65  FCmd.test.--- te
7ea0: 73 74 73 2f 6d 61 63 46 43 6d 64 2e 74 65 73 74  sts/macFCmd.test
7eb0: 09 35 20 4a 75 6c 20 32 30 30 32 20 31 30 3a 33  .5 Jul 2002 10:3
7ec0: 38 3a 34 33 20 2d 30 30 30 30 09 31 2e 31 30 0a  8:43 -0000.1.10.
7ed0: 2b 2b 2b 20 74 65 73 74 73 2f 6d 61 63 46 43 6d  +++ tests/macFCm
7ee0: 64 2e 74 65 73 74 09 31 34 20 4d 61 79 20 32 30  d.test.14 May 20
7ef0: 30 33 20 31 39 3a 31 33 3a 33 32 20 2d 30 30 30  03 19:13:32 -000
7f00: 30 0a 40 40 20 2d 33 31 2c 36 20 2b 33 31 2c 37  0.@@ -31,6 +31,7
7f10: 20 40 40 0a 20 7d 20 65 6c 73 65 20 7b 0a 20 20   @@. } else {.  
7f20: 20 20 20 73 65 74 20 3a 3a 74 63 6c 74 65 73 74     set ::tcltest
7f30: 3a 3a 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74  ::testConstraint
7f40: 73 28 66 69 6c 65 53 68 61 72 69 6e 67 29 20 31  s(fileSharing) 1
7f50: 0a 20 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 74  .     set ::tclt
7f60: 65 73 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72 61  est::testConstra
7f70: 69 6e 74 73 28 6e 6f 74 46 69 6c 65 53 68 61 72  ints(notFileShar
7f80: 69 6e 67 29 20 30 0a 2b 20 20 20 20 66 69 6c 65  ing) 0.+    file
7f90: 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f 2e   attributes foo.
7fa0: 64 69 72 20 2d 72 65 61 64 6f 6e 6c 79 20 30 0a  dir -readonly 0.
7fb0: 20 7d 0a 20 66 69 6c 65 20 64 65 6c 65 74 65 20   }. file delete 
7fc0: 2d 66 6f 72 63 65 20 66 6f 6f 2e 64 69 72 0a 20  -force foo.dir. 
7fd0: 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 6d 61  .Index: tests/ma
7fe0: 63 4f 53 58 46 43 6d 64 2e 74 65 73 74 0a 3d 3d  cOSXFCmd.test.==
7ff0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
8000: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
8010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
8020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
8030: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 74 65 73 74  =.RCS file: test
8040: 73 2f 6d 61 63 4f 53 58 46 43 6d 64 2e 74 65 73  s/macOSXFCmd.tes
8050: 74 0a 64 69 66 66 20 2d 4e 20 74 65 73 74 73 2f  t.diff -N tests/
8060: 6d 61 63 4f 53 58 46 43 6d 64 2e 74 65 73 74 0a  macOSXFCmd.test.
8070: 2d 2d 2d 20 2f 64 65 76 2f 6e 75 6c 6c 09 31 20  --- /dev/null.1 
8080: 4a 61 6e 20 31 39 37 30 20 30 30 3a 30 30 3a 30  Jan 1970 00:00:0
8090: 30 20 2d 30 30 30 30 0a 2b 2b 2b 20 74 65 73 74  0 -0000.+++ test
80a0: 73 2f 6d 61 63 4f 53 58 46 43 6d 64 2e 74 65 73  s/macOSXFCmd.tes
80b0: 74 09 31 34 20 4d 61 79 20 32 30 30 33 20 31 39  t.14 May 2003 19
80c0: 3a 31 33 3a 33 32 20 2d 30 30 30 30 0a 40 40 20  :13:32 -0000.@@ 
80d0: 2d 30 2c 30 20 2b 31 2c 31 34 33 20 40 40 0a 2b  -0,0 +1,143 @@.+
80e0: 23 20 54 68 69 73 20 66 69 6c 65 20 74 65 73 74  # This file test
80f0: 73 20 74 68 65 20 74 63 6c 4d 61 63 4f 53 58 46  s the tclMacOSXF
8100: 43 6d 64 2e 63 20 66 69 6c 65 2e 0a 2b 23 0a 2b  Cmd.c file..+#.+
8110: 23 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74  # This file cont
8120: 61 69 6e 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f  ains a collectio
8130: 6e 20 6f 66 20 74 65 73 74 73 20 66 6f 72 20 6f  n of tests for o
8140: 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68  ne or more of th
8150: 65 20 54 63 6c 0a 2b 23 20 62 75 69 6c 74 2d 69  e Tcl.+# built-i
8160: 6e 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 53 6f 75  n commands.  Sou
8170: 72 63 69 6e 67 20 74 68 69 73 20 66 69 6c 65 20  rcing this file 
8180: 69 6e 74 6f 20 54 63 6c 20 72 75 6e 73 20 74 68  into Tcl runs th
8190: 65 20 74 65 73 74 73 20 61 6e 64 0a 2b 23 20 67  e tests and.+# g
81a0: 65 6e 65 72 61 74 65 73 20 6f 75 74 70 75 74 20  enerates output 
81b0: 66 6f 72 20 65 72 72 6f 72 73 2e 20 20 4e 6f 20  for errors.  No 
81c0: 6f 75 74 70 75 74 20 6d 65 61 6e 73 20 6e 6f 20  output means no 
81d0: 65 72 72 6f 72 73 20 77 65 72 65 20 66 6f 75 6e  errors were foun
81e0: 64 2e 0a 2b 23 0a 2b 23 20 43 6f 70 79 72 69 67  d..+#.+# Copyrig
81f0: 68 74 20 28 63 29 20 32 30 30 33 20 54 63 6c 20  ht (c) 2003 Tcl 
8200: 43 6f 72 65 20 54 65 61 6d 2e 0a 2b 23 0a 2b 23  Core Team..+#.+#
8210: 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c   See the file "l
8220: 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f  icense.terms" fo
8230: 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e  r information on
8240: 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73   usage and redis
8250: 74 72 69 62 75 74 69 6f 6e 0a 2b 23 20 6f 66 20  tribution.+# of 
8260: 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66  this file, and f
8270: 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20  or a DISCLAIMER 
8280: 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45  OF ALL WARRANTIE
8290: 53 2e 0a 2b 23 0a 2b 23 20 52 43 53 3a 20 40 28  S..+#.+# RCS: @(
82a0: 23 29 20 24 49 64 24 0a 2b 23 0a 2b 0a 2b 69 66  #) $Id$.+#.+.+if
82b0: 20 7b 5b 6c 73 65 61 72 63 68 20 5b 6e 61 6d 65   {[lsearch [name
82c0: 73 70 61 63 65 20 63 68 69 6c 64 72 65 6e 5d 20  space children] 
82d0: 3a 3a 74 63 6c 74 65 73 74 5d 20 3d 3d 20 2d 31  ::tcltest] == -1
82e0: 7d 20 7b 0a 2b 20 20 20 20 70 61 63 6b 61 67 65  } {.+    package
82f0: 20 72 65 71 75 69 72 65 20 74 63 6c 74 65 73 74   require tcltest
8300: 0a 2b 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20  .+    namespace 
8310: 69 6d 70 6f 72 74 20 2d 66 6f 72 63 65 20 3a 3a  import -force ::
8320: 74 63 6c 74 65 73 74 3a 3a 2a 0a 2b 7d 0a 2b 0a  tcltest::*.+}.+.
8330: 2b 23 20 54 68 65 73 65 20 74 65 73 74 73 20 72  +# These tests r
8340: 65 61 6c 6c 79 20 6e 65 65 64 20 74 6f 20 62 65  eally need to be
8350: 20 72 75 6e 20 66 72 6f 6d 20 61 20 77 72 69 74   run from a writ
8360: 61 62 6c 65 20 64 69 72 65 63 74 6f 72 79 2c 20  able directory, 
8370: 77 68 69 63 68 0a 2b 23 20 69 74 20 69 73 20 61  which.+# it is a
8380: 73 73 75 6d 65 64 20 5b 74 65 6d 70 6f 72 61 72  ssumed [temporar
8390: 79 44 69 72 65 63 74 6f 72 79 5d 20 69 73 2e 0a  yDirectory] is..
83a0: 2b 73 65 74 20 6f 6c 64 63 77 64 20 5b 70 77 64  +set oldcwd [pwd
83b0: 5d 0a 2b 63 64 20 5b 74 65 6d 70 6f 72 61 72 79  ].+cd [temporary
83c0: 44 69 72 65 63 74 6f 72 79 5d 0a 2b 0a 2b 23 20  Directory].+.+# 
83d0: 63 68 65 63 6b 20 77 68 65 74 68 65 72 20 6d 61  check whether ma
83e0: 63 6f 73 78 20 66 69 6c 65 20 61 74 74 72 69 62  cosx file attrib
83f0: 75 74 65 73 20 61 72 65 20 73 75 70 70 6f 72 74  utes are support
8400: 65 64 0a 2b 73 65 74 20 3a 3a 74 63 6c 74 65 73  ed.+set ::tcltes
8410: 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72 61 69 6e  t::testConstrain
8420: 74 73 28 6d 61 63 6f 73 78 46 69 6c 65 41 74 74  ts(macosxFileAtt
8430: 72 29 20 30 0a 2b 69 66 20 7b 24 74 63 6c 5f 70  r) 0.+if {$tcl_p
8440: 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d  latform(platform
8450: 29 20 65 71 20 22 75 6e 69 78 22 20 26 26 20 5c  ) eq "unix" && \
8460: 0a 2b 09 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d  .+.$tcl_platform
8470: 28 6f 73 29 20 65 71 20 22 44 61 72 77 69 6e 22  (os) eq "Darwin"
8480: 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63 68 20 7b  } {.+    catch {
8490: 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72  file delete -for
84a0: 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a  ce -- foo.test}.
84b0: 2b 20 20 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e  +    close [open
84c0: 20 66 6f 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20   foo.test w].+  
84d0: 20 20 63 61 74 63 68 20 7b 0a 2b 09 66 69 6c 65    catch {.+.file
84e0: 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f 2e   attributes foo.
84f0: 74 65 73 74 20 2d 63 72 65 61 74 6f 72 0a 2b 09  test -creator.+.
8500: 73 65 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a 74  set ::tcltest::t
8510: 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 73 28 6d  estConstraints(m
8520: 61 63 6f 73 78 46 69 6c 65 41 74 74 72 29 20 31  acosxFileAttr) 1
8530: 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 66 69 6c  .+    }.+    fil
8540: 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20  e delete -force 
8550: 2d 2d 20 66 6f 6f 2e 74 65 73 74 0a 2b 7d 0a 2b  -- foo.test.+}.+
8560: 0a 2b 74 65 73 74 20 6d 61 63 4f 53 58 46 43 6d  .+test macOSXFCm
8570: 64 2d 31 2e 31 20 7b 4d 61 63 4f 53 58 47 65 74  d-1.1 {MacOSXGet
8580: 46 69 6c 65 41 74 74 72 69 62 75 74 65 20 2d 20  FileAttribute - 
8590: 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 7d 20  file not found} 
85a0: 7b 6d 61 63 6f 73 78 46 69 6c 65 41 74 74 72 20  {macosxFileAttr 
85b0: 6e 6f 74 52 6f 6f 74 7d 20 7b 0a 2b 20 20 20 20  notRoot} {.+    
85c0: 63 61 74 63 68 20 7b 66 69 6c 65 20 64 65 6c 65  catch {file dele
85d0: 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f  te -force -- foo
85e0: 2e 74 65 73 74 7d 0a 2b 20 20 20 20 6c 69 73 74  .test}.+    list
85f0: 20 5b 63 61 74 63 68 20 7b 66 69 6c 65 20 61 74   [catch {file at
8600: 74 72 69 62 75 74 65 73 20 66 6f 6f 2e 74 65 73  tributes foo.tes
8610: 74 20 2d 63 72 65 61 74 6f 72 7d 20 6d 73 67 5d  t -creator} msg]
8620: 20 24 6d 73 67 0a 2b 7d 20 7b 31 20 7b 63 6f 75   $msg.+} {1 {cou
8630: 6c 64 20 6e 6f 74 20 72 65 61 64 20 22 66 6f 6f  ld not read "foo
8640: 2e 74 65 73 74 22 3a 20 6e 6f 20 73 75 63 68 20  .test": no such 
8650: 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72  file or director
8660: 79 7d 7d 0a 2b 74 65 73 74 20 6d 61 63 4f 53 58  y}}.+test macOSX
8670: 46 43 6d 64 2d 31 2e 32 20 7b 4d 61 63 4f 53 58  FCmd-1.2 {MacOSX
8680: 47 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65  GetFileAttribute
8690: 20 2d 20 63 72 65 61 74 6f 72 7d 20 7b 6d 61 63   - creator} {mac
86a0: 6f 73 78 46 69 6c 65 41 74 74 72 20 6e 6f 74 52  osxFileAttr notR
86b0: 6f 6f 74 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63  oot} {.+    catc
86c0: 68 20 7b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d  h {file delete -
86d0: 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73  force -- foo.tes
86e0: 74 7d 0a 2b 20 20 20 20 63 6c 6f 73 65 20 5b 6f  t}.+    close [o
86f0: 70 65 6e 20 66 6f 6f 2e 74 65 73 74 20 77 5d 0a  pen foo.test w].
8700: 2b 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68  +    list [catch
8710: 20 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74 65   {file attribute
8720: 73 20 66 6f 6f 2e 74 65 73 74 20 2d 63 72 65 61  s foo.test -crea
8730: 74 6f 72 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c  tor} msg] $msg \
8740: 0a 2b 09 20 20 20 20 5b 66 69 6c 65 20 64 65 6c  .+.    [file del
8750: 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f  ete -force -- fo
8760: 6f 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30 20 7b 7d  o.test].+} {0 {}
8770: 20 7b 7d 7d 0a 2b 74 65 73 74 20 6d 61 63 4f 53   {}}.+test macOS
8780: 58 46 43 6d 64 2d 31 2e 33 20 7b 4d 61 63 4f 53  XFCmd-1.3 {MacOS
8790: 58 47 65 74 46 69 6c 65 41 74 74 72 69 62 75 74  XGetFileAttribut
87a0: 65 20 2d 20 74 79 70 65 7d 20 7b 6d 61 63 6f 73  e - type} {macos
87b0: 78 46 69 6c 65 41 74 74 72 20 6e 6f 74 52 6f 6f  xFileAttr notRoo
87c0: 74 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63 68 20  t} {.+    catch 
87d0: 7b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f  {file delete -fo
87e0: 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d  rce -- foo.test}
87f0: 0a 2b 20 20 20 20 63 6c 6f 73 65 20 5b 6f 70 65  .+    close [ope
8800: 6e 20 66 6f 6f 2e 74 65 73 74 20 77 5d 0a 2b 20  n foo.test w].+ 
8810: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b     list [catch {
8820: 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20  file attributes 
8830: 66 6f 6f 2e 74 65 73 74 20 2d 74 79 70 65 7d 20  foo.test -type} 
8840: 6d 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20  msg] $msg \.+.  
8850: 20 20 5b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d    [file delete -
8860: 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73  force -- foo.tes
8870: 74 5d 0a 2b 7d 20 7b 30 20 7b 7d 20 7b 7d 7d 0a  t].+} {0 {} {}}.
8880: 2b 74 65 73 74 20 6d 61 63 4f 53 58 46 43 6d 64  +test macOSXFCmd
8890: 2d 31 2e 34 20 7b 4d 61 63 4f 53 58 47 65 74 46  -1.4 {MacOSXGetF
88a0: 69 6c 65 41 74 74 72 69 62 75 74 65 20 2d 20 68  ileAttribute - h
88b0: 69 64 64 65 6e 7d 20 7b 6d 61 63 6f 73 78 46 69  idden} {macosxFi
88c0: 6c 65 41 74 74 72 20 6e 6f 74 52 6f 6f 74 7d 20  leAttr notRoot} 
88d0: 7b 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 66 69  {.+    catch {fi
88e0: 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65  le delete -force
88f0: 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20   -- foo.test}.+ 
8900: 20 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66     close [open f
8910: 6f 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20 20 20  oo.test w].+    
8920: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 66 69 6c  list [catch {fil
8930: 65 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f  e attributes foo
8940: 2e 74 65 73 74 20 2d 68 69 64 64 65 6e 7d 20 6d  .test -hidden} m
8950: 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20  sg] $msg \.+.   
8960: 20 5b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66   [file delete -f
8970: 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74  orce -- foo.test
8980: 5d 0a 2b 7d 20 7b 30 20 30 20 7b 7d 7d 0a 2b 74  ].+} {0 0 {}}.+t
8990: 65 73 74 20 6d 61 63 4f 53 58 46 43 6d 64 2d 31  est macOSXFCmd-1
89a0: 2e 35 20 7b 4d 61 63 4f 53 58 47 65 74 46 69 6c  .5 {MacOSXGetFil
89b0: 65 41 74 74 72 69 62 75 74 65 20 2d 20 72 73 72  eAttribute - rsr
89c0: 63 6c 65 6e 67 74 68 7d 20 7b 6d 61 63 6f 73 78  clength} {macosx
89d0: 46 69 6c 65 41 74 74 72 20 6e 6f 74 52 6f 6f 74  FileAttr notRoot
89e0: 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63 68 20 7b  } {.+    catch {
89f0: 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72  file delete -for
8a00: 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a  ce -- foo.test}.
8a10: 2b 20 20 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e  +    close [open
8a20: 20 66 6f 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20   foo.test w].+  
8a30: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 66    list [catch {f
8a40: 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66  ile attributes f
8a50: 6f 6f 2e 74 65 73 74 20 2d 72 73 72 63 6c 65 6e  oo.test -rsrclen
8a60: 67 74 68 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c  gth} msg] $msg \
8a70: 0a 2b 09 20 20 20 20 5b 66 69 6c 65 20 64 65 6c  .+.    [file del
8a80: 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f  ete -force -- fo
8a90: 6f 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30 20 30 20  o.test].+} {0 0 
8aa0: 7b 7d 7d 0a 2b 0a 2b 74 65 73 74 20 6d 61 63 4f  {}}.+.+test macO
8ab0: 53 58 46 43 6d 64 2d 32 2e 31 20 7b 4d 61 63 4f  SXFCmd-2.1 {MacO
8ac0: 53 58 53 65 74 46 69 6c 65 41 74 74 72 69 62 75  SXSetFileAttribu
8ad0: 74 65 20 2d 20 66 69 6c 65 20 6e 6f 74 20 66 6f  te - file not fo
8ae0: 75 6e 64 7d 20 7b 6d 61 63 6f 73 78 46 69 6c 65  und} {macosxFile
8af0: 41 74 74 72 20 6e 6f 74 52 6f 6f 74 7d 20 7b 0a  Attr notRoot} {.
8b00: 2b 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c 65  +    catch {file
8b10: 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d   delete -force -
8b20: 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20 20  - foo.test}.+   
8b30: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 66 69   list [catch {fi
8b40: 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66 6f  le attributes fo
8b50: 6f 2e 74 65 73 74 20 2d 63 72 65 61 74 6f 72 20  o.test -creator 
8b60: 46 4f 4f 4f 7d 20 6d 73 67 5d 20 24 6d 73 67 0a  FOOO} msg] $msg.
8b70: 2b 7d 20 7b 31 20 7b 63 6f 75 6c 64 20 6e 6f 74  +} {1 {could not
8b80: 20 72 65 61 64 20 22 66 6f 6f 2e 74 65 73 74 22   read "foo.test"
8b90: 3a 20 6e 6f 20 73 75 63 68 20 66 69 6c 65 20 6f  : no such file o
8ba0: 72 20 64 69 72 65 63 74 6f 72 79 7d 7d 0a 2b 74  r directory}}.+t
8bb0: 65 73 74 20 6d 61 63 4f 53 58 46 43 6d 64 2d 32  est macOSXFCmd-2
8bc0: 2e 32 20 7b 4d 61 63 4f 53 58 53 65 74 46 69 6c  .2 {MacOSXSetFil
8bd0: 65 41 74 74 72 69 62 75 74 65 20 2d 20 63 72 65  eAttribute - cre
8be0: 61 74 6f 72 7d 20 7b 6d 61 63 6f 73 78 46 69 6c  ator} {macosxFil
8bf0: 65 41 74 74 72 20 6e 6f 74 52 6f 6f 74 7d 20 7b  eAttr notRoot} {
8c00: 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c  .+    catch {fil
8c10: 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20  e delete -force 
8c20: 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20  -- foo.test}.+  
8c30: 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66 6f    close [open fo
8c40: 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20 20 20 6c  o.test w].+    l
8c50: 69 73 74 20 5b 63 61 74 63 68 20 7b 66 69 6c 65  ist [catch {file
8c60: 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f 2e   attributes foo.
8c70: 74 65 73 74 20 2d 63 72 65 61 74 6f 72 20 46 4f  test -creator FO
8c80: 4f 4f 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a  OO} msg] $msg \.
8c90: 2b 09 20 20 20 20 5b 63 61 74 63 68 20 7b 66 69  +.    [catch {fi
8ca0: 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66 6f  le attributes fo
8cb0: 6f 2e 74 65 73 74 20 2d 63 72 65 61 74 6f 72 7d  o.test -creator}
8cc0: 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20   msg] $msg \.+. 
8cd0: 20 20 20 5b 66 69 6c 65 20 64 65 6c 65 74 65 20     [file delete 
8ce0: 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65  -force -- foo.te
8cf0: 73 74 5d 0a 2b 7d 20 7b 30 20 7b 7d 20 30 20 46  st].+} {0 {} 0 F
8d00: 4f 4f 4f 20 7b 7d 7d 0a 2b 74 65 73 74 20 6d 61  OOO {}}.+test ma
8d10: 63 4f 53 58 46 43 6d 64 2d 32 2e 33 20 7b 4d 61  cOSXFCmd-2.3 {Ma
8d20: 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72 69  cOSXSetFileAttri
8d30: 62 75 74 65 20 2d 20 65 6d 70 74 79 20 63 72 65  bute - empty cre
8d40: 61 74 6f 72 7d 20 7b 6d 61 63 6f 73 78 46 69 6c  ator} {macosxFil
8d50: 65 41 74 74 72 20 6e 6f 74 52 6f 6f 74 7d 20 7b  eAttr notRoot} {
8d60: 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c  .+    catch {fil
8d70: 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20  e delete -force 
8d80: 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20  -- foo.test}.+  
8d90: 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66 6f    close [open fo
8da0: 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20 20 20 6c  o.test w].+    l
8db0: 69 73 74 20 5b 63 61 74 63 68 20 7b 66 69 6c 65  ist [catch {file
8dc0: 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f 2e   attributes foo.
8dd0: 74 65 73 74 20 2d 63 72 65 61 74 6f 72 20 7b 7d  test -creator {}
8de0: 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09  } msg] $msg \.+.
8df0: 20 20 20 20 5b 63 61 74 63 68 20 7b 66 69 6c 65      [catch {file
8e00: 20 61 74 74 72 69 62 75 74 65 73 20 66 6f 6f 2e   attributes foo.
8e10: 74 65 73 74 20 2d 63 72 65 61 74 6f 72 7d 20 6d  test -creator} m
8e20: 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20  sg] $msg \.+.   
8e30: 20 5b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66   [file delete -f
8e40: 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74  orce -- foo.test
8e50: 5d 0a 2b 7d 20 7b 30 20 7b 7d 20 30 20 7b 7d 20  ].+} {0 {} 0 {} 
8e60: 7b 7d 7d 0a 2b 74 65 73 74 20 6d 61 63 4f 53 58  {}}.+test macOSX
8e70: 46 43 6d 64 2d 32 2e 34 20 7b 4d 61 63 4f 53 58  FCmd-2.4 {MacOSX
8e80: 53 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65  SetFileAttribute
8e90: 20 2d 20 74 79 70 65 7d 20 7b 6d 61 63 6f 73 78   - type} {macosx
8ea0: 46 69 6c 65 41 74 74 72 20 6e 6f 74 52 6f 6f 74  FileAttr notRoot
8eb0: 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63 68 20 7b  } {.+    catch {
8ec0: 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72  file delete -for
8ed0: 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a  ce -- foo.test}.
8ee0: 2b 20 20 20 20 63 6c 6f 73 65 20 5b 6f 70 65 6e  +    close [open
8ef0: 20 66 6f 6f 2e 74 65 73 74 20 77 5d 0a 2b 20 20   foo.test w].+  
8f00: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 66    list [catch {f
8f10: 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66  ile attributes f
8f20: 6f 6f 2e 74 65 73 74 20 2d 74 79 70 65 20 46 4f  oo.test -type FO
8f30: 4f 4f 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a  OO} msg] $msg \.
8f40: 2b 09 20 20 20 20 5b 63 61 74 63 68 20 7b 66 69  +.    [catch {fi
8f50: 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66 6f  le attributes fo
8f60: 6f 2e 74 65 73 74 20 2d 74 79 70 65 7d 20 6d 73  o.test -type} ms
8f70: 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20  g] $msg \.+.    
8f80: 5b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f  [file delete -fo
8f90: 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 5d  rce -- foo.test]
8fa0: 0a 2b 7d 20 7b 30 20 7b 7d 20 30 20 46 4f 4f 4f  .+} {0 {} 0 FOOO
8fb0: 20 7b 7d 7d 0a 2b 74 65 73 74 20 6d 61 63 4f 53   {}}.+test macOS
8fc0: 58 46 43 6d 64 2d 32 2e 35 20 7b 4d 61 63 4f 53  XFCmd-2.5 {MacOS
8fd0: 58 53 65 74 46 69 6c 65 41 74 74 72 69 62 75 74  XSetFileAttribut
8fe0: 65 20 2d 20 65 6d 70 74 79 20 74 79 70 65 7d 20  e - empty type} 
8ff0: 7b 6d 61 63 6f 73 78 46 69 6c 65 41 74 74 72 20  {macosxFileAttr 
9000: 6e 6f 74 52 6f 6f 74 7d 20 7b 0a 2b 20 20 20 20  notRoot} {.+    
9010: 63 61 74 63 68 20 7b 66 69 6c 65 20 64 65 6c 65  catch {file dele
9020: 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f  te -force -- foo
9030: 2e 74 65 73 74 7d 0a 2b 20 20 20 20 63 6c 6f 73  .test}.+    clos
9040: 65 20 5b 6f 70 65 6e 20 66 6f 6f 2e 74 65 73 74  e [open foo.test
9050: 20 77 5d 0a 2b 20 20 20 20 6c 69 73 74 20 5b 63   w].+    list [c
9060: 61 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72 69  atch {file attri
9070: 62 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20 2d  butes foo.test -
9080: 74 79 70 65 20 7b 7d 7d 20 6d 73 67 5d 20 24 6d  type {}} msg] $m
9090: 73 67 20 5c 0a 2b 09 20 20 20 20 5b 63 61 74 63  sg \.+.    [catc
90a0: 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74  h {file attribut
90b0: 65 73 20 66 6f 6f 2e 74 65 73 74 20 2d 74 79 70  es foo.test -typ
90c0: 65 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a 2b  e} msg] $msg \.+
90d0: 09 20 20 20 20 5b 66 69 6c 65 20 64 65 6c 65 74  .    [file delet
90e0: 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e  e -force -- foo.
90f0: 74 65 73 74 5d 0a 2b 7d 20 7b 30 20 7b 7d 20 30  test].+} {0 {} 0
9100: 20 7b 7d 20 7b 7d 7d 0a 2b 74 65 73 74 20 6d 61   {} {}}.+test ma
9110: 63 4f 53 58 46 43 6d 64 2d 32 2e 36 20 7b 4d 61  cOSXFCmd-2.6 {Ma
9120: 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72 69  cOSXSetFileAttri
9130: 62 75 74 65 20 2d 20 68 69 64 64 65 6e 7d 20 7b  bute - hidden} {
9140: 6d 61 63 6f 73 78 46 69 6c 65 41 74 74 72 20 6e  macosxFileAttr n
9150: 6f 74 52 6f 6f 74 7d 20 7b 0a 2b 20 20 20 20 63  otRoot} {.+    c
9160: 61 74 63 68 20 7b 66 69 6c 65 20 64 65 6c 65 74  atch {file delet
9170: 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e  e -force -- foo.
9180: 74 65 73 74 7d 0a 2b 20 20 20 20 63 6c 6f 73 65  test}.+    close
9190: 20 5b 6f 70 65 6e 20 66 6f 6f 2e 74 65 73 74 20   [open foo.test 
91a0: 77 5d 0a 2b 20 20 20 20 6c 69 73 74 20 5b 63 61  w].+    list [ca
91b0: 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62  tch {file attrib
91c0: 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20 2d 68  utes foo.test -h
91d0: 69 64 64 65 6e 20 31 7d 20 6d 73 67 5d 20 24 6d  idden 1} msg] $m
91e0: 73 67 20 5c 0a 2b 09 20 20 20 20 5b 63 61 74 63  sg \.+.    [catc
91f0: 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74  h {file attribut
9200: 65 73 20 66 6f 6f 2e 74 65 73 74 20 2d 68 69 64  es foo.test -hid
9210: 64 65 6e 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c  den} msg] $msg \
9220: 0a 2b 09 20 20 20 20 5b 66 69 6c 65 20 64 65 6c  .+.    [file del
9230: 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f  ete -force -- fo
9240: 6f 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30 20 7b 7d  o.test].+} {0 {}
9250: 20 30 20 31 20 7b 7d 7d 0a 2b 74 65 73 74 20 6d   0 1 {}}.+test m
9260: 61 63 4f 53 58 46 43 6d 64 2d 32 2e 37 20 7b 4d  acOSXFCmd-2.7 {M
9270: 61 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72  acOSXSetFileAttr
9280: 69 62 75 74 65 20 2d 20 72 73 72 63 6c 65 6e 67  ibute - rsrcleng
9290: 74 68 7d 20 7b 6d 61 63 6f 73 78 46 69 6c 65 41  th} {macosxFileA
92a0: 74 74 72 20 6e 6f 74 52 6f 6f 74 7d 20 7b 0a 2b  ttr notRoot} {.+
92b0: 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c 65 20      catch {file 
92c0: 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d  delete -force --
92d0: 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20 20 20   foo.test}.+    
92e0: 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66 6f 6f 2e  close [open foo.
92f0: 74 65 73 74 20 77 5d 0a 2b 20 20 20 20 63 61 74  test w].+    cat
9300: 63 68 20 7b 0a 2b 09 73 65 74 20 66 20 5b 6f 70  ch {.+.set f [op
9310: 65 6e 20 66 6f 6f 2e 74 65 73 74 2f 72 73 72 63  en foo.test/rsrc
9320: 20 77 5d 0a 2b 09 66 63 6f 6e 66 69 67 75 72 65   w].+.fconfigure
9330: 20 24 66 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e   $f -translation
9340: 20 6c 66 20 2d 65 6f 66 63 68 61 72 20 7b 7d 0a   lf -eofchar {}.
9350: 2b 09 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e  +.puts -nonewlin
9360: 65 20 24 66 20 22 66 6f 6f 22 0a 2b 09 63 6c 6f  e $f "foo".+.clo
9370: 73 65 20 24 66 0a 2b 20 20 20 20 7d 0a 2b 20 20  se $f.+    }.+  
9380: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 66    list [catch {f
9390: 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66  ile attributes f
93a0: 6f 6f 2e 74 65 73 74 20 2d 72 73 72 63 6c 65 6e  oo.test -rsrclen
93b0: 67 74 68 7d 20 6d 73 67 5d 20 24 6d 73 67 20 5c  gth} msg] $msg \
93c0: 0a 2b 09 20 20 20 20 5b 63 61 74 63 68 20 7b 66  .+.    [catch {f
93d0: 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 66  ile attributes f
93e0: 6f 6f 2e 74 65 73 74 20 2d 72 73 72 63 6c 65 6e  oo.test -rsrclen
93f0: 67 74 68 20 30 7d 20 6d 73 67 5d 20 24 6d 73 67  gth 0} msg] $msg
9400: 20 5c 0a 2b 09 20 20 20 20 5b 63 61 74 63 68 20   \.+.    [catch 
9410: 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73  {file attributes
9420: 20 66 6f 6f 2e 74 65 73 74 20 2d 72 73 72 63 6c   foo.test -rsrcl
9430: 65 6e 67 74 68 7d 20 6d 73 67 5d 20 24 6d 73 67  ength} msg] $msg
9440: 20 5c 0a 2b 09 20 20 20 20 5b 66 69 6c 65 20 64   \.+.    [file d
9450: 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20  elete -force -- 
9460: 66 6f 6f 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30 20  foo.test].+} {0 
9470: 33 20 30 20 7b 7d 20 30 20 30 20 7b 7d 7d 0a 2b  3 0 {} 0 0 {}}.+
9480: 0a 2b 74 65 73 74 20 6d 61 63 4f 53 58 46 43 6d  .+test macOSXFCm
9490: 64 2d 33 2e 31 20 7b 4d 61 63 4f 53 58 43 6f 70  d-3.1 {MacOSXCop
94a0: 79 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 7d  yFileAttributes}
94b0: 20 7b 6d 61 63 6f 73 78 46 69 6c 65 41 74 74 72   {macosxFileAttr
94c0: 20 6e 6f 74 52 6f 6f 74 7d 20 7b 0a 2b 20 20 20   notRoot} {.+   
94d0: 20 63 61 74 63 68 20 7b 66 69 6c 65 20 64 65 6c   catch {file del
94e0: 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f  ete -force -- fo
94f0: 6f 2e 74 65 73 74 7d 0a 2b 20 20 20 20 63 61 74  o.test}.+    cat
9500: 63 68 20 7b 66 69 6c 65 20 64 65 6c 65 74 65 20  ch {file delete 
9510: 2d 66 6f 72 63 65 20 2d 2d 20 62 61 72 2e 74 65  -force -- bar.te
9520: 73 74 7d 0a 2b 20 20 20 20 63 6c 6f 73 65 20 5b  st}.+    close [
9530: 6f 70 65 6e 20 66 6f 6f 2e 74 65 73 74 20 77 5d  open foo.test w]
9540: 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 0a 2b 09  .+    catch {.+.
9550: 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20  file attributes 
9560: 66 6f 6f 2e 74 65 73 74 20 2d 63 72 65 61 74 6f  foo.test -creato
9570: 72 20 46 4f 4f 4f 20 2d 74 79 70 65 20 46 4f 4f  r FOOO -type FOO
9580: 4f 20 2d 68 69 64 64 65 6e 20 31 0a 2b 09 73 65  O -hidden 1.+.se
9590: 74 20 66 20 5b 6f 70 65 6e 20 66 6f 6f 2e 74 65  t f [open foo.te
95a0: 73 74 2f 72 73 72 63 20 77 5d 0a 2b 09 66 63 6f  st/rsrc w].+.fco
95b0: 6e 66 69 67 75 72 65 20 24 66 20 2d 74 72 61 6e  nfigure $f -tran
95c0: 73 6c 61 74 69 6f 6e 20 6c 66 20 2d 65 6f 66 63  slation lf -eofc
95d0: 68 61 72 20 7b 7d 0a 2b 09 70 75 74 73 20 2d 6e  har {}.+.puts -n
95e0: 6f 6e 65 77 6c 69 6e 65 20 24 66 20 22 66 6f 6f  onewline $f "foo
95f0: 22 0a 2b 09 63 6c 6f 73 65 20 24 66 0a 2b 09 66  ".+.close $f.+.f
9600: 69 6c 65 20 63 6f 70 79 20 66 6f 6f 2e 74 65 73  ile copy foo.tes
9610: 74 20 62 61 72 2e 74 65 73 74 0a 2b 20 20 20 20  t bar.test.+    
9620: 7d 0a 2b 20 20 20 20 6c 69 73 74 20 5b 63 61 74  }.+    list [cat
9630: 63 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62 75  ch {file attribu
9640: 74 65 73 20 62 61 72 2e 74 65 73 74 20 2d 63 72  tes bar.test -cr
9650: 65 61 74 6f 72 7d 20 6d 73 67 5d 20 24 6d 73 67  eator} msg] $msg
9660: 20 5c 0a 2b 09 20 20 20 20 5b 63 61 74 63 68 20   \.+.    [catch 
9670: 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73  {file attributes
9680: 20 62 61 72 2e 74 65 73 74 20 2d 74 79 70 65 7d   bar.test -type}
9690: 20 6d 73 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20   msg] $msg \.+. 
96a0: 20 20 20 5b 63 61 74 63 68 20 7b 66 69 6c 65 20     [catch {file 
96b0: 61 74 74 72 69 62 75 74 65 73 20 62 61 72 2e 74  attributes bar.t
96c0: 65 73 74 20 2d 68 69 64 64 65 6e 7d 20 6d 73 67  est -hidden} msg
96d0: 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20 5b  ] $msg \.+.    [
96e0: 63 61 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72  catch {file attr
96f0: 69 62 75 74 65 73 20 62 61 72 2e 74 65 73 74 20  ibutes bar.test 
9700: 2d 72 73 72 63 6c 65 6e 67 74 68 7d 20 6d 73 67  -rsrclength} msg
9710: 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20 5b  ] $msg \.+.    [
9720: 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72  file delete -for
9730: 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 20 62  ce -- foo.test b
9740: 61 72 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30 20 46  ar.test].+} {0 F
9750: 4f 4f 4f 20 30 20 46 4f 4f 4f 20 30 20 31 20 30  OOO 0 FOOO 0 1 0
9760: 20 33 20 7b 7d 7d 0a 2b 0a 2b 23 20 63 6c 65 61   3 {}}.+.+# clea
9770: 6e 75 70 0a 2b 63 64 20 24 6f 6c 64 63 77 64 0a  nup.+cd $oldcwd.
9780: 2b 3a 3a 74 63 6c 74 65 73 74 3a 3a 63 6c 65 61  +::tcltest::clea
9790: 6e 75 70 54 65 73 74 73 0a 2b 72 65 74 75 72 6e  nupTests.+return
97a0: 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 75 6e  .Index: tests/un
97b0: 69 78 46 43 6d 64 2e 74 65 73 74 0a 3d 3d 3d 3d  ixFCmd.test.====
97c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
97d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
97e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
97f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
9800: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f  RCS file: /cvsro
9810: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73  ot/tcl/tcl/tests
9820: 2f 75 6e 69 78 46 43 6d 64 2e 74 65 73 74 2c 76  /unixFCmd.test,v
9830: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69  .retrieving revi
9840: 73 69 6f 6e 20 31 2e 31 38 0a 64 69 66 66 20 2d  sion 1.18.diff -
9850: 75 20 2d 72 31 2e 31 38 20 75 6e 69 78 46 43 6d  u -r1.18 unixFCm
9860: 64 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73  d.test.--- tests
9870: 2f 75 6e 69 78 46 43 6d 64 2e 74 65 73 74 09 31  /unixFCmd.test.1
9880: 31 20 41 70 72 20 32 30 30 33 20 31 36 3a 30 30  1 Apr 2003 16:00
9890: 3a 30 32 20 2d 30 30 30 30 09 31 2e 31 38 0a 2b  :02 -0000.1.18.+
98a0: 2b 2b 20 74 65 73 74 73 2f 75 6e 69 78 46 43 6d  ++ tests/unixFCm
98b0: 64 2e 74 65 73 74 09 31 34 20 4d 61 79 20 32 30  d.test.14 May 20
98c0: 30 33 20 31 39 3a 31 33 3a 33 32 20 2d 30 30 30  03 19:13:32 -000
98d0: 30 0a 40 40 20 2d 33 32 35 2c 36 20 2b 33 32 35  0.@@ -325,6 +325
98e0: 2c 34 34 20 40 40 0a 20 20 20 20 20 73 65 74 20  ,44 @@.     set 
98f0: 72 0a 20 7d 20 7b 31 20 7b 65 72 72 6f 72 20 67  r. } {1 {error g
9900: 65 74 74 69 6e 67 20 77 6f 72 6b 69 6e 67 20 64  etting working d
9910: 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 3a 7d 7d  irectory name:}}
9920: 0a 20 0a 2b 23 20 63 68 65 63 6b 20 77 68 65 74  . .+# check whet
9930: 68 65 72 20 2d 72 65 61 64 6f 6e 6c 79 20 61 74  her -readonly at
9940: 74 72 69 62 75 74 65 20 69 73 20 73 75 70 70 6f  tribute is suppo
9950: 72 74 65 64 0a 2b 73 65 74 20 3a 3a 74 63 6c 74  rted.+set ::tclt
9960: 65 73 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72 61  est::testConstra
9970: 69 6e 74 73 28 72 65 61 64 6f 6e 6c 79 41 74 74  ints(readonlyAtt
9980: 72 29 20 30 0a 2b 69 66 20 7b 24 74 63 6c 5f 70  r) 0.+if {$tcl_p
9990: 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d  latform(platform
99a0: 29 20 3d 3d 20 22 75 6e 69 78 22 7d 20 7b 0a 2b  ) == "unix"} {.+
99b0: 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c 65 20      catch {file 
99c0: 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d  delete -force --
99d0: 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20 20 20   foo.test}.+    
99e0: 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66 6f 6f 2e  close [open foo.
99f0: 74 65 73 74 20 77 5d 0a 2b 20 20 20 20 63 61 74  test w].+    cat
9a00: 63 68 20 7b 0a 2b 09 66 69 6c 65 20 61 74 74 72  ch {.+.file attr
9a10: 69 62 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20  ibutes foo.test 
9a20: 2d 72 65 61 64 6f 6e 6c 79 0a 2b 09 73 65 74 20  -readonly.+.set 
9a30: 3a 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 43  ::tcltest::testC
9a40: 6f 6e 73 74 72 61 69 6e 74 73 28 72 65 61 64 6f  onstraints(reado
9a50: 6e 6c 79 41 74 74 72 29 20 31 0a 2b 20 20 20 20  nlyAttr) 1.+    
9a60: 7d 0a 2b 20 20 20 20 66 69 6c 65 20 64 65 6c 65  }.+    file dele
9a70: 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f  te -force -- foo
9a80: 2e 74 65 73 74 0a 2b 7d 0a 2b 0a 2b 74 65 73 74  .test.+}.+.+test
9a90: 20 75 6e 69 78 46 43 6d 64 2d 31 39 2e 31 20 7b   unixFCmd-19.1 {
9aa0: 47 65 74 52 65 61 64 4f 6e 6c 79 41 74 74 72 69  GetReadOnlyAttri
9ab0: 62 75 74 65 20 2d 20 66 69 6c 65 20 6e 6f 74 20  bute - file not 
9ac0: 66 6f 75 6e 64 7d 20 7b 75 6e 69 78 4f 6e 6c 79  found} {unixOnly
9ad0: 20 6e 6f 74 52 6f 6f 74 20 72 65 61 64 6f 6e 6c   notRoot readonl
9ae0: 79 41 74 74 72 7d 20 7b 0a 2b 20 20 20 20 63 61  yAttr} {.+    ca
9af0: 74 63 68 20 7b 66 69 6c 65 20 64 65 6c 65 74 65  tch {file delete
9b00: 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74   -force -- foo.t
9b10: 65 73 74 7d 0a 2b 20 20 20 20 6c 69 73 74 20 5b  est}.+    list [
9b20: 63 61 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72  catch {file attr
9b30: 69 62 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20  ibutes foo.test 
9b40: 2d 72 65 61 64 6f 6e 6c 79 7d 20 6d 73 67 5d 20  -readonly} msg] 
9b50: 24 6d 73 67 0a 2b 7d 20 7b 31 20 7b 63 6f 75 6c  $msg.+} {1 {coul
9b60: 64 20 6e 6f 74 20 72 65 61 64 20 22 66 6f 6f 2e  d not read "foo.
9b70: 74 65 73 74 22 3a 20 6e 6f 20 73 75 63 68 20 66  test": no such f
9b80: 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79  ile or directory
9b90: 7d 7d 0a 2b 74 65 73 74 20 75 6e 69 78 46 43 6d  }}.+test unixFCm
9ba0: 64 2d 31 39 2e 32 20 7b 47 65 74 52 65 61 64 4f  d-19.2 {GetReadO
9bb0: 6e 6c 79 41 74 74 72 69 62 75 74 65 7d 20 7b 75  nlyAttribute} {u
9bc0: 6e 69 78 4f 6e 6c 79 20 6e 6f 74 52 6f 6f 74 20  nixOnly notRoot 
9bd0: 72 65 61 64 6f 6e 6c 79 41 74 74 72 7d 20 7b 0a  readonlyAttr} {.
9be0: 2b 20 20 20 20 63 61 74 63 68 20 7b 66 69 6c 65  +    catch {file
9bf0: 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d   delete -force -
9c00: 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a 2b 20 20 20  - foo.test}.+   
9c10: 20 63 6c 6f 73 65 20 5b 6f 70 65 6e 20 66 6f 6f   close [open foo
9c20: 2e 74 65 73 74 20 77 5d 0a 2b 20 20 20 20 6c 69  .test w].+    li
9c30: 73 74 20 5b 63 61 74 63 68 20 7b 66 69 6c 65 20  st [catch {file 
9c40: 61 74 74 72 69 62 75 74 65 20 66 6f 6f 2e 74 65  attribute foo.te
9c50: 73 74 20 2d 72 65 61 64 6f 6e 6c 79 7d 20 6d 73  st -readonly} ms
9c60: 67 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20  g] $msg \.+.    
9c70: 5b 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f  [file delete -fo
9c80: 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 5d  rce -- foo.test]
9c90: 0a 2b 7d 20 7b 30 20 30 20 7b 7d 7d 0a 2b 0a 2b  .+} {0 0 {}}.+.+
9ca0: 74 65 73 74 20 75 6e 69 78 46 43 6d 64 2d 32 30  test unixFCmd-20
9cb0: 2e 31 20 7b 53 65 74 52 65 61 64 4f 6e 6c 79 41  .1 {SetReadOnlyA
9cc0: 74 74 72 69 62 75 74 65 7d 20 7b 75 6e 69 78 4f  ttribute} {unixO
9cd0: 6e 6c 79 20 6e 6f 74 52 6f 6f 74 20 72 65 61 64  nly notRoot read
9ce0: 6f 6e 6c 79 41 74 74 72 7d 20 7b 0a 2b 20 20 20  onlyAttr} {.+   
9cf0: 20 63 61 74 63 68 20 7b 66 69 6c 65 20 64 65 6c   catch {file del
9d00: 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d 20 66 6f  ete -force -- fo
9d10: 6f 2e 74 65 73 74 7d 0a 2b 20 20 20 20 63 6c 6f  o.test}.+    clo
9d20: 73 65 20 5b 6f 70 65 6e 20 66 6f 6f 2e 74 65 73  se [open foo.tes
9d30: 74 20 77 5d 0a 2b 20 20 20 20 6c 69 73 74 20 5b  t w].+    list [
9d40: 63 61 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72  catch {file attr
9d50: 69 62 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20  ibutes foo.test 
9d60: 2d 72 65 61 64 6f 6e 6c 79 20 31 7d 20 6d 73 67  -readonly 1} msg
9d70: 5d 20 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20 5b  ] $msg \.+.    [
9d80: 63 61 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72  catch {file attr
9d90: 69 62 75 74 65 20 66 6f 6f 2e 74 65 73 74 20 2d  ibute foo.test -
9da0: 72 65 61 64 6f 6e 6c 79 7d 20 6d 73 67 5d 20 24  readonly} msg] $
9db0: 6d 73 67 20 5c 0a 2b 09 20 20 20 20 5b 63 61 74  msg \.+.    [cat
9dc0: 63 68 20 7b 66 69 6c 65 20 64 65 6c 65 74 65 20  ch {file delete 
9dd0: 2d 66 6f 72 63 65 20 2d 2d 20 66 6f 6f 2e 74 65  -force -- foo.te
9de0: 73 74 7d 5d 20 5c 0a 2b 09 20 20 20 20 5b 63 61  st}] \.+.    [ca
9df0: 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62  tch {file attrib
9e00: 75 74 65 73 20 66 6f 6f 2e 74 65 73 74 20 2d 72  utes foo.test -r
9e10: 65 61 64 6f 6e 6c 79 20 30 7d 20 6d 73 67 5d 20  eadonly 0} msg] 
9e20: 24 6d 73 67 20 5c 0a 2b 09 20 20 20 20 5b 63 61  $msg \.+.    [ca
9e30: 74 63 68 20 7b 66 69 6c 65 20 61 74 74 72 69 62  tch {file attrib
9e40: 75 74 65 20 66 6f 6f 2e 74 65 73 74 20 2d 72 65  ute foo.test -re
9e50: 61 64 6f 6e 6c 79 7d 20 6d 73 67 5d 20 24 6d 73  adonly} msg] $ms
9e60: 67 20 5c 0a 2b 09 20 20 20 20 5b 66 69 6c 65 20  g \.+.    [file 
9e70: 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d  delete -force --
9e80: 20 66 6f 6f 2e 74 65 73 74 5d 0a 2b 7d 20 7b 30   foo.test].+} {0
9e90: 20 7b 7d 20 30 20 31 20 31 20 30 20 7b 7d 20 30   {} 0 1 1 0 {} 0
9ea0: 20 30 20 7b 7d 7d 0a 2b 74 65 73 74 20 75 6e 69   0 {}}.+test uni
9eb0: 78 46 43 6d 64 2d 32 30 2e 32 20 7b 53 65 74 52  xFCmd-20.2 {SetR
9ec0: 65 61 64 4f 6e 6c 79 41 74 74 72 69 62 75 74 65  eadOnlyAttribute
9ed0: 7d 20 7b 75 6e 69 78 4f 6e 6c 79 20 6e 6f 74 52  } {unixOnly notR
9ee0: 6f 6f 74 20 72 65 61 64 6f 6e 6c 79 41 74 74 72  oot readonlyAttr
9ef0: 7d 20 7b 0a 2b 20 20 20 20 63 61 74 63 68 20 7b  } {.+    catch {
9f00: 66 69 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72  file delete -for
9f10: 63 65 20 2d 2d 20 66 6f 6f 2e 74 65 73 74 7d 0a  ce -- foo.test}.
9f20: 2b 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68  +    list [catch
9f30: 20 7b 66 69 6c 65 20 61 74 74 72 69 62 75 74 65   {file attribute
9f40: 73 20 66 6f 6f 2e 74 65 73 74 20 2d 72 65 61 64  s foo.test -read
9f50: 6f 6e 6c 79 20 31 7d 20 6d 73 67 5d 20 24 6d 73  only 1} msg] $ms
9f60: 67 0a 2b 7d 20 7b 31 20 7b 63 6f 75 6c 64 20 6e  g.+} {1 {could n
9f70: 6f 74 20 72 65 61 64 20 22 66 6f 6f 2e 74 65 73  ot read "foo.tes
9f80: 74 22 3a 20 6e 6f 20 73 75 63 68 20 66 69 6c 65  t": no such file
9f90: 20 6f 72 20 64 69 72 65 63 74 6f 72 79 7d 7d 0a   or directory}}.
9fa0: 2b 0a 20 23 20 63 6c 65 61 6e 75 70 0a 20 63 6c  +. # cleanup. cl
9fb0: 65 61 6e 75 70 0a 20 63 64 20 24 6f 6c 64 63 77  eanup. cd $oldcw
9fc0: 64 0a 49 6e 64 65 78 3a 20 74 6f 6f 6c 73 2f 67  d.Index: tools/g
9fd0: 65 6e 53 74 75 62 73 2e 74 63 6c 0a 3d 3d 3d 3d  enStubs.tcl.====
9fe0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
9ff0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
a000: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
a010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
a020: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f  RCS file: /cvsro
a030: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 6f 6f 6c 73  ot/tcl/tcl/tools
a040: 2f 67 65 6e 53 74 75 62 73 2e 74 63 6c 2c 76 0a  /genStubs.tcl,v.
a050: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
a060: 69 6f 6e 20 31 2e 31 34 0a 64 69 66 66 20 2d 75  ion 1.14.diff -u
a070: 20 2d 72 31 2e 31 34 20 67 65 6e 53 74 75 62 73   -r1.14 genStubs
a080: 2e 74 63 6c 0a 2d 2d 2d 20 74 6f 6f 6c 73 2f 67  .tcl.--- tools/g
a090: 65 6e 53 74 75 62 73 2e 74 63 6c 09 31 39 20 4d  enStubs.tcl.19 M
a0a0: 61 72 20 32 30 30 33 20 32 31 3a 35 38 3a 30 31  ar 2003 21:58:01
a0b0: 20 2d 30 30 30 30 09 31 2e 31 34 0a 2b 2b 2b 20   -0000.1.14.+++ 
a0c0: 74 6f 6f 6c 73 2f 67 65 6e 53 74 75 62 73 2e 74  tools/genStubs.t
a0d0: 63 6c 09 31 34 20 4d 61 79 20 32 30 30 33 20 31  cl.14 May 2003 1
a0e0: 39 3a 31 33 3a 33 32 20 2d 30 30 30 30 0a 40 40  9:13:32 -0000.@@
a0f0: 20 2d 36 33 31 2c 37 20 2b 36 33 31 2c 38 20 40   -631,7 +631,8 @
a100: 40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  @.              
a110: 20 20 20 23 20 65 6d 69 74 20 64 75 70 6c 69 63     # emit duplic
a120: 61 74 65 20 73 74 75 62 73 20 65 6e 74 72 69 65  ate stubs entrie
a130: 73 20 66 6f 72 20 74 68 65 20 74 77 6f 2e 0a 20  s for the two.. 
a140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a150: 23 0a 20 09 09 69 66 20 7b 5b 69 6e 66 6f 20 65  #. ..if {[info e
a160: 78 69 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d  xists stubs($nam
a170: 65 2c 61 71 75 61 2c 24 69 29 5d 0a 2d 20 20 20  e,aqua,$i)].-   
a180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a190: 20 20 20 20 20 26 26 20 21 5b 69 6e 66 6f 20 65       && ![info e
a1a0: 78 69 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d  xists stubs($nam
a1b0: 65 2c 6d 61 63 6f 73 78 2c 24 69 29 5d 7d 20 7b  e,macosx,$i)]} {
a1c0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .+              
a1d0: 20 20 20 20 20 20 20 20 20 20 26 26 20 21 5b 69            && ![i
a1e0: 6e 66 6f 20 65 78 69 73 74 73 20 73 74 75 62 73  nfo exists stubs
a1f0: 28 24 6e 61 6d 65 2c 6d 61 63 6f 73 78 2c 24 69  ($name,macosx,$i
a200: 29 5d 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  )].+            
a210: 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20 21              && !
a220: 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 73 74 75  [info exists stu
a230: 62 73 28 24 6e 61 6d 65 2c 75 6e 69 78 2c 24 69  bs($name,unix,$i
a240: 29 5d 7d 20 7b 0a 20 09 09 20 20 20 20 61 70 70  )]} {. ..    app
a250: 65 6e 64 20 74 65 78 74 20 5b 61 64 64 50 6c 61  end text [addPla
a260: 74 66 6f 72 6d 47 75 61 72 64 20 61 71 75 61 20  tformGuard aqua 
a270: 5c 0a 20 09 09 09 20 20 20 20 5b 24 73 6c 6f 74  \. ...    [$slot
a280: 50 72 6f 63 20 24 6e 61 6d 65 20 24 73 74 75 62  Proc $name $stub
a290: 73 28 24 6e 61 6d 65 2c 61 71 75 61 2c 24 69 29  s($name,aqua,$i)
a2a0: 20 24 69 5d 5d 0a 20 09 09 20 20 20 20 73 65 74   $i]]. ..    set
a2b0: 20 65 6d 69 74 20 31 0a 40 40 20 2d 36 37 30 2c   emit 1.@@ -670,
a2c0: 34 38 20 2b 36 37 31 2c 35 32 20 40 40 0a 20 09  48 +671,52 @@. .
a2d0: 09 61 70 70 65 6e 64 20 74 65 78 74 20 5b 61 64  .append text [ad
a2e0: 64 50 6c 61 74 66 6f 72 6d 47 75 61 72 64 20 24  dPlatformGuard $
a2f0: 70 6c 61 74 20 24 74 65 6d 70 5d 0a 20 09 20 20  plat $temp]. .  
a300: 20 20 7d 0a 20 09 7d 0a 2d 20 20 20 20 20 20 20    }. .}.-       
a310: 20 23 20 41 67 61 69 6e 2c 20 6d 61 6b 65 20 73   # Again, make s
a320: 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 64 75  ure you don't du
a330: 70 6c 69 63 61 74 65 20 65 6e 74 72 69 65 73 20  plicate entries 
a340: 66 6f 72 20 6d 61 63 6f 73 78 20 26 20 61 71 75  for macosx & aqu
a350: 61 2e 0a 2d 09 69 66 20 7b 5b 69 6e 66 6f 20 65  a..-.if {[info e
a360: 78 69 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d  xists stubs($nam
a370: 65 2c 61 71 75 61 2c 6c 61 73 74 4e 75 6d 29 5d  e,aqua,lastNum)]
a380: 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .-              
a390: 20 20 26 26 20 21 5b 69 6e 66 6f 20 65 78 69 73    && ![info exis
a3a0: 74 73 20 73 74 75 62 73 28 24 6e 61 6d 65 2c 6d  ts stubs($name,m
a3b0: 61 63 6f 73 78 2c 6c 61 73 74 4e 75 6d 29 5d 7d  acosx,lastNum)]}
a3c0: 20 7b 0a 2b 09 69 66 20 7b 5b 69 6e 66 6f 20 65   {.+.if {[info e
a3d0: 78 69 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d  xists stubs($nam
a3e0: 65 2c 75 6e 69 78 2c 6c 61 73 74 4e 75 6d 29 5d  e,unix,lastNum)]
a3f0: 7d 20 7b 0a 2b 09 20 20 20 20 73 65 74 20 61 66  } {.+.    set af
a400: 74 65 72 55 6e 69 78 4e 75 6d 20 5b 65 78 70 72  terUnixNum [expr
a410: 20 24 73 74 75 62 73 28 24 6e 61 6d 65 2c 75 6e   $stubs($name,un
a420: 69 78 2c 6c 61 73 74 4e 75 6d 29 20 2b 20 31 5d  ix,lastNum) + 1]
a430: 0a 2b 09 7d 20 65 6c 73 65 20 7b 0a 2b 09 20 20  .+.} else {.+.  
a440: 20 20 73 65 74 20 61 66 74 65 72 55 6e 69 78 4e    set afterUnixN
a450: 75 6d 20 30 0a 2b 09 7d 0a 2b 09 69 66 20 7b 5b  um 0.+.}.+.if {[
a460: 69 6e 66 6f 20 65 78 69 73 74 73 20 73 74 75 62  info exists stub
a470: 73 28 24 6e 61 6d 65 2c 61 71 75 61 2c 6c 61 73  s($name,aqua,las
a480: 74 4e 75 6d 29 5d 7d 20 7b 0a 20 09 20 20 20 20  tNum)]} {. .    
a490: 73 65 74 20 6c 61 73 74 4e 75 6d 20 24 73 74 75  set lastNum $stu
a4a0: 62 73 28 24 6e 61 6d 65 2c 61 71 75 61 2c 6c 61  bs($name,aqua,la
a4b0: 73 74 4e 75 6d 29 0a 20 09 20 20 20 20 73 65 74  stNum). .    set
a4c0: 20 74 65 6d 70 20 7b 7d 0a 2d 09 20 20 20 20 66   temp {}.-.    f
a4d0: 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69  or {set i 0} {$i
a4e0: 20 3c 3d 20 24 6c 61 73 74 4e 75 6d 7d 20 7b 69   <= $lastNum} {i
a4f0: 6e 63 72 20 69 7d 20 7b 0a 2d 09 09 69 66 20 7b  ncr i} {.-..if {
a500: 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 73 74  ![info exists st
a510: 75 62 73 28 24 6e 61 6d 65 2c 61 71 75 61 2c 24  ubs($name,aqua,$
a520: 69 29 5d 7d 20 7b 0a 2d 09 09 20 20 20 20 65 76  i)]} {.-..    ev
a530: 61 6c 20 7b 61 70 70 65 6e 64 20 74 65 6d 70 7d  al {append temp}
a540: 20 24 73 6b 69 70 53 74 72 69 6e 67 0a 2d 09 09   $skipString.-..
a550: 7d 20 65 6c 73 65 20 7b 0a 2b 09 20 20 20 20 23  } else {.+.    #
a560: 20 41 67 61 69 6e 2c 20 6d 61 6b 65 20 73 75 72   Again, make sur
a570: 65 20 79 6f 75 20 64 6f 6e 27 74 20 64 75 70 6c  e you don't dupl
a580: 69 63 61 74 65 20 65 6e 74 72 69 65 73 20 66 6f  icate entries fo
a590: 72 20 6d 61 63 6f 73 78 20 26 20 75 6e 69 78 20  r macosx & unix 
a5a0: 26 20 61 71 75 61 2e 0a 2b 09 20 20 20 20 66 6f  & aqua..+.    fo
a5b0: 72 20 7b 73 65 74 20 69 20 24 61 66 74 65 72 55  r {set i $afterU
a5c0: 6e 69 78 4e 75 6d 7d 20 7b 24 69 20 3c 3d 20 24  nixNum} {$i <= $
a5d0: 6c 61 73 74 4e 75 6d 7d 20 7b 69 6e 63 72 20 69  lastNum} {incr i
a5e0: 7d 20 7b 0a 2b 09 09 69 66 20 7b 21 5b 69 6e 66  } {.+..if {![inf
a5f0: 6f 20 65 78 69 73 74 73 20 73 74 75 62 73 28 24  o exists stubs($
a600: 6e 61 6d 65 2c 6d 61 63 6f 73 78 2c 24 69 29 5d  name,macosx,$i)]
a610: 7d 20 7b 0a 2b 09 09 20 20 20 20 69 66 20 7b 21  } {.+..    if {!
a620: 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 73 74 75  [info exists stu
a630: 62 73 28 24 6e 61 6d 65 2c 61 71 75 61 2c 24 69  bs($name,aqua,$i
a640: 29 5d 7d 20 7b 0a 2b 09 09 09 65 76 61 6c 20 7b  )]} {.+...eval {
a650: 61 70 70 65 6e 64 20 74 65 6d 70 7d 20 24 73 6b  append temp} $sk
a660: 69 70 53 74 72 69 6e 67 0a 2b 09 09 20 20 20 20  ipString.+..    
a670: 7d 20 65 6c 73 65 20 7b 0a 20 09 09 09 61 70 70  } else {. ...app
a680: 65 6e 64 20 74 65 6d 70 20 5b 24 73 6c 6f 74 50  end temp [$slotP
a690: 72 6f 63 20 24 6e 61 6d 65 20 24 73 74 75 62 73  roc $name $stubs
a6a0: 28 24 6e 61 6d 65 2c 61 71 75 61 2c 24 69 29 20  ($name,aqua,$i) 
a6b0: 24 69 5d 0a 20 09 09 20 20 20 20 7d 0a 20 09 09  $i]. ..    }. ..
a6c0: 7d 0a 2d 09 09 61 70 70 65 6e 64 20 74 65 78 74  }.-..append text
a6d0: 20 5b 61 64 64 50 6c 61 74 66 6f 72 6d 47 75 61   [addPlatformGua
a6e0: 72 64 20 61 71 75 61 20 24 74 65 6d 70 5d 0a 20  rd aqua $temp]. 
a6f0: 09 20 20 20 20 7d 0a 2d 20 20 20 20 20 20 20 20  .    }.-        
a700: 23 20 41 67 61 69 6e 2c 20 6d 61 6b 65 20 73 75  # Again, make su
a710: 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 64 75 70  re you don't dup
a720: 6c 69 63 61 74 65 20 65 6e 74 72 69 65 73 20 66  licate entries f
a730: 6f 72 20 6d 61 63 6f 73 78 20 26 20 75 6e 69 78  or macosx & unix
a740: 2e 0a 2d 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78  ..-.if {[info ex
a750: 69 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d 65  ists stubs($name
a760: 2c 6d 61 63 6f 73 78 2c 6c 61 73 74 4e 75 6d 29  ,macosx,lastNum)
a770: 5d 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 20  ].-             
a780: 20 20 20 26 26 20 21 5b 69 6e 66 6f 20 65 78 69     && ![info exi
a790: 73 74 73 20 73 74 75 62 73 28 24 6e 61 6d 65 2c  sts stubs($name,
a7a0: 75 6e 69 78 2c 6c 61 73 74 4e 75 6d 29 5d 7d 20  unix,lastNum)]} 
a7b0: 7b 0a 2b 09 20 20 20 20 61 70 70 65 6e 64 20 74  {.+.    append t
a7c0: 65 78 74 20 5b 61 64 64 50 6c 61 74 66 6f 72 6d  ext [addPlatform
a7d0: 47 75 61 72 64 20 61 71 75 61 20 24 74 65 6d 70  Guard aqua $temp
a7e0: 5d 0a 2b 09 7d 0a 2b 09 69 66 20 7b 5b 69 6e 66  ].+.}.+.if {[inf
a7f0: 6f 20 65 78 69 73 74 73 20 73 74 75 62 73 28 24  o exists stubs($
a800: 6e 61 6d 65 2c 6d 61 63 6f 73 78 2c 6c 61 73 74  name,macosx,last
a810: 4e 75 6d 29 5d 7d 20 7b 0a 20 09 20 20 20 20 73  Num)]} {. .    s
a820: 65 74 20 6c 61 73 74 4e 75 6d 20 24 73 74 75 62  et lastNum $stub
a830: 73 28 24 6e 61 6d 65 2c 6d 61 63 6f 73 78 2c 6c  s($name,macosx,l
a840: 61 73 74 4e 75 6d 29 0a 20 09 20 20 20 20 73 65  astNum). .    se
a850: 74 20 74 65 6d 70 20 7b 7d 0a 2d 09 20 20 20 20  t temp {}.-.    
a860: 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24  for {set i 0} {$
a870: 69 20 3c 3d 20 24 6c 61 73 74 4e 75 6d 7d 20 7b  i <= $lastNum} {
a880: 69 6e 63 72 20 69 7d 20 7b 0a 2b 09 20 20 20 20  incr i} {.+.    
a890: 23 20 41 67 61 69 6e 2c 20 6d 61 6b 65 20 73 75  # Again, make su
a8a0: 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 64 75 70  re you don't dup
a8b0: 6c 69 63 61 74 65 20 65 6e 74 72 69 65 73 20 66  licate entries f
a8c0: 6f 72 20 6d 61 63 6f 73 78 20 26 20 75 6e 69 78  or macosx & unix
a8d0: 2e 0a 2b 09 20 20 20 20 66 6f 72 20 7b 73 65 74  ..+.    for {set
a8e0: 20 69 20 24 61 66 74 65 72 55 6e 69 78 4e 75 6d   i $afterUnixNum
a8f0: 7d 20 7b 24 69 20 3c 3d 20 24 6c 61 73 74 4e 75  } {$i <= $lastNu
a900: 6d 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 20 09  m} {incr i} {. .
a910: 09 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73  .if {![info exis
a920: 74 73 20 73 74 75 62 73 28 24 6e 61 6d 65 2c 6d  ts stubs($name,m
a930: 61 63 6f 73 78 2c 24 69 29 5d 7d 20 7b 0a 20 09  acosx,$i)]} {. .
a940: 09 20 20 20 20 65 76 61 6c 20 7b 61 70 70 65 6e  .    eval {appen
a950: 64 20 74 65 6d 70 7d 20 24 73 6b 69 70 53 74 72  d temp} $skipStr
a960: 69 6e 67 0a 20 09 09 7d 20 65 6c 73 65 20 7b 0a  ing. ..} else {.
a970: 2d 09 09 09 61 70 70 65 6e 64 20 74 65 6d 70 20  -...append temp 
a980: 5b 24 73 6c 6f 74 50 72 6f 63 20 24 6e 61 6d 65  [$slotProc $name
a990: 20 24 73 74 75 62 73 28 24 6e 61 6d 65 2c 6d 61   $stubs($name,ma
a9a0: 63 6f 73 78 2c 24 69 29 20 24 69 5d 0a 2d 09 09  cosx,$i) $i].-..
a9b0: 20 20 20 20 7d 0a 2b 09 09 20 20 20 20 61 70 70      }.+..    app
a9c0: 65 6e 64 20 74 65 6d 70 20 5b 24 73 6c 6f 74 50  end temp [$slotP
a9d0: 72 6f 63 20 24 6e 61 6d 65 20 24 73 74 75 62 73  roc $name $stubs
a9e0: 28 24 6e 61 6d 65 2c 6d 61 63 6f 73 78 2c 24 69  ($name,macosx,$i
a9f0: 29 20 24 69 5d 0a 20 09 09 7d 0a 2d 09 09 61 70  ) $i]. ..}.-..ap
aa00: 70 65 6e 64 20 74 65 78 74 20 5b 61 64 64 50 6c  pend text [addPl
aa10: 61 74 66 6f 72 6d 47 75 61 72 64 20 6d 61 63 6f  atformGuard maco
aa20: 73 78 20 24 74 65 6d 70 5d 0a 20 09 20 20 20 20  sx $temp]. .    
aa30: 7d 0a 2d 20 20 20 20 20 20 20 20 23 20 41 67 61  }.-        # Aga
aa40: 69 6e 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f  in, make sure yo
aa50: 75 20 64 6f 6e 27 74 20 64 75 70 6c 69 63 61 74  u don't duplicat
aa60: 65 20 65 6e 74 72 69 65 73 20 66 6f 72 20 78 31  e entries for x1
aa70: 31 20 26 20 75 6e 69 78 2e 0a 2d 09 69 66 20 7b  1 & unix..-.if {
aa80: 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 73 74 75  [info exists stu
aa90: 62 73 28 24 6e 61 6d 65 2c 78 31 31 2c 6c 61 73  bs($name,x11,las
aaa0: 74 4e 75 6d 29 5d 0a 2d 20 20 20 20 20 20 20 20  tNum)].-        
aab0: 20 20 20 20 20 20 20 20 26 26 20 21 5b 69 6e 66          && ![inf
aac0: 6f 20 65 78 69 73 74 73 20 73 74 75 62 73 28 24  o exists stubs($
aad0: 6e 61 6d 65 2c 75 6e 69 78 2c 6c 61 73 74 4e 75  name,unix,lastNu
aae0: 6d 29 5d 7d 20 7b 0a 2b 09 20 20 20 20 61 70 70  m)]} {.+.    app
aaf0: 65 6e 64 20 74 65 78 74 20 5b 61 64 64 50 6c 61  end text [addPla
ab00: 74 66 6f 72 6d 47 75 61 72 64 20 6d 61 63 6f 73  tformGuard macos
ab10: 78 20 24 74 65 6d 70 5d 0a 2b 09 7d 0a 2b 09 69  x $temp].+.}.+.i
ab20: 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20  f {[info exists 
ab30: 73 74 75 62 73 28 24 6e 61 6d 65 2c 78 31 31 2c  stubs($name,x11,
ab40: 6c 61 73 74 4e 75 6d 29 5d 7d 20 7b 0a 20 09 20  lastNum)]} {. . 
ab50: 20 20 20 73 65 74 20 6c 61 73 74 4e 75 6d 20 24     set lastNum $
ab60: 73 74 75 62 73 28 24 6e 61 6d 65 2c 78 31 31 2c  stubs($name,x11,
ab70: 6c 61 73 74 4e 75 6d 29 0a 20 09 20 20 20 20 73  lastNum). .    s
ab80: 65 74 20 74 65 6d 70 20 7b 7d 0a 2d 09 20 20 20  et temp {}.-.   
ab90: 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b   for {set i 0} {
aba0: 24 69 20 3c 3d 20 24 6c 61 73 74 4e 75 6d 7d 20  $i <= $lastNum} 
abb0: 7b 69 6e 63 72 20 69 7d 20 7b 0a 2b 09 20 20 20  {incr i} {.+.   
abc0: 20 23 20 41 67 61 69 6e 2c 20 6d 61 6b 65 20 73   # Again, make s
abd0: 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 64 75  ure you don't du
abe0: 70 6c 69 63 61 74 65 20 65 6e 74 72 69 65 73 20  plicate entries 
abf0: 66 6f 72 20 78 31 31 20 26 20 75 6e 69 78 2e 0a  for x11 & unix..
ac00: 2b 09 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69  +.    for {set i
ac10: 20 24 61 66 74 65 72 55 6e 69 78 4e 75 6d 7d 20   $afterUnixNum} 
ac20: 7b 24 69 20 3c 3d 20 24 6c 61 73 74 4e 75 6d 7d  {$i <= $lastNum}
ac30: 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 20 09 09 69   {incr i} {. ..i
ac40: 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73  f {![info exists
ac50: 20 73 74 75 62 73 28 24 6e 61 6d 65 2c 78 31 31   stubs($name,x11
ac60: 2c 24 69 29 5d 7d 20 7b 0a 20 09 09 20 20 20 20  ,$i)]} {. ..    
ac70: 65 76 61 6c 20 7b 61 70 70 65 6e 64 20 74 65 6d  eval {append tem
ac80: 70 7d 20 24 73 6b 69 70 53 74 72 69 6e 67 0a 20  p} $skipString. 
ac90: 09 09 7d 20 65 6c 73 65 20 7b 0a 2d 09 09 09 61  ..} else {.-...a
aca0: 70 70 65 6e 64 20 74 65 6d 70 20 5b 24 73 6c 6f  ppend temp [$slo
acb0: 74 50 72 6f 63 20 24 6e 61 6d 65 20 24 73 74 75  tProc $name $stu
acc0: 62 73 28 24 6e 61 6d 65 2c 78 31 31 2c 24 69 29  bs($name,x11,$i)
acd0: 20 24 69 5d 0a 2d 09 09 20 20 20 20 7d 0a 2b 09   $i].-..    }.+.
ace0: 09 20 20 20 20 61 70 70 65 6e 64 20 74 65 6d 70  .    append temp
acf0: 20 5b 24 73 6c 6f 74 50 72 6f 63 20 24 6e 61 6d   [$slotProc $nam
ad00: 65 20 24 73 74 75 62 73 28 24 6e 61 6d 65 2c 78  e $stubs($name,x
ad10: 31 31 2c 24 69 29 20 24 69 5d 0a 20 09 09 7d 0a  11,$i) $i]. ..}.
ad20: 2d 09 09 61 70 70 65 6e 64 20 74 65 78 74 20 5b  -..append text [
ad30: 61 64 64 50 6c 61 74 66 6f 72 6d 47 75 61 72 64  addPlatformGuard
ad40: 20 78 31 31 20 24 74 65 6d 70 5d 0a 20 09 20 20   x11 $temp]. .  
ad50: 20 20 7d 0a 2b 09 20 20 20 20 61 70 70 65 6e 64    }.+.    append
ad60: 20 74 65 78 74 20 5b 61 64 64 50 6c 61 74 66 6f   text [addPlatfo
ad70: 72 6d 47 75 61 72 64 20 78 31 31 20 24 74 65 6d  rmGuard x11 $tem
ad80: 70 5d 0a 2b 09 7d 0a 20 20 20 20 20 7d 0a 20 7d  p].+.}.     }. }
ad90: 0a 20 0a 49 6e 64 65 78 3a 20 75 6e 69 78 2f 4d  . .Index: unix/M
ada0: 61 6b 65 66 69 6c 65 2e 69 6e 0a 3d 3d 3d 3d 3d  akefile.in.=====
adb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
adc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
add0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
ade0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52  ==============.R
adf0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f  CS file: /cvsroo
ae00: 74 2f 74 63 6c 2f 74 63 6c 2f 75 6e 69 78 2f 4d  t/tcl/tcl/unix/M
ae10: 61 6b 65 66 69 6c 65 2e 69 6e 2c 76 0a 72 65 74  akefile.in,v.ret
ae20: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e  rieving revision
ae30: 20 31 2e 31 32 34 0a 64 69 66 66 20 2d 75 20 2d   1.124.diff -u -
ae40: 72 31 2e 31 32 34 20 4d 61 6b 65 66 69 6c 65 2e  r1.124 Makefile.
ae50: 69 6e 0a 2d 2d 2d 20 75 6e 69 78 2f 4d 61 6b 65  in.--- unix/Make
ae60: 66 69 6c 65 2e 69 6e 09 31 31 20 41 70 72 20 32  file.in.11 Apr 2
ae70: 30 30 33 20 31 36 3a 30 39 3a 35 31 20 2d 30 30  003 16:09:51 -00
ae80: 30 30 09 31 2e 31 32 34 0a 2b 2b 2b 20 75 6e 69  00.1.124.+++ uni
ae90: 78 2f 4d 61 6b 65 66 69 6c 65 2e 69 6e 09 31 34  x/Makefile.in.14
aea0: 20 4d 61 79 20 32 30 30 33 20 31 39 3a 31 33 3a   May 2003 19:13:
aeb0: 33 32 20 2d 30 30 30 30 0a 40 40 20 2d 34 33 35  32 -0000.@@ -435
aec0: 2c 37 20 2b 34 33 35 2c 38 20 40 40 0a 20 09 24  ,7 +435,8 @@. .$
aed0: 28 55 4e 49 58 5f 44 49 52 29 2f 74 63 6c 4c 6f  (UNIX_DIR)/tclLo
aee0: 61 64 53 68 6c 2e 63 0a 20 0a 20 4d 41 43 5f 4f  adShl.c. . MAC_O
aef0: 53 58 5f 53 52 43 53 20 3d 20 5c 0a 2d 09 24 28  SX_SRCS = \.-.$(
af00: 4d 41 43 5f 4f 53 58 5f 44 49 52 29 2f 74 63 6c  MAC_OSX_DIR)/tcl
af10: 4d 61 63 4f 53 58 42 75 6e 64 6c 65 2e 63 0a 2b  MacOSXBundle.c.+
af20: 09 24 28 4d 41 43 5f 4f 53 58 5f 44 49 52 29 2f  .$(MAC_OSX_DIR)/
af30: 74 63 6c 4d 61 63 4f 53 58 42 75 6e 64 6c 65 2e  tclMacOSXBundle.
af40: 63 20 5c 0a 2b 09 24 28 4d 41 43 5f 4f 53 58 5f  c \.+.$(MAC_OSX_
af50: 44 49 52 29 2f 74 63 6c 4d 61 63 4f 53 58 46 43  DIR)/tclMacOSXFC
af60: 6d 64 2e 63 0a 20 0a 20 23 20 4e 6f 74 65 3a 20  md.c. . # Note: 
af70: 64 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 44 4c  don't include DL
af80: 5f 53 52 43 53 20 6f 72 20 4d 41 43 5f 4f 53 58  _SRCS or MAC_OSX
af90: 5f 53 52 43 53 20 69 6e 20 53 52 43 53 3a 20 6d  _SRCS in SRCS: m
afa0: 6f 73 74 20 6f 66 20 74 68 6f 73 65 0a 20 23 20  ost of those. # 
afb0: 66 69 6c 65 73 20 77 6f 6e 27 74 20 63 6f 6d 70  files won't comp
afc0: 69 6c 65 20 6f 6e 20 74 68 65 20 63 75 72 72 65  ile on the curre
afd0: 6e 74 20 6d 61 63 68 69 6e 65 2c 20 61 6e 64 20  nt machine, and 
afe0: 74 68 65 79 20 77 69 6c 6c 20 63 61 75 73 65 0a  they will cause.
aff0: 40 40 20 2d 31 30 35 33 2c 36 20 2b 31 30 35 34  @@ -1053,6 +1054
b000: 2c 39 20 40 40 0a 20 23 20 54 68 69 73 20 69 73  ,9 @@. # This is
b010: 20 74 68 65 20 43 46 42 75 6e 64 6c 65 20 69 6e   the CFBundle in
b020: 74 65 72 66 61 63 65 2e 20 20 49 74 20 69 73 20  terface.  It is 
b030: 6f 6e 6c 79 20 75 73 65 64 20 6f 6e 20 4d 61 63  only used on Mac
b040: 20 4f 53 20 58 2e 0a 20 74 63 6c 4d 61 63 4f 53   OS X.. tclMacOS
b050: 58 42 75 6e 64 6c 65 2e 6f 3a 20 24 28 4d 41 43  XBundle.o: $(MAC
b060: 5f 4f 53 58 5f 44 49 52 29 2f 74 63 6c 4d 61 63  _OSX_DIR)/tclMac
b070: 4f 53 58 42 75 6e 64 6c 65 2e 63 0a 20 09 24 28  OSXBundle.c. .$(
b080: 43 43 29 20 2d 63 20 24 28 43 43 5f 53 57 49 54  CC) -c $(CC_SWIT
b090: 43 48 45 53 29 20 24 28 4d 41 43 5f 4f 53 58 5f  CHES) $(MAC_OSX_
b0a0: 44 49 52 29 2f 74 63 6c 4d 61 63 4f 53 58 42 75  DIR)/tclMacOSXBu
b0b0: 6e 64 6c 65 2e 63 0a 2b 0a 2b 74 63 6c 4d 61 63  ndle.c.+.+tclMac
b0c0: 4f 53 58 46 43 6d 64 2e 6f 3a 20 24 28 4d 41 43  OSXFCmd.o: $(MAC
b0d0: 5f 4f 53 58 5f 44 49 52 29 2f 74 63 6c 4d 61 63  _OSX_DIR)/tclMac
b0e0: 4f 53 58 46 43 6d 64 2e 63 0a 2b 09 24 28 43 43  OSXFCmd.c.+.$(CC
b0f0: 29 20 2d 63 20 24 28 43 43 5f 53 57 49 54 43 48  ) -c $(CC_SWITCH
b100: 45 53 29 20 24 28 4d 41 43 5f 4f 53 58 5f 44 49  ES) $(MAC_OSX_DI
b110: 52 29 2f 74 63 6c 4d 61 63 4f 53 58 46 43 6d 64  R)/tclMacOSXFCmd
b120: 2e 63 0a 20 0a 20 23 20 54 68 65 20 66 6f 6c 6c  .c. . # The foll
b130: 6f 77 69 6e 67 20 74 61 72 67 65 74 73 20 61 72  owing targets ar
b140: 65 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79  e not completely
b150: 20 67 65 6e 65 72 61 6c 2e 20 20 54 68 65 79 20   general.  They 
b160: 61 72 65 20 70 72 6f 76 69 64 65 0a 20 23 20 70  are provide. # p
b170: 75 72 65 6c 79 20 66 6f 72 20 64 6f 63 75 6d 65  urely for docume
b180: 6e 74 61 74 69 6f 6e 20 70 75 72 70 6f 73 65 73  ntation purposes
b190: 20 73 6f 20 70 65 6f 70 6c 65 20 77 68 6f 20 61   so people who a
b1a0: 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e  re interested in
b1b0: 0a 49 6e 64 65 78 3a 20 75 6e 69 78 2f 63 6f 6e  .Index: unix/con
b1c0: 66 69 67 75 72 65 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d  figure.=========
b1d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
b1e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
b1f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
b200: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66  ==========.RCS f
b210: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63  ile: /cvsroot/tc
b220: 6c 2f 74 63 6c 2f 75 6e 69 78 2f 63 6f 6e 66 69  l/tcl/unix/confi
b230: 67 75 72 65 2c 76 0a 72 65 74 72 69 65 76 69 6e  gure,v.retrievin
b240: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 39 39 0a  g revision 1.99.
b250: 64 69 66 66 20 2d 75 20 2d 72 31 2e 39 39 20 63  diff -u -r1.99 c
b260: 6f 6e 66 69 67 75 72 65 0a 2d 2d 2d 20 75 6e 69  onfigure.--- uni
b270: 78 2f 63 6f 6e 66 69 67 75 72 65 09 34 20 41 70  x/configure.4 Ap
b280: 72 20 32 30 30 33 20 30 30 3a 32 31 3a 31 31 20  r 2003 00:21:11 
b290: 2d 30 30 30 30 09 31 2e 39 39 0a 2b 2b 2b 20 75  -0000.1.99.+++ u
b2a0: 6e 69 78 2f 63 6f 6e 66 69 67 75 72 65 09 31 34  nix/configure.14
b2b0: 20 4d 61 79 20 32 30 30 33 20 31 39 3a 31 33 3a   May 2003 19:13:
b2c0: 33 33 20 2d 30 30 30 30 0a 40 40 20 2d 39 35 36  33 -0000.@@ -956
b2d0: 32 2c 36 20 2b 39 35 36 32 2c 31 38 34 20 40 40  2,6 +9562,184 @@
b2e0: 0a 20 0a 20 0a 20 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  . . . #---------
b2f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 23 20 43  -----------.+# C
b330: 68 65 63 6b 20 66 6f 72 20 73 75 70 70 6f 72 74  heck for support
b340: 20 6f 66 20 63 68 66 6c 61 67 73 20 66 75 6e 63   of chflags func
b350: 74 69 6f 6e 0a 2b 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  tion.+#---------
b360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 0a 2b 0a  -----------.+.+.
b3a0: 2b 66 6f 72 20 61 63 5f 66 75 6e 63 20 69 6e 20  +for ac_func in 
b3b0: 63 68 66 6c 61 67 73 0a 2b 64 6f 0a 2b 61 73 5f  chflags.+do.+as_
b3c0: 61 63 5f 76 61 72 3d 60 65 63 68 6f 20 22 61 63  ac_var=`echo "ac
b3d0: 5f 63 76 5f 66 75 6e 63 5f 24 61 63 5f 66 75 6e  _cv_func_$ac_fun
b3e0: 63 22 20 7c 20 24 61 73 5f 74 72 5f 73 68 60 0a  c" | $as_tr_sh`.
b3f0: 2b 65 63 68 6f 20 22 24 61 73 5f 6d 65 3a 24 4c  +echo "$as_me:$L
b400: 49 4e 45 4e 4f 3a 20 63 68 65 63 6b 69 6e 67 20  INENO: checking 
b410: 66 6f 72 20 24 61 63 5f 66 75 6e 63 22 20 3e 26  for $ac_func" >&
b420: 35 0a 2b 65 63 68 6f 20 24 45 43 48 4f 5f 4e 20  5.+echo $ECHO_N 
b430: 22 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 24 61  "checking for $a
b440: 63 5f 66 75 6e 63 2e 2e 2e 20 24 45 43 48 4f 5f  c_func... $ECHO_
b450: 43 22 20 3e 26 36 0a 2b 69 66 20 65 76 61 6c 20  C" >&6.+if eval 
b460: 22 74 65 73 74 20 5c 22 5c 24 7b 24 61 73 5f 61  "test \"\${$as_a
b470: 63 5f 76 61 72 2b 73 65 74 7d 5c 22 20 3d 20 73  c_var+set}\" = s
b480: 65 74 22 3b 20 74 68 65 6e 0a 2b 20 20 65 63 68  et"; then.+  ech
b490: 6f 20 24 45 43 48 4f 5f 4e 20 22 28 63 61 63 68  o $ECHO_N "(cach
b4a0: 65 64 29 20 24 45 43 48 4f 5f 43 22 20 3e 26 36  ed) $ECHO_C" >&6
b4b0: 0a 2b 65 6c 73 65 0a 2b 20 20 63 61 74 20 3e 63  .+else.+  cat >c
b4c0: 6f 6e 66 74 65 73 74 2e 24 61 63 5f 65 78 74 20  onftest.$ac_ext 
b4d0: 3c 3c 5f 41 43 45 4f 46 0a 2b 23 6c 69 6e 65 20  <<_ACEOF.+#line 
b4e0: 24 4c 49 4e 45 4e 4f 20 22 63 6f 6e 66 69 67 75  $LINENO "configu
b4f0: 72 65 22 0a 2b 2f 2a 20 63 6f 6e 66 64 65 66 73  re".+/* confdefs
b500: 2e 68 2e 20 20 2a 2f 0a 2b 5f 41 43 45 4f 46 0a  .h.  */.+_ACEOF.
b510: 2b 63 61 74 20 63 6f 6e 66 64 65 66 73 2e 68 20  +cat confdefs.h 
b520: 3e 3e 63 6f 6e 66 74 65 73 74 2e 24 61 63 5f 65  >>conftest.$ac_e
b530: 78 74 0a 2b 63 61 74 20 3e 3e 63 6f 6e 66 74 65  xt.+cat >>confte
b540: 73 74 2e 24 61 63 5f 65 78 74 20 3c 3c 5f 41 43  st.$ac_ext <<_AC
b550: 45 4f 46 0a 2b 2f 2a 20 65 6e 64 20 63 6f 6e 66  EOF.+/* end conf
b560: 64 65 66 73 2e 68 2e 20 20 2a 2f 0a 2b 2f 2a 20  defs.h.  */.+/* 
b570: 53 79 73 74 65 6d 20 68 65 61 64 65 72 20 74 6f  System header to
b580: 20 64 65 66 69 6e 65 20 5f 5f 73 74 75 62 20 6d   define __stub m
b590: 61 63 72 6f 73 20 61 6e 64 20 68 6f 70 65 66 75  acros and hopefu
b5a0: 6c 6c 79 20 66 65 77 20 70 72 6f 74 6f 74 79 70  lly few prototyp
b5b0: 65 73 2c 0a 2b 20 20 20 20 77 68 69 63 68 20 63  es,.+    which c
b5c0: 61 6e 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68  an conflict with
b5d0: 20 63 68 61 72 20 24 61 63 5f 66 75 6e 63 20 28   char $ac_func (
b5e0: 29 3b 20 62 65 6c 6f 77 2e 0a 2b 20 20 20 20 50  ); below..+    P
b5f0: 72 65 66 65 72 20 3c 6c 69 6d 69 74 73 2e 68 3e  refer <limits.h>
b600: 20 74 6f 20 3c 61 73 73 65 72 74 2e 68 3e 20 69   to <assert.h> i
b610: 66 20 5f 5f 53 54 44 43 5f 5f 20 69 73 20 64 65  f __STDC__ is de
b620: 66 69 6e 65 64 2c 20 73 69 6e 63 65 0a 2b 20 20  fined, since.+  
b630: 20 20 3c 6c 69 6d 69 74 73 2e 68 3e 20 65 78 69    <limits.h> exi
b640: 73 74 73 20 65 76 65 6e 20 6f 6e 20 66 72 65 65  sts even on free
b650: 73 74 61 6e 64 69 6e 67 20 63 6f 6d 70 69 6c 65  standing compile
b660: 72 73 2e 20 20 2a 2f 0a 2b 23 69 66 64 65 66 20  rs.  */.+#ifdef 
b670: 5f 5f 53 54 44 43 5f 5f 0a 2b 23 20 69 6e 63 6c  __STDC__.+# incl
b680: 75 64 65 20 3c 6c 69 6d 69 74 73 2e 68 3e 0a 2b  ude <limits.h>.+
b690: 23 65 6c 73 65 0a 2b 23 20 69 6e 63 6c 75 64 65  #else.+# include
b6a0: 20 3c 61 73 73 65 72 74 2e 68 3e 0a 2b 23 65 6e   <assert.h>.+#en
b6b0: 64 69 66 0a 2b 2f 2a 20 4f 76 65 72 72 69 64 65  dif.+/* Override
b6c0: 20 61 6e 79 20 67 63 63 32 20 69 6e 74 65 72 6e   any gcc2 intern
b6d0: 61 6c 20 70 72 6f 74 6f 74 79 70 65 20 74 6f 20  al prototype to 
b6e0: 61 76 6f 69 64 20 61 6e 20 65 72 72 6f 72 2e 20  avoid an error. 
b6f0: 20 2a 2f 0a 2b 23 69 66 64 65 66 20 5f 5f 63 70   */.+#ifdef __cp
b700: 6c 75 73 70 6c 75 73 0a 2b 65 78 74 65 72 6e 20  lusplus.+extern 
b710: 22 43 22 0a 2b 7b 0a 2b 23 65 6e 64 69 66 0a 2b  "C".+{.+#endif.+
b720: 2f 2a 20 57 65 20 75 73 65 20 63 68 61 72 20 62  /* We use char b
b730: 65 63 61 75 73 65 20 69 6e 74 20 6d 69 67 68 74  ecause int might
b740: 20 6d 61 74 63 68 20 74 68 65 20 72 65 74 75 72   match the retur
b750: 6e 20 74 79 70 65 20 6f 66 20 61 20 67 63 63 32  n type of a gcc2
b760: 0a 2b 20 20 20 62 75 69 6c 74 69 6e 20 61 6e 64  .+   builtin and
b770: 20 74 68 65 6e 20 69 74 73 20 61 72 67 75 6d 65   then its argume
b780: 6e 74 20 70 72 6f 74 6f 74 79 70 65 20 77 6f 75  nt prototype wou
b790: 6c 64 20 73 74 69 6c 6c 20 61 70 70 6c 79 2e 20  ld still apply. 
b7a0: 20 2a 2f 0a 2b 63 68 61 72 20 24 61 63 5f 66 75   */.+char $ac_fu
b7b0: 6e 63 20 28 29 3b 0a 2b 2f 2a 20 54 68 65 20 47  nc ();.+/* The G
b7c0: 4e 55 20 43 20 6c 69 62 72 61 72 79 20 64 65 66  NU C library def
b7d0: 69 6e 65 73 20 74 68 69 73 20 66 6f 72 20 66 75  ines this for fu
b7e0: 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 69 74  nctions which it
b7f0: 20 69 6d 70 6c 65 6d 65 6e 74 73 0a 2b 20 20 20   implements.+   
b800: 20 74 6f 20 61 6c 77 61 79 73 20 66 61 69 6c 20   to always fail 
b810: 77 69 74 68 20 45 4e 4f 53 59 53 2e 20 20 53 6f  with ENOSYS.  So
b820: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65  me functions are
b830: 20 61 63 74 75 61 6c 6c 79 20 6e 61 6d 65 64 0a   actually named.
b840: 2b 20 20 20 20 73 6f 6d 65 74 68 69 6e 67 20 73  +    something s
b850: 74 61 72 74 69 6e 67 20 77 69 74 68 20 5f 5f 20  tarting with __ 
b860: 61 6e 64 20 74 68 65 20 6e 6f 72 6d 61 6c 20 6e  and the normal n
b870: 61 6d 65 20 69 73 20 61 6e 20 61 6c 69 61 73 2e  ame is an alias.
b880: 20 20 2a 2f 0a 2b 23 69 66 20 64 65 66 69 6e 65    */.+#if define
b890: 64 20 28 5f 5f 73 74 75 62 5f 24 61 63 5f 66 75  d (__stub_$ac_fu
b8a0: 6e 63 29 20 7c 7c 20 64 65 66 69 6e 65 64 20 28  nc) || defined (
b8b0: 5f 5f 73 74 75 62 5f 5f 5f 24 61 63 5f 66 75 6e  __stub___$ac_fun
b8c0: 63 29 0a 2b 63 68 6f 6b 65 20 6d 65 0a 2b 23 65  c).+choke me.+#e
b8d0: 6c 73 65 0a 2b 63 68 61 72 20 28 2a 66 29 20 28  lse.+char (*f) (
b8e0: 29 20 3d 20 24 61 63 5f 66 75 6e 63 3b 0a 2b 23  ) = $ac_func;.+#
b8f0: 65 6e 64 69 66 0a 2b 23 69 66 64 65 66 20 5f 5f  endif.+#ifdef __
b900: 63 70 6c 75 73 70 6c 75 73 0a 2b 7d 0a 2b 23 65  cplusplus.+}.+#e
b910: 6e 64 69 66 0a 2b 0a 2b 69 6e 74 0a 2b 6d 61 69  ndif.+.+int.+mai
b920: 6e 20 28 29 0a 2b 7b 0a 2b 72 65 74 75 72 6e 20  n ().+{.+return 
b930: 66 20 21 3d 20 24 61 63 5f 66 75 6e 63 3b 0a 2b  f != $ac_func;.+
b940: 20 20 3b 0a 2b 20 20 72 65 74 75 72 6e 20 30 3b    ;.+  return 0;
b950: 0a 2b 7d 0a 2b 5f 41 43 45 4f 46 0a 2b 72 6d 20  .+}.+_ACEOF.+rm 
b960: 2d 66 20 63 6f 6e 66 74 65 73 74 2e 24 61 63 5f  -f conftest.$ac_
b970: 6f 62 6a 65 78 74 20 63 6f 6e 66 74 65 73 74 24  objext conftest$
b980: 61 63 5f 65 78 65 65 78 74 0a 2b 69 66 20 7b 20  ac_exeext.+if { 
b990: 28 65 76 61 6c 20 65 63 68 6f 20 22 24 61 73 5f  (eval echo "$as_
b9a0: 6d 65 3a 24 4c 49 4e 45 4e 4f 3a 20 5c 22 24 61  me:$LINENO: \"$a
b9b0: 63 5f 6c 69 6e 6b 5c 22 22 29 20 3e 26 35 0a 2b  c_link\"") >&5.+
b9c0: 20 20 28 65 76 61 6c 20 24 61 63 5f 6c 69 6e 6b    (eval $ac_link
b9d0: 29 20 32 3e 26 35 0a 2b 20 20 61 63 5f 73 74 61  ) 2>&5.+  ac_sta
b9e0: 74 75 73 3d 24 3f 0a 2b 20 20 65 63 68 6f 20 22  tus=$?.+  echo "
b9f0: 24 61 73 5f 6d 65 3a 24 4c 49 4e 45 4e 4f 3a 20  $as_me:$LINENO: 
ba00: 5c 24 3f 20 3d 20 24 61 63 5f 73 74 61 74 75 73  \$? = $ac_status
ba10: 22 20 3e 26 35 0a 2b 20 20 28 65 78 69 74 20 24  " >&5.+  (exit $
ba20: 61 63 5f 73 74 61 74 75 73 29 3b 20 7d 20 26 26  ac_status); } &&
ba30: 0a 2b 20 20 20 20 20 20 20 20 20 7b 20 61 63 5f  .+         { ac_
ba40: 74 72 79 3d 27 74 65 73 74 20 2d 73 20 63 6f 6e  try='test -s con
ba50: 66 74 65 73 74 24 61 63 5f 65 78 65 65 78 74 27  ftest$ac_exeext'
ba60: 0a 2b 20 20 7b 20 28 65 76 61 6c 20 65 63 68 6f  .+  { (eval echo
ba70: 20 22 24 61 73 5f 6d 65 3a 24 4c 49 4e 45 4e 4f   "$as_me:$LINENO
ba80: 3a 20 5c 22 24 61 63 5f 74 72 79 5c 22 22 29 20  : \"$ac_try\"") 
ba90: 3e 26 35 0a 2b 20 20 28 65 76 61 6c 20 24 61 63  >&5.+  (eval $ac
baa0: 5f 74 72 79 29 20 32 3e 26 35 0a 2b 20 20 61 63  _try) 2>&5.+  ac
bab0: 5f 73 74 61 74 75 73 3d 24 3f 0a 2b 20 20 65 63  _status=$?.+  ec
bac0: 68 6f 20 22 24 61 73 5f 6d 65 3a 24 4c 49 4e 45  ho "$as_me:$LINE
bad0: 4e 4f 3a 20 5c 24 3f 20 3d 20 24 61 63 5f 73 74  NO: \$? = $ac_st
bae0: 61 74 75 73 22 20 3e 26 35 0a 2b 20 20 28 65 78  atus" >&5.+  (ex
baf0: 69 74 20 24 61 63 5f 73 74 61 74 75 73 29 3b 20  it $ac_status); 
bb00: 7d 3b 20 7d 3b 20 74 68 65 6e 0a 2b 20 20 65 76  }; }; then.+  ev
bb10: 61 6c 20 22 24 61 73 5f 61 63 5f 76 61 72 3d 79  al "$as_ac_var=y
bb20: 65 73 22 0a 2b 65 6c 73 65 0a 2b 20 20 65 63 68  es".+else.+  ech
bb30: 6f 20 22 24 61 73 5f 6d 65 3a 20 66 61 69 6c 65  o "$as_me: faile
bb40: 64 20 70 72 6f 67 72 61 6d 20 77 61 73 3a 22 20  d program was:" 
bb50: 3e 26 35 0a 2b 73 65 64 20 27 73 2f 5e 2f 7c 20  >&5.+sed 's/^/| 
bb60: 2f 27 20 63 6f 6e 66 74 65 73 74 2e 24 61 63 5f  /' conftest.$ac_
bb70: 65 78 74 20 3e 26 35 0a 2b 0a 2b 65 76 61 6c 20  ext >&5.+.+eval 
bb80: 22 24 61 73 5f 61 63 5f 76 61 72 3d 6e 6f 22 0a  "$as_ac_var=no".
bb90: 2b 66 69 0a 2b 72 6d 20 2d 66 20 63 6f 6e 66 74  +fi.+rm -f conft
bba0: 65 73 74 2e 24 61 63 5f 6f 62 6a 65 78 74 20 63  est.$ac_objext c
bbb0: 6f 6e 66 74 65 73 74 24 61 63 5f 65 78 65 65 78  onftest$ac_exeex
bbc0: 74 20 63 6f 6e 66 74 65 73 74 2e 24 61 63 5f 65  t conftest.$ac_e
bbd0: 78 74 0a 2b 66 69 0a 2b 65 63 68 6f 20 22 24 61  xt.+fi.+echo "$a
bbe0: 73 5f 6d 65 3a 24 4c 49 4e 45 4e 4f 3a 20 72 65  s_me:$LINENO: re
bbf0: 73 75 6c 74 3a 20 60 65 76 61 6c 20 65 63 68 6f  sult: `eval echo
bc00: 20 27 24 7b 27 24 61 73 5f 61 63 5f 76 61 72 27   '${'$as_ac_var'
bc10: 7d 27 60 22 20 3e 26 35 0a 2b 65 63 68 6f 20 22  }'`" >&5.+echo "
bc20: 24 7b 45 43 48 4f 5f 54 7d 60 65 76 61 6c 20 65  ${ECHO_T}`eval e
bc30: 63 68 6f 20 27 24 7b 27 24 61 73 5f 61 63 5f 76  cho '${'$as_ac_v
bc40: 61 72 27 7d 27 60 22 20 3e 26 36 0a 2b 69 66 20  ar'}'`" >&6.+if 
bc50: 74 65 73 74 20 60 65 76 61 6c 20 65 63 68 6f 20  test `eval echo 
bc60: 27 24 7b 27 24 61 73 5f 61 63 5f 76 61 72 27 7d  '${'$as_ac_var'}
bc70: 27 60 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 2b  '` = yes; then.+
bc80: 20 20 63 61 74 20 3e 3e 63 6f 6e 66 64 65 66 73    cat >>confdefs
bc90: 2e 68 20 3c 3c 5f 41 43 45 4f 46 0a 2b 23 64 65  .h <<_ACEOF.+#de
bca0: 66 69 6e 65 20 60 65 63 68 6f 20 22 48 41 56 45  fine `echo "HAVE
bcb0: 5f 24 61 63 5f 66 75 6e 63 22 20 7c 20 24 61 73  _$ac_func" | $as
bcc0: 5f 74 72 5f 63 70 70 60 20 31 0a 2b 5f 41 43 45  _tr_cpp` 1.+_ACE
bcd0: 4f 46 0a 2b 0a 2b 66 69 0a 2b 64 6f 6e 65 0a 2b  OF.+.+fi.+done.+
bce0: 0a 2b 0a 2b 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .+.+#-----------
bcf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bd00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bd10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bd20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 23 20 43 68 65  ---------.+# Che
bd30: 63 6b 20 66 6f 72 20 73 75 70 70 6f 72 74 20 6f  ck for support o
bd40: 66 20 67 65 74 61 74 74 72 6c 69 73 74 20 66 75  f getattrlist fu
bd50: 6e 63 74 69 6f 6e 20 28 44 61 72 77 69 6e 2c 20  nction (Darwin, 
bd60: 48 46 53 2b 29 0a 2b 23 2d 2d 2d 2d 2d 2d 2d 2d  HFS+).+#--------
bd70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bd80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bd90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bda0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 0a 2b  ------------.+.+
bdb0: 0a 2b 66 6f 72 20 61 63 5f 66 75 6e 63 20 69 6e  .+for ac_func in
bdc0: 20 67 65 74 61 74 74 72 6c 69 73 74 0a 2b 64 6f   getattrlist.+do
bdd0: 0a 2b 61 73 5f 61 63 5f 76 61 72 3d 60 65 63 68  .+as_ac_var=`ech
bde0: 6f 20 22 61 63 5f 63 76 5f 66 75 6e 63 5f 24 61  o "ac_cv_func_$a
bdf0: 63 5f 66 75 6e 63 22 20 7c 20 24 61 73 5f 74 72  c_func" | $as_tr
be00: 5f 73 68 60 0a 2b 65 63 68 6f 20 22 24 61 73 5f  _sh`.+echo "$as_
be10: 6d 65 3a 24 4c 49 4e 45 4e 4f 3a 20 63 68 65 63  me:$LINENO: chec
be20: 6b 69 6e 67 20 66 6f 72 20 24 61 63 5f 66 75 6e  king for $ac_fun
be30: 63 22 20 3e 26 35 0a 2b 65 63 68 6f 20 24 45 43  c" >&5.+echo $EC
be40: 48 4f 5f 4e 20 22 63 68 65 63 6b 69 6e 67 20 66  HO_N "checking f
be50: 6f 72 20 24 61 63 5f 66 75 6e 63 2e 2e 2e 20 24  or $ac_func... $
be60: 45 43 48 4f 5f 43 22 20 3e 26 36 0a 2b 69 66 20  ECHO_C" >&6.+if 
be70: 65 76 61 6c 20 22 74 65 73 74 20 5c 22 5c 24 7b  eval "test \"\${
be80: 24 61 73 5f 61 63 5f 76 61 72 2b 73 65 74 7d 5c  $as_ac_var+set}\
be90: 22 20 3d 20 73 65 74 22 3b 20 74 68 65 6e 0a 2b  " = set"; then.+
bea0: 20 20 65 63 68 6f 20 24 45 43 48 4f 5f 4e 20 22    echo $ECHO_N "
beb0: 28 63 61 63 68 65 64 29 20 24 45 43 48 4f 5f 43  (cached) $ECHO_C
bec0: 22 20 3e 26 36 0a 2b 65 6c 73 65 0a 2b 20 20 63  " >&6.+else.+  c
bed0: 61 74 20 3e 63 6f 6e 66 74 65 73 74 2e 24 61 63  at >conftest.$ac
bee0: 5f 65 78 74 20 3c 3c 5f 41 43 45 4f 46 0a 2b 23  _ext <<_ACEOF.+#
bef0: 6c 69 6e 65 20 24 4c 49 4e 45 4e 4f 20 22 63 6f  line $LINENO "co
bf00: 6e 66 69 67 75 72 65 22 0a 2b 2f 2a 20 63 6f 6e  nfigure".+/* con
bf10: 66 64 65 66 73 2e 68 2e 20 20 2a 2f 0a 2b 5f 41  fdefs.h.  */.+_A
bf20: 43 45 4f 46 0a 2b 63 61 74 20 63 6f 6e 66 64 65  CEOF.+cat confde
bf30: 66 73 2e 68 20 3e 3e 63 6f 6e 66 74 65 73 74 2e  fs.h >>conftest.
bf40: 24 61 63 5f 65 78 74 0a 2b 63 61 74 20 3e 3e 63  $ac_ext.+cat >>c
bf50: 6f 6e 66 74 65 73 74 2e 24 61 63 5f 65 78 74 20  onftest.$ac_ext 
bf60: 3c 3c 5f 41 43 45 4f 46 0a 2b 2f 2a 20 65 6e 64  <<_ACEOF.+/* end
bf70: 20 63 6f 6e 66 64 65 66 73 2e 68 2e 20 20 2a 2f   confdefs.h.  */
bf80: 0a 2b 2f 2a 20 53 79 73 74 65 6d 20 68 65 61 64  .+/* System head
bf90: 65 72 20 74 6f 20 64 65 66 69 6e 65 20 5f 5f 73  er to define __s
bfa0: 74 75 62 20 6d 61 63 72 6f 73 20 61 6e 64 20 68  tub macros and h
bfb0: 6f 70 65 66 75 6c 6c 79 20 66 65 77 20 70 72 6f  opefully few pro
bfc0: 74 6f 74 79 70 65 73 2c 0a 2b 20 20 20 20 77 68  totypes,.+    wh
bfd0: 69 63 68 20 63 61 6e 20 63 6f 6e 66 6c 69 63 74  ich can conflict
bfe0: 20 77 69 74 68 20 63 68 61 72 20 24 61 63 5f 66   with char $ac_f
bff0: 75 6e 63 20 28 29 3b 20 62 65 6c 6f 77 2e 0a 2b  unc (); below..+
c000: 20 20 20 20 50 72 65 66 65 72 20 3c 6c 69 6d 69      Prefer <limi
c010: 74 73 2e 68 3e 20 74 6f 20 3c 61 73 73 65 72 74  ts.h> to <assert
c020: 2e 68 3e 20 69 66 20 5f 5f 53 54 44 43 5f 5f 20  .h> if __STDC__ 
c030: 69 73 20 64 65 66 69 6e 65 64 2c 20 73 69 6e 63  is defined, sinc
c040: 65 0a 2b 20 20 20 20 3c 6c 69 6d 69 74 73 2e 68  e.+    <limits.h
c050: 3e 20 65 78 69 73 74 73 20 65 76 65 6e 20 6f 6e  > exists even on
c060: 20 66 72 65 65 73 74 61 6e 64 69 6e 67 20 63 6f   freestanding co
c070: 6d 70 69 6c 65 72 73 2e 20 20 2a 2f 0a 2b 23 69  mpilers.  */.+#i
c080: 66 64 65 66 20 5f 5f 53 54 44 43 5f 5f 0a 2b 23  fdef __STDC__.+#
c090: 20 69 6e 63 6c 75 64 65 20 3c 6c 69 6d 69 74 73   include <limits
c0a0: 2e 68 3e 0a 2b 23 65 6c 73 65 0a 2b 23 20 69 6e  .h>.+#else.+# in
c0b0: 63 6c 75 64 65 20 3c 61 73 73 65 72 74 2e 68 3e  clude <assert.h>
c0c0: 0a 2b 23 65 6e 64 69 66 0a 2b 2f 2a 20 4f 76 65  .+#endif.+/* Ove
c0d0: 72 72 69 64 65 20 61 6e 79 20 67 63 63 32 20 69  rride any gcc2 i
c0e0: 6e 74 65 72 6e 61 6c 20 70 72 6f 74 6f 74 79 70  nternal prototyp
c0f0: 65 20 74 6f 20 61 76 6f 69 64 20 61 6e 20 65 72  e to avoid an er
c100: 72 6f 72 2e 20 20 2a 2f 0a 2b 23 69 66 64 65 66  ror.  */.+#ifdef
c110: 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 2b 65 78   __cplusplus.+ex
c120: 74 65 72 6e 20 22 43 22 0a 2b 7b 0a 2b 23 65 6e  tern "C".+{.+#en
c130: 64 69 66 0a 2b 2f 2a 20 57 65 20 75 73 65 20 63  dif.+/* We use c
c140: 68 61 72 20 62 65 63 61 75 73 65 20 69 6e 74 20  har because int 
c150: 6d 69 67 68 74 20 6d 61 74 63 68 20 74 68 65 20  might match the 
c160: 72 65 74 75 72 6e 20 74 79 70 65 20 6f 66 20 61  return type of a
c170: 20 67 63 63 32 0a 2b 20 20 20 62 75 69 6c 74 69   gcc2.+   builti
c180: 6e 20 61 6e 64 20 74 68 65 6e 20 69 74 73 20 61  n and then its a
c190: 72 67 75 6d 65 6e 74 20 70 72 6f 74 6f 74 79 70  rgument prototyp
c1a0: 65 20 77 6f 75 6c 64 20 73 74 69 6c 6c 20 61 70  e would still ap
c1b0: 70 6c 79 2e 20 20 2a 2f 0a 2b 63 68 61 72 20 24  ply.  */.+char $
c1c0: 61 63 5f 66 75 6e 63 20 28 29 3b 0a 2b 2f 2a 20  ac_func ();.+/* 
c1d0: 54 68 65 20 47 4e 55 20 43 20 6c 69 62 72 61 72  The GNU C librar
c1e0: 79 20 64 65 66 69 6e 65 73 20 74 68 69 73 20 66  y defines this f
c1f0: 6f 72 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69  or functions whi
c200: 63 68 20 69 74 20 69 6d 70 6c 65 6d 65 6e 74 73  ch it implements
c210: 0a 2b 20 20 20 20 74 6f 20 61 6c 77 61 79 73 20  .+    to always 
c220: 66 61 69 6c 20 77 69 74 68 20 45 4e 4f 53 59 53  fail with ENOSYS
c230: 2e 20 20 53 6f 6d 65 20 66 75 6e 63 74 69 6f 6e  .  Some function
c240: 73 20 61 72 65 20 61 63 74 75 61 6c 6c 79 20 6e  s are actually n
c250: 61 6d 65 64 0a 2b 20 20 20 20 73 6f 6d 65 74 68  amed.+    someth
c260: 69 6e 67 20 73 74 61 72 74 69 6e 67 20 77 69 74  ing starting wit
c270: 68 20 5f 5f 20 61 6e 64 20 74 68 65 20 6e 6f 72  h __ and the nor
c280: 6d 61 6c 20 6e 61 6d 65 20 69 73 20 61 6e 20 61  mal name is an a
c290: 6c 69 61 73 2e 20 20 2a 2f 0a 2b 23 69 66 20 64  lias.  */.+#if d
c2a0: 65 66 69 6e 65 64 20 28 5f 5f 73 74 75 62 5f 24  efined (__stub_$
c2b0: 61 63 5f 66 75 6e 63 29 20 7c 7c 20 64 65 66 69  ac_func) || defi
c2c0: 6e 65 64 20 28 5f 5f 73 74 75 62 5f 5f 5f 24 61  ned (__stub___$a
c2d0: 63 5f 66 75 6e 63 29 0a 2b 63 68 6f 6b 65 20 6d  c_func).+choke m
c2e0: 65 0a 2b 23 65 6c 73 65 0a 2b 63 68 61 72 20 28  e.+#else.+char (
c2f0: 2a 66 29 20 28 29 20 3d 20 24 61 63 5f 66 75 6e  *f) () = $ac_fun
c300: 63 3b 0a 2b 23 65 6e 64 69 66 0a 2b 23 69 66 64  c;.+#endif.+#ifd
c310: 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 2b  ef __cplusplus.+
c320: 7d 0a 2b 23 65 6e 64 69 66 0a 2b 0a 2b 69 6e 74  }.+#endif.+.+int
c330: 0a 2b 6d 61 69 6e 20 28 29 0a 2b 7b 0a 2b 72 65  .+main ().+{.+re
c340: 74 75 72 6e 20 66 20 21 3d 20 24 61 63 5f 66 75  turn f != $ac_fu
c350: 6e 63 3b 0a 2b 20 20 3b 0a 2b 20 20 72 65 74 75  nc;.+  ;.+  retu
c360: 72 6e 20 30 3b 0a 2b 7d 0a 2b 5f 41 43 45 4f 46  rn 0;.+}.+_ACEOF
c370: 0a 2b 72 6d 20 2d 66 20 63 6f 6e 66 74 65 73 74  .+rm -f conftest
c380: 2e 24 61 63 5f 6f 62 6a 65 78 74 20 63 6f 6e 66  .$ac_objext conf
c390: 74 65 73 74 24 61 63 5f 65 78 65 65 78 74 0a 2b  test$ac_exeext.+
c3a0: 69 66 20 7b 20 28 65 76 61 6c 20 65 63 68 6f 20  if { (eval echo 
c3b0: 22 24 61 73 5f 6d 65 3a 24 4c 49 4e 45 4e 4f 3a  "$as_me:$LINENO:
c3c0: 20 5c 22 24 61 63 5f 6c 69 6e 6b 5c 22 22 29 20   \"$ac_link\"") 
c3d0: 3e 26 35 0a 2b 20 20 28 65 76 61 6c 20 24 61 63  >&5.+  (eval $ac
c3e0: 5f 6c 69 6e 6b 29 20 32 3e 26 35 0a 2b 20 20 61  _link) 2>&5.+  a
c3f0: 63 5f 73 74 61 74 75 73 3d 24 3f 0a 2b 20 20 65  c_status=$?.+  e
c400: 63 68 6f 20 22 24 61 73 5f 6d 65 3a 24 4c 49 4e  cho "$as_me:$LIN
c410: 45 4e 4f 3a 20 5c 24 3f 20 3d 20 24 61 63 5f 73  ENO: \$? = $ac_s
c420: 74 61 74 75 73 22 20 3e 26 35 0a 2b 20 20 28 65  tatus" >&5.+  (e
c430: 78 69 74 20 24 61 63 5f 73 74 61 74 75 73 29 3b  xit $ac_status);
c440: 20 7d 20 26 26 0a 2b 20 20 20 20 20 20 20 20 20   } &&.+         
c450: 7b 20 61 63 5f 74 72 79 3d 27 74 65 73 74 20 2d  { ac_try='test -
c460: 73 20 63 6f 6e 66 74 65 73 74 24 61 63 5f 65 78  s conftest$ac_ex
c470: 65 65 78 74 27 0a 2b 20 20 7b 20 28 65 76 61 6c  eext'.+  { (eval
c480: 20 65 63 68 6f 20 22 24 61 73 5f 6d 65 3a 24 4c   echo "$as_me:$L
c490: 49 4e 45 4e 4f 3a 20 5c 22 24 61 63 5f 74 72 79  INENO: \"$ac_try
c4a0: 5c 22 22 29 20 3e 26 35 0a 2b 20 20 28 65 76 61  \"") >&5.+  (eva
c4b0: 6c 20 24 61 63 5f 74 72 79 29 20 32 3e 26 35 0a  l $ac_try) 2>&5.
c4c0: 2b 20 20 61 63 5f 73 74 61 74 75 73 3d 24 3f 0a  +  ac_status=$?.
c4d0: 2b 20 20 65 63 68 6f 20 22 24 61 73 5f 6d 65 3a  +  echo "$as_me:
c4e0: 24 4c 49 4e 45 4e 4f 3a 20 5c 24 3f 20 3d 20 24  $LINENO: \$? = $
c4f0: 61 63 5f 73 74 61 74 75 73 22 20 3e 26 35 0a 2b  ac_status" >&5.+
c500: 20 20 28 65 78 69 74 20 24 61 63 5f 73 74 61 74    (exit $ac_stat
c510: 75 73 29 3b 20 7d 3b 20 7d 3b 20 74 68 65 6e 0a  us); }; }; then.
c520: 2b 20 20 65 76 61 6c 20 22 24 61 73 5f 61 63 5f  +  eval "$as_ac_
c530: 76 61 72 3d 79 65 73 22 0a 2b 65 6c 73 65 0a 2b  var=yes".+else.+
c540: 20 20 65 63 68 6f 20 22 24 61 73 5f 6d 65 3a 20    echo "$as_me: 
c550: 66 61 69 6c 65 64 20 70 72 6f 67 72 61 6d 20 77  failed program w
c560: 61 73 3a 22 20 3e 26 35 0a 2b 73 65 64 20 27 73  as:" >&5.+sed 's
c570: 2f 5e 2f 7c 20 2f 27 20 63 6f 6e 66 74 65 73 74  /^/| /' conftest
c580: 2e 24 61 63 5f 65 78 74 20 3e 26 35 0a 2b 0a 2b  .$ac_ext >&5.+.+
c590: 65 76 61 6c 20 22 24 61 73 5f 61 63 5f 76 61 72  eval "$as_ac_var
c5a0: 3d 6e 6f 22 0a 2b 66 69 0a 2b 72 6d 20 2d 66 20  =no".+fi.+rm -f 
c5b0: 63 6f 6e 66 74 65 73 74 2e 24 61 63 5f 6f 62 6a  conftest.$ac_obj
c5c0: 65 78 74 20 63 6f 6e 66 74 65 73 74 24 61 63 5f  ext conftest$ac_
c5d0: 65 78 65 65 78 74 20 63 6f 6e 66 74 65 73 74 2e  exeext conftest.
c5e0: 24 61 63 5f 65 78 74 0a 2b 66 69 0a 2b 65 63 68  $ac_ext.+fi.+ech
c5f0: 6f 20 22 24 61 73 5f 6d 65 3a 24 4c 49 4e 45 4e  o "$as_me:$LINEN
c600: 4f 3a 20 72 65 73 75 6c 74 3a 20 60 65 76 61 6c  O: result: `eval
c610: 20 65 63 68 6f 20 27 24 7b 27 24 61 73 5f 61 63   echo '${'$as_ac
c620: 5f 76 61 72 27 7d 27 60 22 20 3e 26 35 0a 2b 65  _var'}'`" >&5.+e
c630: 63 68 6f 20 22 24 7b 45 43 48 4f 5f 54 7d 60 65  cho "${ECHO_T}`e
c640: 76 61 6c 20 65 63 68 6f 20 27 24 7b 27 24 61 73  val echo '${'$as
c650: 5f 61 63 5f 76 61 72 27 7d 27 60 22 20 3e 26 36  _ac_var'}'`" >&6
c660: 0a 2b 69 66 20 74 65 73 74 20 60 65 76 61 6c 20  .+if test `eval 
c670: 65 63 68 6f 20 27 24 7b 27 24 61 73 5f 61 63 5f  echo '${'$as_ac_
c680: 76 61 72 27 7d 27 60 20 3d 20 79 65 73 3b 20 74  var'}'` = yes; t
c690: 68 65 6e 0a 2b 20 20 63 61 74 20 3e 3e 63 6f 6e  hen.+  cat >>con
c6a0: 66 64 65 66 73 2e 68 20 3c 3c 5f 41 43 45 4f 46  fdefs.h <<_ACEOF
c6b0: 0a 2b 23 64 65 66 69 6e 65 20 60 65 63 68 6f 20  .+#define `echo 
c6c0: 22 48 41 56 45 5f 24 61 63 5f 66 75 6e 63 22 20  "HAVE_$ac_func" 
c6d0: 7c 20 24 61 73 5f 74 72 5f 63 70 70 60 20 31 0a  | $as_tr_cpp` 1.
c6e0: 2b 5f 41 43 45 4f 46 0a 2b 0a 2b 66 69 0a 2b 64  +_ACEOF.+.+fi.+d
c6f0: 6f 6e 65 0a 2b 0a 2b 0a 2b 23 2d 2d 2d 2d 2d 2d  one.+.+.+#------
c700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20  --------------. 
c740: 23 20 4c 6f 6f 6b 20 66 6f 72 20 6c 69 62 72 61  # Look for libra
c750: 72 69 65 73 20 74 68 61 74 20 77 65 20 77 69 6c  ries that we wil
c760: 6c 20 6e 65 65 64 20 77 68 65 6e 20 63 6f 6d 70  l need when comp
c770: 69 6c 69 6e 67 20 74 68 65 20 54 63 6c 20 73 68  iling the Tcl sh
c780: 65 6c 6c 0a 20 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ell. #----------
c790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c7a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c7b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c7c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 0a 40 40 20  ----------. .@@ 
c7d0: 2d 31 31 38 32 34 2c 37 20 2b 31 32 30 30 32 2c  -11824,7 +12002,
c7e0: 37 20 40 40 0a 20 09 20 20 20 20 53 48 4c 49 42  7 @@. .    SHLIB
c7f0: 5f 4c 44 5f 4c 49 42 53 3d 27 24 7b 4c 49 42 53  _LD_LIBS='${LIBS
c800: 7d 27 0a 20 09 20 20 20 20 53 48 4c 49 42 5f 53  }'. .    SHLIB_S
c810: 55 46 46 49 58 3d 22 2e 64 79 6c 69 62 22 0a 20  UFFIX=".dylib". 
c820: 09 20 20 20 20 44 4c 5f 4f 42 4a 53 3d 22 74 63  .    DL_OBJS="tc
c830: 6c 4c 6f 61 64 44 79 6c 64 2e 6f 22 0a 2d 09 20  lLoadDyld.o".-. 
c840: 20 20 20 50 4c 41 54 5f 4f 42 4a 53 3d 22 74 63     PLAT_OBJS="tc
c850: 6c 4d 61 63 4f 53 58 42 75 6e 64 6c 65 2e 6f 22  lMacOSXBundle.o"
c860: 0a 2b 09 20 20 20 20 50 4c 41 54 5f 4f 42 4a 53  .+.    PLAT_OBJS
c870: 3d 22 74 63 6c 4d 61 63 4f 53 58 42 75 6e 64 6c  ="tclMacOSXBundl
c880: 65 2e 6f 20 74 63 6c 4d 61 63 4f 53 58 46 43 6d  e.o tclMacOSXFCm
c890: 64 2e 6f 22 0a 20 09 20 20 20 20 44 4c 5f 4c 49  d.o". .    DL_LI
c8a0: 42 53 3d 22 22 0a 20 09 20 20 20 20 4c 44 46 4c  BS="". .    LDFL
c8b0: 41 47 53 3d 22 2d 70 72 65 62 69 6e 64 22 0a 20  AGS="-prebind". 
c8c0: 09 20 20 20 20 43 43 5f 53 45 41 52 43 48 5f 46  .    CC_SEARCH_F
c8d0: 4c 41 47 53 3d 22 22 0a 49 6e 64 65 78 3a 20 75  LAGS="".Index: u
c8e0: 6e 69 78 2f 63 6f 6e 66 69 67 75 72 65 2e 69 6e  nix/configure.in
c8f0: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
c900: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
c910: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
c920: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
c930: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f  ====.RCS file: /
c940: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f  cvsroot/tcl/tcl/
c950: 75 6e 69 78 2f 63 6f 6e 66 69 67 75 72 65 2e 69  unix/configure.i
c960: 6e 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72  n,v.retrieving r
c970: 65 76 69 73 69 6f 6e 20 31 2e 31 30 38 0a 64 69  evision 1.108.di
c980: 66 66 20 2d 75 20 2d 72 31 2e 31 30 38 20 63 6f  ff -u -r1.108 co
c990: 6e 66 69 67 75 72 65 2e 69 6e 0a 2d 2d 2d 20 75  nfigure.in.--- u
c9a0: 6e 69 78 2f 63 6f 6e 66 69 67 75 72 65 2e 69 6e  nix/configure.in
c9b0: 09 31 33 20 4d 61 72 20 32 30 30 33 20 31 30 3a  .13 Mar 2003 10:
c9c0: 33 39 3a 35 38 20 2d 30 30 30 30 09 31 2e 31 30  39:58 -0000.1.10
c9d0: 38 0a 2b 2b 2b 20 75 6e 69 78 2f 63 6f 6e 66 69  8.+++ unix/confi
c9e0: 67 75 72 65 2e 69 6e 09 31 34 20 4d 61 79 20 32  gure.in.14 May 2
c9f0: 30 30 33 20 31 39 3a 31 33 3a 33 33 20 2d 30 30  003 19:13:33 -00
ca00: 30 30 0a 40 40 20 2d 34 31 37 2c 36 20 2b 34 31  00.@@ -417,6 +41
ca10: 37 2c 31 38 20 40 40 0a 20 53 43 5f 45 4e 41 42  7,18 @@. SC_ENAB
ca20: 4c 45 5f 4c 41 4e 47 49 4e 46 4f 0a 20 0a 20 23  LE_LANGINFO. . #
ca30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca70: 2d 2d 2d 2d 0a 2b 23 20 43 68 65 63 6b 20 66 6f  ----.+# Check fo
ca80: 72 20 73 75 70 70 6f 72 74 20 6f 66 20 63 68 66  r support of chf
ca90: 6c 61 67 73 20 66 75 6e 63 74 69 6f 6e 0a 2b 23  lags function.+#
caa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cab0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cac0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cad0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cae0: 2d 2d 2d 2d 0a 2b 0a 2b 41 43 5f 43 48 45 43 4b  ----.+.+AC_CHECK
caf0: 5f 46 55 4e 43 53 28 63 68 66 6c 61 67 73 29 0a  _FUNCS(chflags).
cb00: 2b 0a 2b 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  +.+#------------
cb10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cb20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cb30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cb40: 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 23 20 43 68 65 63  --------.+# Chec
cb50: 6b 20 66 6f 72 20 73 75 70 70 6f 72 74 20 6f 66  k for support of
cb60: 20 67 65 74 61 74 74 72 6c 69 73 74 20 66 75 6e   getattrlist fun
cb70: 63 74 69 6f 6e 20 28 44 61 72 77 69 6e 2c 20 48  ction (Darwin, H
cb80: 46 53 2b 29 0a 2b 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  FS+).+#---------
cb90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cbb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cbc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 0a 2b 41  -----------.+.+A
cbd0: 43 5f 43 48 45 43 4b 5f 46 55 4e 43 53 28 67 65  C_CHECK_FUNCS(ge
cbe0: 74 61 74 74 72 6c 69 73 74 29 0a 2b 0a 2b 23 2d  tattrlist).+.+#-
cbf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cc00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cc10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cc20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cc30: 2d 2d 2d 0a 20 23 20 4c 6f 6f 6b 20 66 6f 72 20  ---. # Look for 
cc40: 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20 77  libraries that w
cc50: 65 20 77 69 6c 6c 20 6e 65 65 64 20 77 68 65 6e  e will need when
cc60: 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 65 20 54   compiling the T
cc70: 63 6c 20 73 68 65 6c 6c 0a 20 23 2d 2d 2d 2d 2d  cl shell. #-----
cc80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cc90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cca0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ccb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
ccc0: 20 0a 49 6e 64 65 78 3a 20 75 6e 69 78 2f 74 63   .Index: unix/tc
ccd0: 6c 2e 6d 34 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  l.m4.===========
cce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
ccf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
cd00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
cd10: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c  ========.RCS fil
cd20: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f  e: /cvsroot/tcl/
cd30: 74 63 6c 2f 75 6e 69 78 2f 74 63 6c 2e 6d 34 2c  tcl/unix/tcl.m4,
cd40: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76  v.retrieving rev
cd50: 69 73 69 6f 6e 20 31 2e 31 30 32 0a 64 69 66 66  ision 1.102.diff
cd60: 20 2d 75 20 2d 72 31 2e 31 30 32 20 74 63 6c 2e   -u -r1.102 tcl.
cd70: 6d 34 0a 2d 2d 2d 20 75 6e 69 78 2f 74 63 6c 2e  m4.--- unix/tcl.
cd80: 6d 34 09 34 20 41 70 72 20 32 30 30 33 20 30 30  m4.4 Apr 2003 00
cd90: 3a 32 31 3a 31 32 20 2d 30 30 30 30 09 31 2e 31  :21:12 -0000.1.1
cda0: 30 32 0a 2b 2b 2b 20 75 6e 69 78 2f 74 63 6c 2e  02.+++ unix/tcl.
cdb0: 6d 34 09 31 34 20 4d 61 79 20 32 30 30 33 20 31  m4.14 May 2003 1
cdc0: 39 3a 31 33 3a 33 33 20 2d 30 30 30 30 0a 40 40  9:13:33 -0000.@@
cdd0: 20 2d 31 32 38 31 2c 37 20 2b 31 32 38 31 2c 37   -1281,7 +1281,7
cde0: 20 40 40 0a 20 09 20 20 20 20 53 48 4c 49 42 5f   @@. .    SHLIB_
cdf0: 4c 44 5f 4c 49 42 53 3d 27 24 7b 4c 49 42 53 7d  LD_LIBS='${LIBS}
ce00: 27 0a 20 09 20 20 20 20 53 48 4c 49 42 5f 53 55  '. .    SHLIB_SU
ce10: 46 46 49 58 3d 22 2e 64 79 6c 69 62 22 0a 20 09  FFIX=".dylib". .
ce20: 20 20 20 20 44 4c 5f 4f 42 4a 53 3d 22 74 63 6c      DL_OBJS="tcl
ce30: 4c 6f 61 64 44 79 6c 64 2e 6f 22 0a 2d 09 20 20  LoadDyld.o".-.  
ce40: 20 20 50 4c 41 54 5f 4f 42 4a 53 3d 22 74 63 6c    PLAT_OBJS="tcl
ce50: 4d 61 63 4f 53 58 42 75 6e 64 6c 65 2e 6f 22 0a  MacOSXBundle.o".
ce60: 2b 09 20 20 20 20 50 4c 41 54 5f 4f 42 4a 53 3d  +.    PLAT_OBJS=
ce70: 22 74 63 6c 4d 61 63 4f 53 58 42 75 6e 64 6c 65  "tclMacOSXBundle
ce80: 2e 6f 20 74 63 6c 4d 61 63 4f 53 58 46 43 6d 64  .o tclMacOSXFCmd
ce90: 2e 6f 22 0a 20 09 20 20 20 20 44 4c 5f 4c 49 42  .o". .    DL_LIB
cea0: 53 3d 22 22 0a 20 09 20 20 20 20 4c 44 46 4c 41  S="". .    LDFLA
ceb0: 47 53 3d 22 2d 70 72 65 62 69 6e 64 22 0a 20 09  GS="-prebind". .
cec0: 20 20 20 20 43 43 5f 53 45 41 52 43 48 5f 46 4c      CC_SEARCH_FL
ced0: 41 47 53 3d 22 22 0a 49 6e 64 65 78 3a 20 75 6e  AGS="".Index: un
cee0: 69 78 2f 74 63 6c 55 6e 69 78 46 43 6d 64 2e 63  ix/tclUnixFCmd.c
cef0: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
cf00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
cf10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
cf20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
cf30: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f  ====.RCS file: /
cf40: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f  cvsroot/tcl/tcl/
cf50: 75 6e 69 78 2f 74 63 6c 55 6e 69 78 46 43 6d 64  unix/tclUnixFCmd
cf60: 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20  .c,v.retrieving 
cf70: 72 65 76 69 73 69 6f 6e 20 31 2e 32 38 0a 64 69  revision 1.28.di
cf80: 66 66 20 2d 75 20 2d 72 31 2e 32 38 20 74 63 6c  ff -u -r1.28 tcl
cf90: 55 6e 69 78 46 43 6d 64 2e 63 0a 2d 2d 2d 20 75  UnixFCmd.c.--- u
cfa0: 6e 69 78 2f 74 63 6c 55 6e 69 78 46 43 6d 64 2e  nix/tclUnixFCmd.
cfb0: 63 09 31 30 20 46 65 62 20 32 30 30 33 20 31 32  c.10 Feb 2003 12
cfc0: 3a 35 30 3a 33 31 20 2d 30 30 30 30 09 31 2e 32  :50:31 -0000.1.2
cfd0: 38 0a 2b 2b 2b 20 75 6e 69 78 2f 74 63 6c 55 6e  8.+++ unix/tclUn
cfe0: 69 78 46 43 6d 64 2e 63 09 31 34 20 4d 61 79 20  ixFCmd.c.14 May 
cff0: 32 30 30 33 20 31 39 3a 31 33 3a 33 33 20 2d 30  2003 19:13:33 -0
d000: 30 30 30 0a 40 40 20 2d 39 31 2c 36 20 2b 39 31  000.@@ -91,6 +91
d010: 2c 31 34 20 40 40 0a 20 73 74 61 74 69 63 20 69  ,14 @@. static i
d020: 6e 74 09 09 47 65 74 4d 6f 64 65 46 72 6f 6d 50  nt..GetModeFromP
d030: 65 72 6d 53 74 72 69 6e 67 20 5f 41 4e 53 49 5f  ermString _ANSI_
d040: 41 52 47 53 5f 28 28 0a 20 09 09 09 20 20 20 20  ARGS_((. ...    
d050: 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65  Tcl_Interp *inte
d060: 72 70 2c 20 63 68 61 72 20 2a 6d 6f 64 65 53 74  rp, char *modeSt
d070: 72 69 6e 67 50 74 72 2c 0a 20 09 09 09 20 20 20  ringPtr,. ...   
d080: 20 6d 6f 64 65 5f 74 20 2a 6d 6f 64 65 50 74 72   mode_t *modePtr
d090: 29 29 3b 0a 2b 23 69 66 64 65 66 20 48 41 56 45  ));.+#ifdef HAVE
d0a0: 5f 43 48 46 4c 41 47 53 0a 2b 73 74 61 74 69 63  _CHFLAGS.+static
d0b0: 20 69 6e 74 09 09 47 65 74 52 65 61 64 4f 6e 6c   int..GetReadOnl
d0c0: 79 41 74 74 72 69 62 75 74 65 20 5f 41 4e 53 49  yAttribute _ANSI
d0d0: 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74 65  _ARGS_((Tcl_Inte
d0e0: 72 70 20 2a 69 6e 74 65 72 70 2c 0a 2b 09 09 09  rp *interp,.+...
d0f0: 20 20 20 20 69 6e 74 20 6f 62 6a 49 6e 64 65 78      int objIndex
d100: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c 65 4e  , Tcl_Obj *fileN
d110: 61 6d 65 2c 0a 2b 09 09 09 20 20 20 20 54 63 6c  ame,.+...    Tcl
d120: 5f 4f 62 6a 20 2a 2a 61 74 74 72 69 62 75 74 65  _Obj **attribute
d130: 50 74 72 50 74 72 29 29 3b 0a 2b 73 74 61 74 69  PtrPtr));.+stati
d140: 63 20 69 6e 74 09 09 53 65 74 52 65 61 64 4f 6e  c int..SetReadOn
d150: 6c 79 41 74 74 72 69 62 75 74 65 20 5f 41 4e 53  lyAttribute _ANS
d160: 49 5f 41 52 47 53 5f 28 28 54 63 6c 5f 49 6e 74  I_ARGS_((Tcl_Int
d170: 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a 2b 09 09  erp *interp,.+..
d180: 09 20 20 20 20 69 6e 74 20 6f 62 6a 49 6e 64 65  .    int objInde
d190: 78 2c 20 54 63 6c 5f 4f 62 6a 20 2a 66 69 6c 65  x, Tcl_Obj *file
d1a0: 4e 61 6d 65 2c 0a 2b 09 09 09 20 20 20 20 54 63  Name,.+...    Tc
d1b0: 6c 5f 4f 62 6a 20 2a 61 74 74 72 69 62 75 74 65  l_Obj *attribute
d1c0: 50 74 72 29 29 3b 0a 2b 23 65 6e 64 69 66 0a 20  Ptr));.+#endif. 
d1d0: 0a 20 2f 2a 0a 20 20 2a 20 50 72 6f 74 6f 74 79  . /*.  * Prototy
d1e0: 70 65 20 66 6f 72 20 74 68 65 20 54 72 61 76 65  pe for the Trave
d1f0: 72 73 65 55 6e 69 78 54 72 65 65 20 63 61 6c 6c  rseUnixTree call
d200: 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 2e 0a 40  back function..@
d210: 40 20 2d 31 30 37 2c 32 38 20 2b 31 31 35 2c 35  @ -107,28 +115,5
d220: 33 20 40 40 0a 20 65 6e 75 6d 20 7b 0a 20 20 20  3 @@. enum {.   
d230: 20 20 55 4e 49 58 5f 47 52 4f 55 50 5f 41 54 54    UNIX_GROUP_ATT
d240: 52 49 42 55 54 45 2c 0a 20 20 20 20 20 55 4e 49  RIBUTE,.     UNI
d250: 58 5f 4f 57 4e 45 52 5f 41 54 54 52 49 42 55 54  X_OWNER_ATTRIBUT
d260: 45 2c 0a 2d 20 20 20 20 55 4e 49 58 5f 50 45 52  E,.-    UNIX_PER
d270: 4d 49 53 53 49 4f 4e 53 5f 41 54 54 52 49 42 55  MISSIONS_ATTRIBU
d280: 54 45 0a 2b 20 20 20 20 55 4e 49 58 5f 50 45 52  TE.+    UNIX_PER
d290: 4d 49 53 53 49 4f 4e 53 5f 41 54 54 52 49 42 55  MISSIONS_ATTRIBU
d2a0: 54 45 2c 0a 2b 23 69 66 64 65 66 20 48 41 56 45  TE,.+#ifdef HAVE
d2b0: 5f 43 48 46 4c 41 47 53 0a 2b 20 20 20 20 55 4e  _CHFLAGS.+    UN
d2c0: 49 58 5f 52 45 41 44 4f 4e 4c 59 5f 41 54 54 52  IX_READONLY_ATTR
d2d0: 49 42 55 54 45 2c 0a 2b 23 65 6e 64 69 66 0a 2b  IBUTE,.+#endif.+
d2e0: 23 69 66 64 65 66 20 4d 41 43 5f 4f 53 58 5f 54  #ifdef MAC_OSX_T
d2f0: 43 4c 0a 2b 20 20 20 20 4d 41 43 4f 53 58 5f 43  CL.+    MACOSX_C
d300: 52 45 41 54 4f 52 5f 41 54 54 52 49 42 55 54 45  REATOR_ATTRIBUTE
d310: 2c 0a 2b 20 20 20 20 4d 41 43 4f 53 58 5f 54 59  ,.+    MACOSX_TY
d320: 50 45 5f 41 54 54 52 49 42 55 54 45 2c 0a 2b 20  PE_ATTRIBUTE,.+ 
d330: 20 20 20 4d 41 43 4f 53 58 5f 48 49 44 44 45 4e     MACOSX_HIDDEN
d340: 5f 41 54 54 52 49 42 55 54 45 2c 0a 2b 20 20 20  _ATTRIBUTE,.+   
d350: 20 4d 41 43 4f 53 58 5f 52 53 52 43 4c 45 4e 47   MACOSX_RSRCLENG
d360: 54 48 5f 41 54 54 52 49 42 55 54 45 2c 0a 2b 23  TH_ATTRIBUTE,.+#
d370: 65 6e 64 69 66 0a 20 7d 3b 0a 20 0a 20 43 4f 4e  endif. };. . CON
d380: 53 54 20 63 68 61 72 20 2a 74 63 6c 70 46 69 6c  ST char *tclpFil
d390: 65 41 74 74 72 53 74 72 69 6e 67 73 5b 5d 20 3d  eAttrStrings[] =
d3a0: 20 7b 0a 20 20 20 20 20 22 2d 67 72 6f 75 70 22   {.     "-group"
d3b0: 2c 0a 20 20 20 20 20 22 2d 6f 77 6e 65 72 22 2c  ,.     "-owner",
d3c0: 0a 20 20 20 20 20 22 2d 70 65 72 6d 69 73 73 69  .     "-permissi
d3d0: 6f 6e 73 22 2c 0a 2b 23 69 66 64 65 66 20 48 41  ons",.+#ifdef HA
d3e0: 56 45 5f 43 48 46 4c 41 47 53 0a 2b 20 20 20 20  VE_CHFLAGS.+    
d3f0: 22 2d 72 65 61 64 6f 6e 6c 79 22 2c 0a 2b 23 65  "-readonly",.+#e
d400: 6e 64 69 66 0a 2b 23 69 66 64 65 66 20 4d 41 43  ndif.+#ifdef MAC
d410: 5f 4f 53 58 5f 54 43 4c 0a 2b 20 20 20 20 22 2d  _OSX_TCL.+    "-
d420: 63 72 65 61 74 6f 72 22 2c 0a 2b 20 20 20 20 22  creator",.+    "
d430: 2d 74 79 70 65 22 2c 0a 2b 20 20 20 20 22 2d 68  -type",.+    "-h
d440: 69 64 64 65 6e 22 2c 0a 2b 20 20 20 20 22 2d 72  idden",.+    "-r
d450: 73 72 63 6c 65 6e 67 74 68 22 2c 0a 2b 23 65 6e  srclength",.+#en
d460: 64 69 66 0a 20 20 20 20 20 28 63 68 61 72 20 2a  dif.     (char *
d470: 29 20 4e 55 4c 4c 0a 20 7d 3b 0a 20 0a 20 43 4f  ) NULL. };. . CO
d480: 4e 53 54 20 54 63 6c 46 69 6c 65 41 74 74 72 50  NST TclFileAttrP
d490: 72 6f 63 73 20 74 63 6c 70 46 69 6c 65 41 74 74  rocs tclpFileAtt
d4a0: 72 50 72 6f 63 73 5b 5d 20 3d 20 7b 0a 20 20 20  rProcs[] = {.   
d4b0: 20 20 7b 47 65 74 47 72 6f 75 70 41 74 74 72 69    {GetGroupAttri
d4c0: 62 75 74 65 2c 09 09 53 65 74 47 72 6f 75 70 41  bute,..SetGroupA
d4d0: 74 74 72 69 62 75 74 65 7d 2c 0a 20 20 20 20 20  ttribute},.     
d4e0: 7b 47 65 74 4f 77 6e 65 72 41 74 74 72 69 62 75  {GetOwnerAttribu
d4f0: 74 65 2c 09 09 53 65 74 4f 77 6e 65 72 41 74 74  te,..SetOwnerAtt
d500: 72 69 62 75 74 65 7d 2c 0a 2d 20 20 20 20 7b 47  ribute},.-    {G
d510: 65 74 50 65 72 6d 69 73 73 69 6f 6e 73 41 74 74  etPermissionsAtt
d520: 72 69 62 75 74 65 2c 09 53 65 74 50 65 72 6d 69  ribute,.SetPermi
d530: 73 73 69 6f 6e 73 41 74 74 72 69 62 75 74 65 7d  ssionsAttribute}
d540: 0a 2b 20 20 20 20 7b 47 65 74 50 65 72 6d 69 73  .+    {GetPermis
d550: 73 69 6f 6e 73 41 74 74 72 69 62 75 74 65 2c 09  sionsAttribute,.
d560: 53 65 74 50 65 72 6d 69 73 73 69 6f 6e 73 41 74  SetPermissionsAt
d570: 74 72 69 62 75 74 65 7d 2c 0a 2b 23 69 66 64 65  tribute},.+#ifde
d580: 66 20 48 41 56 45 5f 43 48 46 4c 41 47 53 0a 2b  f HAVE_CHFLAGS.+
d590: 20 20 20 20 7b 47 65 74 52 65 61 64 4f 6e 6c 79      {GetReadOnly
d5a0: 41 74 74 72 69 62 75 74 65 2c 09 53 65 74 52 65  Attribute,.SetRe
d5b0: 61 64 4f 6e 6c 79 41 74 74 72 69 62 75 74 65 7d  adOnlyAttribute}
d5c0: 2c 0a 2b 23 65 6e 64 69 66 0a 2b 23 69 66 64 65  ,.+#endif.+#ifde
d5d0: 66 20 4d 41 43 5f 4f 53 58 5f 54 43 4c 0a 2b 20  f MAC_OSX_TCL.+ 
d5e0: 20 20 20 7b 54 63 6c 4d 61 63 4f 53 58 47 65 74     {TclMacOSXGet
d5f0: 46 69 6c 65 41 74 74 72 69 62 75 74 65 2c 09 54  FileAttribute,.T
d600: 63 6c 4d 61 63 4f 53 58 53 65 74 46 69 6c 65 41  clMacOSXSetFileA
d610: 74 74 72 69 62 75 74 65 7d 2c 0a 2b 20 20 20 20  ttribute},.+    
d620: 7b 54 63 6c 4d 61 63 4f 53 58 47 65 74 46 69 6c  {TclMacOSXGetFil
d630: 65 41 74 74 72 69 62 75 74 65 2c 09 54 63 6c 4d  eAttribute,.TclM
d640: 61 63 4f 53 58 53 65 74 46 69 6c 65 41 74 74 72  acOSXSetFileAttr
d650: 69 62 75 74 65 7d 2c 0a 2b 20 20 20 20 7b 54 63  ibute},.+    {Tc
d660: 6c 4d 61 63 4f 53 58 47 65 74 46 69 6c 65 41 74  lMacOSXGetFileAt
d670: 74 72 69 62 75 74 65 2c 09 54 63 6c 4d 61 63 4f  tribute,.TclMacO
d680: 53 58 53 65 74 46 69 6c 65 41 74 74 72 69 62 75  SXSetFileAttribu
d690: 74 65 7d 2c 0a 2b 20 20 20 20 7b 54 63 6c 4d 61  te},.+    {TclMa
d6a0: 63 4f 53 58 47 65 74 46 69 6c 65 41 74 74 72 69  cOSXGetFileAttri
d6b0: 62 75 74 65 2c 09 54 63 6c 4d 61 63 4f 53 58 53  bute,.TclMacOSXS
d6c0: 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 7d  etFileAttribute}
d6d0: 2c 0a 2b 23 65 6e 64 69 66 0a 20 7d 3b 0a 20 0a  ,.+#endif. };. .
d6e0: 20 2f 2a 0a 20 20 2a 20 44 65 63 6c 61 72 61 74   /*.  * Declarat
d6f0: 69 6f 6e 73 20 66 6f 72 20 6c 6f 63 61 6c 20 70  ions for local p
d700: 72 6f 63 65 64 75 72 65 73 20 64 65 66 69 6e 65  rocedures define
d710: 64 20 69 6e 20 74 68 69 73 20 66 69 6c 65 3a 0a  d in this file:.
d720: 20 20 2a 2f 0a 20 0a 2d 73 74 61 74 69 63 20 69    */. .-static i
d730: 6e 74 09 09 43 6f 70 79 46 69 6c 65 20 5f 41 4e  nt..CopyFile _AN
d740: 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e 53 54 20  SI_ARGS_((CONST 
d750: 63 68 61 72 20 2a 73 72 63 2c 0a 2d 09 09 09 20  char *src,.-... 
d760: 20 20 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 64     CONST char *d
d770: 73 74 2c 20 43 4f 4e 53 54 20 54 63 6c 5f 53 74  st, CONST Tcl_St
d780: 61 74 42 75 66 20 2a 73 74 61 74 42 75 66 50 74  atBuf *statBufPt
d790: 72 29 29 3b 0a 20 73 74 61 74 69 63 20 69 6e 74  r));. static int
d7a0: 09 09 43 6f 70 79 46 69 6c 65 41 74 74 73 20 5f  ..CopyFileAtts _
d7b0: 41 4e 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e 53  ANSI_ARGS_((CONS
d7c0: 54 20 63 68 61 72 20 2a 73 72 63 2c 0a 20 09 09  T char *src,. ..
d7d0: 09 20 20 20 20 43 4f 4e 53 54 20 63 68 61 72 20  .    CONST char 
d7e0: 2a 64 73 74 2c 20 43 4f 4e 53 54 20 54 63 6c 5f  *dst, CONST Tcl_
d7f0: 53 74 61 74 42 75 66 20 2a 73 74 61 74 42 75 66  StatBuf *statBuf
d800: 50 74 72 29 29 3b 0a 20 73 74 61 74 69 63 20 69  Ptr));. static i
d810: 6e 74 09 09 44 6f 43 6f 70 79 46 69 6c 65 20 5f  nt..DoCopyFile _
d820: 41 4e 53 49 5f 41 52 47 53 5f 28 28 43 4f 4e 53  ANSI_ARGS_((CONS
d830: 54 20 63 68 61 72 20 2a 73 72 63 50 74 72 2c 0a  T char *srcPtr,.
d840: 40 40 20 2d 34 30 30 2c 37 20 2b 34 33 33 2c 37  @@ -400,7 +433,7
d850: 20 40 40 0a 20 09 20 20 20 20 72 65 74 75 72 6e   @@. .    return
d860: 20 43 6f 70 79 46 69 6c 65 41 74 74 73 28 73 72   CopyFileAtts(sr
d870: 63 2c 20 64 73 74 2c 20 26 73 72 63 53 74 61 74  c, dst, &srcStat
d880: 42 75 66 29 3b 0a 20 09 7d 0a 20 20 20 20 20 20  Buf);. .}.      
d890: 20 20 20 64 65 66 61 75 6c 74 3a 20 7b 0a 2d 09     default: {.-.
d8a0: 20 20 20 20 72 65 74 75 72 6e 20 43 6f 70 79 46      return CopyF
d8b0: 69 6c 65 28 73 72 63 2c 20 64 73 74 2c 20 26 73  ile(src, dst, &s
d8c0: 72 63 53 74 61 74 42 75 66 29 3b 0a 2b 09 20 20  rcStatBuf);.+.  
d8d0: 20 20 72 65 74 75 72 6e 20 54 63 6c 55 6e 69 78    return TclUnix
d8e0: 43 6f 70 79 46 69 6c 65 28 73 72 63 2c 20 64 73  CopyFile(src, ds
d8f0: 74 2c 20 26 73 72 63 53 74 61 74 42 75 66 2c 20  t, &srcStatBuf, 
d900: 30 29 3b 0a 20 09 7d 0a 20 20 20 20 20 7d 0a 20  0);. .}.     }. 
d910: 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 4f      return TCL_O
d920: 4b 3b 0a 40 40 20 2d 34 30 39 2c 37 20 2b 34 34  K;.@@ -409,7 +44
d930: 32 2c 37 20 40 40 0a 20 2f 2a 0a 20 20 2a 2d 2d  2,7 @@. /*.  *--
d940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d980: 2d 2d 2d 2d 0a 20 20 2a 0a 2d 20 2a 20 43 6f 70  ----.  *.- * Cop
d990: 79 46 69 6c 65 20 2d 20 0a 2b 20 2a 20 54 63 6c  yFile - .+ * Tcl
d9a0: 55 6e 69 78 43 6f 70 79 46 69 6c 65 20 2d 20 0a  UnixCopyFile - .
d9b0: 20 20 2a 0a 20 20 2a 20 20 20 20 20 20 48 65 6c    *.  *      Hel
d9c0: 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72  per function for
d9d0: 20 54 63 6c 70 43 6f 70 79 46 69 6c 65 2e 20 20   TclpCopyFile.  
d9e0: 43 6f 70 69 65 73 20 6f 6e 65 20 72 65 67 75 6c  Copies one regul
d9f0: 61 72 20 66 69 6c 65 2c 0a 20 20 2a 09 75 73 69  ar file,.  *.usi
da00: 6e 67 20 72 65 61 64 28 29 20 61 6e 64 20 77 72  ng read() and wr
da10: 69 74 65 28 29 2e 0a 40 40 20 2d 34 32 33 2c 31  ite()..@@ -423,1
da20: 33 20 2b 34 35 36 2c 31 34 20 40 40 0a 20 20 2a  3 +456,14 @@.  *
da30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da70: 2d 2d 2d 2d 2d 2d 0a 20 20 2a 2f 0a 20 0a 2d 73  ------.  */. .-s
da80: 74 61 74 69 63 20 69 6e 74 20 0a 2d 43 6f 70 79  tatic int .-Copy
da90: 46 69 6c 65 28 73 72 63 2c 20 64 73 74 2c 20 73  File(src, dst, s
daa0: 74 61 74 42 75 66 50 74 72 29 20 0a 2b 69 6e 74  tatBufPtr) .+int
dab0: 20 0a 2b 54 63 6c 55 6e 69 78 43 6f 70 79 46 69   .+TclUnixCopyFi
dac0: 6c 65 28 73 72 63 2c 20 64 73 74 2c 20 73 74 61  le(src, dst, sta
dad0: 74 42 75 66 50 74 72 2c 20 64 6f 6e 74 43 6f 70  tBufPtr, dontCop
dae0: 79 41 74 74 73 29 20 0a 20 20 20 20 20 43 4f 4e  yAtts) .     CON
daf0: 53 54 20 63 68 61 72 20 2a 73 72 63 3b 09 09 2f  ST char *src;../
db00: 2a 20 50 61 74 68 6e 61 6d 65 20 6f 66 20 66 69  * Pathname of fi
db10: 6c 65 20 74 6f 20 63 6f 70 79 20 28 6e 61 74 69  le to copy (nati
db20: 76 65 29 2e 20 2a 2f 0a 20 20 20 20 20 43 4f 4e  ve). */.     CON
db30: 53 54 20 63 68 61 72 20 2a 64 73 74 3b 09 09 2f  ST char *dst;../
db40: 2a 20 50 61 74 68 6e 61 6d 65 20 6f 66 20 66 69  * Pathname of fi
db50: 6c 65 20 74 6f 20 63 72 65 61 74 65 2f 6f 76 65  le to create/ove
db60: 72 77 72 69 74 65 0a 20 09 09 09 09 20 2a 20 28  rwrite. .... * (
db70: 6e 61 74 69 76 65 29 2e 20 2a 2f 0a 20 20 20 20  native). */.    
db80: 20 43 4f 4e 53 54 20 54 63 6c 5f 53 74 61 74 42   CONST Tcl_StatB
db90: 75 66 20 2a 73 74 61 74 42 75 66 50 74 72 3b 0a  uf *statBufPtr;.
dba0: 20 09 09 09 09 2f 2a 20 55 73 65 64 20 74 6f 20   ..../* Used to 
dbb0: 64 65 74 65 72 6d 69 6e 65 20 6d 6f 64 65 20 61  determine mode a
dbc0: 6e 64 20 62 6c 6f 63 6b 73 69 7a 65 2e 20 2a 2f  nd blocksize. */
dbd0: 0a 2b 20 20 20 20 69 6e 74 20 64 6f 6e 74 43 6f  .+    int dontCo
dbe0: 70 79 41 74 74 73 3b 09 09 2f 2a 20 69 66 20 66  pyAtts;../* if f
dbf0: 6c 61 67 20 73 65 74 2c 20 64 6f 6e 27 74 20 63  lag set, don't c
dc00: 6f 70 79 20 61 74 74 72 69 62 75 74 65 73 2e 20  opy attributes. 
dc10: 2a 2f 0a 20 7b 0a 20 20 20 20 20 69 6e 74 20 73  */. {.     int s
dc20: 72 63 46 64 3b 0a 20 20 20 20 20 69 6e 74 20 64  rcFd;.     int d
dc30: 73 74 46 64 3b 0a 40 40 20 2d 34 38 33 2c 37 20  stFd;.@@ -483,7 
dc40: 2b 35 31 37 2c 37 20 40 40 0a 20 09 75 6e 6c 69  +517,7 @@. .unli
dc50: 6e 6b 28 64 73 74 29 3b 09 09 09 09 09 2f 2a 20  nk(dst);...../* 
dc60: 49 4e 54 4c 3a 20 4e 61 74 69 76 65 2e 20 2a 2f  INTL: Native. */
dc70: 0a 20 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52  . .return TCL_ER
dc80: 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 2d 20 20 20  ROR;.     }.-   
dc90: 20 69 66 20 28 43 6f 70 79 46 69 6c 65 41 74 74   if (CopyFileAtt
dca0: 73 28 73 72 63 2c 20 64 73 74 2c 20 73 74 61 74  s(src, dst, stat
dcb0: 42 75 66 50 74 72 29 20 3d 3d 20 54 43 4c 5f 45  BufPtr) == TCL_E
dcc0: 52 52 4f 52 29 20 7b 0a 2b 20 20 20 20 69 66 20  RROR) {.+    if 
dcd0: 28 21 64 6f 6e 74 43 6f 70 79 41 74 74 73 20 26  (!dontCopyAtts &
dce0: 26 20 43 6f 70 79 46 69 6c 65 41 74 74 73 28 73  & CopyFileAtts(s
dcf0: 72 63 2c 20 64 73 74 2c 20 73 74 61 74 42 75 66  rc, dst, statBuf
dd00: 50 74 72 29 20 3d 3d 20 54 43 4c 5f 45 52 52 4f  Ptr) == TCL_ERRO
dd10: 52 29 20 7b 0a 20 09 2f 2a 0a 20 09 20 2a 20 54  R) {. ./*. . * T
dd20: 68 65 20 63 6f 70 79 20 73 75 63 63 65 65 64 65  he copy succeede
dd30: 64 2c 20 62 75 74 20 73 65 74 74 69 6e 67 20 74  d, but setting t
dd40: 68 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66  he permissions f
dd50: 61 69 6c 65 64 2c 20 73 6f 20 62 65 20 69 6e 0a  ailed, so be in.
dd60: 20 09 20 2a 20 61 20 63 6f 6e 73 69 73 74 65 6e   . * a consisten
dd70: 74 20 73 74 61 74 65 2c 20 77 65 20 72 65 6d 6f  t state, we remo
dd80: 76 65 20 74 68 65 20 66 69 6c 65 20 74 68 61 74  ve the file that
dd90: 20 77 61 73 20 63 72 65 61 74 65 64 20 62 79 20   was created by 
dda0: 74 68 65 0a 40 40 20 2d 31 30 37 31 2c 36 20 2b  the.@@ -1071,6 +
ddb0: 31 31 30 35 2c 39 20 40 40 0a 20 20 20 20 20 69  1105,9 @@.     i
ddc0: 66 20 28 75 74 69 6d 65 28 64 73 74 2c 20 26 74  f (utime(dst, &t
ddd0: 76 61 6c 29 29 20 7b 09 09 09 09 2f 2a 20 49 4e  val)) {..../* IN
dde0: 54 4c 3a 20 4e 61 74 69 76 65 2e 20 2a 2f 0a 20  TL: Native. */. 
ddf0: 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f  .return TCL_ERRO
de00: 52 3b 0a 20 20 20 20 20 7d 0a 2b 23 69 66 64 65  R;.     }.+#ifde
de10: 66 20 4d 41 43 5f 4f 53 58 5f 54 43 4c 0a 2b 20  f MAC_OSX_TCL.+ 
de20: 20 20 20 54 63 6c 4d 61 63 4f 53 58 43 6f 70 79     TclMacOSXCopy
de30: 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 28 73  FileAttributes(s
de40: 72 63 2c 20 64 73 74 2c 20 73 74 61 74 42 75 66  rc, dst, statBuf
de50: 50 74 72 29 3b 0a 2b 23 65 6e 64 69 66 0a 20 20  Ptr);.+#endif.  
de60: 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f 4f 4b     return TCL_OK
de70: 3b 0a 20 7d 0a 20 0a 40 40 20 2d 31 37 38 31 2c  ;. }. .@@ -1781,
de80: 36 20 2b 31 38 31 38 2c 31 30 35 20 40 40 0a 20  6 +1818,105 @@. 
de90: 0a 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 78  .     return nex
dea0: 74 43 68 65 63 6b 70 6f 69 6e 74 3b 0a 20 7d 0a  tCheckpoint;. }.
deb0: 2b 0c 0a 2b 23 69 66 64 65 66 20 48 41 56 45 5f  +..+#ifdef HAVE_
dec0: 43 48 46 4c 41 47 53 0a 2b 2f 2a 0a 2b 20 2a 2d  CHFLAGS.+/*.+ *-
ded0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
dee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
def0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
df00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
df10: 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 47 65  -----.+ *.+ * Ge
df20: 74 52 65 61 64 4f 6e 6c 79 41 74 74 72 69 62 75  tReadOnlyAttribu
df30: 74 65 0a 2b 20 2a 0a 2b 20 2a 20 20 20 20 20 20  te.+ *.+ *      
df40: 47 65 74 73 20 74 68 65 20 72 65 61 64 6f 6e 6c  Gets the readonl
df50: 79 20 61 74 74 72 69 62 75 74 65 20 28 75 73 65  y attribute (use
df60: 72 20 69 6d 6d 75 74 61 62 6c 65 20 66 6c 61 67  r immutable flag
df70: 29 20 6f 66 20 61 20 66 69 6c 65 2e 0a 2b 20 2a  ) of a file..+ *
df80: 0a 2b 20 2a 20 52 65 73 75 6c 74 73 3a 0a 2b 20  .+ * Results:.+ 
df90: 2a 09 53 74 61 6e 64 61 72 64 20 54 43 4c 20 72  *.Standard TCL r
dfa0: 65 73 75 6c 74 2e 20 52 65 74 75 72 6e 73 20 61  esult. Returns a
dfb0: 20 6e 65 77 20 54 63 6c 5f 4f 62 6a 20 69 6e 20   new Tcl_Obj in 
dfc0: 61 74 74 72 69 62 75 74 65 50 74 72 50 74 72 0a  attributePtrPtr.
dfd0: 2b 20 2a 09 69 66 20 74 68 65 72 65 20 69 73 20  + *.if there is 
dfe0: 6e 6f 20 65 72 72 6f 72 2e 20 54 68 65 20 6f 62  no error. The ob
dff0: 6a 65 63 74 20 77 69 6c 6c 20 68 61 76 65 20 72  ject will have r
e000: 65 66 20 63 6f 75 6e 74 20 30 2e 0a 2b 20 2a 0a  ef count 0..+ *.
e010: 2b 20 2a 20 53 69 64 65 20 65 66 66 65 63 74 73  + * Side effects
e020: 3a 0a 2b 20 2a 20 20 20 20 20 20 41 20 6e 65 77  :.+ *      A new
e030: 20 6f 62 6a 65 63 74 20 69 73 20 61 6c 6c 6f 63   object is alloc
e040: 61 74 65 64 2e 0a 2b 20 2a 20 20 20 20 20 20 0a  ated..+ *      .
e050: 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  + *-------------
e060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 2f 0a 20  ---------.+ */. 
e0a0: 0a 2b 73 74 61 74 69 63 20 69 6e 74 0a 2b 47 65  .+static int.+Ge
e0b0: 74 52 65 61 64 4f 6e 6c 79 41 74 74 72 69 62 75  tReadOnlyAttribu
e0c0: 74 65 28 69 6e 74 65 72 70 2c 20 6f 62 6a 49 6e  te(interp, objIn
e0d0: 64 65 78 2c 20 66 69 6c 65 4e 61 6d 65 2c 20 61  dex, fileName, a
e0e0: 74 74 72 69 62 75 74 65 50 74 72 50 74 72 29 0a  ttributePtrPtr).
e0f0: 2b 20 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20  +    Tcl_Interp 
e100: 2a 69 6e 74 65 72 70 3b 09 09 20 20 20 20 2f 2a  *interp;..    /*
e110: 20 54 68 65 20 69 6e 74 65 72 70 20 77 65 20 61   The interp we a
e120: 72 65 20 75 73 69 6e 67 20 66 6f 72 20 65 72 72  re using for err
e130: 6f 72 73 2e 20 2a 2f 0a 2b 20 20 20 20 69 6e 74  ors. */.+    int
e140: 20 6f 62 6a 49 6e 64 65 78 3b 09 09 20 20 20 20   objIndex;..    
e150: 2f 2a 20 54 68 65 20 69 6e 64 65 78 20 6f 66 20  /* The index of 
e160: 74 68 65 20 61 74 74 72 69 62 75 74 65 2e 20 2a  the attribute. *
e170: 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a  /.+    Tcl_Obj *
e180: 66 69 6c 65 4e 61 6d 65 3b 20 20 09 20 20 20 20  fileName;  .    
e190: 2f 2a 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74  /* The name of t
e1a0: 68 65 20 66 69 6c 65 20 28 55 54 46 2d 38 29 2e  he file (UTF-8).
e1b0: 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a   */.+    Tcl_Obj
e1c0: 20 2a 2a 61 74 74 72 69 62 75 74 65 50 74 72 50   **attributePtrP
e1d0: 74 72 3b 09 20 20 20 20 2f 2a 20 41 20 70 6f 69  tr;.    /* A poi
e1e0: 6e 74 65 72 20 74 6f 20 72 65 74 75 72 6e 20 74  nter to return t
e1f0: 68 65 20 6f 62 6a 65 63 74 20 77 69 74 68 2e 20  he object with. 
e200: 2a 2f 0a 2b 7b 0a 2b 20 20 20 20 54 63 6c 5f 53  */.+{.+    Tcl_S
e210: 74 61 74 42 75 66 20 73 74 61 74 42 75 66 3b 0a  tatBuf statBuf;.
e220: 2b 20 20 20 20 69 6e 74 20 72 65 73 75 6c 74 3b  +    int result;
e230: 0a 20 0a 2b 20 20 20 20 72 65 73 75 6c 74 20 3d  . .+    result =
e240: 20 54 63 6c 70 4f 62 6a 53 74 61 74 28 66 69 6c   TclpObjStat(fil
e250: 65 4e 61 6d 65 2c 20 26 73 74 61 74 42 75 66 29  eName, &statBuf)
e260: 3b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 69 66 20  ;.+    .+    if 
e270: 28 72 65 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a  (result != 0) {.
e280: 2b 09 54 63 6c 5f 41 70 70 65 6e 64 52 65 73 75  +.Tcl_AppendResu
e290: 6c 74 28 69 6e 74 65 72 70 2c 20 22 63 6f 75 6c  lt(interp, "coul
e2a0: 64 20 6e 6f 74 20 72 65 61 64 20 5c 22 22 2c 20  d not read \"", 
e2b0: 0a 2b 09 09 54 63 6c 5f 47 65 74 53 74 72 69 6e  .+..Tcl_GetStrin
e2c0: 67 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c 22  g(fileName), "\"
e2d0: 3a 20 22 2c 0a 2b 09 09 54 63 6c 5f 50 6f 73 69  : ",.+..Tcl_Posi
e2e0: 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c 20  xError(interp), 
e2f0: 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a  (char *) NULL);.
e300: 2b 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52  +.return TCL_ERR
e310: 4f 52 3b 0a 2b 20 20 20 20 7d 0a 20 0a 2b 20 20  OR;.+    }. .+  
e320: 20 20 2a 61 74 74 72 69 62 75 74 65 50 74 72 50    *attributePtrP
e330: 74 72 20 3d 20 54 63 6c 5f 4e 65 77 42 6f 6f 6c  tr = Tcl_NewBool
e340: 65 61 6e 4f 62 6a 28 28 73 74 61 74 42 75 66 2e  eanObj((statBuf.
e350: 73 74 5f 66 6c 61 67 73 20 26 20 55 46 5f 49 4d  st_flags & UF_IM
e360: 4d 55 54 41 42 4c 45 29 20 21 3d 20 30 29 3b 0a  MUTABLE) != 0);.
e370: 2b 20 20 20 20 0a 2b 20 20 20 20 72 65 74 75 72  +    .+    retur
e380: 6e 20 54 43 4c 5f 4f 4b 3b 0a 2b 7d 0a 2b 0c 0a  n TCL_OK;.+}.+..
e390: 2b 2f 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d  +/*.+ *---------
e3a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e3b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e3c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e3d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e3e0: 2d 2d 0a 2b 20 2a 0a 2b 20 2a 20 53 65 74 52 65  --.+ *.+ * SetRe
e3f0: 61 64 4f 6e 6c 79 41 74 74 72 69 62 75 74 65 0a  adOnlyAttribute.
e400: 2b 20 2a 0a 2b 20 2a 20 20 20 20 20 20 53 65 74  + *.+ *      Set
e410: 73 20 74 68 65 20 72 65 61 64 6f 6e 6c 79 20 61  s the readonly a
e420: 74 74 72 69 62 75 74 65 20 28 75 73 65 72 20 69  ttribute (user i
e430: 6d 6d 75 74 61 62 6c 65 20 66 6c 61 67 29 20 6f  mmutable flag) o
e440: 66 20 61 20 66 69 6c 65 2e 0a 2b 20 2a 0a 2b 20  f a file..+ *.+ 
e450: 2a 20 52 65 73 75 6c 74 73 3a 0a 2b 20 2a 20 20  * Results:.+ *  
e460: 20 20 20 20 53 74 61 6e 64 61 72 64 20 54 43 4c      Standard TCL
e470: 20 72 65 73 75 6c 74 2e 0a 2b 20 2a 0a 2b 20 2a   result..+ *.+ *
e480: 20 53 69 64 65 20 65 66 66 65 63 74 73 3a 0a 2b   Side effects:.+
e490: 20 2a 20 20 20 20 20 20 54 68 65 20 72 65 61 64   *      The read
e4a0: 6f 6e 6c 79 20 61 74 74 72 69 62 75 74 65 20 6f  only attribute o
e4b0: 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 63 68  f the file is ch
e4c0: 61 6e 67 65 64 2e 0a 2b 20 2a 20 20 20 20 20 20  anged..+ *      
e4d0: 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .+ *------------
e4e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e4f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e500: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e510: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
e520: 2b 20 2a 2f 0a 2b 0a 2b 73 74 61 74 69 63 20 69  + */.+.+static i
e530: 6e 74 0a 2b 53 65 74 52 65 61 64 4f 6e 6c 79 41  nt.+SetReadOnlyA
e540: 74 74 72 69 62 75 74 65 28 69 6e 74 65 72 70 2c  ttribute(interp,
e550: 20 6f 62 6a 49 6e 64 65 78 2c 20 66 69 6c 65 4e   objIndex, fileN
e560: 61 6d 65 2c 20 61 74 74 72 69 62 75 74 65 50 74  ame, attributePt
e570: 72 29 0a 2b 20 20 20 20 54 63 6c 5f 49 6e 74 65  r).+    Tcl_Inte
e580: 72 70 20 2a 69 6e 74 65 72 70 3b 09 09 20 20 20  rp *interp;..   
e590: 20 2f 2a 20 54 68 65 20 69 6e 74 65 72 70 20 77   /* The interp w
e5a0: 65 20 61 72 65 20 75 73 69 6e 67 20 66 6f 72 20  e are using for 
e5b0: 65 72 72 6f 72 73 2e 20 2a 2f 0a 2b 20 20 20 20  errors. */.+    
e5c0: 69 6e 74 20 6f 62 6a 49 6e 64 65 78 3b 09 09 20  int objIndex;.. 
e5d0: 20 20 20 2f 2a 20 54 68 65 20 69 6e 64 65 78 20     /* The index 
e5e0: 6f 66 20 74 68 65 20 61 74 74 72 69 62 75 74 65  of the attribute
e5f0: 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f 62  . */.+    Tcl_Ob
e600: 6a 20 2a 66 69 6c 65 4e 61 6d 65 3b 20 20 09 20  j *fileName;  . 
e610: 20 20 20 2f 2a 20 54 68 65 20 6e 61 6d 65 20 6f     /* The name o
e620: 66 20 74 68 65 20 66 69 6c 65 20 28 55 54 46 2d  f the file (UTF-
e630: 38 29 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f  8). */.+    Tcl_
e640: 4f 62 6a 20 2a 61 74 74 72 69 62 75 74 65 50 74  Obj *attributePt
e650: 72 3b 09 20 20 20 20 2f 2a 20 54 68 65 20 61 74  r;.    /* The at
e660: 74 72 69 62 75 74 65 20 74 6f 20 73 65 74 2e 20  tribute to set. 
e670: 2a 2f 0a 2b 7b 0a 2b 20 20 20 20 54 63 6c 5f 53  */.+{.+    Tcl_S
e680: 74 61 74 42 75 66 20 73 74 61 74 42 75 66 3b 0a  tatBuf statBuf;.
e690: 2b 20 20 20 20 69 6e 74 20 72 65 73 75 6c 74 3b  +    int result;
e6a0: 0a 2b 20 20 20 20 69 6e 74 20 72 65 61 64 6f 6e  .+    int readon
e6b0: 6c 79 3b 0a 2b 20 20 20 20 43 4f 4e 53 54 20 63  ly;.+    CONST c
e6c0: 68 61 72 20 2a 6e 61 74 69 76 65 3b 0a 2b 0a 2b  har *native;.+.+
e6d0: 20 20 20 20 69 66 20 28 54 63 6c 5f 47 65 74 42      if (Tcl_GetB
e6e0: 6f 6f 6c 65 61 6e 46 72 6f 6d 4f 62 6a 28 69 6e  ooleanFromObj(in
e6f0: 74 65 72 70 2c 20 61 74 74 72 69 62 75 74 65 50  terp, attributeP
e700: 74 72 2c 20 26 72 65 61 64 6f 6e 6c 79 29 20 21  tr, &readonly) !
e710: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2b 20 20 20  = TCL_OK) {.+   
e720: 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f       return TCL_
e730: 45 52 52 4f 52 3b 0a 2b 20 20 20 20 7d 0a 2b 0a  ERROR;.+    }.+.
e740: 2b 20 20 20 20 72 65 73 75 6c 74 20 3d 20 54 63  +    result = Tc
e750: 6c 70 4f 62 6a 53 74 61 74 28 66 69 6c 65 4e 61  lpObjStat(fileNa
e760: 6d 65 2c 20 26 73 74 61 74 42 75 66 29 3b 0a 2b  me, &statBuf);.+
e770: 20 20 20 20 0a 2b 20 20 20 20 69 66 20 28 72 65      .+    if (re
e780: 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 2b 09 54  sult != 0) {.+.T
e790: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28  cl_AppendResult(
e7a0: 69 6e 74 65 72 70 2c 20 22 63 6f 75 6c 64 20 6e  interp, "could n
e7b0: 6f 74 20 72 65 61 64 20 5c 22 22 2c 20 0a 2b 09  ot read \"", .+.
e7c0: 09 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 66  .Tcl_GetString(f
e7d0: 69 6c 65 4e 61 6d 65 29 2c 20 22 5c 22 3a 20 22  ileName), "\": "
e7e0: 2c 0a 2b 09 09 54 63 6c 5f 50 6f 73 69 78 45 72  ,.+..Tcl_PosixEr
e7f0: 72 6f 72 28 69 6e 74 65 72 70 29 2c 20 28 63 68  ror(interp), (ch
e800: 61 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b 09 72  ar *) NULL);.+.r
e810: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b  eturn TCL_ERROR;
e820: 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 69  .+    }.+.+    i
e830: 66 20 28 72 65 61 64 6f 6e 6c 79 29 20 7b 0a 2b  f (readonly) {.+
e840: 20 20 20 20 20 20 20 20 73 74 61 74 42 75 66 2e          statBuf.
e850: 73 74 5f 66 6c 61 67 73 20 7c 3d 20 55 46 5f 49  st_flags |= UF_I
e860: 4d 4d 55 54 41 42 4c 45 3b 0a 2b 20 20 20 20 7d  MMUTABLE;.+    }
e870: 20 65 6c 73 65 20 7b 0a 2b 20 20 20 20 20 20 20   else {.+       
e880: 20 73 74 61 74 42 75 66 2e 73 74 5f 66 6c 61 67   statBuf.st_flag
e890: 73 20 26 3d 20 7e 55 46 5f 49 4d 4d 55 54 41 42  s &= ~UF_IMMUTAB
e8a0: 4c 45 3b 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20  LE;.+    }.+.+  
e8b0: 20 20 6e 61 74 69 76 65 20 3d 20 54 63 6c 5f 46    native = Tcl_F
e8c0: 53 47 65 74 4e 61 74 69 76 65 50 61 74 68 28 66  SGetNativePath(f
e8d0: 69 6c 65 4e 61 6d 65 29 3b 0a 2b 20 20 20 20 72  ileName);.+    r
e8e0: 65 73 75 6c 74 20 3d 20 63 68 66 6c 61 67 73 28  esult = chflags(
e8f0: 6e 61 74 69 76 65 2c 20 73 74 61 74 42 75 66 2e  native, statBuf.
e900: 73 74 5f 66 6c 61 67 73 29 3b 09 09 2f 2a 20 49  st_flags);../* I
e910: 4e 54 4c 3a 20 4e 61 74 69 76 65 2e 20 2a 2f 0a  NTL: Native. */.
e920: 2b 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 20  +    if (result 
e930: 21 3d 20 30 29 20 7b 0a 2b 09 54 63 6c 5f 41 70  != 0) {.+.Tcl_Ap
e940: 70 65 6e 64 53 74 72 69 6e 67 73 54 6f 4f 62 6a  pendStringsToObj
e950: 28 54 63 6c 5f 47 65 74 4f 62 6a 52 65 73 75 6c  (Tcl_GetObjResul
e960: 74 28 69 6e 74 65 72 70 29 2c 0a 2b 09 09 22 63  t(interp),.+.."c
e970: 6f 75 6c 64 20 6e 6f 74 20 73 65 74 20 66 6c 61  ould not set fla
e980: 67 73 20 66 6f 72 20 66 69 6c 65 20 5c 22 22 2c  gs for file \"",
e990: 20 0a 2b 09 09 54 63 6c 5f 47 65 74 53 74 72 69   .+..Tcl_GetStri
e9a0: 6e 67 28 66 69 6c 65 4e 61 6d 65 29 2c 20 22 5c  ng(fileName), "\
e9b0: 22 3a 20 22 2c 0a 2b 09 09 54 63 6c 5f 50 6f 73  ": ",.+..Tcl_Pos
e9c0: 69 78 45 72 72 6f 72 28 69 6e 74 65 72 70 29 2c  ixError(interp),
e9d0: 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 3b   (char *) NULL);
e9e0: 0a 2b 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52  .+.return TCL_ER
e9f0: 52 4f 52 3b 0a 2b 20 20 20 20 7d 0a 2b 20 20 20  ROR;.+    }.+   
ea00: 20 72 65 74 75 72 6e 20 54 43 4c 5f 4f 4b 3b 0a   return TCL_OK;.
ea10: 2b 7d 0a 2b 23 65 6e 64 69 66 20 2f 2a 20 48 41  +}.+#endif /* HA
ea20: 56 45 5f 43 48 46 4c 41 47 53 20 2a 2f 0a 00 00  VE_CHFLAGS */...
ea30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
ea40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
ea50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
ea60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
ea70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
ea80: 00 00 00 00 00 00 00 00 00 00 00 00 00           .............