[sword-devel] another OSIS weirdness: headers in LEB
Peter von Kaehne
refdoc at gmx.net
Thu Mar 25 12:33:32 MST 2010
Also for a German module I made. Missing headlines, missing parts of
verses. But the OSIS looks ok
Peterjohnduffy at cgcf.net wrote:
> This looks similar to the heading problem reported here:
> http://sourceforge.net/tracker/?func=detail&aid=2954856&group_id=954&atid=10
> 0954
> where the problem was noted by Martin Gruner as html not allowing a title
> element to be within the body.
>
> John Duffy
>
>
>> -----Original Message-----
>> From: Karl Kleinpaste [mailto:karl at kleinpaste.org]
>> Sent: 25 March 2010 11:51
>> To: sword-devel at crosswire.org
>> Subject: [sword-devel] another OSIS weirdness: headers in LEB
>>
>> So the new LEB from Logos came out, and there's a new module in the
>> CrossWire repo. I picked it up, and I turned on footnotes
>> and headings.
>>
>> Before I turned on headings, display looked pretty normal, though I
>> could question excess line breaks in Matt 1:23. Turning on
>> headings, I
>> get this psychotically overwrought whitespace nightmare, and
>> I've got no
>> actual headings.
>>
>> Screenshots are too big to send to the list, so look here:
>> http://karl.kleinpaste.org/.../LEB-Mat1-noHeadings.png
>> http://karl.kleinpaste.org/.../LEB-Mat1-Headings.png
>>
>> The lack of real headings concerned me pretty seriously, considering
>> that I had looked at the OSIS source and could see them there, so I
>> started up gdb and breakpointed Xiphos to see what it was doing with
>> headers. This heading analysis works in every other OSIS module.
>>
>> sprintf(heading, "%d", x);
>> while ((preverse = be->get_entry_attribute("Heading",
>> "Preverse",
>>
>> heading)) != NULL) {
>> preverse2 = mod.RenderText(preverse);
>> text = g_strdup_printf("<br><b>%s</b><br><br>",
>> (((ops->strongs ||
>> ops->lemmas) ||
>> ops->morphs)
>> ? block_render(preverse2)
>> : preverse2));
>> CleanupContent(text, ops, mod.Name());
>>
>> cVerse.AppendHeader(text);
>> g_free((gchar *)text);
>> g_free((gchar *)preverse);
>> ++x;
>> sprintf(heading, "%d", x);
>> }
>>
>> "be" is our backend object, accessing the engine. We get the heading,
>> we render it according to the module's needs, and then we wrap it in a
>> bit of extra HTML markup before we append it to the total.
>>
>> Here's a copy/paste of using gdb to watch this happen, for Matt 2:1,
>> which has a heading, "Wise Men Visit Jesus."
>>
>> | (gdb) s
>> | CacheHeader (cVerse=..., mod=..., ops=0x51c3fa0,
>> be=0xbb4860) at ../src/main/display.cc:773
>> | 773 int x = 0;
>> | (gdb) n
>> | 778 cVerse.SetHeader("");
>> | (gdb)
>> | 780 sprintf(heading, "%d", x);
>> | (gdb) p cVerse
>> | $4 = (ModuleCache::CacheVerse &) @0x2137048: {_text =
>> | 0x51e0ec0 "Now <i>after</i><a
>> href=\"passagestudy.jsp?action=showNote&type=n&value=1&module=
>> LEB&passage=Matthew+2%3A1\"><small><sup>*n</sup></small></a>
>> Jesus was born in Bethlehem of Judea in the days of Herod
>> th"..., _header = 0x50bcc10 "", _flags = 11269}
>> | (gdb) n
>> | 781 while ((preverse =
>> be->get_entry_attribute("Heading", "Preverse",
>> | (gdb)
>> | 783 preverse2 = mod.RenderText(preverse);
>> | (gdb) p preverse
>> | $5 = (const gchar *)
>> | 0x51dfff0 "<div sID=\"gen43\" type=\"section\"/>
>> <title>Wise Men Visit Jesus</title> <div sID=\"gen44\"
>> type=\"paragraph\"/>"
>> | (gdb) n
>> | 788 : preverse2));
>> | (gdb) p preverse2
>> | $6 = (const gchar *) 0x3b9c9c0 " <b></b><br /> <!P><br />"
>> | (gdb) n
>> | 789 CleanupContent(text, ops, mod.Name());
>> | (gdb) p text
>> | $7 = (gchar *) 0x51bfa80 "<br><b> <b></b><br /> <!P><br
>> /></b><br><br>"
>> | (gdb) n
>> | 791 cVerse.AppendHeader(text);
>>
>> Please note, at $5 we had a normal OSIS heading, but just one line of
>> code execution later, at $6 what has come back from RenderText()
>> is...total nonsense. A space, an empty bold sequence (where "Wise Men
>> Visit Jesus" should have appeared), a line break, a paragraph
>> break, and
>> a line break? No wonder it looks psychotic.
>>
>> I don't know what to say about it. I can't very well go looking for
>> what's happening inside Xiphos, because this works fine for
>> KJV and beta
>> NASB and every other OSIS module. But on LEB, RenderText() is simply
>> freaked out for some reason. Encoding problem? osis2mod problem?
>>
>> I'm using Sword at -r2507.
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at 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 at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel
mailing list