Tcl Source Code

Check-in [2314a4bd26]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Handle the (unlikely) case that the file is deleted in between. Suggested by Harald Oehlmann (Thanks!)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 2314a4bd26b4a0b51e5612eec0763c0555edb12e
User & Date: jan.nijtmans 2013-03-19 14:57:45
Context
2013-03-20
13:39
Slightly more correct: If FindFirstFile() fails, the error should be "no such file or directory" (EN... check-in: 5ed5ec73c0 user: jan.nijtmans tags: core-8-5-branch
2013-03-19
14:59
Handle the (unlikely) case that the file is deleted in between. Suggested by Harald Oehlmann (Thanks... check-in: 7eee715c3f user: jan.nijtmans tags: trunk
14:57
Handle the (unlikely) case that the file is deleted in between. Suggested by Harald Oehlmann (Thanks... check-in: 2314a4bd26 user: jan.nijtmans tags: core-8-5-branch
14:55
Handle the (unlikely) case that the file is deleted in between. Suggested by Harald Oehlmann (Thanks... check-in: ee85786241 user: jan.nijtmans tags: core-8-4-branch
14:31
3597000 Consistent [file copy] result. check-in: 629ee9f78d user: dgp tags: core-8-5-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to win/tclWinFile.c.

2054
2055
2056
2057
2058
2059
2060




2061
2062
2063
2064
2065
2066
2067
	    DWORD lasterror = GetLastError();

	    if (lasterror != ERROR_SHARING_VIOLATION) {
		TclWinConvertError(lasterror);
		return -1;
		}
	    hFind = (*tclWinProcs->findFirstFileProc)(nativePath, &ffd);




	    memcpy(&data, &ffd, sizeof(data));
	    FindClose(hFind);
	}

	attr = data.dwFileAttributes;

	statPtr->st_size = ((Tcl_WideInt) data.nFileSizeLow) |







>
>
>
>







2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
	    DWORD lasterror = GetLastError();

	    if (lasterror != ERROR_SHARING_VIOLATION) {
		TclWinConvertError(lasterror);
		return -1;
		}
	    hFind = (*tclWinProcs->findFirstFileProc)(nativePath, &ffd);
	    if (hFind == INVALID_HANDLE_VALUE) {
		TclWinConvertError(lasterror);
		return -1;
	    }
	    memcpy(&data, &ffd, sizeof(data));
	    FindClose(hFind);
	}

	attr = data.dwFileAttributes;

	statPtr->st_size = ((Tcl_WideInt) data.nFileSizeLow) |