[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