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 .............