Tcl Source Code

View Ticket
Login
Ticket UUID: 218355
Title: problem with file names starting with tilde
Type: Bug Version: obsolete: 8.4a5
Submitter: nobody Created on: 2000-10-26 00:56:38
Subsystem: 36. Pathname Management Assigned To: vincentdarley
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2002-06-27 19:36:55
Resolution: Invalid Closed By: vincentdarley
    Closed on: 2002-06-27 12:36:55
Description:
OriginalBugID: 4131 Bug
Version: 8.3b2
SubmitDate: '2000-02-07'
LastModified: '2000-03-01'
Severity: LOW
Status: Closed
Submitter: techsupp
ChangedBy: hobbs
OS: Windows 98
OSVersion: 4.10.1998
Machine: Celeron 300 / 64 Mb
FixedDate: '2000-10-25'
ClosedDate: '2000-03-01'


Name: SnakE

Comments:
The bug is in the 'glob' command. In example above its output is:
      tools Stuff ~test.file temp
    while it should be:
      tools Stuff ./~test.file temp

ReproducibleScript:
test.tsh:
  foreach name [glob -nocomplain *] { puts [file join somedir $name] }

To see the bug, you should have a file which name starts with tilde, '~test.file' for example, in the current directory. Then run the test: 'tclsh83.exe test.tsh'

ObservedBehavior:
The output will be like this:
  somedir/tools
  somedir/Stuff
  ~test.file
  somedir/temp
As you've noticed, directory name 'somedir' have been lost for the '~test.file' by 'file join' command

DesiredBehavior:
The output should be like this:
  somedir/tools
  somedir/Stuff
  somedir/~test.file
  somedir/temp



The ~ is one of those chars that has to be handled separately, and
with minor coding improvements you can make the above work without
problems:
    foreach name [glob -nocomplain ./*] { puts [file join somedir $name] }

or in 8.3:
    foreach name [glob -nocomplain -dir . *] { ... }
 
-- 03/01/2000 hobbs
User Comments: vincentdarley added on 2002-06-27 19:36:55:
Logged In: YES 
user_id=32170

On balance I think I agree with Jeff that the current 
behaviour is most useful.  Therefore I'm closing this 
bug.  A patch is attached if anyone wants a different 
behaviour.

vincentdarley added on 2002-05-31 01:01:03:

File Added - 24079: globTilde.diffs

Logged In: YES 
user_id=32170

Attached patch to fix.

vincentdarley added on 2002-05-31 00:35:26:
Logged In: YES 
user_id=32170

One side-effect of the new VFS code is that this bug is 
now rather easy to fix (it would have been much more 
complex to fix in Tcl 8.3), since the changes are now 
restricted to tclFileName.c and tclIOUtil.c, if it is indeed 
considered a bug.  I think it should probably be viewed 
as a bug, since 'file split' actually handles '~' specially, 
so should 'glob'.

Any thoughts?

Attachments: