[jsword-devel] Module Format
Joe Walker
jsword-devel@crosswire.org
Sat, 29 Mar 2003 06:53:36 +0000
Hi,
I think there may be a minor bug on line 172 of zverse.cpp, it reads:
if (read(compfp[testmt-1]->getFd(), &ulVerseStart, 4) < 2)
But I guess it probably should read:
if (read(compfp[testmt-1]->getFd(), &ulVerseStart, 4) < 4)
It's unlikely that the line would read 3 bytes, but if it did the code
wouldn't fail like it should.
Joe.
Joe Walker wrote:
>
> Thanks, I'd not even seen the %.
>
> I remember something like 7 years ago when I moved from C to Java
> feeling like everything looked the same, but for some reason I
> couldn't feel the ground under my feet any more. I guess I'm just
> having to learn to think in memory maps again.
>
> There are just so many things like multi-value return types and
> pointer arithmetic that make this conversion hard. It'll be good when
> I can get back up to speed again.
>
> Joe.
>
> Troy A. Griffitts wrote:
>
>> :)
>> Joe,
>> The individual who initially wrote the compressed drivers chose to
>> use different file names depending upon the BLOCKTYPE of the
>> compression. The files that you mention that end in bz* are
>> basically saying that the indecies are BOOK oriented (an entry of the
>> top level index will identify a compressed block of 1 Bible book) ,
>> although the best place to determine this is from the .conf file.
>>
>> The declaration and use of the mechanisms, in the code, is in two parts:
>>
>> Near the top of zVerse you will find the construct:
>>
>> const char zVerse::uniqueIndexID[] = {'X', 'r', 'v', 'c', 'b'};
>>
>> Then index names are built with something like this excerpt from the
>> code:
>>
>> sprintf(buf, "%s/ot.%czs", path, uniqueIndexID[blockType]);
>>
>> remember %c means CHARACTER, which is replaced by the value of the
>> param passed (which, I'm sure you knew, but I admit '%czs' does seem
>> to make the eye just see the CZS as a unit)
>>
>> Hope this helps,
>> -Troy.
>>
>>
>>
>> Joe Walker wrote:
>>
>>>
>>> Hi,
>>>
>>> My copy of the RSV module contains files with the extension bz* and
>>> not cz* as read by zVerse.cpp, and I can't find the string bzs in
>>> the source anywhere that makes sense. What am I doing wrong?
>>>
>>> I've spent hours and hours digging through the C source, and either
>>> my C is very rusty or it is even harder that I imagined to convert C
>>> with lots of memory/pointer manipulation into Java. Could anyone
>>> explain the file format of the GZIP compressed modules? My head
>>> hurts and I'm not making much progress at the moment. Actually doing
>>> the decompression is easy - it's reading an array of bytes from disk
>>> that I am struggling with.
>>>
>>> Thanks,
>>>
>>> Joe.
>>>
>>>
>>> _______________________________________________
>>> jsword-devel mailing list
>>> jsword-devel@crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>
>>
>>
>>
>>
>> _______________________________________________
>> jsword-devel mailing list
>> jsword-devel@crosswire.org
>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>
>
>
>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel