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]

Reply via email to