From: <no...@so...> - 2001-08-24 15:17:04
|
Bugs item #219258, was opened at 2000-10-25 22:04 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=219258&group_id=10894 Category: 34. Pathname Management Group: = 8.4a1 Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) >Assigned to: Jeffrey Hobbs (hobbs) Summary: Glob doesn't deal properly with * and [ Initial Comment: OriginalBugID: 6101 Bug Version: 8.4a1 SubmitDate: '2000-08-09' LastModified: '2000-09-05' Severity: LOW Status: Assigned Submitter: techsupp ChangedBy: hobbs OS: Windows NT FixedDate: '2000-10-25' ClosedDate: '2000-10-25' Name: Michal Prussak Comments: Not really a big deal, but I thouht you should know. ReproducibleScript: Create files with names "*" and "[" (OK, * is perhaps bad, because NT applications can't access a file with a * in the name anyway) % glob {\*} <gives listing of root directory> % glob {\[} no files matched glob pattern "\[" ObservedBehavior: Files * and [ have not been matched DesiredBehavior: Files * and [ should have been matched, just like on Unix: % glob {\[} {[} % glob {\*} * Verified this on 8.3.2 for Windows. -- 09/05/2000 hobbs ---------------------------------------------------------------------- >Comment By: Vince Darley (vincentdarley) Date: 2001-08-24 08:16 Message: Logged In: YES user_id=32170 This is, I believe, nothing to do with TclpMatchFilesTypes. Since we are matching a literal string here, 'glob' falls through to the end of TclDoGlob which simply checks for existence of the file, using Tcl_FSAccess (or since the patch was checked in yesterday) Tcl_FSLStat. However, looking at the implementation of stat on WinTcl, I see this: /* * Eliminate file names containing wildcard characters, or subsequent * call to FindFirstFile() will expand them, matching some other file. */ transPtr = Tcl_FSGetTranslatedPath(NULL, pathPtr); if (transPtr == NULL || (strpbrk(Tcl_GetString (transPtr), "?*") != NULL)) { Tcl_SetErrno(ENOENT); return -1; } i.e. we purposefully disallow ourselves from statting any file with '*' or '?' in the name. Since this bug is reported against older versions of Tcl, it seems as if 'access' has the same limitation (although it doesn't seem to be explicitly coded in Tcl's core). I assume this is therefore a limitation of the Win32 api's we use, and therefore cannot be fixed (at least without changing those api's). I'm therefore assigning this to Jeff, since he seems to know something about the 'real Win32' stuff (and I don't) ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2000-11-24 06:26 Message: Probably a fault in the Windows implementation of TclpMatchFilesTypes() ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=219258&group_id=10894 |