update for Tcl changes
authorVince Darley <vincentdarley@sourceforge.net>
Sun, 24 Mar 2002 12:35:02 +0000 (12:35 +0000)
committerVince Darley <vincentdarley@sourceforge.net>
Sun, 24 Mar 2002 12:35:02 +0000 (12:35 +0000)
ChangeLog
README.cygwin
doc/vfs.n
generic/vfs.c
library/vfs.tcl
win/makefile.vc

index 046176cd7169ecb4384ee159ab37e120c62aa292..8502d6fbf828983d3dcb08bf9ff1c5661ff10f49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+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.
 
index 74a396238e41239a501a815c9632cb40d9f6b95c..b4a39d5e8ab5c617df7bc357d9d90e94e27444e3 100644 (file)
@@ -3,6 +3,9 @@ hopeless on Windows, and I do not recommend you wasting your time
 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.
 
index 585f7b72b256126652b7a9bd06e02f83468d9b9a..8c064a69ae7378044054db6fc15c2ca4a090da03 100644 (file)
--- a/doc/vfs.n
+++ b/doc/vfs.n
@@ -237,7 +237,7 @@ best solution is to fix your code!
 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 
index b9ea6e5aa8533e4b15cdd33b25e5a8425eb9b7b5..71a0eb02e5f1fa542ca00d3b0cc91220895560dc 100644 (file)
@@ -187,11 +187,14 @@ static Tcl_Filesystem vfsFilesystem = {
     &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,
@@ -200,7 +203,7 @@ static Tcl_Filesystem vfsFilesystem = {
     &VfsOpenFileChannel,
     &VfsMatchInDirectory,
     &VfsUtime,
-    /* link is not important  */
+    /* We choose not to support symbolic links inside our vfs's */
     NULL,
     &VfsListVolumes,
     &VfsFileAttrStrings,
@@ -209,17 +212,17 @@ static Tcl_Filesystem vfsFilesystem = {
     &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
 };
index b972084de06f60785d171ea73a7ca4ad4b41d979..f91f23455d39916a3a5da5305d01d51d1af3bac3 100644 (file)
@@ -34,17 +34,18 @@ namespace eval ::vfs {
     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]
index 49c2e58125be911b73f6c7188b56456d3927fb53..315911d3b9e2c6afc1e6b410f0724c0c903b58cd 100644 (file)
@@ -13,7 +13,7 @@ VFS_VERSION = 1.0
 DLL_VERSION = 10
 
 # comment the following line to compile with symbols
-NODEBUG=1
+NODEBUG=0
 
 !IF "$(NODEBUG)" == "1"
 DEBUGDEFINES =