2021-07-03 05:07:57 +01:00
<!DOCTYPE HTML>
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html;charset=US-ASCII" >
2021-12-04 10:03:02 +00:00
< meta name = "generator" content = "ZealOS V1.06" >
2021-07-03 05:07:57 +01:00
< style type = "text/css" >
2021-10-08 07:06:11 +01:00
body {background-color:#1f1f1f;}
.cF0{color:#e3e3e3;background-color:#1f1f1f;}
.cF1{color:#4f84a6;background-color:#1f1f1f;}
.cF2{color:#73a255;background-color:#1f1f1f;}
.cF3{color:#297582;background-color:#1f1f1f;}
.cF4{color:#b34f4b;background-color:#1f1f1f;}
.cF5{color:#8a52c3;background-color:#1f1f1f;}
.cF6{color:#b7822f;background-color:#1f1f1f;}
.cF7{color:#444444;background-color:#1f1f1f;}
.cF8{color:#6d6d6d;background-color:#1f1f1f;}
.cF9{color:#94bfde;background-color:#1f1f1f;}
.cFA{color:#a1ce97;background-color:#1f1f1f;}
.cFB{color:#6db4be;background-color:#1f1f1f;}
.cFC{color:#e88e88;background-color:#1f1f1f;}
.cFD{color:#ca94e8;background-color:#1f1f1f;}
.cFE{color:#d4b475;background-color:#1f1f1f;}
.cFF{color:#1f1f1f;background-color:#1f1f1f;}
2021-07-03 05:07:57 +01:00
< / style >
< / head >
< body >
2021-07-05 01:12:38 +01:00
< pre style = "font-family:monospace;font-size:12pt" >
2021-07-03 05:07:57 +01:00
< a name = "l1" > < / a > < span class = cF0 > #< / span > < span class = cF1 > help_index< / span > < span class = cF0 > < / span > < span class = cF6 > " DolDoc" < / span > < span class = cF0 >
< a name = "l2" > < / a >
< a name = "l3" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc)
< a name = "l4" > < / a > {< / span > < span class = cF2 > //Make this task have exclusive access to this doc.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l5" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!< / span > < span class = cF5 > Bt< / span > < span class = cF7 > (< / span > < span class = cF0 > & doc-> locked_flags, < / span > < span class = cF3 > DOClf_LOCKED< / span > < span class = cF7 > )< / span > < span class = cF0 > || doc-> owning_task != < / span > < span class = cF5 > Fs< / span > < span class = cF0 > )
< a name = "l6" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l7" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (< / span > < span class = cF5 > LBts< / span > < span class = cF7 > (< / span > < span class = cF0 > & doc-> locked_flags, < / span > < span class = cF3 > DOClf_LOCKED< / span > < span class = cF7 > )< / span > < span class = cF0 > )
< a name = "l8" > < / a > < / span > < span class = cF5 > Yield< / span > < span class = cF0 > ;
< a name = "l9" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc-> owning_task != < / span > < span class = cF5 > Fs< / span > < span class = cF0 > )
< a name = "l10" > < / a > < / span > < span class = cF5 > LBEqual< / span > < span class = cF0 > (& doc-> flags, < / span > < span class = cF3 > DOCf_BREAK_UNLOCKED< / span > < span class = cF0 > , < / span > < span class = cF5 > BreakLock< / span > < span class = cF7 > (< / span > < span class = cF5 > Fs< / span > < span class = cF7 > )< / span > < span class = cF0 > );
< a name = "l11" > < / a > doc-> owning_task = < / span > < span class = cF5 > Fs< / span > < span class = cF0 > ;
< a name = "l12" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l13" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l14" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l15" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > FALSE< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l16" > < / a > }
< a name = "l17" > < / a >
< a name = "l18" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc)
< a name = "l19" > < / a > {< / span > < span class = cF2 > //Release exclusive lock on access to doc.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l20" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock_break;
2021-07-03 05:07:57 +01:00
< a name = "l21" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l22" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (< / span > < span class = cF5 > Bt< / span > < span class = cF7 > (< / span > < span class = cF0 > & doc-> locked_flags, < / span > < span class = cF3 > DOClf_LOCKED< / span > < span class = cF7 > )< / span > < span class = cF0 > & & doc-> owning_task == < / span > < span class = cF5 > Fs< / span > < span class = cF0 > )
< a name = "l23" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l24" > < / a > doc-> owning_task = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l25" > < / a > unlock_break = < / span > < span class = cF5 > Bt< / span > < span class = cF0 > (& doc-> flags, < / span > < span class = cF3 > DOCf_BREAK_UNLOCKED< / span > < span class = cF0 > );
< a name = "l26" > < / a > < / span > < span class = cF5 > LBtr< / span > < span class = cF0 > (& doc-> locked_flags, < / span > < span class = cF3 > DOClf_LOCKED< / span > < span class = cF0 > );
< a name = "l27" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock_break)
< a name = "l28" > < / a > < / span > < span class = cF5 > BreakUnlock< / span > < span class = cF0 > (< / span > < span class = cF5 > Fs< / span > < span class = cF0 > );
< a name = "l29" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l30" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l31" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l32" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > FALSE< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l33" > < / a > }
< a name = "l34" > < / a >
< a name = "l35" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > < / span > < span class = cF5 > IsEditableText< / span > < span class = cF0 > (< / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e)
< a name = "l36" > < / a > {
2021-07-04 23:11:34 +01:00
< a name = "l37" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> type_u8 == < / span > < span class = cF3 > DOCT_TEXT< / span > < span class = cF0 > & & !< / span > < span class = cF7 > (< / span > < span class = cF0 > doc_e-> de_flags & < / span > < span class = cF3 > DOCEG_DONT_EDIT< / span > < span class = cF7 > )< / span > < span class = cF0 > )
< a name = "l38" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l39" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l40" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cF3 > FALSE< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l41" > < / a > }
< a name = "l42" > < / a >
< a name = "l43" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *< / span > < span class = cF5 > DocEntryNewBase< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF9 > I64< / span > < span class = cF0 > type, < / span > < span class = cF9 > I64< / span > < span class = cF0 > de_flags=< / span > < span class = cFE > 0< / span > < span class = cF0 > , < / span > < span class = cF9 > I64< / span > < span class = cF0 > x=< / span > < span class = cFE > 0< / span > < span class = cF0 > , < / span > < span class = cF9 > I64< / span > < span class = cF0 > y=< / span > < span class = cFE > 0< / span > < span class = cF0 > , < / span > < span class = cF9 > I64< / span > < span class = cF0 > page_line_num=< / span > < span class = cFE > 0< / span > < span class = cF0 > )
2021-07-26 20:29:49 +01:00
< a name = "l44" > < / a > {< / span > < span class = cF2 > //See also < / span > < a href = "https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalc.CC.html#l161" > < span class = cF4 > MAllocIdent< / span > < / a > < span class = cF2 > and < / span > < span class = cF9 > < u > CDocEntry< / u > < / span > < span class = cF2 > .< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l45" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *res = < / span > < span class = cF5 > CAlloc< / span > < span class = cF0 > (< / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CDocEntryBase< / span > < span class = cF7 > )< / span > < span class = cF0 > , doc-> mem_task);
2021-07-03 05:07:57 +01:00
< a name = "l46" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l47" > < / a > res-> type = type;
< a name = "l48" > < / a > res-> de_flags = de_flags | < / span > < span class = cFB > doldoc< / span > < span class = cF0 > .default_de_flags[type.u8[< / span > < span class = cFE > 0< / span > < span class = cF0 > ]];
< a name = "l49" > < / a > res-> x = x;
< a name = "l50" > < / a > res-> y = y;
< a name = "l51" > < / a > res-> page_line_num = page_line_num;
2021-07-03 05:07:57 +01:00
< a name = "l52" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l53" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > res;
2021-07-03 05:07:57 +01:00
< a name = "l54" > < / a > }
< a name = "l55" > < / a >
< a name = "l56" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *< / span > < span class = cF5 > DocEntryNewTag< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_ce, < / span > < span class = cF1 > U8< / span > < span class = cF0 > *tag)
< a name = "l57" > < / a > {
2021-07-04 23:11:34 +01:00
< a name = "l58" > < / a > < / span > < span class = cF9 > I64< / span > < span class = cF0 > l = < / span > < span class = cF5 > StrLen< / span > < span class = cF0 > (tag);
< a name = "l59" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *res = < / span > < span class = cF5 > DocEntryNewBase< / span > < span class = cF0 > (doc, doc_ce-> type, doc_ce-> de_flags, doc_ce-> x, doc_ce-> y, doc_ce-> page_line_num);
2021-07-03 05:07:57 +01:00
< a name = "l60" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l61" > < / a > res-> de_flags = doc_ce-> de_flags; < / span > < span class = cF2 > //Override< / span > < span class = cF0 >
< a name = "l62" > < / a > res-> max_col = l;
< a name = "l63" > < / a > res-> tag = < / span > < span class = cF5 > MAlloc< / span > < span class = cF0 > (l + < / span > < span class = cFE > 1< / span > < span class = cF0 > , doc-> mem_task);
< a name = "l64" > < / a > < / span > < span class = cF5 > MemCopy< / span > < span class = cF0 > (res-> tag, tag, l + < / span > < span class = cFE > 1< / span > < span class = cF0 > );
< a name = "l65" > < / a > < / span > < span class = cF5 > MemCopy< / span > < span class = cF0 > (& res-> settings, & doc_ce-> settings, < / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CDocSettings< / span > < span class = cF7 > )< / span > < span class = cF0 > );
2021-07-03 05:07:57 +01:00
< a name = "l66" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l67" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > res;
2021-07-03 05:07:57 +01:00
< a name = "l68" > < / a > }
< a name = "l69" > < / a >
< a name = "l70" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocEntryDel< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e)
< a name = "l71" > < / a > {< / span > < span class = cF2 > //Free entry and all parts of entry.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l72" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc || doc == doc_e)
< a name = "l73" > < / a > < / span > < span class = cF5 > RawPrint< / span > < span class = cF0 > (< / span > < span class = cFE > 3000< / span > < span class = cF0 > , < / span > < span class = cF6 > " DocEntryDel" < / span > < span class = cF0 > );
< a name = "l74" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l75" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l76" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc-> cur_entry == doc_e)
< a name = "l77" > < / a > doc-> cur_entry = doc_e-> next;
< a name = "l78" > < / a > < / span > < span class = cF5 > QueueRemove< / span > < span class = cF0 > (doc_e);
< a name = "l79" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_TAG< / span > < span class = cF0 > )
< a name = "l80" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> tag);
< a name = "l81" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_AUX_STR< / span > < span class = cF0 > )
< a name = "l82" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> aux_str);
< a name = "l83" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_DEFINE< / span > < span class = cF0 > )
< a name = "l84" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> define_str);
< a name = "l85" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_HTML_LINK< / span > < span class = cF0 > )
< a name = "l86" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> html_link);
< a name = "l87" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_LEFT_MACRO< / span > < span class = cF0 > )
< a name = "l88" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> left_macro);
< a name = "l89" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_RIGHT_MACRO< / span > < span class = cF0 > )
< a name = "l90" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> right_macro);
< a name = "l91" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_BIN_PTR_LINK< / span > < span class = cF0 > )
< a name = "l92" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> bin_ptr_link);
< a name = "l93" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_HAS_BIN< / span > < span class = cF0 > )
< a name = "l94" > < / a > < / span > < span class = cF5 > DocBinDel< / span > < span class = cF0 > (doc, doc_e-> bin_data);
< a name = "l95" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_REMALLOC_DATA< / span > < span class = cF0 > )
< a name = "l96" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e-> data);
< a name = "l97" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc_e);
< a name = "l98" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
2021-07-03 05:07:57 +01:00
< a name = "l99" > < / a > }
< a name = "l100" > < / a >
< a name = "l101" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF9 > I64< / span > < span class = cF0 > < / span > < span class = cF5 > DocEntrySize< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *, < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e)
< a name = "l102" > < / a > {< / span > < span class = cF2 > //Mem size of entry and all parts.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l103" > < / a > < / span > < span class = cF9 > I64< / span > < span class = cF0 > res;
2021-07-03 05:07:57 +01:00
< a name = "l104" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l105" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc_e)
< a name = "l106" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l107" > < / a > res = < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e);
< a name = "l108" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_TAG< / span > < span class = cF0 > )
< a name = "l109" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> tag);
< a name = "l110" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_AUX_STR< / span > < span class = cF0 > )
< a name = "l111" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> aux_str);
< a name = "l112" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_DEFINE< / span > < span class = cF0 > )
< a name = "l113" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> define_str);
< a name = "l114" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_HTML_LINK< / span > < span class = cF0 > )
< a name = "l115" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> html_link);
< a name = "l116" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_LEFT_MACRO< / span > < span class = cF0 > )
< a name = "l117" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> left_macro);
< a name = "l118" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_RIGHT_MACRO< / span > < span class = cF0 > )
< a name = "l119" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> right_macro);
< a name = "l120" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_BIN_PTR_LINK< / span > < span class = cF0 > )
< a name = "l121" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> bin_ptr_link);
< a name = "l122" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_REMALLOC_DATA< / span > < span class = cF0 > )
< a name = "l123" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc_e-> data);
2021-07-03 05:07:57 +01:00
< a name = "l124" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l125" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > res;
2021-07-03 05:07:57 +01:00
< a name = "l126" > < / a > }
< a name = "l127" > < / a >
< a name = "l128" > < / a > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocUndoDel< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *, < / span > < span class = cF9 > CDocUndo< / span > < span class = cF0 > *u)
< a name = "l129" > < / a > {
2021-07-04 23:11:34 +01:00
< a name = "l130" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (u-> body);
< a name = "l131" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (u);
2021-07-03 05:07:57 +01:00
< a name = "l132" > < / a > }
< a name = "l133" > < / a >
< a name = "l134" > < / a > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocUndoCountSet< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc)
< a name = "l135" > < / a > {
2021-07-04 23:11:34 +01:00
< a name = "l136" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock = < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
< a name = "l137" > < / a > < / span > < span class = cF9 > CDocUndo< / span > < span class = cF0 > *u = doc-> undo_head.next;
2021-07-03 05:07:57 +01:00
< a name = "l138" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l139" > < / a > doc-> undo_count = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l140" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (u != & doc-> undo_head)
< a name = "l141" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l142" > < / a > doc-> undo_count++;
< a name = "l143" > < / a > u = u-> next;
< a name = "l144" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l145" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock)
< a name = "l146" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l147" > < / a > }
< a name = "l148" > < / a >
< a name = "l149" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *< / span > < span class = cF5 > DocEntryCopy< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e)
< a name = "l150" > < / a > {< / span > < span class = cF2 > //Make copy of entry and all parts of entry.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l151" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_ne;
< a name = "l152" > < / a > < / span > < span class = cF9 > CDocBin< / span > < span class = cF0 > *tmpb;
< a name = "l153" > < / a > < / span > < span class = cF9 > CTask< / span > < span class = cF0 > *task = doc-> mem_task;
2021-07-03 05:07:57 +01:00
< a name = "l154" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l155" > < / a > doc_ne = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e, task);
< a name = "l156" > < / a > doc_ne-> next = doc_ne;
< a name = "l157" > < / a > doc_ne-> last = doc_ne;
< a name = "l158" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_TAG< / span > < span class = cF0 > )
< a name = "l159" > < / a > doc_ne-> tag = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> tag, task);
< a name = "l160" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_AUX_STR< / span > < span class = cF0 > )
< a name = "l161" > < / a > doc_ne-> aux_str = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> aux_str, task);
< a name = "l162" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_DEFINE< / span > < span class = cF0 > )
< a name = "l163" > < / a > doc_ne-> define_str = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> define_str, task);
< a name = "l164" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_HTML_LINK< / span > < span class = cF0 > )
< a name = "l165" > < / a > doc_ne-> html_link = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> html_link, task);
< a name = "l166" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_LEFT_MACRO< / span > < span class = cF0 > )
< a name = "l167" > < / a > doc_ne-> left_macro = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> left_macro, task);
< a name = "l168" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_RIGHT_MACRO< / span > < span class = cF0 > )
< a name = "l169" > < / a > doc_ne-> right_macro = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> right_macro, task);
< a name = "l170" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_BIN_PTR_LINK< / span > < span class = cF0 > )
< a name = "l171" > < / a > doc_ne-> bin_ptr_link = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> bin_ptr_link, task);
< a name = "l172" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_HAS_BIN< / span > < span class = cF0 > )
< a name = "l173" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l174" > < / a > tmpb = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> bin_data, task);
< a name = "l175" > < / a > tmpb-> data = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> bin_data-> data, task);
< a name = "l176" > < / a > doc_ne-> bin_num = doc-> cur_bin_num;
< a name = "l177" > < / a > tmpb-> num = doc-> cur_bin_num++;
< a name = "l178" > < / a > doc_ne-> bin_data = tmpb;
< a name = "l179" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_TAG< / span > < span class = cF0 > & & doc_e-> tag & & *doc_e-> tag)
< a name = "l180" > < / a > tmpb-> tag = < / span > < span class = cF5 > StrNew< / span > < span class = cF0 > (doc_e-> tag, task);
< a name = "l181" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l182" > < / a > tmpb-> tag = < / span > < span class = cF3 > NULL< / span > < span class = cF0 > ;
< a name = "l183" > < / a > < / span > < span class = cF5 > QueueInsert< / span > < span class = cF0 > (tmpb, doc-> bin_head.last);
< a name = "l184" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l185" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> de_flags & < / span > < span class = cF3 > DOCEF_REMALLOC_DATA< / span > < span class = cF0 > )
< a name = "l186" > < / a > doc_ne-> data = < / span > < span class = cF5 > MAllocIdent< / span > < span class = cF0 > (doc_e-> data, task);
2021-07-03 05:07:57 +01:00
< a name = "l187" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l188" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > doc_ne;
2021-07-03 05:07:57 +01:00
< a name = "l189" > < / a > }
< a name = "l190" > < / a >
< a name = "l191" > < / a > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocRemSoftNewLines< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc=< / span > < span class = cF3 > NULL< / span > < span class = cF0 > , < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e=< / span > < span class = cF3 > NULL< / span > < span class = cF0 > )
< a name = "l192" > < / a > {
2021-07-04 23:11:34 +01:00
< a name = "l193" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e2, *saved_ll = doc_e;
< a name = "l194" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock;
2021-07-03 05:07:57 +01:00
< a name = "l195" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l196" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc & & !< / span > < span class = cF7 > (< / span > < span class = cF0 > doc = < / span > < span class = cF5 > DocPut< / span > < span class = cF7 > )< / span > < span class = cF0 > )
< a name = "l197" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > ;
< a name = "l198" > < / a > unlock = < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
< a name = "l199" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc_e)
< a name = "l200" > < / a > doc_e = doc-> head.next;
< a name = "l201" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (doc_e != doc)
< a name = "l202" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l203" > < / a > doc_e2 = doc_e-> next;
< a name = "l204" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_e-> type_u8 == < / span > < span class = cF3 > DOCT_SOFT_NEW_LINE< / span > < span class = cF0 > )
< a name = "l205" > < / a > {
< a name = "l206" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc-> cur_entry == doc_e)
< a name = "l207" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l208" > < / a > doc-> cur_entry = doc_e2;
< a name = "l209" > < / a > doc-> cur_col = doc-> cur_entry-> min_col;
< a name = "l210" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l211" > < / a > < / span > < span class = cF5 > DocEntryDel< / span > < span class = cF0 > (doc, doc_e);
< a name = "l212" > < / a > }
< a name = "l213" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 > < / span > < span class = cF1 > if< / span > < span class = cF0 > (saved_ll & & doc_e-> type_u8 == < / span > < span class = cF3 > DOCT_NEW_LINE< / span > < span class = cF0 > )
< a name = "l214" > < / a > < / span > < span class = cF1 > break< / span > < span class = cF0 > ;
< a name = "l215" > < / a > doc_e = doc_e2;
< a name = "l216" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l217" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock)
< a name = "l218" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l219" > < / a > }
< a name = "l220" > < / a >
< a name = "l221" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocInsEntry< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e)
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
< a name = "l222" > < / a > {< / span > < span class = cF2 > //Insert entry into doc, updating its values.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l223" > < / a > < / span > < span class = cF1 > U8< / span > < span class = cF0 > *dst;
< a name = "l224" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock = < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
< a name = "l225" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_ce = doc-> cur_entry, *doc_ne;
2021-07-03 05:07:57 +01:00
< a name = "l226" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l227" > < / a > doc_e-> x = doc_ce-> x;
< a name = "l228" > < / a > doc_e-> y = doc_ce-> y;
< a name = "l229" > < / a > doc_e-> page_line_num = doc_ce-> page_line_num;
< a name = "l230" > < / a > < / span > < span class = cF5 > MemCopy< / span > < span class = cF0 > (& doc_e-> settings, & doc_ce-> settings, < / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CDocSettings< / span > < span class = cF7 > )< / span > < span class = cF0 > );
< a name = "l231" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc-> cur_col > < / span > < span class = cFE > 0< / span > < span class = cF0 > & &
< a name = "l232" > < / a > doc_ce-> type_u8 == < / span > < span class = cF3 > DOCT_TEXT< / span > < span class = cF0 > & &
< a name = "l233" > < / a > !< / span > < span class = cF7 > (< / span > < span class = cF0 > doc_ce-> de_flags & (< / span > < span class = cF3 > DOCEF_TAG_CB< / span > < span class = cF0 > | < / span > < span class = cF3 > DOCEF_DEFINE< / span > < span class = cF0 > | < / span > < span class = cF3 > DOCEF_AUX_STR< / span > < span class = cF0 > | < / span > < span class = cF3 > DOCEF_HTML_LINK< / span > < span class = cF0 > | < / span > < span class = cF3 > DOCEF_BIN_PTR_LINK< / span > < span class = cF0 > )< / span > < span class = cF7 > )< / span > < span class = cF0 > & &
< a name = "l234" > < / a > doc-> cur_col < doc_ce-> max_col)
< a name = "l235" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l236" > < / a > dst = doc_ce-> tag + doc-> cur_col;
< a name = "l237" > < / a > doc_ne = < / span > < span class = cF5 > DocEntryNewTag< / span > < span class = cF0 > (doc, doc_ce, dst);
< a name = "l238" > < / a > *dst = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l239" > < / a > doc_ne-> type = < / span > < span class = cF3 > DOCT_TEXT< / span > < span class = cF0 > | doc_ce-> type & < / span > < span class = cFE > 0xFFFFFF00< / span > < span class = cF0 > ;
< a name = "l240" > < / a > doc_ce-> max_col = doc-> cur_col;
< a name = "l241" > < / a > < / span > < span class = cF5 > QueueInsert< / span > < span class = cF0 > (doc_ne, doc_ce);
< a name = "l242" > < / a > doc-> cur_col = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l243" > < / a > doc_ce = doc_ne;
< a name = "l244" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l245" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (doc_ce-> type_u8 == < / span > < span class = cF3 > DOCT_TEXT< / span > < span class = cF0 > & & doc-> cur_col > = doc_ce-> max_col)
< a name = "l246" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l247" > < / a > < / span > < span class = cF5 > QueueInsert< / span > < span class = cF0 > (doc_e, doc_ce);
< a name = "l248" > < / a > doc-> cur_entry = doc_e-> next;
< a name = "l249" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l250" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l251" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l252" > < / a > < / span > < span class = cF5 > QueueInsert< / span > < span class = cF0 > (doc_e, doc_ce-> last);
< a name = "l253" > < / a > doc-> cur_entry = doc_ce;
< a name = "l254" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
< a name = "l255" > < / a > doc-> cur_col = doc-> cur_entry-> min_col;
< a name = "l256" > < / a > < / span > < span class = cF5 > DocRemSoftNewLines< / span > < span class = cF0 > (doc, doc-> cur_entry);
< a name = "l257" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock)
< a name = "l258" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l259" > < / a > }
< a name = "l260" > < / a >
< a name = "l261" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocReset< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc, < / span > < span class = cF1 > Bool< / span > < span class = cF0 > is_old)
< a name = "l262" > < / a > {< / span > < span class = cF2 > //Del all entries and set doc to defaults.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l263" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock;
< a name = "l264" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e, *doc_e2;
< a name = "l265" > < / a > < / span > < span class = cF9 > CDocUndo< / span > < span class = cF0 > *u, *u8;
< a name = "l266" > < / a > < / span > < span class = cF9 > CDocSettings< / span > < span class = cF0 > *s;
< a name = "l267" > < / a > < / span > < span class = cF9 > CDocBin< / span > < span class = cF0 > *b, *b1;
2021-07-03 05:07:57 +01:00
< a name = "l268" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l269" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc & & !< / span > < span class = cF7 > (< / span > < span class = cF0 > doc = < / span > < span class = cF5 > DocPut< / span > < span class = cF7 > )< / span > < span class = cF0 > )
< a name = "l270" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > ;
< a name = "l271" > < / a > unlock = < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
< a name = "l272" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (is_old)
< a name = "l273" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l274" > < / a > doc_e = doc-> head.next;
< a name = "l275" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (doc_e != doc)
< a name = "l276" > < / a > {
< a name = "l277" > < / a > doc_e2 = doc_e-> next;
< a name = "l278" > < / a > < / span > < span class = cF5 > DocEntryDel< / span > < span class = cF0 > (doc, doc_e);
< a name = "l279" > < / a > doc_e = doc_e2;
< a name = "l280" > < / a > }
< a name = "l281" > < / a > u = doc-> undo_head.next;
< a name = "l282" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (u != & doc-> undo_head)
< a name = "l283" > < / a > {
< a name = "l284" > < / a > u8 = u-> next;
< a name = "l285" > < / a > < / span > < span class = cF5 > DocUndoDel< / span > < span class = cF0 > (doc, u);
< a name = "l286" > < / a > u = u8;
< a name = "l287" > < / a > }
< a name = "l288" > < / a > b = doc-> bin_head.next;
< a name = "l289" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (b != & doc-> bin_head)
< a name = "l290" > < / a > {
< a name = "l291" > < / a > b1 = b-> next;
< a name = "l292" > < / a > < / span > < span class = cF5 > QueueRemove< / span > < span class = cF0 > (b);
< a name = "l293" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (b-> data);
< a name = "l294" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (b);
< a name = "l295" > < / a > b = b1;
< a name = "l296" > < / a > }
< a name = "l297" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
2021-07-26 20:29:49 +01:00
< a name = "l298" > < / a > < / span > < span class = cF2 > //Check < / span > < a href = "https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocFile.CC.html#l222" > < span class = cF4 > DocInsDoc< / span > < / a > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l299" > < / a > doc-> flags & = < / span > < span class = cF3 > DOCF_BREAK_UNLOCKED< / span > < span class = cF0 > ;
< a name = "l300" > < / a > doc-> head.next = doc-> head.last = doc;
< a name = "l301" > < / a > < / span > < span class = cF5 > QueueInit< / span > < span class = cF0 > (& doc-> bin_head);
< a name = "l302" > < / a > < / span > < span class = cF5 > QueueInit< / span > < span class = cF0 > (& doc-> undo_head);
< a name = "l303" > < / a > doc-> undo_head.time_stamp = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l304" > < / a > doc-> undo_count = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l305" > < / a > doc-> cur_bin_num = < / span > < span class = cFE > 1< / span > < span class = cF0 > ;
< a name = "l306" > < / a > doc-> dollar_buf_ptr = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l307" > < / a > doc-> cmd_U8 = < / span > < span class = cF3 > CH_SPACE< / span > < span class = cF0 > ;
< a name = "l308" > < / a > doc-> page_line_num = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l309" > < / a > doc-> best_d = < / span > < span class = cF3 > I64_MAX< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l310" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l311" > < / a > s = & doc-> settings_head;
< a name = "l312" > < / a > s-> left_margin = < / span > < span class = cF3 > DOC_DEFAULT< / span > < span class = cF0 > ;
< a name = "l313" > < / a > s-> right_margin = < / span > < span class = cF3 > DOC_DEFAULT< / span > < span class = cF0 > ;
< a name = "l314" > < / a > s-> indent = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l315" > < / a > s-> page_len = < / span > < span class = cFE > 66< / span > < span class = cF0 > ;
< a name = "l316" > < / a > s-> header = < / span > < span class = cF3 > DOC_DEFAULT< / span > < span class = cF0 > ;
< a name = "l317" > < / a > s-> footer = < / span > < span class = cF3 > DOC_DEFAULT< / span > < span class = cF0 > ;
< a name = "l318" > < / a > s-> state = < / span > < span class = cF3 > DOCSS_NORMAL< / span > < span class = cF0 > ;
< a name = "l319" > < / a > s-> comment_depth = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l320" > < / a > s-> paren_depth = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l321" > < / a > s-> brace_depth = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l322" > < / a > s-> shifted_x = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l323" > < / a > s-> shifted_y = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l324" > < / a > s-> cur_text_attr = s-> default_text_attr = < / span > < span class = cF3 > DOC_ATTR_DEFAULT_TEXT< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l325" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l326" > < / a > doc_e = & doc-> head;
< a name = "l327" > < / a > doc_e-> type = < / span > < span class = cF3 > DOCT_ERROR< / span > < span class = cF0 > ;
< a name = "l328" > < / a > doc_e-> de_flags = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l329" > < / a > doc_e-> x = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l330" > < / a > doc_e-> y = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l331" > < / a > doc_e-> min_col = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l332" > < / a > doc_e-> max_col = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l333" > < / a > doc_e-> page_line_num = doc-> page_line_num;
< a name = "l334" > < / a > < / span > < span class = cF5 > MemCopy< / span > < span class = cF0 > (& doc_e-> settings, s, < / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CDocSettings< / span > < span class = cF7 > )< / span > < span class = cF0 > );
2021-07-03 05:07:57 +01:00
< a name = "l335" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l336" > < / a > < / span > < span class = cF5 > DocTop< / span > < span class = cF0 > (doc);
< a name = "l337" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock)
< a name = "l338" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l339" > < / a > }
< a name = "l340" > < / a >
< a name = "l341" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF1 > U0< / span > < span class = cF0 > < / span > < span class = cF5 > DocDel< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc)
< a name = "l342" > < / a > {< / span > < span class = cF2 > //Free entire doc and entries.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l343" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc || doc-> doc_signature != < / span > < span class = cF3 > DOC_SIGNATURE_VAL< / span > < span class = cF0 > )
< a name = "l344" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > ;
< a name = "l345" > < / a > < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
< a name = "l346" > < / a > doc-> doc_signature = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l347" > < / a > < / span > < span class = cF5 > DocReset< / span > < span class = cF0 > (doc, < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > );
< a name = "l348" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc-> find_replace);
< a name = "l349" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc-> dollar_buf);
< a name = "l350" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
< a name = "l351" > < / a > < / span > < span class = cF5 > Free< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l352" > < / a > }
< a name = "l353" > < / a >
< a name = "l354" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF9 > I64< / span > < span class = cF0 > < / span > < span class = cF5 > DocSize< / span > < span class = cF0 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc)
< a name = "l355" > < / a > {< / span > < span class = cF2 > //Mem size of doc and all its entries.< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l356" > < / a > < / span > < span class = cF1 > Bool< / span > < span class = cF0 > unlock;
< a name = "l357" > < / a > < / span > < span class = cF9 > CDocEntry< / span > < span class = cF0 > *doc_e;
< a name = "l358" > < / a > < / span > < span class = cF9 > CDocUndo< / span > < span class = cF0 > *u;
< a name = "l359" > < / a > < / span > < span class = cF9 > CDocBin< / span > < span class = cF0 > *b;
< a name = "l360" > < / a > < / span > < span class = cF9 > I64< / span > < span class = cF0 > res = < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l361" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l362" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!doc || doc-> doc_signature != < / span > < span class = cF3 > DOC_SIGNATURE_VAL< / span > < span class = cF0 > )
< a name = "l363" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > < / span > < span class = cFE > 0< / span > < span class = cF0 > ;
< a name = "l364" > < / a > unlock = < / span > < span class = cF5 > DocLock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l365" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l366" > < / a > doc_e = doc-> head.next;
< a name = "l367" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (doc_e != doc)
< a name = "l368" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l369" > < / a > res += < / span > < span class = cF5 > DocEntrySize< / span > < span class = cF0 > (doc, doc_e);
< a name = "l370" > < / a > doc_e = doc_e-> next;
< a name = "l371" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
2021-07-03 05:07:57 +01:00
< a name = "l372" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l373" > < / a > u = doc-> undo_head.next;
< a name = "l374" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (u != & doc-> undo_head)
< a name = "l375" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l376" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (u-> body);
< a name = "l377" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (u);
< a name = "l378" > < / a > u = u-> next;
< a name = "l379" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
2021-07-03 05:07:57 +01:00
< a name = "l380" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l381" > < / a > b = doc-> bin_head.next;
< a name = "l382" > < / a > < / span > < span class = cF1 > while< / span > < span class = cF0 > (b != & doc-> bin_head)
< a name = "l383" > < / a > < / span > < span class = cF7 > {< / span > < span class = cF0 >
< a name = "l384" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (b-> data);
< a name = "l385" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (b);
< a name = "l386" > < / a > b = b-> next;
< a name = "l387" > < / a > < / span > < span class = cF7 > }< / span > < span class = cF0 >
2021-07-03 05:07:57 +01:00
< a name = "l388" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l389" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc-> find_replace);
< a name = "l390" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc-> dollar_buf);
< a name = "l391" > < / a > res += < / span > < span class = cF5 > MSize2< / span > < span class = cF0 > (doc);
< a name = "l392" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (unlock)
< a name = "l393" > < / a > < / span > < span class = cF5 > DocUnlock< / span > < span class = cF0 > (doc);
2021-07-03 05:07:57 +01:00
< a name = "l394" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l395" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > res;
2021-07-03 05:07:57 +01:00
< a name = "l396" > < / a > }
< a name = "l397" > < / a >
< a name = "l398" > < / a > #< / span > < span class = cF1 > help_index< / span > < span class = cF0 > < / span > < span class = cF6 > " DolDoc" < / span > < span class = cF0 >
< a name = "l399" > < / a > < / span > < span class = cF1 > public< / span > < span class = cF0 > < / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *< / span > < span class = cF5 > DocNew< / span > < span class = cF0 > (< / span > < span class = cF1 > U8< / span > < span class = cF0 > *filename=< / span > < span class = cF3 > NULL< / span > < span class = cF0 > , < / span > < span class = cF9 > CTask< / span > < span class = cF0 > *task=< / span > < span class = cF3 > NULL< / span > < span class = cF0 > )
2021-07-26 20:29:49 +01:00
< a name = "l400" > < / a > {< / span > < span class = cF2 > //MAlloc new < / span > < a href = "https://zeal-operating-system.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1" > < span class = cF4 > DolDoc< / span > < / a > < span class = cF2 > . (Begin a new doc.)< / span > < span class = cF0 >
2021-07-04 23:11:34 +01:00
< a name = "l401" > < / a > < / span > < span class = cF9 > CDoc< / span > < span class = cF0 > *doc;
2021-07-03 05:07:57 +01:00
< a name = "l402" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l403" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (!task)
< a name = "l404" > < / a > task = < / span > < span class = cF5 > Fs< / span > < span class = cF0 > ;
< a name = "l405" > < / a > doc = < / span > < span class = cF5 > CAlloc< / span > < span class = cF0 > (< / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CDoc< / span > < span class = cF7 > )< / span > < span class = cF0 > , task);
< a name = "l406" > < / a > < / span > < span class = cF1 > if< / span > < span class = cF0 > (filename)
< a name = "l407" > < / a > < / span > < span class = cF5 > StrCopy< / span > < span class = cF0 > (doc-> filename.name, filename);
< a name = "l408" > < / a > < / span > < span class = cF1 > else< / span > < span class = cF0 >
< a name = "l409" > < / a > < / span > < span class = cF5 > StrCopy< / span > < span class = cF0 > (doc-> filename.name, < / span > < span class = cFB > blkdev< / span > < span class = cF0 > .tmp_filename);
< a name = "l410" > < / a > doc-> find_replace = < / span > < span class = cF5 > CAlloc< / span > < span class = cF0 > (< / span > < span class = cF1 > sizeof< / span > < span class = cF7 > (< / span > < span class = cF9 > CEdFindText< / span > < span class = cF7 > )< / span > < span class = cF0 > , task);
< a name = "l411" > < / a > doc-> find_replace-> scan_fwd = < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l412" > < / a > doc-> find_replace-> match_case = < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l413" > < / a > doc-> find_replace-> prompt = < / span > < span class = cF3 > TRUE< / span > < span class = cF0 > ;
< a name = "l414" > < / a > doc-> left_click_link = & < / span > < span class = cF5 > EdLeftClickLink< / span > < span class = cF0 > ;
< a name = "l415" > < / a > doc-> dollar_buf_size = < / span > < span class = cFE > 84< / span > < span class = cF0 > ;
< a name = "l416" > < / a > doc-> dollar_buf = < / span > < span class = cF5 > MAlloc< / span > < span class = cF0 > (doc-> dollar_buf_size, task);
< a name = "l417" > < / a > doc-> max_entries = < / span > < span class = cF3 > I64_MAX< / span > < span class = cF0 > ;
< a name = "l418" > < / a > doc-> win_task = task;
< a name = "l419" > < / a > doc-> mem_task = task;
< a name = "l420" > < / a > < / span > < span class = cF5 > DocReset< / span > < span class = cF0 > (doc, < / span > < span class = cF3 > FALSE< / span > < span class = cF0 > );
< a name = "l421" > < / a > doc-> doc_signature = < / span > < span class = cF3 > DOC_SIGNATURE_VAL< / span > < span class = cF0 > ;
2021-07-03 05:07:57 +01:00
< a name = "l422" > < / a >
2021-07-04 23:11:34 +01:00
< a name = "l423" > < / a > < / span > < span class = cF1 > return< / span > < span class = cF0 > doc;
2021-07-03 05:07:57 +01:00
< a name = "l424" > < / a > }
< / span > < / pre > < / body >
< / html >