TempleOSTS_130707.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:45:45 +02:00
1 parent 17b71f1a2d
commit 1343005a29
617 files changed
+14399 -25130

No files matched your search

+149
View File
@@ -0,0 +1,149 @@
#help_index "Utils;Cmd Line (Typically)"
U0 TXTPutS(CDoc *doc,U8 *st,I64 *_col)
{
U8 *ch;
while (ch=*st++) {
switch (ch) {
case '\t':
do {
DocPutKey(doc,CH_SPACE,0);
*_col=*_col+1;
} while (*_col&7);
break;
case 'ã':
DocPutS(doc,"pi");
*_col=*_col+1;
break;
case 'é':
DocPutS(doc,"theta");
*_col=*_col+1;
break;
case 'è':
DocPutS(doc,"phi");
*_col=*_col+1;
break;
case 'ê':
DocPutS(doc,"omega");
*_col=*_col+1;
break;
case 'ì':
DocPutS(doc,"inf");
*_col=*_col+1;
break;
case 'æ':
DocPutS(doc,"u");
*_col=*_col+1;
break;
case CH_SHIFT_SPACE:
DocPutS(doc," ");
*_col=*_col+1;
break;
default:
if (CH_SPACE<=ch<0x7F || ch=='\n')
DocPutKey(doc,ch,0);
else
DocPutS(doc,".");
*_col=*_col+1;
}
}
}
public CDoc *Doc2TXT(CDoc *doc_in)
{
CDocEntry *doc_e,*doc_e2;
I64 y,col;
CDoc *doc_out=DocNew;
Bool unlock_doc_in=DocLock(doc_in),no_backward;
DocRecalc(doc_in);
doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR;
doc_e=doc_in->root.next;
col=doc_e->x;
y=doc_e->y;
while (doc_e!=doc_in) {
if (!(doc_e->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP))) {
while (y<doc_e->y) {
TXTPutS(doc_out,"\n",&col);
y++;
col=0;
}
no_backward=TRUE;
doc_e2=doc_e->next;
while (doc_e2!=doc_in && doc_e2->y==doc_e->y) {
if (doc_e2->x<doc_e->x) {
no_backward=FALSE;
break;
}
doc_e2=doc_e2->next;
}
if (no_backward)
while (col<doc_e->x)
TXTPutS(doc_out," ",&col);
switch (doc_e->type_u8) {
case DOCT_TEXT:
TXTPutS(doc_out,doc_e->tag,&col);
break;
case DOCT_TAB:
TXTPutS(doc_out,"\t",&col);
break;
case DOCT_HTML_IMG:
break;
case DOCT_HTML_VIDEO:
break;
case DOCT_HTML_CODE:
break;
case DOCT_SPRITE:
break;
default:
if (Bt(doc_tag_types,doc_e->type_u8))
TXTPutS(doc_out,doc_e->tag,&col);
}
}
doc_e=doc_e->next;
}
while (y<doc_e->y) {
TXTPutS(doc_out,"\n",&col);
y++;
col=0;
}
doc_out->cur_entry=&doc_out->root;
DocRecalc(doc_out);
if (unlock_doc_in)
DocUnlock(doc_in);
return doc_out;
}
public U0 ToTXT(U8 *_in_name,U8 *_out_name=NULL,I64 width=70)
{
U8 *in_name,*out_name;
CDoc *doc_in,*doc_out;
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
SetWinHorz(0,width-1); //This sets doc width for word wrap
in_name=DftExt(_in_name,"TXT.Z"),
if (_out_name)
out_name=DftExt(_out_name,"TXT");
else
out_name=ChgExt(_in_name,"TXT");
doc_in=DocRead(in_name);
doc_out=Doc2TXT(doc_in);
StrCpy(&doc_out->filename.name,out_name);
SettingsPop;
DocWrite(doc_out);
DocDel(doc_in);
DocDel(doc_out);
Free(in_name);
Free(out_name);
}
#help_index ""