Menu

#503 problem with file names starting with tilde

obsolete: 8.4a5
closed-invalid
5
2002-06-27
2000-10-26
Anonymous
No

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

Discussion

  • Brent B. Welch

    Brent B. Welch - 2000-10-26
    • priority: 5 --> 2
    • status: open --> closed-fixed
     
  • Don Porter

    Don Porter - 2001-04-13
    • labels: 104242 --> 36. Pathname Management
     
  • Vince Darley

    Vince Darley - 2002-05-30
    • milestone: 102434 --> 102413
    • priority: 2 --> 5
    • assigned_to: nobody --> vincentdarley
    • status: closed-fixed --> open-fixed
     
  • Vince Darley

    Vince Darley - 2002-05-30

    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?

     
  • Vince Darley

    Vince Darley - 2002-05-30

    Logged In: YES
    user_id=32170

    Attached patch to fix.

     
  • Vince Darley

    Vince Darley - 2002-05-30

    diff -bu with windows eols against current cvs head

     
  • Vince Darley

    Vince Darley - 2002-05-30
    • milestone: 102413 --> obsolete: 8.4a5
     
  • Vince Darley

    Vince Darley - 2002-06-27

    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.

     
  • Vince Darley

    Vince Darley - 2002-06-27
    • status: open-fixed --> closed-invalid