Re: [sword-devel] SWORD, diatheke and a self-closing OSIS note element...
Thanks, Peter. Created API-241 as requested. Unable to assign your username to the issue. You weren’t listed. I will add something to the wiki page OSIS 211 CR. Grab a copy of the HunUj module for testing before it’s updated. David Sent from ProtonMail Mobile On Sat, Jun 20, 2020 at 18:16, ref...@gmx.net wrote: > Fixing the filter should be done to avoid the picture, and I can likely do > that asap, particularly in light of Troy's announcement. Please though file a > bug against the engine (not diatheke) , the likely source of the problem is > in the osisplain filter. And file a further bug against the scheme, which > will stay until that is fixed even once the engine does not produce bad > output anymore > > Thanks > > Peter > > Sent from my mobile. Please forgive shortness, typos and weird autocorrects. > > Original Message > Subject: Re: [sword-devel] SWORD, diatheke and a self-closing OSIS note > element... > From: Greg Hellings > To: David Haslam ,SWORD Developers' Collaboration Forum > CC: > >> I believe that we can mandate, through the schema, that a tag not be self >> closing. If the schema really permits that, it can be prevented at that >> level if deemed necessary. If it's not appropriate to prevent an empty note, >> then we need to update the filter to at least close the brackets when it's a >> self closing tag. >> >> On Fri, Jun 19, 2020, 07:50 David Haslam wrote: >> >>> Hi everyone, >>> >>> Today I was testing the updated HunUj module in CrossWire Beta and I came >>> across an unusual anomaly in OSIS that almost escaped being detected. >>> >>> If one gives the following command: >>> >>> diatheke -b HunUj -b plain -k Gen.32.2 >>> >>> the output is >>> >>> Genesis 32:2: Jákób is útnak indult, és találkoztak vele Isten angyalai. [ >>> (HunUj) >>> >>> "What's odd about that?" one might ask >>> >>> It's perfectly normal but for the unepected [ at the end of the verse text. >>> >>> Upon inspection using osis2mod, the verse text ends with an OSIS note... >>> >>> $$$Genesis 32:2 >>> Jákób is útnak indult, és találkoztak vele Isten angyalai.>> osisID="Gen.32.2!crossReference.a" osisRef="Gen.32.2" >>> type="crossReference"/> >>> >>> Observe closely, the OSIS note element is self-closing and therefore >>> contains no note text or reference element. >>> >>> Now imagine the module developer getting ready to submit the module. He >>> runs the OSIS through XML syntax check and then proceeds to validate it to >>> the OSIS schema. It passes both. The self-closing note element is perfectly >>> valid OSIS even though it's semantically deficient. >>> >>> Had I not noticed the anomalous [ in the diatheke output, this source text >>> anomaly would have remained undetected. >>> >>> So the question for SWORD developers is this: Why does diatheke plain text >>> output include the ] ? >>> >>> I'm not complaining. I'm glad that it behaved in this way, otherwise the >>> OSIS anomaly would have completely passed us by. >>> There are no other similar anomalies elsewhere in the HunUj module. >>> >>> I'd just like to understand better how exactly diatheke parses this >>> peculiar construct and thus give the otherwise unexpected ] >>> >>> The textual bug is very interesting to me, because I can think of no >>> readily available utility whereby it could have been flagged up in the OSIS >>> file. If you know of such an XML tool, we'd all benefit from you sharing >>> your wisdom and experience. >>> >>> Best regards, >>> >>> David >>> >>> Sent with ProtonMail Secure Email. >>> >>> ___ >>> 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
Re: [sword-devel] Bishop 1.4.0 and SWORD Utility Modules
On 21.03.20 12:37, Cyrille wrote: > @Troy, we have to figure out how to automate the translation with Pootle > or something else like transifex (nice tool but not free). According to the FAQ at the end of https://www.transifex.com/pricing/ Transifex is free for open source projects which "have no funding, revenue and/or commercialization model". See the FAQ for details. BibleTime is quite successfully using Transifex. J ___ 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
Re: [sword-devel] NA28 shows no verses
On 02.06.20 03:22, Greg Hellings wrote: > On Mon, Jun 1, 2020 at 3:57 PM Troy A. Griffitts > wrote: >> Some of this delay is my fault. The "unique per user" key recognition was >> added to SWORD about 8 months or so and we haven't released a new official >> stable branch yet. trunk is pretty stable and I use it for Bishop >> releases, but other frontends have policies to only use official stable >> branch releases. I must be remembering wrong, but I thought I heard >> Bibletime reported it was working ok in their latest release so I thought >> they were using trunk. >> > Bibletime compiles against trunk, I'm sure, as part of its testing matrix. > But I don't believe it uses trunk for releases. I'm fairly sure your work > on Bishop is the only one that leverages unreleased code other than the > couple of immediately necessary patches that Karl mentioned I grabbed for > Fedora repos. Distros usually package a specific version of Sword, and we want BibleTime to support at least the latest stable version of Sword and not rely on features in SVN trunk. This also helps packagers. We might consider using SVN trunk for snaps, flatpaks, Windows and OS X where we have no other options but control the entire stack. In my opinion, bundling libraries with BibleTime (binaries or source) is generally a bad idea for multiple reasons, mostly related to packaging, compatibility and security. J ___ 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
Re: [sword-devel] [PATCH] Fix ICU checking without icu-config
On Sat, Jun 20, 2020 at 03:47:13PM -0400, Karl Kleinpaste wrote: >... > Fedora handles this problem /just fine/: > > $ grep libicu-devel /var/log/rpmpkgs > libicu-devel-63.2-3.fc31.i686.rpm > libicu-devel-63.2-3.fc31.x86_64.rpm > $ ls -l /usr/bin/icu-config* > -rwxr-xr-x 1 root root 205 May 28 2018 /usr/bin/icu-config > -rwxr-xr-x 1 root root 22011 Jul 25 2019 /usr/bin/icu-config-32 > -rwxr-xr-x 1 root root 22019 Jul 25 2019 /usr/bin/icu-config-64 > $ rpm -qf /usr/bin/icu-config* > libicu-devel-63.2-3.fc31.x86_64 > libicu-devel-63.2-3.fc31.i686 > libicu-devel-63.2-3.fc31.i686 > libicu-devel-63.2-3.fc31.x86_64 > > The main script is a 32/64-bit selector script which then calls the > right arch-specific binary, and the relevant symlinks are all correct in > /usr/lib{,64}. >... What is "the right arch-specific binary" when I am building on x86_64? icu-config automatically using icu-config-64 is right most of the time, but not when building on x86_64 for i686. On Debian/Ubuntu I can just install the i686 version of pkg-config, and this will then give the correct i686 output. Nowadays pkg-config is the standard tool for this kind of information, the Fedora libicu-devel package is shipping a pkg-config file since 2006. cu Adrian ___ 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
Re: [sword-devel] [PATCH] Fix ICU checking without icu-config
On 6/20/20 3:35 PM, Adrian Bunk wrote: > icu-config is no longer available on Debian/Ubuntu, for background > see https://bugs.debian.org/898820 Is it worth pointing out that Debian/Ubuntu are becoming real PITAs? >From the bug: libicu-dev is not multi-arch aware, causing the i386 version to conflict with the amd64 one which makes it impossible to install both. As a result the /usr/lib/i386-linux-gnu/libicu*.so symbolic links are missing so that developing 32 bit applications using this library is impossible on a 64 bit system. Fedora handles this problem /just fine/: $ grep libicu-devel /var/log/rpmpkgs libicu-devel-63.2-3.fc31.i686.rpm libicu-devel-63.2-3.fc31.x86_64.rpm $ ls -l /usr/bin/icu-config* -rwxr-xr-x 1 root root 205 May 28 2018 /usr/bin/icu-config -rwxr-xr-x 1 root root 22011 Jul 25 2019 /usr/bin/icu-config-32 -rwxr-xr-x 1 root root 22019 Jul 25 2019 /usr/bin/icu-config-64 $ rpm -qf /usr/bin/icu-config* libicu-devel-63.2-3.fc31.x86_64 libicu-devel-63.2-3.fc31.i686 libicu-devel-63.2-3.fc31.i686 libicu-devel-63.2-3.fc31.x86_64 The main script is a 32/64-bit selector script which then calls the right arch-specific binary, and the relevant symlinks are all correct in /usr/lib{,64}. Not that I'm interested in a distro war, but some of us are getting darned tired of Debian/Ubuntu's high-handed /purity/ demands, virtually demanding that everyone else fall over for them. ___ 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
Re: [sword-devel] [PATCH] Fix ICU checking without icu-config
On Sat, Jun 20, 2020 at 02:25:58PM -0500, Greg Hellings wrote: > What's wrong with using icu-config? I'm not sure what you're fixing with > this. Thanks for asking, I failed to mention the root problem. icu-config is no longer available on Debian/Ubuntu, for background see https://bugs.debian.org/898820 > Greg cu Adrian ___ 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
Re: [sword-devel] [PATCH] Fix ICU checking without icu-config
What's wrong with using icu-config? I'm not sure what you're fixing with this. Greg On Sat, Jun 20, 2020, 11:56 Adrian Bunk wrote: > From: László Böszörményi > > Let still search for icu-config but use pkg-config method after that. > > https://bugs.debian.org/962265 > --- > configure.ac | 16 +--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/configure.ac b/configure.ac > index cd587b41..b7cab681 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -240,9 +240,19 @@ if test x$with_icu = xyes; then >AM_CXXFLAGS="$AM_CXXFLAGS -D_ICU_" >AM_CFLAGS="$AM_CFLAGS -D_ICU_" > else > - echo "*** The icu-config script installed by icu could not be > found" > - echo "*** compiling without ICU support" > - with_icu=no > + PKG_CHECK_MODULES([ICU], [icu-i18n >= 63.1], [found_icu=yes]) > + if test "$found_icu" = "yes"; then > + PKG_CHECK_MODULES([ICU_IO], [icu-io >= 63.1]) > + ICU_IOLIBS="$ICU_IO_LIBS" > + with_icu=yes > + LIBS="$LIBS $ICU_LIBS $ICU_IOLIBS" > + AM_CXXFLAGS="$AM_CXXFLAGS -D_ICU_" > + AM_CFLAGS="$AM_CFLAGS -D_ICU_" > + else > + echo "*** The icu-config script installed by icu could not > be found" > + echo "*** compiling without ICU support" > + with_icu=no > + fi > fi > fi > > -- > 2.20.1 > > ___ > 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
[sword-devel] Module release: Westminster
Dear All, This is to announce that we have just now uploaded Westminster in the CrossWire (main) repository. ## Language: English ## Description: Westminster Confession & Catechisms ## Category: Generic Book ## Version: This is an update. Version: 1.0.1 ## Fixes: Improvements in xref detection by frontends. Many thanks to David_Haslam for the hard work. We wish you enjoyable reading, The Module Team P.S.: This email is sent automatically on upload of a new/updated module ___ 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] Module release: BaptistConfession1689
Dear All, This is to announce that we have just now uploaded BaptistConfession1689 in the CrossWire (main) repository. ## Language: English ## Description: Baptist Confession of Faith of 1689 ## Category: Generic Book ## Version: This is an update. Version: 1.0.2 ## Fixes: Improvements in xref detection by frontends. Many thanks to David_Haslam for the hard work. We wish you enjoyable reading, The Module Team P.S.: This email is sent automatically on upload of a new/updated module ___ 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
Re: [sword-devel] SWORD, diatheke and a self-closing OSIS note element...
Fixing the filter should be done to avoid the picture, and I can likely do that asap, particularly in light of Troy's announcement. Please though file a bug against the engine (not diatheke) , the likely source of the problem is in the osisplain filter. And file a further bug against the scheme, which will stay until that is fixed even once the engine does not produce bad output anymoreThanksPeterSent from my mobile. Please forgive shortness, typos and weird autocorrects. Original Message Subject: Re: [sword-devel] SWORD, diatheke and a self-closing OSIS note element...From: Greg Hellings To: David Haslam ,SWORD Developers' Collaboration Forum CC: I believe that we can mandate, through the schema, that a tag not be self closing. If the schema really permits that, it can be prevented at that level if deemed necessary. If it's not appropriate to prevent an empty note, then we need to update the filter to at least close the brackets when it's a self closing tag.On Fri, Jun 19, 2020, 07:50 David Haslamwrote:Hi everyone, Today I was testing the updated HunUj module in CrossWire Beta and I came across an unusual anomaly in OSIS that almost escaped being detected. If one gives the following command: diatheke -b HunUj -b plain -k Gen.32.2 the output is Genesis 32:2: Jákób is útnak indult, és találkoztak vele Isten angyalai. [ (HunUj) "What's odd about that?" one might ask It's perfectly normal but for the unepected [ at the end of the verse text. Upon inspection using osis2mod, the verse text ends with an OSIS note... $$$Genesis 32:2 Jákób is útnak indult, és találkoztak vele Isten angyalai. Observe closely, the OSIS note element is self-closing and therefore contains no note text or reference element. Now imagine the module developer getting ready to submit the module. He runs the OSIS through XML syntax check and then proceeds to validate it to the OSIS schema. It passes both. The self-closing note element is perfectly valid OSIS even though it's semantically deficient. Had I not noticed the anomalous [ in the diatheke output, this source text anomaly would have remained undetected. So the question for SWORD developers is this: Why does diatheke plain text output include the ] ? I'm not complaining. I'm glad that it behaved in this way, otherwise the OSIS anomaly would have completely passed us by. There are no other similar anomalies elsewhere in the HunUj module. I'd just like to understand better how exactly diatheke parses this peculiar construct and thus give the otherwise unexpected ] The textual bug is very interesting to me, because I can think of no readily available utility whereby it could have been flagged up in the OSIS file. If you know of such an XML tool, we'd all benefit from you sharing your wisdom and experience. Best regards, David Sent with ProtonMail Secure Email. ___ 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
Re: [sword-devel] [PATCH] Use C++ 11 instead of __{s, u}* typedefs
On 20.06.20 19:56, Adrian Bunk wrote: > Names like __u32 do not pollute the POSIX namespace, > but the Linux kernel uses exactly the same names. > > On some Linux architectures the kernel definitions are different, > e.g. http://tracker.crosswire.org/browse/API-178 Additionally, according to the C++ draft standard working draft, https://eel.is/c++draft/lex.name#3: > 3 In addition, some identifiers are reserved for use by > C++ implementations and shall not be used otherwise; no > diagnostic is required. > (3.1) Each identifier that contains a double underscore > __ or begins with an underscore followed by an uppercase > letter is reserved to the implementation for any use. > (3.2) Each identifier that begins with an underscore is > reserved to the implementation for use as a name in the > global namespace. > All relevant compilers should now support C++ 11, > but please double-check that this change works on > all non-gcc compilers you support. See also these threads for previous discussions on the issue: https://www.crosswire.org/pipermail/sword-devel/2014-May/041401.html https://www.crosswire.org/pipermail/sword-devel/2019-July/047252.html J ___ 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] [PATCH] Use C++ 11 instead of __{s, u}* typedefs
Names like __u32 do not pollute the POSIX namespace, but the Linux kernel uses exactly the same names. On some Linux architectures the kernel definitions are different, e.g. http://tracker.crosswire.org/browse/API-178 All relevant compilers should now support C++ 11, but please double-check that this change works on all non-gcc compilers you support. --- CMakeLists.txt| 5 +- configure.ac | 3 +- examples/cmdline/search.cpp | 4 +- include/rawstr.h | 5 +- include/rawstr4.h | 5 +- include/stringmgr.h | 9 +- include/swkey.h | 3 +- include/sysdata.h | 61 +- include/treekeyidx.h | 11 +- include/utilstr.h | 7 +- include/xzcomprs.h| 3 +- m4/ax_cxx_compile_stdcxx.m4 | 951 ++ src/keys/treekeyidx.cpp | 37 +- src/keys/versekey.cpp | 17 +- src/mgr/stringmgr.cpp | 25 +- src/modules/comments/rawfiles/rawfiles.cpp| 5 +- src/modules/common/entriesblk.cpp | 21 +- src/modules/common/rawstr.cpp | 37 +- src/modules/common/rawstr4.cpp| 39 +- src/modules/common/rawverse.cpp | 19 +- src/modules/common/rawverse4.cpp | 21 +- src/modules/common/zstr.cpp | 73 +- src/modules/common/zverse.cpp | 49 +- src/modules/common/zverse4.cpp| 51 +- src/modules/filters/rtfhtml.cpp | 5 +- src/modules/filters/utf8greekaccents.cpp | 7 +- src/modules/filters/utf8utf16.cpp | 17 +- src/modules/genbook/rawgenbook/rawgenbook.cpp | 11 +- src/modules/lexdict/rawld/rawld.cpp | 10 +- src/modules/lexdict/rawld4/rawld4.cpp | 10 +- src/modules/swmodule.cpp | 5 +- tests/filtertest.cpp | 3 +- tests/utf8norm.cpp| 3 +- 33 files changed, 1248 insertions(+), 284 deletions(-) create mode 100644 m4/ax_cxx_compile_stdcxx.m4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1aa66701..bbb4d212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ # all posterity and eternity, wherever such transfer is possible. Where it is # not, then this file is released under the GPLv2 by myself. PROJECT(libsword CXX C) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) +CMAKE_MINIMUM_REQUIRED(VERSION 3.1.0) SET(SWORD_VERSION 1.8.900) # Make sure it's an out-of-stream build @@ -155,6 +155,9 @@ ENDIF(BUILDING_SHARED) #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" or "$ENV{CFLAGS}" or "" ) #SET(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}" or "$ENV{CXXFLAGS}" or "" ) +SET(CMAKE_CXX_STANDARD 11) +SET(CMAKE_CXX_STANDARD_REQUIRED ON) + IF(SWORD_ENABLE_WARNINGS STREQUAL "Yes") SET(CMAKE_C_FLAGS "-Werror ${CMAKE_C_FLAGS}") SET(CMAKE_CXX_FLAGS "-Werror ${CMAKE_CXX_FLAGS}") diff --git a/configure.ac b/configure.ac index 315bafda..cd587b41 100644 --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,7 @@ CXXFLAGS=" $CXXFLAGS" AC_LANG(C++) AC_PROG_CC AC_PROG_CXX +AX_CXX_COMPILE_STDCXX(11) AC_PROG_INSTALL AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -302,7 +303,7 @@ else fi if test x$with_cxx11regex = xyes; then - AM_CXXFLAGS="$AM_CXXFLAGS -DUSECXX11REGEX -std=c++11" + AM_CXXFLAGS="$AM_CXXFLAGS -DUSECXX11REGEX" fi # - diff --git a/examples/cmdline/search.cpp b/examples/cmdline/search.cpp index 5fd9e78c..3a54aafb 100644 --- a/examples/cmdline/search.cpp +++ b/examples/cmdline/search.cpp @@ -24,6 +24,8 @@ * */ +#include + #include #include #include @@ -134,7 +136,7 @@ int main(int argc, char **argv) SWKey *k = listKey.getElement(); std::cout << k->getRangeText(); // std::cout << (const char *)listKey; - if (k->userData) std::cout << " : " << (__u64)k->userData << "%"; + if (k->userData) std::cout << " : " << (uint64_t)k->userData << "%"; std::cout << std::endl; } diff --git a/include/rawstr.h b/include/rawstr.h index d25ebc37..cdd05c2c 100644 --- a/include/rawstr.h +++ b/include/rawstr.h @@ -26,6 +26,7 @@ #ifndef RAWSTR_H #define RAWSTR_H +#include #include #include @@ -54,8 +55,8 @@ public: virtual ~RawStr(); void getIDXBuf(long ioffset, char **buf) const; void getIDXBufDat(long ioffset, char **buf) const; - signed char findOffset(const char *key, __u32 *start, __u16 *size, long away = 0, __u32 *idxoff = 0) const; - void readText(__u32 start, __u16 *size, char **idxbuf, SWBuf )
[sword-devel] [PATCH] Fix ICU checking without icu-config
From: László Böszörményi Let still search for icu-config but use pkg-config method after that. https://bugs.debian.org/962265 --- configure.ac | 16 +--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index cd587b41..b7cab681 100644 --- a/configure.ac +++ b/configure.ac @@ -240,9 +240,19 @@ if test x$with_icu = xyes; then AM_CXXFLAGS="$AM_CXXFLAGS -D_ICU_" AM_CFLAGS="$AM_CFLAGS -D_ICU_" else - echo "*** The icu-config script installed by icu could not be found" - echo "*** compiling without ICU support" - with_icu=no + PKG_CHECK_MODULES([ICU], [icu-i18n >= 63.1], [found_icu=yes]) + if test "$found_icu" = "yes"; then + PKG_CHECK_MODULES([ICU_IO], [icu-io >= 63.1]) + ICU_IOLIBS="$ICU_IO_LIBS" + with_icu=yes + LIBS="$LIBS $ICU_LIBS $ICU_IOLIBS" + AM_CXXFLAGS="$AM_CXXFLAGS -D_ICU_" + AM_CFLAGS="$AM_CFLAGS -D_ICU_" + else + echo "*** The icu-config script installed by icu could not be found" + echo "*** compiling without ICU support" + with_icu=no + fi fi fi -- 2.20.1 ___ 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] SWORD 1.9.0 release intention
So, I am making an attempt to travel for my usual summer work in Europe next week. As of now, I believe the rules are that I will be required to quarantine for 14 days, this means that the first 2 weeks of July should be a great time for me to isolated at home working on SWORD 1.9.0. My intention is to finish the following things up in those 2 weeks (and fix any bugs we find, accordingly). If you have anything else you'd like to get into this release, especially if it interface-breaking, please try to have anything committed to me soon. Let's shoot for mid-July for the release. Thank you for all of your varied and many contributions to our ministry together! Renaming the __u64 style macros to something like SW_u64. Merging the Windows FileMgr patch you have been keeping for Xiphos into something build configurable. A large refactoring commit I have locally which completes the camelCase normalization of the public API but doesn't yet pass all unit tests. Need to debug and find what I missed. ___ 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
Re: [sword-devel] SWORD, diatheke and a self-closing OSIS note element...
I believe that we can mandate, through the schema, that a tag not be self closing. If the schema really permits that, it can be prevented at that level if deemed necessary. If it's not appropriate to prevent an empty note, then we need to update the filter to at least close the brackets when it's a self closing tag. On Fri, Jun 19, 2020, 07:50 David Haslam wrote: > Hi everyone, > > Today I was testing the updated HunUj module in CrossWire Beta and I came > across an unusual anomaly in OSIS that almost escaped being detected. > > If one gives the following command: > > diatheke -b HunUj -b plain -k Gen.32.2 > > the output is > > Genesis 32:2: Jákób is útnak indult, és találkoztak vele Isten angyalai. [ > (HunUj) > > "What's odd about that?" one might ask > > It's perfectly normal but for the unepected [ at the end of the verse text. > > Upon inspection using osis2mod, the verse text ends with an OSIS note... > > $$$Genesis 32:2 > Jákób is útnak indult, és találkoztak vele Isten angyalai. osisID="Gen.32.2!crossReference.a" osisRef="Gen.32.2" > type="crossReference"/> > > Observe closely, the OSIS note element is self-closing and therefore > contains no note text or reference element. > > Now imagine the module developer getting ready to submit the module. He > runs the OSIS through XML syntax check and then proceeds to validate it to > the OSIS schema. It passes both. The self-closing note element is perfectly > valid OSIS even though it's semantically deficient. > > Had I not noticed the anomalous [ in the diatheke output, this source text > anomaly would have remained undetected. > > So the question for SWORD developers is this: Why does diatheke plain text > output include the ] ? > > I'm not complaining. I'm glad that it behaved in this way, otherwise the > OSIS anomaly would have completely passed us by. > There are no other similar anomalies elsewhere in the HunUj module. > > I'd just like to understand better how exactly diatheke parses this > peculiar construct and thus give the otherwise unexpected ] > > The textual bug is very interesting to me, because I can think of no > readily available utility whereby it could have been flagged up in the OSIS > file. If you know of such an XML tool, we'd all benefit from you sharing > your wisdom and experience. > > > Best regards, > > David > > Sent with ProtonMail Secure Email. > > > ___ > 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