morefiles.doc   [plain text]


Notes about MoreFiles, dnr.c & other non-Tcl source files
---------------------------------------------------------

RCS: @(#) $Id: morefiles.doc,v 1.8 1999/01/26 03:53:22 jingham Exp $

The Macintosh distribution uses several source files that don't
actually ship with Tcl.  This sometimes causes problems or confusion
to developers.  This document should help clear up a few things.

dnr.c
-----

We have found a way to work around some bugs in dnr.c that 
Apple has never fixed even though we sent in numerous bug reports.
The file tclMacDNR.c simply set's some #pragma's and the includes
the Apple dnr.c file.  This should work the problems that many of
you have reported with dnr.c.

More Files
----------

Macintosh Tcl/Tk also uses Jim Luther's very useful package called
More Files.  More Files fixes many of the broken or underfunctional
parts of the file system.

More Files can be found on the MetroWerks CD and Developer CD from
Apple.  You can also down load the latest version from:

	ftp://members.aol.com/JumpLong/

The package can also be found at the home of Tcl/Tk for the mac:

	ftp://ftp.sunlabs.com/pub/tcl/mac/

I used to just link the More Files library in the Tcl projects.  
However, this caused problems when libraries wern't matched correctly.
I'm now including the files in the Tcl project directly.  This
solves the problem of missmatched libraries - but may not always
compile.

If you get a compiliation error in MoreFiles you need to contact
Jim Luther.  His email address:

	JumpLong@aol.com

The version of More Files that we use with Tcl/Tk is 1.4.3.  Early
version may work as well..

Unfortunantly, there is one bug in his library (in 1.4.3).  The bug is
in the function FSpGetFullPath found in the file FullPath.c.  After
the call to PBGetCatInfoSync you need to change the line:

    if ( result == noErr )

	to:

    if ( (result == noErr) || (result == fnfErr) )


The latest version of More Files is 1.4.6.  Unfortunantly, this
version has a bug that keeps it from working with shared libraries
right out of the box.  If you want to use 1.4.6 you can but you will
need to make the following fix:

	In the file "Opimization.h" in the More Files package you
	need to remove the line "#pragma internal on".  And in the
	file "OptimazationEnd.h" you need to remove the line
	"#pragma internal reset".

Note: the version of MoreFile downloaded from the Sun Tcl/Tk site
will have the fix included.  (If you want you can send email to
Jim Luther suggesting that he use Tcl for regression testing!)

Ray Johnson