On Sun, Jul 26, 2020 at 6:42 AM Troy A. Griffitts
<scr...@crosswire.org <mailto: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 <mailto: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.org
<mailto: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
<mailto: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