<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>As it stands - and I guess apart from David and Chris I am probably one of the most prolific users of this and the last, Perl based script, the occasions where I ended up in a crash are few and far in between. Much more often bad USFM produces bad OSIS, non validating OSIS, rather than crashes.&nbsp;</div>

<div>&nbsp;</div>

<div>BTW - Robert, you did make a bug report re a crash and I would like to process this - could you please add to the comments of ModTools 46 a test case?</div>

<div>&nbsp;</div>

<div>http://www.crosswire.org/tracker/browse/MODTOOLS-46?jql=project%20%3D%20MODTOOLS%20AND%20component%20%3D%20usfm2osis.py%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20ORDER%20BY%20priority%20DESC</div>

<div>&nbsp;</div>

<div>Thanks!</div>

<div>&nbsp;</div>

<div>Peter</div>

<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b>&nbsp;Montag, 29. Dezember 2014 um 19:35 Uhr<br/>
<b>Von:</b>&nbsp;&quot;Greg Hellings&quot; &lt;greg.hellings@gmail.com&gt;<br/>
<b>An:</b>&nbsp;&quot;SWORD Developers&#39; Collaboration Forum&quot; &lt;sword-devel@crosswire.org&gt;<br/>
<b>Betreff:</b>&nbsp;Re: [sword-devel] A call for Python programmers ...</div>

<div name="quoted-content">
<p>If you provide undefined/invalid input then the behavior of a convenience script being undefined should be no surprise. It is not the place of this script to be a USFM verification tool.</p>

<p>--Greg</p>

<div class="gmail_quote">On Dec 29, 2014 2:28 PM, &quot;Robert Hunt&quot; &lt;<a href="hunt.robertj@gmail.com" target="_parent">hunt.robertj@gmail.com</a>&gt; wrote:

<blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex;border-left: 1.0px rgb(204,204,204) solid;padding-left: 1.0ex;">
<div>On 30/12/14 06:29, Peter von Kaehne wrote:
<blockquote>
<pre>It is very well written and neatly done and does its job with near
perfection. I would welcome contributions to it, as long as they are
equally well done. </pre>
</blockquote>
Just for your info: usfm2osis.py basically treats each USFM book as a huge hunk of text to which it does a large number of global text substitutions. Although this, in fact, does make it a very neat and tidy program, I don&#39;t think it&#39;s nearly perfect. The main disadvantage of using this method can be expressed as two results to the user (and I think these are quite serious defects in terms of reliable module making as other threads attest):

<ol>
        <li>Certain errors or non-conformities in the USFM are not even detected (e.g., when &#92;d is used as a paragraph type marker with verses logically &quot;inside&quot; the &#92;d marker which is not actually documented [nor banned] in the USFM specification)<br/>
        &nbsp;</li>
        <li>If there is an error, the program is completely unable to give the user any indication of where (e.g., line number or chapter/verse) the error occurs because it has absolutely no concept of &quot;position within the file&quot;.</li>
</ol>

<p>Perhaps this is accounted for by running some other program first to thoroughly check that the formation of the USFM is within the expected/programmed range???</p>

<p>Robert.</p>
</div>
<br/>
_______________________________________________<br/>
sword-devel mailing list: <a href="sword-devel@crosswire.org" target="_parent">sword-devel@crosswire.org</a><br/>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br/>
Instructions to unsubscribe/change your settings at above page</blockquote>
</div>
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a> Instructions to unsubscribe/change your settings at above page</div>
</div>
</div></div></body></html>