[sword-devel] another OSIS weirdness: headers in LEB
johnduffy at cgcf.net
johnduffy at cgcf.net
Thu Mar 25 07:53:33 MST 2010
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
More information about the sword-devel
mailing list