0 votes

I’ve just tracked down the cause of a crash on someone’s project to a line Unfortunately there was a think-o when someone was writing the template for FRT books, and this line was included:

\rem sorta will sort by \toc1, sortb by \toc2, sortc by \toc3

This is pretty much guaranteed to cause a crash / undefined behaviour.

If you have a Front matter that includes that line, change it so that it reads:
\rem sorta will sort by toc1, sortb by toc2 , sortc by toc3
I.e. remove the slashes. Otherwise you will experience crashes.

Earlier versions of the USFM standard were a bit vague, but Paratext and the USFM-3 standard do NOT describe \rem as ‘ignore the rest of this line’, but as a paragraph style that produces no output.
This means:

  1. \rem continues until the next paragraph marker
  2. \rem still has to process any markers it contains. (how else will it spot the next paragraph-marker?).
  3. Since \toc1 and friends are also described as paragraph markers (although not used as such) they should cancel \rem
PTXprint by (737 points)

1 Answer

0 votes

Correction… Point 3 above is probably incorrect. The standard states that “All paragraph markers should be preceded by a single newline.” Therefore, I feel that it is legitimate for the code to entirely ignore \toc1 etc. in the above situation.
I’m just submitting a small change (which will be available in a week or so, I guess), which obeys the following logic:

  1. USFM codes occurring after \rem and on the same line will be ignored.
  2. After that 1st line, \rem will continue as it has been doing until now: ignoring text but acting on any USFM codes met.
  3. \toc1 etc. are now recognised as paragraph breaks.
by (737 points)

Related questions

Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
For where two or three gather in my name, there am I with them.
Matthew 18:20
2,645 questions
5,394 answers
5,065 comments
1,438 users