TempleOSCDV4.04.ISO
This commit is contained in:
1 parent
0f1a4a5d65
commit
d1856315e0
67 files changed
+722
-697
No files matched your search
@@ -103,6 +103,16 @@ U0 EdRIExp(CRILex *rx)
|
||||
rx->depth-=3;
|
||||
if (rx->depth<0) rx->depth=0;
|
||||
}
|
||||
} else if (rx->cc1->token=='[') {
|
||||
if (!rx->exp_depth++)
|
||||
rx->depth+=3;
|
||||
EdRILex(rx);
|
||||
while (rx->cc1->token && rx->cc1->token!=']')
|
||||
EdRIExp(rx);
|
||||
if (!--rx->exp_depth) {
|
||||
rx->depth-=3;
|
||||
if (rx->depth<0) rx->depth=0;
|
||||
}
|
||||
}
|
||||
EdRILex(rx);
|
||||
}
|
||||
@@ -171,7 +181,6 @@ U0 EdRIStmt(CRILex *rx,Bool indent)
|
||||
EdRILex(rx);
|
||||
break;
|
||||
case KW_SWITCH:
|
||||
case KW_NOBOUND_SWITCH:
|
||||
EdRILex(rx);
|
||||
EdRIExp(rx);
|
||||
if (rx->cc1->token=='{') {
|
||||
|
||||
@@ -4,8 +4,8 @@ extern I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,
|
||||
Bool exited,I64 *_has_action=NULL);
|
||||
extern U0 DocFormBwd(CDoc *doc,Bool giveup=FALSE);
|
||||
extern U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
|
||||
extern U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...);
|
||||
extern U0 DocPrintPartial(CDoc *doc,U8 *fmt,...);
|
||||
extern U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...);
|
||||
extern U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...);
|
||||
extern CDocEntry *DocPutS(CDoc *doc,U8 *st);
|
||||
extern U8 *DocSave(CDoc *doc,I64 *_size=NULL);
|
||||
extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e);
|
||||
|
||||
@@ -8,7 +8,7 @@ U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _temp_u32_attr)
|
||||
I64 ch,ch1,last_ch,temp_u32_attr,mask_temp_u32_attr=_temp_u32_attr&0xFFFFF000,
|
||||
comment_depth,brace_depth=s->brace_depth,paren_depth=s->paren_depth;
|
||||
CHash *temph;
|
||||
nobound_switch (s->state) {
|
||||
switch [s->state] {
|
||||
case DOCSS_NORMAL:
|
||||
hl_normal:
|
||||
while (len) {
|
||||
|
||||
@@ -81,7 +81,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
|
||||
}
|
||||
buf2=MStrPrint("%s,",buf);
|
||||
Free(buf); buf=buf2;
|
||||
nobound_switch (doc_e->type_u8) {
|
||||
switch [doc_e->type_u8] {
|
||||
case DOCT_HEX_ED:
|
||||
buf2=MStrPrint("%s%d,",buf,doc_e->len);
|
||||
Free(buf); buf=buf2;
|
||||
@@ -114,14 +114,14 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
|
||||
buf2=MStrPrint("%s%d,",buf,doc_e->attr);
|
||||
Free(buf); buf=buf2;
|
||||
}
|
||||
case DOCT_NUM_TYPES-1: //nobound_switch
|
||||
case DOCT_NUM_TYPES-1: //nobound switch
|
||||
break;
|
||||
}
|
||||
de_flags=doc_e->de_flags & DOCEG_HAS_ARG;
|
||||
while (de_flags) {
|
||||
j=Bsf(de_flags);
|
||||
Btr(&de_flags,j);
|
||||
nobound_switch (j) {
|
||||
switch [j] {
|
||||
case DOCEf_TAG:
|
||||
if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_MACRO &&
|
||||
(doc_e->de_flags&DOCEF_LEFT_MACRO &&
|
||||
@@ -202,7 +202,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
|
||||
case DOCEf_USER_DATA:
|
||||
buf2=MStrPrint("%sU=0x%X,",buf,doc_e->user_data);
|
||||
break;
|
||||
case DOCEf_NUM_FLAGS-1: //nobound_switch
|
||||
case DOCEf_NUM_FLAGS-1: //nobound switch
|
||||
break;
|
||||
}
|
||||
Free(buf); buf=buf2;
|
||||
@@ -243,7 +243,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
|
||||
doc_e->len=DOCE_LEN_DFT;
|
||||
j=PrsDocFlags(cc,&doc_e->de_flags,&doc_e->type);
|
||||
cc->htc.hash_table_lst=old_hash_table_lst;
|
||||
nobound_switch (i) {
|
||||
switch [i] {
|
||||
case DOCT_CHECK_BOX:
|
||||
doc_e->raw_type=RT_I8;
|
||||
break;
|
||||
@@ -305,7 +305,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
|
||||
j=Bsf(de_flags);
|
||||
if (j<0 || Bts(&processed_flags,j))
|
||||
goto pd_err;
|
||||
nobound_switch (j) {//TODO: Might check for expression errors
|
||||
switch [j] {//TODO: Might check for expression errors
|
||||
case DOCEf_TAG:
|
||||
if (!doc_e->tag) {
|
||||
//If a $$MA,LM=""$$, Tag is filled when the LM is processed.
|
||||
@@ -458,7 +458,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
|
||||
else
|
||||
goto pd_err;
|
||||
break;
|
||||
case DOCEf_NUM_FLAGS-1: //nobound_switch
|
||||
case DOCEf_NUM_FLAGS-1: //nobound switch
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ CDocEntry *DocPutS(CDoc *doc,U8 *st)
|
||||
return result;
|
||||
}
|
||||
|
||||
public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...)
|
||||
public CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...)
|
||||
{//You must not print partial doc cmds.
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
CDocEntry *result=DocPutS(doc,buf);
|
||||
@@ -163,13 +163,13 @@ public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...)
|
||||
return result;
|
||||
}
|
||||
|
||||
public U0 DocPrintPartial(CDoc *doc,U8 *fmt,...)
|
||||
public U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...)
|
||||
{//Lets you print half a doc cmd, if you like.
|
||||
U8 *buf,*st,*src,*dst,*ptr,*ptr2;
|
||||
Bool unlock;
|
||||
CDocEntry *doc_ce,*doc_ne;
|
||||
I64 ch,i,j;
|
||||
if (!fmt)
|
||||
if (!doc && !(doc=DocPut))
|
||||
return;
|
||||
buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
ptr=buf;
|
||||
@@ -238,7 +238,7 @@ Bool KDDocPutS(U8 *st)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
public U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...)
|
||||
public U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...)
|
||||
{//Prints multiple whole cmds all-at-once. Might need this when printing trees.
|
||||
U8 *buf;
|
||||
Bool unlock;
|
||||
|
||||
@@ -258,7 +258,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
|
||||
CDocBin *tempb;
|
||||
CDocSettings *s;
|
||||
Bool del_cl,skipped_update,tree_collapsed,same_win,more=FALSE,
|
||||
find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock;
|
||||
find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock,clear_holds;
|
||||
CTask *win_task,*mem_task;
|
||||
CDC *dc;
|
||||
U8 *bptr,*ptr,buf[STR_LEN],ch;
|
||||
@@ -289,7 +289,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
|
||||
mem_task=doc->mem_task;
|
||||
blink_flag=Blink;
|
||||
dc=NULL;
|
||||
nobound_switch (recalc_flags&RECALCG_MASK) {
|
||||
switch [recalc_flags&RECALCG_MASK] {
|
||||
case RECALCt_FIND_CURSOR:
|
||||
find_cursor=TRUE;
|
||||
if (win_task)
|
||||
@@ -620,7 +620,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
|
||||
}
|
||||
}
|
||||
}
|
||||
nobound_switch (doc_e->type_u8) {
|
||||
switch [doc_e->type_u8] {
|
||||
case DOCT_TEXT:
|
||||
if (!col2 && !(doc_e->de_flags
|
||||
&(DOCEF_TREE|DOCEF_LST|DOCEF_TAG_CB|DOCEF_DEFINE|
|
||||
@@ -1036,13 +1036,17 @@ rc_adjust_xy:
|
||||
break;
|
||||
case DOCT_CLEAR:
|
||||
next_clear_found=doc_e;
|
||||
if (doc_e->de_flags&DOCEF_HOLD)
|
||||
clear_holds=TRUE;
|
||||
else
|
||||
clear_holds=FALSE;
|
||||
break;
|
||||
case DOCT_HTML_CODE:
|
||||
if (recalc_flags&RECALCF_TO_HTML &&
|
||||
doc_e->de_flags&DOCEF_TAG && doc_e->tag)
|
||||
x-=StrLen(doc_e->tag);
|
||||
break;
|
||||
case DOCT_NUM_TYPES-1: //nobound_switch
|
||||
case DOCT_NUM_TYPES-1: //nobound switch
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1309,7 +1313,7 @@ rc_skip:
|
||||
if (full_refresh) {
|
||||
i=num_entries-doc->max_entries;
|
||||
if (next_clear_found) {
|
||||
DocDelToEntry(doc,next_clear_found);
|
||||
DocDelToEntry(doc,next_clear_found,clear_holds);
|
||||
DocRecalc(doc,recalc_flags);
|
||||
} else if (i>1024) {
|
||||
DocDelToNum(doc,i);
|
||||
|
||||
@@ -22,12 +22,12 @@ U0 DocDelToNum(CDoc *doc,I64 num)
|
||||
}
|
||||
}
|
||||
|
||||
U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry)
|
||||
U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry,Bool clear_holds)
|
||||
{
|
||||
CDocEntry *doc_e=doc->root.next,*doc_e2;
|
||||
while (doc_e!=doc) {
|
||||
doc_e2=doc_e->next;
|
||||
if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))) {
|
||||
if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))||clear_holds) {
|
||||
if (doc_e==doc->cur_entry) {
|
||||
doc->cur_entry=doc_e2;
|
||||
doc->cur_col=doc_e2->min_col;
|
||||
@@ -117,14 +117,17 @@ public U0 DocBottom(CDoc *doc=NULL)
|
||||
DocUnlock(doc);
|
||||
}
|
||||
|
||||
public U0 DocClear(CDoc *doc=NULL)
|
||||
public U0 DocClear(CDoc *doc=NULL,Bool clear_holds=FALSE)
|
||||
{//Clear all doc entries, except +H, hold entries.
|
||||
Bool unlock;
|
||||
if (!doc && !(doc=DocPut))
|
||||
return;
|
||||
unlock=DocLock(doc);
|
||||
DocBottom(doc);
|
||||
DocPrint(doc,"$$CL$$");
|
||||
if (clear_holds)
|
||||
DocPrint(doc,"$$CL+H$$");
|
||||
else
|
||||
DocPrint(doc,"$$CL$$");
|
||||
DocRecalc(doc);
|
||||
if (unlock)
|
||||
DocUnlock(doc);
|
||||
@@ -171,7 +174,7 @@ public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL)
|
||||
|
||||
#help_index "DolDoc/Cmd Line (Typically);Cmd Line (Typically)"
|
||||
public I64 DocMax(I64 i=MAX_I64)
|
||||
{//Set max document entries. (Cmd line buffer.)
|
||||
{//Set max document entries. (Cmd line buffer size.)
|
||||
//Adjusts the size of the cmd line buf.
|
||||
//Normally, the cmd line deletes entries
|
||||
//when more are added and the old scroll up.
|
||||
|
||||
Reference in new issue
Block a user