TempleOSCDV4.03.ISO
This commit is contained in:
1 parent
1541d7328d
commit
0f1a4a5d65
115 files changed
+5618
-4863
No files matched your search
+56
-50
@@ -35,7 +35,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64)
|
||||
if (cc>doc_ce->min_col) {
|
||||
if (IsEditableText(doc_ce) && cc<doc_ce->max_col) {
|
||||
dst=doc_ce->tag+cc;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ce->max_col=cc;
|
||||
QueIns(doc_ne,doc_ce);
|
||||
@@ -43,7 +43,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64)
|
||||
cc--;
|
||||
if (IsEditableText(doc_ce) && cc>doc_ce->min_col) {
|
||||
dst=doc_ce->tag+cc;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ce->max_col=cc;
|
||||
QueIns(doc_ne,doc_ce);
|
||||
@@ -68,7 +68,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64)
|
||||
cc=doc_ce->max_col-1;
|
||||
if (IsEditableText(doc_ce) && cc>doc_ce->min_col) {
|
||||
dst=doc_ce->tag+cc;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ce->max_col=cc;
|
||||
QueIns(doc_ne,doc_ce);
|
||||
@@ -112,7 +112,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64)
|
||||
if (cc<doc_ce->max_col) {
|
||||
if (IsEditableText(doc_ce) && cc>doc_ce->min_col) {
|
||||
dst=doc_ce->tag+cc;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ce->max_col=cc;
|
||||
QueIns(doc_ne,doc_ce);
|
||||
@@ -126,7 +126,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64)
|
||||
BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT);
|
||||
if (IsEditableText(doc_ce) && cc<doc_ce->max_col) {
|
||||
dst=doc_ce->tag+cc;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ne->type=DOCT_TEXT | old_color & -0x100;
|
||||
doc_ne->de_flags=old_de_flags|doldoc.dft_de_flags[DOCT_TEXT];
|
||||
@@ -188,7 +188,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64)
|
||||
if (IsEditableText(doc_ce)) {
|
||||
if (doc_ce->min_col<doc->cur_col<doc_ce->max_col-1) {
|
||||
dst=doc_ce->tag+doc->cur_col;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ne->x=doc_ce->x+doc->cur_col;
|
||||
doc_ce->max_col=doc->cur_col;
|
||||
@@ -255,7 +255,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64)
|
||||
if (IsEditableText(doc_ce) && doc_ce->x<x) {
|
||||
if (doc->cur_col<doc_ce->max_col-1) {
|
||||
dst=doc_ce->tag+doc->cur_col;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
if (sc>=0) {
|
||||
if (sc&SCF_SHIFT)
|
||||
@@ -301,7 +301,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64)
|
||||
if (IsEditableText(doc_ce)) {
|
||||
if (doc->cur_col>doc_ce->min_col && doc->cur_col<doc_ce->max_col-1) {
|
||||
dst=doc_ce->tag+doc->cur_col;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
if (sc>=0) {
|
||||
if (sc&SCF_SHIFT)
|
||||
@@ -362,7 +362,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64)
|
||||
doc->cur_col=doc_ce->min_col;
|
||||
if (IsEditableText(doc_ce)&&doc_ce->min_col<doc->cur_col<doc_ce->max_col-1) {
|
||||
dst=doc_ce->tag+doc->cur_col;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,StrNew(dst,doc->mem_task));
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,dst);
|
||||
*dst=0;
|
||||
doc_ne->type=DOCT_TEXT | old_color & -0x100;
|
||||
doc_ne->de_flags=old_de_flags|doldoc.dft_de_flags[DOCT_TEXT];
|
||||
@@ -385,7 +385,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64)
|
||||
DocUnlock(doc);
|
||||
}
|
||||
|
||||
U0 EdDelChar(CDoc *doc)
|
||||
U0 EdCharDel(CDoc *doc)
|
||||
{
|
||||
Bool unlock=DocLock(doc);
|
||||
CDocEntry *doc_ce=doc->cur_entry;
|
||||
@@ -435,10 +435,10 @@ U0 ChkDollarBufSize(CDoc *doc)
|
||||
}
|
||||
}
|
||||
|
||||
U0 EdInsChar(I64 ch,I64 sc,CDoc *doc)
|
||||
U0 EdCharIns(I64 ch,I64 sc,CDoc *doc)
|
||||
{
|
||||
Bool unlock=DocLock(doc);
|
||||
U8 *b,*src,*dst;
|
||||
U8 *st,*src,*dst;
|
||||
CDocEntry *doc_ce=doc->cur_entry,*doc_ne;
|
||||
I64 i,j,m,y=doc_ce->y;
|
||||
|
||||
@@ -470,7 +470,7 @@ U0 EdInsChar(I64 ch,I64 sc,CDoc *doc)
|
||||
}
|
||||
if (ch=='\r') goto ic_done;
|
||||
|
||||
ic_cont:
|
||||
ic_cont:
|
||||
if ((ch==CH_SPACE || ch=='\n') &&
|
||||
!(sc & (SCF_CTRL|SCF_SHIFT)) &&
|
||||
doc_ce->de_flags &
|
||||
@@ -483,15 +483,16 @@ ic_cont:
|
||||
goto ic_done;
|
||||
}
|
||||
if (doc_ce->type_u8==DOCT_HEX_ED) {
|
||||
if (doc_ce->de_flags & DOCEF_DATA_IS_PTR)
|
||||
b=doc_ce->data;
|
||||
if (doc_ce->de_flags&DOCEF_DEREF_DATA &&
|
||||
!(doc_ce->de_flags&DOCEF_REMALLOC_DATA))
|
||||
st=doc_ce->data;
|
||||
else
|
||||
b=&doc_ce->data;
|
||||
st=&doc_ce->data;
|
||||
i=doc->cur_col;
|
||||
j=i%(doc_ce->hex_ed_width*3);
|
||||
m=i/(doc_ce->hex_ed_width*3)*doc_ce->hex_ed_width;
|
||||
if (j>=doc_ce->hex_ed_width<<1)
|
||||
b[j-doc_ce->hex_ed_width<<1+m]=ch;
|
||||
st[j-doc_ce->hex_ed_width<<1+m]=ch;
|
||||
else {
|
||||
ch=ToUpper(ch)-'0';
|
||||
if (ch>9) {
|
||||
@@ -501,16 +502,16 @@ ic_cont:
|
||||
}
|
||||
m=j>>1+m;
|
||||
if (j & 1)
|
||||
b[m]=b[m] & 0xF0| ch;
|
||||
st[m]=st[m] & 0xF0| ch;
|
||||
else
|
||||
b[m]=b[m] & 0xF | ch<<4;
|
||||
st[m]=st[m] & 0xF | ch<<4;
|
||||
}
|
||||
doc->cur_col++;
|
||||
goto ic_done;
|
||||
}
|
||||
if (doc->flags & DOCF_OVERSTRIKE) {
|
||||
if (Bt(chars_bmp_displayable,ch)) {
|
||||
ic_overstrike_char:
|
||||
ic_overstrike:
|
||||
if (IsEditableText(doc_ce)) {
|
||||
if (doc->cur_col<doc_ce->max_col) {
|
||||
if (doc_ce->tag[doc->cur_col]) {
|
||||
@@ -521,7 +522,7 @@ ic_overstrike_char:
|
||||
doc_ce=doc_ce->next;
|
||||
doc->cur_entry=doc_ce;
|
||||
doc->cur_col=doc_ce->min_col;
|
||||
goto ic_overstrike_char;
|
||||
goto ic_overstrike;
|
||||
}
|
||||
} else if (doc_ce->type_u8==DOCT_DATA) {
|
||||
if (doc_ce->de_flags & DOCEF_HAS_TERMINATOR) {
|
||||
@@ -532,15 +533,13 @@ ic_overstrike_char:
|
||||
doc_ce->tag[doc->cur_col]='_';
|
||||
doc_ce->tag[doc->cur_col+1]=0;
|
||||
}
|
||||
}
|
||||
} else if (doc_ce->de_flags & DOCEF_REMALLOC_DATA)
|
||||
goto ic_not_overstrike;
|
||||
} else if (doc_ce->tag[doc->cur_col])
|
||||
doc_ce->tag[doc->cur_col++]=ch;
|
||||
goto ic_done;
|
||||
}
|
||||
b=MAlloc(2,doc->mem_task);
|
||||
*b=ch;
|
||||
b[1]=0;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,b);
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,&ch);
|
||||
doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr<<8;
|
||||
doc_ne->de_flags=doldoc.dft_de_flags[DOCT_TEXT];
|
||||
QueIns(doc_ne,doc_ce->last);
|
||||
@@ -554,14 +553,14 @@ ic_overstrike_char:
|
||||
}
|
||||
goto ic_done;
|
||||
}
|
||||
ic_not_overstrike:
|
||||
if (ch=='\n') {
|
||||
doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task);
|
||||
if (sc&SCF_CTRL && !(sc&SCF_SHIFT)) {
|
||||
doc_ne->type=DOCT_PAGE_BREAK | doc->settings_root.dft_text_attr<<8;
|
||||
doc_ne->de_flags=doldoc.dft_de_flags[DOCT_PAGE_BREAK];
|
||||
doc_ne=DocEntryNewBase(doc,
|
||||
DOCT_PAGE_BREAK|doc->settings_root.dft_text_attr<<8);
|
||||
} else {
|
||||
doc_ne->type=DOCT_NEW_LINE | doc->settings_root.dft_text_attr<<8;
|
||||
doc_ne->de_flags=doldoc.dft_de_flags[DOCT_NEW_LINE];
|
||||
doc_ne=DocEntryNewBase(doc,
|
||||
DOCT_NEW_LINE|doc->settings_root.dft_text_attr<<8);
|
||||
}
|
||||
DocInsEntry(doc,doc_ne);
|
||||
} else if (ch=='\t') {
|
||||
@@ -575,26 +574,36 @@ ic_form_tab:
|
||||
DocFormFwd(doc);
|
||||
goto ic_done;
|
||||
} else {
|
||||
doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task);
|
||||
doc_ne->type=DOCT_TAB | doc->settings_root.dft_text_attr<<8;
|
||||
doc_ne->de_flags=doldoc.dft_de_flags[DOCT_TAB];
|
||||
doc_ne=DocEntryNewBase(doc,DOCT_TAB|doc->settings_root.dft_text_attr<<8);
|
||||
DocInsEntry(doc,doc_ne);
|
||||
}
|
||||
} else {
|
||||
if (Bt(chars_bmp_displayable,ch)) {
|
||||
if (doc_ce->type_u8==DOCT_DATA) {
|
||||
i=doc_ce->len+doc_ce->min_col;
|
||||
if (doc_ce->de_flags & DOCEF_HAS_TERMINATOR)
|
||||
i++;
|
||||
if (i>doc_ce->max_col) {
|
||||
b=doc_ce->tag;
|
||||
doc_ce->max_col++;
|
||||
for (i=doc_ce->max_col;i>doc->cur_col;i--)
|
||||
b[i]=b[i-1];
|
||||
b[doc->cur_col++]=ch;
|
||||
while (TRUE) {
|
||||
i=doc_ce->len+doc_ce->min_col;
|
||||
if (doc_ce->de_flags & DOCEF_HAS_TERMINATOR)
|
||||
i++;
|
||||
if (doc_ce->max_col<i) {
|
||||
st=doc_ce->tag;
|
||||
doc_ce->max_col++;
|
||||
for (i=doc_ce->max_col;i>doc->cur_col;i--)
|
||||
st[i]=st[i-1];
|
||||
st[doc->cur_col++]=ch;
|
||||
break;
|
||||
} else if (doc_ce->de_flags & DOCEF_REMALLOC_DATA) {
|
||||
st=MAlloc(doc_ce->max_col+8,doc->mem_task);
|
||||
MemCpy(st,doc_ce->tag,doc_ce->max_col+1);
|
||||
Free(doc_ce->tag);
|
||||
doc_ce->tag=st;
|
||||
doc_ce->len=MSize(st)-doc_ce->min_col-2; //See $LK,"DataTagWidth",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$
|
||||
Free(doc_ce->data);
|
||||
doc_ce->data=MAlloc(doc_ce->len+2,doc->mem_task);
|
||||
} else
|
||||
break;
|
||||
}
|
||||
} else if (IsEditableText(doc_ce)) {
|
||||
dst=b=MAlloc(doc_ce->max_col+2,doc->mem_task);
|
||||
dst=st=MAlloc(doc_ce->max_col+2,doc->mem_task);
|
||||
src=doc_ce->tag;
|
||||
i=doc->cur_col;
|
||||
while (i-->0)
|
||||
@@ -602,14 +611,11 @@ ic_form_tab:
|
||||
*dst++=ch;
|
||||
while (*dst++=*src++);
|
||||
Free(doc_ce->tag);
|
||||
doc_ce->tag=b;
|
||||
doc_ce->tag=st;
|
||||
doc_ce->max_col++;
|
||||
doc->cur_col++;
|
||||
} else {
|
||||
b=MAlloc(2,doc->mem_task);
|
||||
*b=ch;
|
||||
b[1]=0;
|
||||
doc_ne=DocEntryNew(doc,doc_ce,b);
|
||||
doc_ne=DocEntryNewTag(doc,doc_ce,&ch);
|
||||
doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr<<8;
|
||||
doc_ne->de_flags=doldoc.dft_de_flags[DOCT_TEXT];
|
||||
doc_ne->x=doc_ce->x+1;
|
||||
@@ -627,7 +633,7 @@ ic_done:
|
||||
DocUnlock(doc);
|
||||
}
|
||||
|
||||
U0 EdDelLine(CDoc *doc)
|
||||
U0 EdLineDel(CDoc *doc)
|
||||
{
|
||||
CDocEntry *doc_ce=doc->cur_entry,*doc_ce2;
|
||||
I64 y;
|
||||
|
||||
Reference in new issue
Block a user