<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>To address the errors below I had to add the include for
      <windows.h> both in <b>src/mgr/filemgr.cpp</b> and in <b>src/modules/commons/zipmgr.cpp</b>.</p>
    <p>After that I'm getting the next error:</p>
    <p>1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410):
      error C2664: 'BOOL FindNextFileA(HANDLE,LPWIN32_FIND_DATAA)':
      cannot convert argument 2 from 'WIN32_FIND_DATAW *' to
      'LPWIN32_FIND_DATAA'<br>
1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410):
      note: Types pointed to are unrelated; conversion requires
      reinterpret_cast, C-style cast or function-style cast</p>
    <p>Best regards,<br>
      Tobias<br>
    </p>
    <div class="moz-cite-prefix">On 7/26/20 4:44 PM, Troy A. Griffitts
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8ba46945-3c28-4c90-df90-68a5a67cdca3@crosswire.org">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Can one of you guys try simply including <windows.h> at
        the top of filemgr.cpp and see if this fixes it for you?</p>
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 7/26/20 4:01 PM, Tobias Klein
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:4c1f1106-a942-9bb9-e09a-9d2cfae362c4@tklein.info">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        <p>I'm getting similar error messages with Visual Studio 2019.
          Note that I'm also generating the make files via CMake.<br>
        </p>
        <p>First couple of error messages:<br>
        </p>
        <div data-index="296" style="box-sizing: border-box;">
          <div class="js-check-step-line CheckStep-line d-flex
            log-line-plain selected" style="box-sizing: border-box;
            display: flex !important; color: rgb(246, 248, 250);
            background-color: rgb(88, 96, 105);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,2): error C2065: 'WIN32_FIND_DATAW': undeclared identifier
</span></span></div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="297" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19): error C2146: syntax error: missing ';' before identifier 'fileData'
</span></span></div>
          </div>
          <div data-index="298" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);"><br
                class="Apple-interchange-newline">
            </div>
          </div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="298" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19): error C2065: 'fileData': undeclared identifier
</span></span></div>
          </div>
          <div data-index="299" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);"><br
                class="Apple-interchange-newline">
            </div>
          </div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="299" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,2): error C2065: 'HANDLE': undeclared identifier
</span></span></div>
          </div>
          <div data-index="300" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);"><br
                class="Apple-interchange-newline">
            </div>
          </div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="300" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9): error C2146: syntax error: missing ';' before identifier 'findIterator'
</span></span></div>
          </div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="301" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9): error C2065: 'findIterator': undeclared identifier
</span></span></div>
          </div>
        </div>
        <div class="moz-cite-prefix">
          <div data-index="302" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);
              background-color: rgb(47, 54, 61);"><span class="CheckStep-line-content d-inline-block flex-auto ml-3 js-check-line-content" style="box-sizing: border-box; flex: 1 1 auto !important; margin-left: 16px !important; display: inline-block !important; overflow-x: auto; white-space: pre-wrap;"><span class="" style="box-sizing: border-box;">2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,51): error C2065: 'fileData': undeclared identifier
</span></span></div>
          </div>
          <div data-index="303" style="box-sizing: border-box;">
            <div class="js-check-step-line CheckStep-line d-flex
              log-line-plain" style="box-sizing: border-box; display:
              flex !important; color: rgb(246, 248, 250);"><br
                class="Apple-interchange-newline">
            </div>
          </div>
        </div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">Best regards,<br>
          Tobias<br>
        </div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">On 7/26/20 3:00 PM, Greg Hellings
          wrote:<br>
        </div>
        <blockquote type="cite"
cite="mid:CAHxvOVKNpZOF-m8-+rhZepAVFm69CVw9D4zKE9O-71HEBVBWBQ@mail.gmail.com">
          <meta http-equiv="content-type" content="text/html;
            charset=UTF-8">
          <div dir="ltr">
            <div dir="ltr"><br>
            </div>
            <br>
            <div class="gmail_quote">
              <div dir="ltr" class="gmail_attr">On Sun, Jul 26, 2020 at
                6:42 AM Troy A. Griffitts <<a
                  href="mailto:scribe@crosswire.org"
                  moz-do-not-send="true">scribe@crosswire.org</a>>
                wrote:<br>
              </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">
                <div>
                  <p>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.</p>
                  <p>Thanks for any feedback,</p>
                  <p>Troy</p>
                </div>
              </blockquote>
              <div>During cross-compile I'm getting the following
                errors:</div>
              <div><br>
              </div>
              <div>[  6%] Building CXX object
                CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj<br>
                /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<br>
                /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)':<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:395:2: error:
                'WIN32_FIND_DATAW' was not declared in this scope<br>
                  395 |  WIN32_FIND_DATAW fileData;<br>
                      |  ^~~~~~~~~~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:398:2: error:
                'HANDLE' was not declared in this scope<br>
                  398 |  HANDLE findIterator = FindFirstFileW(wcharPath,
                &fileData);<br>
                      |  ^~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:6: error:
                'findIterator' was not declared in this scope<br>
                  399 |  if (findIterator != INVALID_HANDLE_VALUE) {<br>
                      |      ^~~~~~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:22: error:
                'INVALID_HANDLE_VALUE' was not declared in this scope<br>
                  399 |  if (findIterator != INVALID_HANDLE_VALUE) {<br>
                      |                      ^~~~~~~~~~~~~~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:401:35: error:
                'fileData' was not declared in this scope<br>
                  401 |    SWBuf dirEntName =
                wcharToUTF8(fileData.cFileName);<br>
                      |                                   ^~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:405:49: error:
                'FILE_ATTRIBUTE_DIRECTORY' was not declared in this
                scope<br>
                  405 |     i.isDirectory = fileData.dwFileAttributes
                & FILE_ATTRIBUTE_DIRECTORY;<br>
                      |                                                
                ^~~~~~~~~~~~~~~~~~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:40: error:
                'fileData' was not declared in this scope<br>
                  409 |   } while (FindNextFile(findIterator,
                &fileData) != 0);<br>
                      |                                        ^~~~~~~~<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:12: error:
                'FindNextFile' was not declared in this scope<br>
                  409 |   } while (FindNextFile(findIterator,
                &fileData) != 0);<br>
                      |            ^~~~~~~~~~~~<br>
/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'?<br>
                  410 |   FindClose(findIterator);<br>
                      |   ^~~~~~~~~<br>
                      |   _findclose<br>
/builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:397:17: warning:
                unused variable 'wcharPath' [-Wunused-variable]<br>
                  397 |  const wchar_t *wcharPath = (const wchar_t
                *)wcharBuf.getRawData();<br>
                      |                 ^~~~~~~~~<br>
                /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:
                In static member function 'static int
                sword::FileMgr::createParent(const char*)':<br>
/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'?<br>
                  436 |     _wmkdir((const wchar_t
                *)utf8ToWChar(buf).getRawData());<br>
                      |     ^~~~~~~<br>
                      |     mkdir<br>
                make[2]: *** [CMakeFiles/sword.dir/build.make:283:
                CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj] Error 1</div>
              <div><br>
              </div>
              <div>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?</div>
              <div><br>
              </div>
              <div>--Greg<br>
              </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">
                <div>
                  <p><br>
                  </p>
                  <div>On 7/20/20 7:18 PM, Greg Hellings wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>Sorry for the previous blank email - user
                        error when I tried to reply:<br>
                      </div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">On Sun, Jul
                          19, 2020 at 2:40 PM Tobias Klein <<a
                            href="mailto:contact@tklein.info"
                            target="_blank" moz-do-not-send="true">contact@tklein.info</a>>
                          wrote:<br>
                        </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">
                          <div lang="DE">
                            <div>
                              <p class="MsoNormal"><span lang="EN-US">Thanks
                                  for giving me the background on this,
                                  Karl! I appreciate it!</span></p>
                              <p class="MsoNormal"><span lang="EN-US">Is
                                  Xiphos the only frontend that has been
                                  patching Sword for this purpose? Then
                                  I suppose all other frontends suffer
                                  from this issue, huh?</span></p>
                            </div>
                          </div>
                        </blockquote>
                        <div><br>
                        </div>
                        <div>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.</div>
                        <div><br>
                        </div>
                        <div>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.</div>
                        <div><br>
                        </div>
                        <div>--Greg</div>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <pre>_______________________________________________
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org" target="_blank" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
                  </blockquote>
                </div>
                _______________________________________________<br>
                sword-devel mailing list: <a
                  href="mailto:sword-devel@crosswire.org"
                  target="_blank" moz-do-not-send="true">sword-devel@crosswire.org</a><br>
                <a
                  href="http://www.crosswire.org/mailman/listinfo/sword-devel"
                  rel="noreferrer" target="_blank"
                  moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
                Instructions to unsubscribe/change your settings at
                above page</blockquote>
            </div>
          </div>
          <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
        </blockquote>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>