TempleOSCDV4.11.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:47:50 +02:00
1 parent 9206246147
commit 93ca216483
662 files changed
+6431 -7369

No files matched your search

+348
View File
@@ -0,0 +1,348 @@
#help_index "God"
U0 BibleInit()
{
DefineLstLoad("ST_BIBLE_BOOKS",
"Genesis\0"
"Exodus\0"
"Leviticus\0"
"Numbers\0"
"Deuteronomy\0"
"Joshua\0"
"Judges\0"
"Ruth\0"
"1 Samuel\0"
"2 Samuel\0"
"1 Kings\0"
"2 Kings\0"
"1 Chronicles\0"
"2 Chronicles\0"
"Ezra\0"
"Nehemiah\0"
"Esther\0"
"Job\0"
"Psalms\0"
"Proverbs\0"
"Ecclesiastes\0"
"Song of Songs\0"
"Isaiah\0"
"Jeremiah\0"
"Lamentations\0"
"Ezekiel\0"
"Daniel\0"
"Hosea\0"
"Joel\0"
"Amos\0"
"Obadiah\0"
"Jonah\0"
"Micah\0"
"Nahum\0"
"Habakkuk\0"
"Zephaniah\0"
"Haggai\0"
"Zechariah\0"
"Malachi\0"
"Matthew\0"
"Mark\0"
"Luke\0"
"John\0"
"Acts\0"
"Romans\0"
"1 Corinthians\0"
"2 Corinthians\0"
"Galatians\0"
"Ephesians\0"
"Philippians\0"
"Colossians\0"
"1 Thessalonians\0"
"2 Thessalonians\0"
"1 Timothy\0"
"2 Timothy\0"
"Titus\0"
"Philemon\0"
"Hebrews\0"
"James\0"
"1 Peter\0"
"2 Peter\0"
"1 John\0"
"2 John\0"
"3 John\0"
"Jude\0"
"Revelation\0");
DefineLstLoad("ST_BIBLE_BOOK_LINES",
"297\0"
"5068\0"
"9123\0"
"12005\0"
"15977\0"
"19168\0"
"21329\0"
"23598\0"
"23902\0"
"26892\0"
"29345\0"
"32241\0"
"34961\0"
"37633\0"
"40756\0"
"41671\0"
"42963\0"
"43605\0"
"46190\0"
"53793\0"
"56267\0"
"56966\0"
"57332\0"
"61806\0"
"66736\0"
"67217\0"
"71804\0"
"73189\0"
"73876\0"
"74130\0"
"74615\0"
"74697\0"
"74860\0"
"75241\0"
"75416\0"
"75604\0"
"75806\0"
"75932\0"
"76684\0"
"76908\0"
"79970\0"
"81941\0"
"85266\0"
"87803\0"
"90914\0"
"92110\0"
"93323\0"
"94088\0"
"94514\0"
"94869\0"
"95153\0"
"95402\0"
"95647\0"
"95772\0"
"96090\0"
"96320\0"
"96440\0"
"96500\0"
"97370\0"
"97687\0"
"97976\0"
"98163\0"
"98506\0"
"98552\0"
"98597\0"
"98684\0"
"100111\0");
DefinePrint("ST_BIBLE_LINES","%d",
Str2I64(DefineSub(DefineCnt("ST_BIBLE_BOOK_LINES")-1,
"ST_BIBLE_BOOK_LINES"))-1);
} BibleInit;
public U8 *BibleLine2Verse(I64 line,I64 separate_ch=CH_SPACE)
{//Line number to verse str, Malloc()ed.
//Separate with <SPACE> or ','. If you pass '%', it uses "%20".
CDoc *doc;
CDocEntry *doc_e;
I64 i=0,cnt=DefineCnt("ST_BIBLE_BOOKS"),start=0,last_start=0;
U8 *ptr=DefineSub(0,"ST_BIBLE_BOOK_LINES"),*ptr2;
while (i<=cnt) {
last_start=start;
start=Str2I64(ptr);
if (line<start)
break;
i++;
ptr+=StrLen(ptr)+1;
}
if (0<=--i<cnt) {
doc=DocRead(BIBLE_FILENAME,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocLineNumGoTo(doc,line); //one based
doc_e=doc->cur_entry;
while (doc_e!=doc && (doc_e->type_u8!=DOCT_TEXT || !*doc_e->tag))
doc_e=doc_e->next;
if (doc_e->type_u8==DOCT_TEXT && '0'<=*doc_e->tag<='9') {
ptr=ptr2=doc_e->tag;
while ('0'<=*ptr2<='9' || *ptr2==':')
ptr2++;
*ptr2=0;
if (separate_ch=='%')
ptr=MStrPrint("%Z%%20%s",i,"ST_BIBLE_BOOKS",ptr);
else
ptr=MStrPrint("%Z%c%s",i,"ST_BIBLE_BOOKS",separate_ch,ptr);
} else {
while (TRUE) {
doc_e=doc_e->last;
if (doc_e==doc) {
ptr=NULL;
break;
}
if (doc_e->y+1<last_start) {
ptr=MStrPrint("%Z",i,"ST_BIBLE_BOOKS");
break;
}
if (doc_e->type_u8==DOCT_TEXT && StrLen(doc_e->tag)>=3) {
ptr=doc_e->tag+StrLen(doc_e->tag)-1;
while (ptr>doc_e->tag && (!('0'<=*(ptr-1)<='9') || *ptr!=':' ||
!('0'<=*(ptr+1)<='9')))
ptr--;
ptr--;
while (ptr>=doc_e->tag && '0'<=*ptr<='9')
ptr--;
ptr2=++ptr;
if ('0'<=*ptr2++<='9') {
while ('0'<=*ptr2<='9')
ptr2++;
if (*ptr2++==':' && '0'<=*ptr2++<='9') {
while ('0'<=*ptr2<='9')
ptr2++;
*ptr2=0;
if (separate_ch=='%')
ptr=MStrPrint("%Z%%20%s",i,"ST_BIBLE_BOOKS",ptr);
else
ptr=MStrPrint("%Z%c%s",i,"ST_BIBLE_BOOKS",separate_ch,ptr);
break;
}
}
}
}
}
DocDel(doc);
return ptr;
} else
return NULL;
}
public U0 BibleLines(CDoc *doc_out=NULL,I64 start,I64 lines,
U8 *bible_filename=BIBLE_FILENAME)
{//Put N line starting at line M into doc.
CDoc *doc_in;
CDocEntry *doc_e;
if (!doc_out) doc_out=DocPut;
if (doc_out && FileFind(bible_filename)) {
doc_in=DocRead(bible_filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocLineNumGoTo(doc_in,start); //one based
doc_e=doc_in->cur_entry;
while (lines>0 && doc_e!=doc_in) {
if (doc_e->type_u8==DOCT_TEXT)
DocPrint(doc_out,"%s",doc_e->tag);
else if (doc_e->type_u8==DOCT_NEW_LINE) {
DocPutKey(doc_out,'\n');
lines--;
}
doc_e=doc_e->next;
}
DocDel(doc_in);
}
}
public U0 BibleVerse(CDoc *doc_out=NULL,U8 *verse,I64 lines)
{//Put N lines starting at verse str into doc.
I64 i;
CDoc *doc_in;
CDocEntry *doc_e;
U8 *st,*st2;
if (!doc_out) doc_out=DocPut;
if (doc_out && FileFind(BIBLE_FILENAME)) {
st=StrNew(verse);
st2=StrNew(verse);
if (StrOcc(st,','))
StrLastRem(st,",",st2);
else
*st2=0;
i=DefineMatch(st,"ST_BIBLE_BOOKS",LMF_IGNORE_CASE);
if (i>=0) {
i=Str2I64(DefineSub(i,"ST_BIBLE_BOOK_LINES"));
doc_in=DocRead(BIBLE_FILENAME,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocLineNumGoTo(doc_in,i); //one based
if (*st2) {
StrCpy(doc_in->find_replace->find_text,st2);
EdFindNext(doc_in);
}
doc_e=doc_in->cur_entry;
while (lines>0 && doc_e!=doc_in) {
if (doc_e->type_u8==DOCT_TEXT)
DocPrint(doc_out,"%s",doc_e->tag);
else if (doc_e->type_u8==DOCT_NEW_LINE) {
DocPutKey(doc_out,'\n');
lines--;
}
doc_e=doc_e->next;
}
DocDel(doc_in);
}
Free(st);
Free(st2);
}
}
public CDoc *BibleDoc()
{//Return Bible as DolDoc with trees.
CDoc *res=DocRead(BIBLE_FILENAME);
CDocEntry *doc_e=res->head.next,*doc_e1;
Bool open_chapter=FALSE;
U8 *ptr=Define("ST_BIBLE_BOOK_LINES");
I64 book,book_cnt=DefineCnt("ST_BIBLE_BOOK_LINES")-1,
chapter,
line=Str2I64(ptr,,&ptr);
ptr++;
for (book=0;book<book_cnt;book++) {
while (doc_e->y+1<line) {
doc_e1=doc_e->next;
DocEntryDel(res,doc_e);
doc_e=doc_e1;
}
res->cur_entry=doc_e;
res->cur_col=0;
DocPrint(res,"$$TR,\"%Z\"$$\n$$ID,2$$",book,"ST_BIBLE_BOOKS");
line=Str2I64(ptr,,&ptr);
ptr++;
chapter=1;
while (doc_e->y+1<line) {
doc_e1=doc_e->next;
if (doc_e->type_u8==DOCT_TEXT && StrMatch(":1 ",doc_e->tag)) {
res->cur_entry=doc_e;
res->cur_col=0;
if (open_chapter) {
DocPrint(res,"$$ID,-2$$");
open_chapter=FALSE;
}
DocPrint(res,"$$TR,\"%d\"$$\n$$ID,2$$",chapter++);
open_chapter=TRUE;
} else if (chapter==1) {
doc_e1=doc_e->next;
DocEntryDel(res,doc_e);
doc_e=doc_e1;
}
doc_e=doc_e1;
}
res->cur_entry=doc_e;
res->cur_col=0;
if (open_chapter) {
DocPrint(res,"$$ID,-2$$");
open_chapter=FALSE;
}
DocPrint(res,"$$ID,-2$$");
}
while (doc_e!=res) {
doc_e1=doc_e->next;
DocEntryDel(res,doc_e);
doc_e=doc_e1;
}
return res;
}
public U0 BibleView()
{//View Bible as DolDoc with trees.
U8 buf[STR_LEN];
CDoc *doc=BibleDoc;
StrPrint(buf,"AL:%d,1",doc);
Ed(buf);
DocDel(doc);
}
U0 CtrlAltB(I64)
{
PopUp("BibleView;");
}
CtrlAltCBSet('B',&CtrlAltB,"Cmd /Bible");