+2002-03-16 Vince Darley <vincentdarley@sourceforge.net>
+ * generic/vfs.c: updated for latest cvs head of Tcl 8.4a5.
+ * library/vfs.tcl: New version from jcw, with better handling
+ of env(PATH).
+
2002-03-09 Vince Darley <vincentdarley@sourceforge.net>
* library/mk4vfs.tcl: updated version from Jean-Claude Wippler.
with it. No-one seems to take any interest in fixing the millions
of problems with TEA.
+And really, to compile a single file 'vfs.c' do we really need to have
+some 10 TEA files?
+
There is a good old VC++ makefile in the 'win' directory, which seems to
work.
We may add \fIlink\fR and \fIlstat\fR commands in the future to allow
virtual filesystems to support reading and writing links - this is
supported by the C API, but has simply not been exposed to Tcl in this
-extension.
+extension, yet.
.PP
The Tcl 'Tcl_FSMatchInDirectory' function takes a variety of type
information in a Tcl_GlobTypeData structure. We currently only expose
&VfsPathInFilesystem,
&VfsDupInternalRep,
&VfsFreeInternalRep,
- /* No native to normalized */
+ /* No internal to normalized, since we don't create any
+ * pure 'internal' Tcl_Obj path representations */
NULL,
- /* No create native rep function */
+ /* No create native rep function, since we don't use it
+ * or 'Tcl_FSNewNativePath' */
NULL,
- /* normalize path isn't needed */
+ /* Normalize path isn't needed - we assume paths only have
+ * one representation */
NULL,
&VfsFilesystemPathType,
&VfsFilesystemSeparator,
&VfsOpenFileChannel,
&VfsMatchInDirectory,
&VfsUtime,
- /* link is not important */
+ /* We choose not to support symbolic links inside our vfs's */
NULL,
&VfsListVolumes,
&VfsFileAttrStrings,
&VfsCreateDirectory,
&VfsRemoveDirectory,
&VfsDeleteFile,
- /* Use stat for lstat */
- NULL,
- /* No copy file */
+ /* No copy file - fallback will occur at Tcl level */
NULL,
- /* No rename file */
+ /* No rename file - fallback will occur at Tcl level */
NULL,
- /* No copy directory */
+ /* No copy directory - fallback will occur at Tcl level */
NULL,
- /* No load */
+ /* Use stat for lstat */
+ NULL,
+ /* No load - fallback on core implementation */
NULL,
- /* We don't need a getcwd or chdir */
+ /* We don't need a getcwd or chdir - fallback on Tcl's versions */
NULL,
NULL
};
catch {set temp $env(VFS_TEMP)}
set temp [file join $temp tclkit]
file mkdir $temp
+ set temp [file nativename $temp]
# This is not right XXX need somewhere to unpack
# indirect-dependant DLL's etc.
global env tcl_platform
if {$tcl_platform(platform) == "windows"} {
- set env(PATH) "${vfs::temp}/bin;$env(PATH)"
+ set env(PATH) "${vfs::temp};$env(PATH)"
} elseif {$tcl_platform(platform) == "unix"} {
- set env(PATH) "${vfs::temp}/bin:$env(PATH)"
+ set env(PATH) "${vfs::temp}:$env(PATH)"
} else {
- set env(PATH) "${vfs::temp}/bin"
+ set env(PATH) "${vfs::temp}"
}
proc debug {tag body} {
set cnt [info cmdcount]
DLL_VERSION = 10
# comment the following line to compile with symbols
-NODEBUG=1
+NODEBUG=0
!IF "$(NODEBUG)" == "1"
DEBUGDEFINES =