The bug is now fixed in SVN.

On May 19, 2009, at 8:32 AM, DM Smith wrote:

I've verified that this is a bug and entered a bug report. I'm working on a fix.

I also added a feature request for handling comments.

In Him,
        DM

On May 18, 2009, at 6:55 PM, DM Smith wrote:


On May 18, 2009, at 12:06 AM, Ben Morgan wrote:

osis2mod doesn't handle comments - is this known/cared about?

So far it does not know about comments. It would be a nice addition. I think the behavior should be to skip all content (i.e. exclude it from the module)from an opening <!-- to a closing -->. While this does not match the xml spec, it probably would be adequate. The xml spec does not allow for nesting comments in comments. I suppose that we could also look for a --> and if we are not in a comment that it would be an error.

osis2mod currently assumes that a <div eID="..."> that appears outside a verse, but inside a chapter is a chapter-closing div (presumably because that is how commentaries close chapters).

I don't think it should. Osis2mod has a stack that it uses to pair start tags with end tags. Basically, it should, upon finding a </ div>, consult the stack to see what the opening element is. If it is a chapter div, then it closes the chapter.


This breaks the pre-verse logic when you have this type of thing (inside a chapter):
<div type="section">
<title>Genesis 1.1 title</title>
<verse osisID="Gen.1.1" osisRef="Gen.1.1">Verse 1 text</verse>
</div>

This closing div should be matched, via the stack, with <div type="section">.

<div type="section">
The intended behavior of osis2mod upon seeing an opening tag between two verses is to mark it as starting pre-verse material. This <div type="section"> should be attached to the beginning of
<title>Genesis 1.2 title</title>
<verse osisID="Gen.1.2" osisRef="Gen.1.2">Verse 2 text</verse>
</div>

This should put Genesis1.2 title in Genesis 1:2. However, it currently puts it at the end of Genesis 1:1 due to the closing div.

So, if it doesn't do what it should do, the way it should, then it is a bug and needs to be fixed.


I have fixed two other problems today with osis2mod:
1) due to typo, the default storage was LZSS compression
2) pre-verse material which was handled was not matching the sID with the eID

Thank you so much.


I wonder if we need to release some of the important utilities at different times from the engine. (i.e. have a osis2mod release once problems are fixed with it)

I can go both ways on this. It is important that osis2mod builds modules that can be read by a particular version of the SWORD engine. Even with SWORD 1.5.11, osis2mod built modules that would work with 1.5.9 front-ends. The current osis2mod requires a 1.6.0 engine.

As to bug fixes, my recommendation is almost always to use SVN head. The only exception to this was during the development of av11n, which broke osis2mod for a while. In that case, getting osis2mod from head and building against 1.5.11 would have been great.

I realize that this is generally beyond Windows users. And most users of a distribution expect the code there to be current with the latest release, even though that has not been true. Perhaps the old days are gone, where recommending to Linux users to build something is typical.

I think we need to start a regression test case. Perhaps the following would work. An OSIS xml input file, like above that does not have real text, but gives a suitable placeholder. And a raw file built from the input. I think we can stick with either NT or OT references so that we only have one file.

Running it with DEBUG compiled in and with the -d 2 flag to produce verse milestones would help identify where the problems occur.

Then as someone reports a problem, it can be added to the input file, and the output file could be updated too. The regression test case would not catch unrepresented, problematic constructs, but it would prevent regression due to either improvements to osis2mod or to the SWORD engine that it uses.

I've got a start of such a file and we have a spot on the wiki for it too. Now to meld them together.

In Him,
        DM


God Bless,
Ben
-------------------------------------------------------------------------------------------
Multitudes, multitudes,
 in the valley of decision!
For the day of the LORD is near
 in the valley of decision.

Giôên 3:14 (ESV)

_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to