Tcl Source Code

Check-in [ee85786241]
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-4-branch
Files: files | file ages | folders
SHA1: ee8578624176b2a8cfc1195658bca8ad7a3d0eb6
User & Date: jan.nijtmans 2013-03-19 14:55:47
Context
2013-03-20
11:18
Slightly more correct: If FindFirstFile() fails, the error should be "no such file or directory" (EN... check-in: aad700de84 user: jan.nijtmans tags: core-8-4-branch
2013-03-19
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:26
3597000 Consistent [file copy] result. check-in: ef8bec8154 user: dgp tags: core-8-4-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to win/tclWinFile.c.

1897
1898
1899
1900
1901
1902
1903




1904
1905
1906
1907
1908
1909
1910
	    DWORD lasterror = GetLastError();

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




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

    
	(*tclWinProcs->getFullPathNameProc)(nativePath, MAX_PATH, 
					    nativeFullPath, &nativePart);







>
>
>
>







1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
	    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);
	}

    
	(*tclWinProcs->getFullPathNameProc)(nativePath, MAX_PATH, 
					    nativeFullPath, &nativePart);