On Tue, 20 Nov 2007, Gerrit E.G. Hobbelt wrote:
> When you've got that situation where those empty directories don't all
> exist (just like the documentation is warning you about), XMAIL will
> sometimes treat such a situation not as the severe error it should be,
> but instead ignores the failure.
>
> This has to do with the fact that the OS error is not propagated to the
> XMail error stack.
>
> fix supplied below:
> ------------------------------------------------------------------------
>
> --- ../../1original/xmail/SysDepWin.cpp 2007-11-02 01:34:32.000000000
> +0100
> +++ ./SysDepWin.cpp 2007-11-13 01:18:19.000000000 +0100
> @@ -1529,7 +1529,7 @@
>
> SYS_HANDLE SysFirstFile(const char *pszPath, char *pszFileName, int iSize)
> {
> - char szMatch[SYS_MAX_PATH] = "";
> + char szMatch[SYS_MAX_PATH];
>
> strcpy(szMatch, pszPath);
> AppendSlash(szMatch);
> @@ -1539,7 +1539,10 @@
> HANDLE hFind = FindFirstFile(szMatch, &WFD);
>
> if (hFind == INVALID_HANDLE_VALUE)
> + {
> + ErrSetErrorCode(ERR_OPENDIR, szMatch); /* [i_a] - bugfix for
> spurious error, e.g. when dir is non-existent, then no error would be
> reported */
> return SYS_INVALID_HANDLE;
> + }
>
> FileFindData *pFFD = (FileFindData *) SysAlloc(sizeof(FileFindData));
This is the wrong fix. You have to eventually check GetLastError() for
ERROR_FILE_NOT_FOUND.
- Davide
-
To unsubscribe from this list: send the line "unsubscribe xmail" in
the body of a message to [EMAIL PROTECTED]
For general help: send the line "help" in the body of a message to
[EMAIL PROTECTED]