On Sun, Jul 26, 2020 at 6:42 AM Troy A. Griffitts <scr...@crosswire.org> wrote:
> I've just committed the last bit for fixing the WIN32 Unicode issues. If > anyone can try compiling and running Xiphos without the Xiphos patch or any > other projects for Windows, and let me know if things work for them in > folders which include Unicode character, I would appreciate it. I've > tested BibleCS and it now works with a SWORD_PATH defined to /books/χαρις. > I've tested using and installing modules in this configuration and believe > all the bugs are squashed, but I would love confirmation from other > projects. > > Thanks for any feedback, > > Troy > During cross-compile I'm getting the following errors: [ 6%] Building CXX object CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj /usr/bin/i686-w64-mingw32-g++ -DCLUCENE2 -DCURLAVAILABLE -DCURLSFTPAVAILABLE -DEXCLUDEBZIP2 -DEXCLUDEXZ -DGLOBCONFPATH=\"/usr/i686-w64-mingw32/sys-root/mingw/etc/sword.conf\" -DUSEICUREGEX -DUSELUCENE -DU_USING_ICU_NAMESPACE -D_FTPLIB_NO_COMPAT -D_ICU_ -Dsword_EXPORTS @CMakeFiles/sword.dir/includes_CXX.rsp -D_ICUSWORD_ -g3 -Wall -O0 -D_ICUSWORD_ -o CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj -c /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static member function 'static std::vector<sword::DirEntry> sword::FileMgr::getDirList(const char*, bool, bool)': /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:395:2: error: 'WIN32_FIND_DATAW' was not declared in this scope 395 | WIN32_FIND_DATAW fileData; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:398:2: error: 'HANDLE' was not declared in this scope 398 | HANDLE findIterator = FindFirstFileW(wcharPath, &fileData); | ^~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:6: error: 'findIterator' was not declared in this scope 399 | if (findIterator != INVALID_HANDLE_VALUE) { | ^~~~~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:22: error: 'INVALID_HANDLE_VALUE' was not declared in this scope 399 | if (findIterator != INVALID_HANDLE_VALUE) { | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:401:35: error: 'fileData' was not declared in this scope 401 | SWBuf dirEntName = wcharToUTF8(fileData.cFileName); | ^~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:405:49: error: 'FILE_ATTRIBUTE_DIRECTORY' was not declared in this scope 405 | i.isDirectory = fileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY; | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:40: error: 'fileData' was not declared in this scope 409 | } while (FindNextFile(findIterator, &fileData) != 0); | ^~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:12: error: 'FindNextFile' was not declared in this scope 409 | } while (FindNextFile(findIterator, &fileData) != 0); | ^~~~~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:410:3: error: 'FindClose' was not declared in this scope; did you mean '_findclose'? 410 | FindClose(findIterator); | ^~~~~~~~~ | _findclose /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:397:17: warning: unused variable 'wcharPath' [-Wunused-variable] 397 | const wchar_t *wcharPath = (const wchar_t *)wcharBuf.getRawData(); | ^~~~~~~~~ /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static member function 'static int sword::FileMgr::createParent(const char*)': /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:436:5: error: '_wmkdir' was not declared in this scope; did you mean 'mkdir'? 436 | _wmkdir((const wchar_t *)utf8ToWChar(buf).getRawData()); | ^~~~~~~ | mkdir make[2]: *** [CMakeFiles/sword.dir/build.make:283: CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj] Error 1 I'm assuming there's a new package or macro I need to define? On my system the WIN32_FIND_DATAW struct is defined in both minwinbase.h and shtypes.h. I'm building with MinGW which might have a different header structure than your compilers, if you're using Borland? --Greg > > On 7/20/20 7:18 PM, Greg Hellings wrote: > > Sorry for the previous blank email - user error when I tried to reply: > > On Sun, Jul 19, 2020 at 2:40 PM Tobias Klein <cont...@tklein.info> wrote: > >> Thanks for giving me the background on this, Karl! I appreciate it! >> >> Is Xiphos the only frontend that has been patching Sword for this >> purpose? Then I suppose all other frontends suffer from this issue, huh? >> > > When I first encountered this patch in Xiphos I tested with BibleTime and > The Sword Project for Windows and both of them do crash under these > circumstances. > > Yes, other toolkits such as Qt do have wrappers for this shortcoming > already, but none of the other front ends I've worked with have bothered to > put in the effort to produce a patched version of Sword to fix the crash. > > --Greg > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page