Module: wine Branch: master Commit: 79808429c16c9bec8026cbd57158dcff26691334 URL: http://source.winehq.org/git/wine.git/?a=commit;h=79808429c16c9bec8026cbd571...
Author: Sergey Guralnik serhio@etersoft.ru Date: Wed Jan 23 15:07:44 2013 +0200
winemenubuilder: Try to wait for creating icon files.
---
programs/winemenubuilder/winemenubuilder.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c index 5a5789f..c931363 100644 --- a/programs/winemenubuilder/winemenubuilder.c +++ b/programs/winemenubuilder/winemenubuilder.c @@ -1055,10 +1055,19 @@ static HRESULT open_icon(LPCWSTR filename, int index, BOOL bWait, IStream **ppSt hr = open_module_icon(filename, index, ppStream); if (FAILED(hr)) { - static const WCHAR dot_icoW[] = {'.','i','c','o',0}; - int len = strlenW(filename); - if (len >= 4 && strcmpiW(&filename[len - 4], dot_icoW) == 0) - hr = SHCreateStreamOnFileW(filename, STGM_READ, ppStream); + if(bWait && hr == HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)) + { + WINE_WARN("Can't find file: %s, give a chance to parent process to create it\n", + wine_dbgstr_w(filename)); + return hr; + } + else + { + static const WCHAR dot_icoW[] = {'.','i','c','o',0}; + int len = strlenW(filename); + if (len >= 4 && strcmpiW(&filename[len - 4], dot_icoW) == 0) + hr = SHCreateStreamOnFileW(filename, STGM_READ, ppStream); + } } if (FAILED(hr)) hr = open_file_type_icon(filename, ppStream);