1 Notes about MoreFiles, dnr.c & other non-Tcl source files |
|
2 --------------------------------------------------------- |
|
3 |
|
4 RCS: @(#) $Id: morefiles.doc,v 1.2 1998/09/14 18:40:04 stanton Exp $ |
|
5 |
|
6 The Macintosh distribution uses several source files that don't |
|
7 actually ship with Tcl. This sometimes causes problems or confusion |
|
8 to developers. This document should help clear up a few things. |
|
9 |
|
10 dnr.c |
|
11 ----- |
|
12 |
|
13 We have found a way to work around some bugs in dnr.c that |
|
14 Apple has never fixed even though we sent in numerous bug reports. |
|
15 The file tclMacDNR.c simply set's some #pragma's and the includes |
|
16 the Apple dnr.c file. This should work the problems that many of |
|
17 you have reported with dnr.c. |
|
18 |
|
19 More Files |
|
20 ---------- |
|
21 |
|
22 Macintosh Tcl/Tk also uses Jim Luther's very useful package called |
|
23 More Files. More Files fixes many of the broken or underfunctional |
|
24 parts of the file system. |
|
25 |
|
26 More Files can be found on the MetroWerks CD and Developer CD from |
|
27 Apple. You can also down load the latest version from: |
|
28 |
|
29 ftp://members.aol.com/JumpLong/ |
|
30 |
|
31 The package can also be found at the home of Tcl/Tk for the mac: |
|
32 |
|
33 ftp://ftp.sunlabs.com/pub/tcl/mac/ |
|
34 |
|
35 I used to just link the More Files library in the Tcl projects. |
|
36 However, this caused problems when libraries wern't matched correctly. |
|
37 I'm now including the files in the Tcl project directly. This |
|
38 solves the problem of missmatched libraries - but may not always |
|
39 compile. |
|
40 |
|
41 If you get a compiliation error in MoreFiles you need to contact |
|
42 Jim Luther. His email address: |
|
43 |
|
44 JumpLong@aol.com |
|
45 |
|
46 The version of More Files that we use with Tcl/Tk is 1.4.3. Early |
|
47 version may work as well.. |
|
48 |
|
49 Unfortunantly, there is one bug in his library (in 1.4.3). The bug is |
|
50 in the function FSpGetFullPath found in the file FullPath.c. After |
|
51 the call to PBGetCatInfoSync you need to change the line: |
|
52 |
|
53 if ( result == noErr ) |
|
54 |
|
55 to: |
|
56 |
|
57 if ( (result == noErr) || (result == fnfErr) ) |
|
58 |
|
59 |
|
60 The latest version of More Files is 1.4.6. Unfortunantly, this |
|
61 version has a bug that keeps it from working with shared libraries |
|
62 right out of the box. If you want to use 1.4.6 you can but you will |
|
63 need to make the following fix: |
|
64 |
|
65 In the file "Opimization.h" in the More Files package you |
|
66 need to remove the line "#pragma internal on". And in the |
|
67 file "OptimazationEnd.h" you need to remove the line |
|
68 "#pragma internal reset". |
|
69 |
|
70 Note: the version of MoreFile downloaded from the Sun Tcl/Tk site |
|
71 will have the fix included. (If you want you can send email to |
|
72 Jim Luther suggesting that he use Tcl for regression testing!) |
|
73 |
|
74 Ray Johnson |
|