Tcl Source Code

View Ticket
Login
Ticket UUID: 562970
Title: TIP99, a 'file link source ?target?' impl.
Type: Patch Version: None
Submitter: vincentdarley Created on: 2002-05-31 16:23:50
Subsystem: 37. File System Assigned To: vincentdarley
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2002-06-21 21:38:28
Resolution: Accepted Closed By: vincentdarley
    Closed on: 2002-06-21 14:38:28
Description:
Here's a patch which implements 'file link source ?
target?'.  It is fully implemented on Unix, and on 
Win/MacOS, it simply returns standard error 
messages (like 'file readlink' on Windows at 
present).  It would be easy to add a MacOS 
implementation, and a WinNT version is apparently 
possible (search on comp.lang.tcl for 'file link').

Obviously this would need a TIP, but it is a very 
minor change (the patch is v. small!).

No 'VFS' modifications are required at all -- this 
fits into the pre-existing framework.

Any thoughts?
User Comments: vincentdarley added on 2002-06-21 21:38:28:
Logged In: YES 
user_id=32170

Patch applied to cvs head.

vincentdarley added on 2002-06-18 17:32:37:

File Deleted - 25108: 



File Added - 25311: tip99.patch

Logged In: YES 
user_id=32170

Added some more tests, and improved performance of 
file normalization in presence of links on Windows.  
Also enhanced the documentation.

vincentdarley added on 2002-06-14 21:20:49:

File Deleted - 25098: 



File Added - 25108: tip99.patch

Logged In: YES 
user_id=32170

Made some more tests which were 'unixOnly' work 
cross-platform.  I think this is a suitable final version of 
the patch for TIP 99.

vincentdarley added on 2002-06-14 18:19:15:

File Deleted - 25044: 



File Added - 25098: tip99.patch

Logged In: YES 
user_id=32170

Added complete documentation and further tests.

vincentdarley added on 2002-06-13 22:47:10:

File Deleted - 25042: 



File Added - 25044: tip99.patch

vincentdarley added on 2002-06-13 22:47:09:
Logged In: YES 
user_id=32170

Added more tests.

vincentdarley added on 2002-06-13 22:33:19:

File Deleted - 24939: 



File Added - 25042: tip99c.patch

Logged In: YES 
user_id=32170

Added patch to latest cvs head.

vincentdarley added on 2002-06-12 16:40:14:

File Deleted - 24897: 



File Added - 24939: tip99.patch

Logged In: YES 
user_id=32170

renamed, and added new patch to latest cvs head.

dkf added on 2002-06-12 15:06:38:
Logged In: YES 
user_id=79902

Cross-ref: http://purl.org/tcl/tip/99

vincentdarley added on 2002-06-12 01:01:48:

File Deleted - 24866: 



File Added - 24897: fileLink7.patch

vincentdarley added on 2002-06-12 01:01:47:
Logged In: YES 
user_id=32170

Added 'file normalize' handling of symlinks on 
Windows.  Tcl now has complete handling of symlinks 
on Windows.

vincentdarley added on 2002-06-11 17:46:32:

File Deleted - 24783:

vincentdarley added on 2002-06-11 17:46:31:

File Deleted - 24862: 



File Added - 24866: fileLink6.patch

Logged In: YES 
user_id=32170

Better docs, tests, comments in code.  Tests also check 
type of drive to ensure links are supported on Windows.

Note: patch doesn't include support for MacOS yet, but 
that should be easy to add.

vincentdarley added on 2002-06-11 16:07:47:

File Added - 24862: fileLink5.patch

Logged In: YES 
user_id=32170

Unfortunately, (at least some of) those defines are 
shared between tclWinFile.c and tclWinFCmd.c...  
However, it is a good idea, so I've added some helper 
functions and now only one define is actually needed in 
winInt.

Attached latest patch.  This allows 'file delete' and 'file 
copy' to work correctly on links (i.e. as defined by the 
man page).

Is it worth putting in a TIP to get this into 8.4?

davygrvy added on 2002-06-11 05:00:02:
Logged In: YES 
user_id=7549

I like it.  I haven't tried it, but I do like it.  In file.n you 
say "systems that don't support it".  You might add some 
detail and say only (XP?) and 2K support this.  I do like the 
way you test for the existence of the function pointer in 
tclWinProcs rather than an OS version test as it'll be more 
accurate.  Say another service pack for ME somehow adds it 
in, Tcl gets it.

If possible, you might be able to move the PlatSdk defines 
from tclWinInt.h to just tclWinCmd.c as it isn't shared.  Or is 
it?  I should apply this and offer some substance to my 
opinions :)

vincentdarley added on 2002-06-11 02:02:11:

File Added - 24816: fileLink4.patch

Logged In: YES 
user_id=32170

Yet another patch -- handles some annoying Windows /
\ problems.

vincentdarley added on 2002-06-10 19:56:26:

File Added - 24788: fileLink2.patch

Logged In: YES 
user_id=32170

Attached patch with some docs and tests and to allow 
file linking of directories and files on Windows.

vincentdarley added on 2002-06-10 17:44:52:

File Added - 24783: fileLink.patch

Logged In: YES 
user_id=32170

Uploading new patch.  Contains implementation for 
Windows.  This needs the very latest cvs head (with 
improved handling of windows native paths).

vincentdarley added on 2002-06-10 17:43:13:

File Deleted - 24145: 

Logged In: YES 
user_id=32170

deleted old patch.

vincentdarley added on 2002-05-31 23:23:50:

File Added - 24145: fileLink.diff

Attachments: