ZealOS/docs/System/DolDoc/DocCodeTools.CC.html
TomAwezome 1b75d91002 Fix Mount AHCI Port selection.
Add arg to SATARep to specify drive types to show.
Add checks in AHCIPortInit to verify port signatures, add helper method to get signatures from port.
2021-08-02 16:40:05 -04:00

779 lines
86 KiB
HTML
Executable file

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
<meta name="generator" content="ZealOS V0.13">
<style type="text/css">
body {background-color:#fef1f0;}
.cF0{color:#000000;background-color:#fef1f0;}
.cF1{color:#0148a4;background-color:#fef1f0;}
.cF2{color:#3b7901;background-color:#fef1f0;}
.cF3{color:#057c7e;background-color:#fef1f0;}
.cF4{color:#bb2020;background-color:#fef1f0;}
.cF5{color:#9e42ae;background-color:#fef1f0;}
.cF6{color:#b57901;background-color:#fef1f0;}
.cF7{color:#b2b6af;background-color:#fef1f0;}
.cF8{color:#555753;background-color:#fef1f0;}
.cF9{color:#678fbb;background-color:#fef1f0;}
.cFA{color:#82bc49;background-color:#fef1f0;}
.cFB{color:#0097a2;background-color:#fef1f0;}
.cFC{color:#e26a6a;background-color:#fef1f0;}
.cFD{color:#c671bc;background-color:#fef1f0;}
.cFE{color:#c7ab00;background-color:#fef1f0;}
.cFF{color:#fef1f0;background-color:#fef1f0;}
</style>
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;DolDoc/Misc&quot;</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc, </span><span class=cF1>U8</span><span class=cF0> *st_original, </span><span class=cF1>U8</span><span class=cF0> *st_safe, </span><span class=cF9>I64</span><span class=cF0> num, </span><span class=cF1>Bool</span><span class=cF0> to_safe, </span><span class=cF1>Bool</span><span class=cF0> sel)
<a name="l4"></a>{
<a name="l5"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cF3>STR_LEN</span><span class=cF0>];
<a name="l6"></a>
<a name="l7"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf, st_safe,num);
<a name="l8"></a> </span><span class=cF1>if</span><span class=cF0> (to_safe)
<a name="l9"></a> </span><span class=cF5>EdReplace</span><span class=cF0>(doc, st_original, buf, sel);
<a name="l10"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l11"></a> </span><span class=cF5>EdReplace</span><span class=cF0>(doc, buf, st_original, sel);
<a name="l12"></a>}
<a name="l13"></a>
<a name="l14"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdReplaceTroubleAll</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF1>Bool</span><span class=cF0> to_safe,</span><span class=cF1>Bool</span><span class=cF0> sel)
<a name="l15"></a>{
<a name="l16"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l17"></a>
<a name="l18"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#assert&quot;</span><span class=cF0> , </span><span class=cF6>&quot;//&lt;@%d@&gt;&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l19"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#define&quot;</span><span class=cF0> , </span><span class=cF6>&quot;//&lt;@%d@&gt;&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l20"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#include&quot;</span><span class=cF0>, </span><span class=cF6>&quot;//&lt;@%d@&gt;&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l21"></a>
<a name="l22"></a></span><span class=cF2>//#if will match #if,#ifdef,#ifndef,#ifaot and #ifjit</span><span class=cF0>
<a name="l23"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#if&quot;</span><span class=cF0>, </span><span class=cF6>&quot;//&lt;@%d@&gt;&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l24"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#endif&quot;</span><span class=cF0>, </span><span class=cF6>&quot;//&lt;@%d@&gt;&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l25"></a>
<a name="l26"></a></span><span class=cF2>//Convert #exe to union because we want that indent pattern.</span><span class=cF0>
<a name="l27"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;#exe&quot;</span><span class=cF0>, </span><span class=cF6>&quot;union @%d@&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l28"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;'{'&quot;</span><span class=cF0>, </span><span class=cF6>&quot;'&lt;@%d@&gt;'&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l29"></a> </span><span class=cF5>EdReplaceTroubleOne</span><span class=cF0>(doc, </span><span class=cF6>&quot;'}'&quot;</span><span class=cF0>, </span><span class=cF6>&quot;'&lt;@%d@&gt;'&quot;</span><span class=cF0>, i++, to_safe, sel);
<a name="l30"></a>}
<a name="l31"></a>
<a name="l32"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>C_INDENT_SPACES</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>
<a name="l33"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ASM_RENUM_SPACING</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>
<a name="l34"></a>
<a name="l35"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EF_REINDENT</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>
<a name="l36"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EF_CMP_CHK</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>
<a name="l37"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EF_RENUM_ASM</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>
<a name="l38"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EF_CTRL_SLIDER</span><span class=cF0> </span><span class=cFE>3</span><span class=cF0>
<a name="l39"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EF_CH_SC</span><span class=cF0> </span><span class=cFE>4</span><span class=cF0>
<a name="l40"></a>
<a name="l41"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>PopUpEdFormat</span><span class=cF0>()
<a name="l42"></a>{
<a name="l43"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l44"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc = </span><span class=cF5>DocNew</span><span class=cF0>;
<a name="l45"></a>
<a name="l46"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;$LTBLUE$$MU,\&quot;Compile Check\&quot;,LE=EF_CMP_CHK$\n&quot;</span><span class=cF0>
<a name="l47"></a> </span><span class=cF6>&quot;$MU,\&quot;Reindent CosmiC Fun (Beware braces in strings.)\&quot;,&quot;</span><span class=cF0>
<a name="l48"></a> </span><span class=cF6>&quot;LE=EF_REINDENT$\n&quot;</span><span class=cF0>
<a name="l49"></a> </span><span class=cF6>&quot;$MU,\&quot;Renum Asm Local @@ Labels for Fun\&quot;,LE=EF_RENUM_ASM$\n&quot;</span><span class=cF0>
<a name="l50"></a> </span><span class=cF6>&quot;$MU,\&quot;Insert Template Code: Ctrl Slider\&quot;,LE=EF_CTRL_SLIDER$\n&quot;</span><span class=cF0>
<a name="l51"></a> </span><span class=cF6>&quot;$MU,\&quot;Insert ASCII/Scan Code Hex Codes for key pressed\&quot;,&quot;</span><span class=cF0>
<a name="l52"></a> </span><span class=cF6>&quot;LE=EF_CH_SC$\n\n&quot;</span><span class=cF0>
<a name="l53"></a> </span><span class=cF6>&quot;$MU,\&quot;CANCEL\&quot;,LE=DOCM_CANCEL$\n\n&quot;</span><span class=cF0>
<a name="l54"></a> </span><span class=cF6>&quot;$GREEN$&lt;ALT-BACKSPACE&gt;$FG$ to undo if not happy\n&quot;</span><span class=cF0>
<a name="l55"></a> </span><span class=cF6>&quot;with the ress.\n&quot;</span><span class=cF0>);
<a name="l56"></a> i = </span><span class=cF5>PopUpMenu</span><span class=cF0>(doc);
<a name="l57"></a> </span><span class=cF5>DocDel</span><span class=cF0>(doc);
<a name="l58"></a>
<a name="l59"></a> </span><span class=cF1>return</span><span class=cF0> i;
<a name="l60"></a>}
<a name="l61"></a>
<a name="l62"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CRILex</span><span class=cF0>
<a name="l63"></a>{
<a name="l64"></a> </span><span class=cF9>CCompCtrl</span><span class=cF0> *cc1, *cc2;
<a name="l65"></a> </span><span class=cF9>CQueueVectU8</span><span class=cF0> *indent;
<a name="l66"></a> </span><span class=cF9>I64</span><span class=cF0> depth, exp_depth, one_shot;
<a name="l67"></a> </span><span class=cF1>Bool</span><span class=cF0> was_new_line, is_not_cont;
<a name="l68"></a>};
<a name="l69"></a>
<a name="l70"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>EdRILex</span><span class=cF0>(</span><span class=cF9>CRILex</span><span class=cF0> *rx)
<a name="l71"></a>{
<a name="l72"></a> rx-&gt;is_not_cont = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l73"></a>
<a name="l74"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l75"></a> </span><span class=cF9>CLexFile</span><span class=cF0> *tmpf;
<a name="l76"></a>
<a name="l77"></a> </span><span class=cF1>do</span><span class=cF0>
<a name="l78"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l79"></a> </span><span class=cF5>Lex</span><span class=cF0>(rx-&gt;cc1);
<a name="l80"></a> </span><span class=cF5>Lex</span><span class=cF0>(rx-&gt;cc2);
<a name="l81"></a> i = </span><span class=cF5>ParseKeyWord</span><span class=cF0>(rx-&gt;cc2);
<a name="l82"></a> </span><span class=cF1>if</span><span class=cF0> ( rx-&gt;cc1-&gt;token == </span><span class=cF6>'\n'</span><span class=cF0> &amp;&amp; rx-&gt;cc2-&gt;token == </span><span class=cF6>';'</span><span class=cF0> ||
<a name="l83"></a> rx-&gt;cc2-&gt;token == </span><span class=cF6>'{'</span><span class=cF0> || rx-&gt;cc2-&gt;token == </span><span class=cF6>'}'</span><span class=cF0> || rx-&gt;cc2-&gt;token == </span><span class=cF6>':'</span><span class=cF0> || rx-&gt;cc2-&gt;token == </span><span class=cF6>')'</span><span class=cF0> &amp;&amp;
<a name="l84"></a> !rx-&gt;exp_depth || i == </span><span class=cF3>KW_ELSE</span><span class=cF0> || i == </span><span class=cF3>KW_CATCH</span><span class=cF0> || i == </span><span class=cF3>KW_DO</span><span class=cF0>)
<a name="l85"></a> rx-&gt;is_not_cont = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l86"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;was_new_line &amp;&amp; </span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1-&gt;token != </span><span class=cF6>':'</span><span class=cF0> || i == </span><span class=cF3>KW_CASE</span><span class=cF0> || i == </span><span class=cF3>KW_DEFAULT</span><span class=cF0> || i == </span><span class=cF3>KW_START</span><span class=cF0> || i == </span><span class=cF3>KW_END</span><span class=cF7>)</span><span class=cF0>)
<a name="l87"></a> {
<a name="l88"></a> tmpf = rx-&gt;cc2-&gt;lex_include_stack;
<a name="l89"></a> </span><span class=cF1>while</span><span class=cF0> (tmpf-&gt;next)
<a name="l90"></a> tmpf = tmpf-&gt;next;
<a name="l91"></a> </span><span class=cF5>QueueVectU8Put</span><span class=cF0>(rx-&gt;indent, tmpf-&gt;cur_entry-&gt;y, rx-&gt;depth + rx-&gt;one_shot);
<a name="l92"></a> rx-&gt;one_shot = </span><span class=cFE>0</span><span class=cF0>;
<a name="l93"></a> }
<a name="l94"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc2-&gt;token == </span><span class=cF6>'\n'</span><span class=cF0>)
<a name="l95"></a> rx-&gt;was_new_line = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l96"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l97"></a> rx-&gt;was_new_line = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l98"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l99"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>'\n'</span><span class=cF0>);
<a name="l100"></a>
<a name="l101"></a> </span><span class=cF1>return</span><span class=cF0> rx-&gt;cc1-&gt;token;
<a name="l102"></a>}
<a name="l103"></a>
<a name="l104"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdRIExp</span><span class=cF0>(</span><span class=cF9>CRILex</span><span class=cF0> *rx)
<a name="l105"></a>{
<a name="l106"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>'('</span><span class=cF0>)
<a name="l107"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l108"></a> </span><span class=cF1>if</span><span class=cF0> (!rx-&gt;exp_depth++)
<a name="l109"></a> rx-&gt;depth += </span><span class=cFE>3</span><span class=cF0>;
<a name="l110"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l111"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>')'</span><span class=cF0>)
<a name="l112"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l113"></a> </span><span class=cF1>if</span><span class=cF0> (!--rx-&gt;exp_depth)
<a name="l114"></a> {
<a name="l115"></a> rx-&gt;depth -= </span><span class=cFE>3</span><span class=cF0>;
<a name="l116"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l117"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l118"></a> }
<a name="l119"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l120"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>'['</span><span class=cF0>)
<a name="l121"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l122"></a> </span><span class=cF1>if</span><span class=cF0> (!rx-&gt;exp_depth++)
<a name="l123"></a> rx-&gt;depth += </span><span class=cFE>3</span><span class=cF0>;
<a name="l124"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l125"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>']'</span><span class=cF0>)
<a name="l126"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l127"></a> </span><span class=cF1>if</span><span class=cF0> (!--rx-&gt;exp_depth)
<a name="l128"></a> {
<a name="l129"></a> rx-&gt;depth -= </span><span class=cFE>3</span><span class=cF0>;
<a name="l130"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l131"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l132"></a> }
<a name="l133"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l134"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l135"></a>}
<a name="l136"></a>
<a name="l137"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdRIStatement</span><span class=cF0>(</span><span class=cF9>CRILex</span><span class=cF0> *rx, </span><span class=cF1>Bool</span><span class=cF0> indent)
<a name="l138"></a>{
<a name="l139"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l140"></a> </span><span class=cF1>Bool</span><span class=cF0> cont;
<a name="l141"></a>
<a name="l142"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>'{'</span><span class=cF0>)
<a name="l143"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l144"></a> rx-&gt;depth++;
<a name="l145"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l146"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>'}'</span><span class=cF0>)
<a name="l147"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l148"></a> </span><span class=cF1>if</span><span class=cF0> (--rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l149"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l150"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l151"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l152"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l153"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l154"></a> </span><span class=cF1>if</span><span class=cF0> (indent)
<a name="l155"></a> rx-&gt;depth++;
<a name="l156"></a> </span><span class=cF1>do</span><span class=cF0>
<a name="l157"></a> {
<a name="l158"></a> cont = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l159"></a> </span><span class=cF1>switch</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0>)
<a name="l160"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l161"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_IF</span><span class=cF0>:
<a name="l162"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l163"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l164"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l165"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF3>KW_ELSE</span><span class=cF0>)
<a name="l166"></a> {
<a name="l167"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l168"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF3>KW_IF</span><span class=cF0> &amp;&amp; rx-&gt;cc2-&gt;token != </span><span class=cF6>'\n'</span><span class=cF0>)
<a name="l169"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l170"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l171"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l172"></a> }
<a name="l173"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l174"></a>
<a name="l175"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_TRY</span><span class=cF0>:
<a name="l176"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l177"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l178"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF3>KW_CATCH</span><span class=cF0>)
<a name="l179"></a> {
<a name="l180"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l181"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l182"></a> }
<a name="l183"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l184"></a>
<a name="l185"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_LOCK</span><span class=cF0>:
<a name="l186"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l187"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l188"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l189"></a>
<a name="l190"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_FOR</span><span class=cF0>:
<a name="l191"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_WHILE</span><span class=cF0>:
<a name="l192"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l193"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l194"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l195"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l196"></a>
<a name="l197"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_ASM</span><span class=cF0>:
<a name="l198"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_CLASS</span><span class=cF0>:
<a name="l199"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_UNION</span><span class=cF0>:
<a name="l200"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdRILex</span><span class=cF7>(</span><span class=cF0>rx</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF3>TK_IDENT</span><span class=cF0>)
<a name="l201"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l202"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l203"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l204"></a>
<a name="l205"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_DO</span><span class=cF0>:
<a name="l206"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l207"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l208"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF3>KW_WHILE</span><span class=cF0>)
<a name="l209"></a> {
<a name="l210"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l211"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l212"></a> }
<a name="l213"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>';'</span><span class=cF0>)
<a name="l214"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l215"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l216"></a>
<a name="l217"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_SWITCH</span><span class=cF0>:
<a name="l218"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l219"></a> </span><span class=cF5>EdRIExp</span><span class=cF0>(rx);
<a name="l220"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>'{'</span><span class=cF0>)
<a name="l221"></a> {
<a name="l222"></a> rx-&gt;depth++;
<a name="l223"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l224"></a> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l225"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>'}'</span><span class=cF0>)
<a name="l226"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l227"></a> </span><span class=cF1>switch</span><span class=cF0> (</span><span class=cF5>ParseKeyWord</span><span class=cF7>(</span><span class=cF0>rx-&gt;cc1</span><span class=cF7>)</span><span class=cF0>) {
<a name="l228"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_START</span><span class=cF0>:
<a name="l229"></a> rx-&gt;depth += i;
<a name="l230"></a> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l231"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>EdRILex</span><span class=cF7>(</span><span class=cF0>rx</span><span class=cF7>)</span><span class=cF0> &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>':'</span><span class=cF0>);
<a name="l232"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l233"></a> i++;
<a name="l234"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l235"></a>
<a name="l236"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_END</span><span class=cF0>:
<a name="l237"></a> rx-&gt;depth += i;
<a name="l238"></a> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l239"></a> </span><span class=cF1>if</span><span class=cF0> (--rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l240"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l241"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>EdRILex</span><span class=cF7>(</span><span class=cF0>rx</span><span class=cF7>)</span><span class=cF0> &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>':'</span><span class=cF0>);
<a name="l242"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l243"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l244"></a>
<a name="l245"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_CASE</span><span class=cF0>:
<a name="l246"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>KW_DEFAULT</span><span class=cF0>:
<a name="l247"></a> rx-&gt;depth += i;
<a name="l248"></a> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l249"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>EdRILex</span><span class=cF7>(</span><span class=cF0>rx</span><span class=cF7>)</span><span class=cF0> &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>':'</span><span class=cF0>);
<a name="l250"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l251"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l252"></a>
<a name="l253"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l254"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token)
<a name="l255"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l256"></a> }
<a name="l257"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l258"></a> </span><span class=cF1>if</span><span class=cF0> (--rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l259"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l260"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l261"></a> }
<a name="l262"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l263"></a>
<a name="l264"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l265"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF3>TK_IDENT</span><span class=cF0> &amp;&amp;
<a name="l266"></a> rx-&gt;cc1-&gt;hash_entry &amp;&amp; rx-&gt;cc1-&gt;hash_entry-&gt;type &amp; </span><span class=cF7>(</span><span class=cF3>HTT_OPCODE</span><span class=cF0> | </span><span class=cF3>HTT_ASM_KEYWORD</span><span class=cF7>)</span><span class=cF0>)
<a name="l267"></a> {
<a name="l268"></a></span><span class=cF2>//</span><span class=cF0> </span><span class=cF2>rx-&gt;one_shot=4-rx-&gt;depth;</span><span class=cF0>
<a name="l269"></a> </span><span class=cF1>do</span><span class=cF0> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l270"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc2-&gt;token &amp;&amp; rx-&gt;cc2-&gt;token != </span><span class=cF6>'\n'</span><span class=cF0>);
<a name="l271"></a> rx-&gt;is_not_cont = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l272"></a> }
<a name="l273"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l274"></a> {
<a name="l275"></a> </span><span class=cF1>while</span><span class=cF0> (rx-&gt;cc1-&gt;token &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>';'</span><span class=cF0> &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>':'</span><span class=cF0>)
<a name="l276"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l277"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc2-&gt;token == </span><span class=cF6>'\n'</span><span class=cF0> &amp;&amp; !rx-&gt;is_not_cont)
<a name="l278"></a> rx-&gt;one_shot = </span><span class=cFE>3</span><span class=cF0>;
<a name="l279"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l280"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l281"></a> </span><span class=cF1>if</span><span class=cF0> (rx-&gt;cc1-&gt;token == </span><span class=cF6>':'</span><span class=cF0>)
<a name="l282"></a> cont = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l283"></a> </span><span class=cF5>EdRILex</span><span class=cF0>(rx);
<a name="l284"></a> }
<a name="l285"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l286"></a> }
<a name="l287"></a> </span><span class=cF1>while</span><span class=cF0> (cont &amp;&amp; rx-&gt;cc1-&gt;token != </span><span class=cF6>'}'</span><span class=cF0>);
<a name="l288"></a>
<a name="l289"></a> </span><span class=cF1>if</span><span class=cF0> (indent &amp;&amp; --rx-&gt;depth &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l290"></a> rx-&gt;depth = </span><span class=cFE>0</span><span class=cF0>;
<a name="l291"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l292"></a>}
<a name="l293"></a>
<a name="l294"></a></span><span class=cF9>CQueueVectU8</span><span class=cF0> *</span><span class=cF5>EdRICode</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l295"></a>{
<a name="l296"></a> </span><span class=cF9>CQueueVectU8</span><span class=cF0> *res;
<a name="l297"></a> </span><span class=cF9>CRILex</span><span class=cF0> *rx = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CRILex</span><span class=cF7>)</span><span class=cF0>);
<a name="l298"></a>
<a name="l299"></a> rx-&gt;cc1 = </span><span class=cF5>CompCtrlNew</span><span class=cF0>(, </span><span class=cF3>CCF_KEEP_NEW_LINES</span><span class=cF0> | </span><span class=cF3>CCF_DONT_FREE_BUF</span><span class=cF0>, doc-&gt;filename.name);
<a name="l300"></a> </span><span class=cF5>Free</span><span class=cF0>(rx-&gt;cc1-&gt;lex_include_stack-&gt;full_name);
<a name="l301"></a> </span><span class=cF5>LexAttachDoc</span><span class=cF0>(rx-&gt;cc1, rx-&gt;cc1-&gt;lex_include_stack, doc,, doc-&gt;cur_entry, doc-&gt;cur_col);
<a name="l302"></a>
<a name="l303"></a> rx-&gt;cc2 = </span><span class=cF5>CompCtrlNew</span><span class=cF0>(, </span><span class=cF3>CCF_KEEP_NEW_LINES</span><span class=cF0> | </span><span class=cF3>CCF_DONT_FREE_BUF</span><span class=cF0>, doc-&gt;filename.name);
<a name="l304"></a> </span><span class=cF5>Free</span><span class=cF0>(rx-&gt;cc2-&gt;lex_include_stack-&gt;full_name);
<a name="l305"></a> </span><span class=cF5>LexAttachDoc</span><span class=cF0>(rx-&gt;cc2, rx-&gt;cc2-&gt;lex_include_stack, doc,, doc-&gt;cur_entry, doc-&gt;cur_col);
<a name="l306"></a>
<a name="l307"></a> rx-&gt;indent = </span><span class=cF5>QueueVectU8New</span><span class=cF0>(doc-&gt;cur_entry-&gt;y);
<a name="l308"></a>
<a name="l309"></a> </span><span class=cF5>Lex</span><span class=cF0>(rx-&gt;cc1);
<a name="l310"></a> </span><span class=cF5>EdRIStatement</span><span class=cF0>(rx, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l311"></a>
<a name="l312"></a> </span><span class=cF5>CompCtrlDel</span><span class=cF0>(rx-&gt;cc1);
<a name="l313"></a> </span><span class=cF5>CompCtrlDel</span><span class=cF0>(rx-&gt;cc2);
<a name="l314"></a> res = rx-&gt;indent;
<a name="l315"></a> </span><span class=cF5>Free</span><span class=cF0>(rx);
<a name="l316"></a>
<a name="l317"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l318"></a>}
<a name="l319"></a>
<a name="l320"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdRemFunLeadingSpace</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l321"></a>{
<a name="l322"></a> </span><span class=cF1>Bool</span><span class=cF0> unlock = </span><span class=cF5>DocLock</span><span class=cF0>(doc), start_of_line = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l323"></a> </span><span class=cF1>U8</span><span class=cF0> *ptr;
<a name="l324"></a> </span><span class=cF9>I64</span><span class=cF0> ch, levels = </span><span class=cFE>1</span><span class=cF0>;
<a name="l325"></a> </span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e, *doc_e2;
<a name="l326"></a>
<a name="l327"></a> </span><span class=cF5>EdGoToFun</span><span class=cF0>(doc, </span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l328"></a> doc_e = doc-&gt;cur_entry-&gt;next;
<a name="l329"></a> </span><span class=cF1>do</span><span class=cF0>
<a name="l330"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l331"></a> doc_e2 = doc_e-&gt;next;
<a name="l332"></a> </span><span class=cF1>if</span><span class=cF0> (doc_e != doc &amp;&amp; doc_e != doc-&gt;cur_entry &amp;&amp; !</span><span class=cF7>(</span><span class=cF0>doc_e-&gt;de_flags &amp; (</span><span class=cF3>DOCEG_DONT_EDIT</span><span class=cF0> - </span><span class=cF3>DOCEF_SCROLLING_X</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0>)
<a name="l333"></a> </span><span class=cF1>switch</span><span class=cF0> (doc_e-&gt;type_u8)
<a name="l334"></a> {
<a name="l335"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>DOCT_TEXT</span><span class=cF0>:
<a name="l336"></a> ptr = doc_e-&gt;tag;
<a name="l337"></a> </span><span class=cF1>if</span><span class=cF0> (start_of_line)
<a name="l338"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l339"></a> </span><span class=cF1>while</span><span class=cF0> (*ptr == </span><span class=cF3>CH_SPACE</span><span class=cF0>)
<a name="l340"></a> ptr++;
<a name="l341"></a> </span><span class=cF1>if</span><span class=cF0> (*ptr)
<a name="l342"></a> start_of_line = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l343"></a> ptr = </span><span class=cF5>StrNew</span><span class=cF0>(ptr, doc-&gt;mem_task);
<a name="l344"></a> </span><span class=cF5>Free</span><span class=cF0>(doc_e-&gt;tag);
<a name="l345"></a> doc_e-&gt;tag = ptr;
<a name="l346"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l347"></a> </span><span class=cF1>if</span><span class=cF0> (!*ptr)
<a name="l348"></a> </span><span class=cF5>DocEntryDel</span><span class=cF0>(doc, doc_e);
<a name="l349"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l350"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l351"></a> </span><span class=cF1>while</span><span class=cF0> (ch = *ptr++)
<a name="l352"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'{'</span><span class=cF0>)
<a name="l353"></a> levels++;
<a name="l354"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'}'</span><span class=cF0>)
<a name="l355"></a> {
<a name="l356"></a> </span><span class=cF1>if</span><span class=cF0> (!--levels)
<a name="l357"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l358"></a> }
<a name="l359"></a> </span><span class=cF1>if</span><span class=cF0> (!levels)
<a name="l360"></a> </span><span class=cF1>goto</span><span class=cF0> ls_done;
<a name="l361"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l362"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l363"></a>
<a name="l364"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>DOCT_TAB</span><span class=cF0>:
<a name="l365"></a> </span><span class=cF1>if</span><span class=cF0> (start_of_line)
<a name="l366"></a> </span><span class=cF5>DocEntryDel</span><span class=cF0>(doc, doc_e);
<a name="l367"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l368"></a>
<a name="l369"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>DOCT_NEW_LINE</span><span class=cF0>:
<a name="l370"></a> start_of_line = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l371"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l372"></a>
<a name="l373"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l374"></a> start_of_line = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l375"></a> }
<a name="l376"></a> doc_e = doc_e2;
<a name="l377"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l378"></a> </span><span class=cF1>while</span><span class=cF0> (doc_e != doc-&gt;cur_entry);
<a name="l379"></a>
<a name="l380"></a>ls_done:
<a name="l381"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l382"></a> </span><span class=cF5>DocCenter</span><span class=cF0>(doc);
<a name="l383"></a> </span><span class=cF1>if</span><span class=cF0> (unlock)
<a name="l384"></a> </span><span class=cF5>DocUnlock</span><span class=cF0>(doc);
<a name="l385"></a>}
<a name="l386"></a>
<a name="l387"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CRenum</span><span class=cF0>
<a name="l388"></a>{
<a name="l389"></a> </span><span class=cF9>CRenum</span><span class=cF0> *next, *last;
<a name="l390"></a> </span><span class=cF1>U8</span><span class=cF0> label[</span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text)];
<a name="l391"></a>};
<a name="l392"></a>
<a name="l393"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>EdRAGetU8</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l394"></a>{
<a name="l395"></a> </span><span class=cF9>I64</span><span class=cF0> res = -</span><span class=cFE>1</span><span class=cF0>;
<a name="l396"></a>
<a name="l397"></a> </span><span class=cF1>while</span><span class=cF0> (doc-&gt;cur_entry != doc &amp;&amp; doc-&gt;cur_entry-&gt;type &amp; </span><span class=cF3>DOCET_SEL</span><span class=cF0> &amp;&amp; res &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l398"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l399"></a> res = </span><span class=cF5>EdCurU8</span><span class=cF0>(doc);
<a name="l400"></a> </span><span class=cF5>EdCursorRight</span><span class=cF0>(doc);
<a name="l401"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l402"></a>
<a name="l403"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l404"></a>}
<a name="l405"></a>
<a name="l406"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdRACollect</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc, </span><span class=cF9>CRenum</span><span class=cF0> *head)
<a name="l407"></a>{
<a name="l408"></a> </span><span class=cF9>I64</span><span class=cF0> ch, i;
<a name="l409"></a> </span><span class=cF9>CRenum</span><span class=cF0> *tmpr;
<a name="l410"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text)];
<a name="l411"></a>
<a name="l412"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l413"></a> </span><span class=cF1>while</span><span class=cF0> (ch &gt;= </span><span class=cFE>0</span><span class=cF0>)
<a name="l414"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l415"></a> </span><span class=cF1>if</span><span class=cF0> (ch != </span><span class=cF6>'@'</span><span class=cF0>)
<a name="l416"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l417"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l418"></a> {
<a name="l419"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l420"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'@'</span><span class=cF0>)
<a name="l421"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l422"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l423"></a> </span><span class=cF5>StrCopy</span><span class=cF0>(buf, </span><span class=cF6>&quot;@@&quot;</span><span class=cF0>);
<a name="l424"></a> i = </span><span class=cFE>2</span><span class=cF0>;
<a name="l425"></a> </span><span class=cF1>while</span><span class=cF0> (ch &gt;= </span><span class=cFE>0</span><span class=cF0> &amp;&amp; i &lt; </span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text</span><span class=cF7>)</span><span class=cF0>)
<a name="l426"></a> {
<a name="l427"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_alpha_numeric</span><span class=cF0>, ch</span><span class=cF7>)</span><span class=cF0>)
<a name="l428"></a> buf[i++] = ch;
<a name="l429"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l430"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l431"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l432"></a> }
<a name="l433"></a> </span><span class=cF1>if</span><span class=cF0> (i &lt; </span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text</span><span class=cF7>)</span><span class=cF0>)
<a name="l434"></a> {
<a name="l435"></a> buf[i++] = </span><span class=cFE>0</span><span class=cF0>;
<a name="l436"></a> </span><span class=cF1>while</span><span class=cF0> (ch &gt;= </span><span class=cFE>0</span><span class=cF0> &amp;&amp; </span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_white_space</span><span class=cF0>, ch</span><span class=cF7>)</span><span class=cF0>)
<a name="l437"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l438"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>':'</span><span class=cF0>)
<a name="l439"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l440"></a> ch = </span><span class=cF5>EdRAGetU8</span><span class=cF0>(doc);
<a name="l441"></a> tmpr = </span><span class=cF5>MAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CRenum</span><span class=cF7>)</span><span class=cF0>);
<a name="l442"></a> </span><span class=cF5>StrCopy</span><span class=cF0>(tmpr-&gt;label,buf);
<a name="l443"></a> </span><span class=cF5>QueueInsert</span><span class=cF0>(tmpr, head-&gt;last);
<a name="l444"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l445"></a> }
<a name="l446"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l447"></a> }
<a name="l448"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l449"></a></span><span class=cF2>//This is needed because we moved the</span><span class=cF0>
<a name="l450"></a> </span><span class=cF2>//cursor and it didn't recalc.</span><span class=cF0>
<a name="l451"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l452"></a>}
<a name="l453"></a>
<a name="l454"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdRenumAsm</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l455"></a>{
<a name="l456"></a> </span><span class=cF1>Bool</span><span class=cF0> unlock = </span><span class=cF5>DocLock</span><span class=cF0>(doc);
<a name="l457"></a> </span><span class=cF9>I64</span><span class=cF0> num = </span><span class=cFE>0</span><span class=cF0>;
<a name="l458"></a> </span><span class=cF9>CRenum</span><span class=cF0> head, *tmpr, *tmpr1;
<a name="l459"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text)], buf2[</span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CEdFindText</span><span class=cF0>.find_text)];
<a name="l460"></a>
<a name="l461"></a> </span><span class=cF5>QueueInit</span><span class=cF0>(&amp;head);
<a name="l462"></a> </span><span class=cF5>EdSelFun</span><span class=cF0>(doc, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l463"></a> </span><span class=cF5>EdRACollect</span><span class=cF0>(doc, &amp;head);
<a name="l464"></a>
<a name="l465"></a> tmpr = head.next;
<a name="l466"></a> </span><span class=cF1>while</span><span class=cF0> (tmpr != &amp;head)
<a name="l467"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l468"></a> tmpr1 = tmpr-&gt;next;
<a name="l469"></a> num += </span><span class=cF3>ASM_RENUM_SPACING</span><span class=cF0>;
<a name="l470"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;@#%02d&quot;</span><span class=cF0>, num);
<a name="l471"></a> </span><span class=cF5>EdReplace</span><span class=cF0>(doc, tmpr-&gt;label, buf, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l472"></a> </span><span class=cF5>Free</span><span class=cF0>(tmpr);
<a name="l473"></a> tmpr = tmpr1;
<a name="l474"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l475"></a>
<a name="l476"></a> </span><span class=cF1>while</span><span class=cF0> (num)
<a name="l477"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l478"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;@#%02d&quot;</span><span class=cF0>, num);
<a name="l479"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf2, </span><span class=cF6>&quot;@@%02d&quot;</span><span class=cF0>, num);
<a name="l480"></a> </span><span class=cF5>EdReplace</span><span class=cF0>(doc, buf, buf2, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l481"></a> num -= </span><span class=cF3>ASM_RENUM_SPACING</span><span class=cF0>;
<a name="l482"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l483"></a> </span><span class=cF5>EdSelAll</span><span class=cF0>(doc, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l484"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l485"></a> </span><span class=cF5>DocCenter</span><span class=cF0>(doc);
<a name="l486"></a> </span><span class=cF1>if</span><span class=cF0> (unlock)
<a name="l487"></a> </span><span class=cF5>DocUnlock</span><span class=cF0>(doc);
<a name="l488"></a>}
<a name="l489"></a>
<a name="l490"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdCodeTools2</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc, </span><span class=cF9>I64</span><span class=cF0> tool_action, </span><span class=cF1>Bool</span><span class=cF0> beep=</span><span class=cF3>TRUE</span><span class=cF0>)
<a name="l491"></a>{
<a name="l492"></a> </span><span class=cF1>Bool</span><span class=cF0> okay, unlock = </span><span class=cF5>DocLock</span><span class=cF0>(doc), start_of_line = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l493"></a> </span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e, *doc_ne;
<a name="l494"></a> </span><span class=cF9>I64</span><span class=cF0> i, start_y, end_y, x, r, goto_line_num;
<a name="l495"></a> </span><span class=cF1>U8</span><span class=cF0> *b, *st, *st2, *prj_file;
<a name="l496"></a> </span><span class=cF9>CTask</span><span class=cF0> *task = </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l497"></a> </span><span class=cF9>CJob</span><span class=cF0> *tmpc;
<a name="l498"></a> </span><span class=cF9>CQueueVectU8</span><span class=cF0> *indent;
<a name="l499"></a>
<a name="l500"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l501"></a> goto_line_num = doc-&gt;cur_entry-&gt;y + </span><span class=cFE>1</span><span class=cF0>;
<a name="l502"></a>
<a name="l503"></a> </span><span class=cF5>DocCaptureUndo</span><span class=cF0>(doc, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l504"></a> </span><span class=cF1>switch</span><span class=cF0> (tool_action)
<a name="l505"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l506"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_CMP_CHK</span><span class=cF0>:
<a name="l507"></a> okay = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l508"></a> </span><span class=cF1>if</span><span class=cF0> (doc-&gt;flags &amp; </span><span class=cF3>DOCF_PLAIN_TEXT</span><span class=cF0>)
<a name="l509"></a> </span><span class=cF5>DocFlagsToggle</span><span class=cF0>(doc, </span><span class=cF3>DOCF_PLAIN_TEXT</span><span class=cF0>);
<a name="l510"></a> </span><span class=cF5>DocWrite</span><span class=cF0>(doc);
<a name="l511"></a> task = </span><span class=cF5>Spawn</span><span class=cF0>(&amp;</span><span class=cF5>ServerCmdLine</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF6>&quot;Server&quot;</span><span class=cF0>,, </span><span class=cF5>Fs</span><span class=cF0>);
<a name="l512"></a> st2 = </span><span class=cF5>DirCur</span><span class=cF0>;
<a name="l513"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;Cd(\&quot;%s\&quot;);&quot;</span><span class=cF0>, st2);
<a name="l514"></a> tmpc = </span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, st, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l515"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l516"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l517"></a> </span><span class=cF5>WinHorz</span><span class=cF0>(</span><span class=cF5>Fs</span><span class=cF0>-&gt;win_left, </span><span class=cF5>Fs</span><span class=cF0>-&gt;win_right, task);
<a name="l518"></a> </span><span class=cF5>WinVert</span><span class=cF0>(</span><span class=cF5>Fs</span><span class=cF0>-&gt;win_top, </span><span class=cF5>Fs</span><span class=cF0>-&gt;win_bottom, task);
<a name="l519"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>JobResScan</span><span class=cF7>(</span><span class=cF0>tmpc, &amp;r</span><span class=cF7>)</span><span class=cF0>)
<a name="l520"></a> {
<a name="l521"></a> st = </span><span class=cF5>DirFile</span><span class=cF0>(doc-&gt;filename.name,, </span><span class=cF6>&quot;PRJ&quot;</span><span class=cF0>);
<a name="l522"></a> prj_file = </span><span class=cF5>FileNameAbs</span><span class=cF0>(st);
<a name="l523"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l524"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>FileFind</span><span class=cF7>(</span><span class=cF0>prj_file</span><span class=cF7>)</span><span class=cF0>)
<a name="l525"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l526"></a> st2 = </span><span class=cF5>DirFile</span><span class=cF0>(prj_file), st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;Cd(\&quot;%s\&quot;);&quot;</span><span class=cF0>, st2);
<a name="l527"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l528"></a> tmpc = </span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, st, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FREE_ON_COMPLETE</span><span class=cF0>);
<a name="l529"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l530"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;;Comp(\&quot;%s\&quot;,\&quot;SysTmp\&quot;,\&quot;SysTmp\&quot;);&quot;</span><span class=cF0>, prj_file);
<a name="l531"></a> tmpc = </span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, st, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l532"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l533"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>JobResScan</span><span class=cF7>(</span><span class=cF0>tmpc, &amp;r</span><span class=cF7>)</span><span class=cF0>)
<a name="l534"></a> </span><span class=cF1>if</span><span class=cF0> (!r)
<a name="l535"></a> {
<a name="l536"></a> tmpc = </span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, </span><span class=cF6>&quot;Load(\&quot;SysTmp\&quot;,LDF_JUST_LOAD);&quot;</span><span class=cF0>,
<a name="l537"></a> </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l538"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>JobResScan</span><span class=cF7>(</span><span class=cF0>tmpc, &amp;r</span><span class=cF7>)</span><span class=cF0>)
<a name="l539"></a> okay = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l540"></a> }
<a name="l541"></a> tmpc = </span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, </span><span class=cF6>&quot;Del(\&quot;SysTmp.*\&quot;);&quot;</span><span class=cF0>, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l542"></a> </span><span class=cF5>JobResScan</span><span class=cF0>(tmpc, &amp;r);
<a name="l543"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l544"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l545"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l546"></a> </span><span class=cF5>Free</span><span class=cF0>(prj_file);
<a name="l547"></a> st = </span><span class=cF5>DirFile</span><span class=cF0>(doc-&gt;filename.name, </span><span class=cF6>&quot;Load&quot;</span><span class=cF0>, </span><span class=cF6>&quot;CC&quot;</span><span class=cF0>);
<a name="l548"></a> prj_file = </span><span class=cF5>FileNameAbs</span><span class=cF0>(st);
<a name="l549"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l550"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>FileFind</span><span class=cF7>(</span><span class=cF0>prj_file</span><span class=cF7>)</span><span class=cF0>)
<a name="l551"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;;ExeFile(\&quot;%s\&quot;,CCF_JUST_LOAD);&quot;</span><span class=cF0>, prj_file);
<a name="l552"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l553"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;;ExeFile(\&quot;%s\&quot;,CCF_JUST_LOAD);&quot;</span><span class=cF0>, doc-&gt;filename.name);
<a name="l554"></a> tmpc=</span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, st, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l555"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l556"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>JobResScan</span><span class=cF7>(</span><span class=cF0>tmpc, &amp;r</span><span class=cF7>)</span><span class=cF0> &amp;&amp; r)
<a name="l557"></a> okay = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l558"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l559"></a> </span><span class=cF5>Free</span><span class=cF0>(prj_file);
<a name="l560"></a> }
<a name="l561"></a> </span><span class=cF1>if</span><span class=cF0> (!okay)
<a name="l562"></a> {
<a name="l563"></a> </span><span class=cF5>PopUpOk</span><span class=cF0>(</span><span class=cF6>&quot;Has Errors&quot;</span><span class=cF0>);
<a name="l564"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>LBts</span><span class=cF7>(</span><span class=cF0>&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_FIX</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
<a name="l565"></a> </span><span class=cF5>Yield</span><span class=cF0>;
<a name="l566"></a> </span><span class=cF5>ToFileLine</span><span class=cF0>(</span><span class=cFB>debug</span><span class=cF0>.fix_file_line, &amp;st, &amp;i);
<a name="l567"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_FIX</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF0>);
<a name="l568"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrCompare</span><span class=cF7>(</span><span class=cF0>st, doc-&gt;filename.name</span><span class=cF7>)</span><span class=cF0>)
<a name="l569"></a> goto_line_num = i;
<a name="l570"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l571"></a> }
<a name="l572"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l573"></a>
<a name="l574"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_REINDENT</span><span class=cF0>:
<a name="l575"></a> start_y = doc-&gt;cur_entry-&gt;y;
<a name="l576"></a> </span><span class=cF5>EdReplaceTroubleAll</span><span class=cF0>(doc, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l577"></a> </span><span class=cF5>DocGoToLine</span><span class=cF0>(doc, start_y + </span><span class=cFE>1</span><span class=cF0>);
<a name="l578"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdGoToFun</span><span class=cF7>(</span><span class=cF0>doc, </span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF7>)</span><span class=cF0>)
<a name="l579"></a> {
<a name="l580"></a> start_y = doc-&gt;cur_entry-&gt;y;
<a name="l581"></a> indent = </span><span class=cF5>EdRICode</span><span class=cF0>(doc);
<a name="l582"></a> </span><span class=cF5>DocUnlock</span><span class=cF0>(doc);
<a name="l583"></a> </span><span class=cF1>if</span><span class=cF0> (beep)
<a name="l584"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l585"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>86</span><span class=cF0>);
<a name="l586"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>150</span><span class=cF0>);
<a name="l587"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l588"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>100</span><span class=cF0>);
<a name="l589"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>86</span><span class=cF0>);
<a name="l590"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>150</span><span class=cF0>);
<a name="l591"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l592"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l593"></a> </span><span class=cF5>DocLock</span><span class=cF0>(doc);
<a name="l594"></a> </span><span class=cF5>EdRemFunLeadingSpace</span><span class=cF0>(doc);
<a name="l595"></a> </span><span class=cF5>DocGoToLine</span><span class=cF0>(doc, start_y + </span><span class=cFE>1</span><span class=cF0>);
<a name="l596"></a> doc_e = doc-&gt;cur_entry;
<a name="l597"></a> end_y = start_y + indent-&gt;total_count;
<a name="l598"></a> </span><span class=cF1>while</span><span class=cF0> (start_y &lt;= doc_e-&gt;y &lt; end_y)
<a name="l599"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l600"></a> </span><span class=cF1>if</span><span class=cF0> (doc_e != doc &amp;&amp; doc_e != doc-&gt;cur_entry &amp;&amp; !</span><span class=cF7>(</span><span class=cF0>doc_e-&gt;de_flags &amp; (</span><span class=cF3>DOCEG_DONT_EDIT</span><span class=cF0> - </span><span class=cF3>DOCEF_SCROLLING_X</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0>)
<a name="l601"></a> {
<a name="l602"></a> </span><span class=cF1>if</span><span class=cF0> (doc_e-&gt;type_u8 == </span><span class=cF3>DOCT_NEW_LINE</span><span class=cF0> || doc_e-&gt;type_u8 == </span><span class=cF3>DOCT_SOFT_NEW_LINE</span><span class=cF0>)
<a name="l603"></a> start_of_line = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l604"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l605"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l606"></a> </span><span class=cF1>if</span><span class=cF0> (start_of_line)
<a name="l607"></a> {
<a name="l608"></a> i = </span><span class=cF5>QueueVectU8Get</span><span class=cF0>(indent, doc_e-&gt;y) * </span><span class=cF3>C_INDENT_SPACES</span><span class=cF0>;
<a name="l609"></a> x = doc_e-&gt;x + </span><span class=cFE>1</span><span class=cF0>;
<a name="l610"></a> </span><span class=cF1>while</span><span class=cF0> (i &gt; </span><span class=cFE>8</span><span class=cF0>)
<a name="l611"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l612"></a> doc_ne = </span><span class=cF5>DocEntryNewBase</span><span class=cF0>(doc,
<a name="l613"></a> </span><span class=cF3>DOCT_TAB</span><span class=cF0> | doc-&gt;settings_head.default_text_attr &lt;&lt; </span><span class=cFE>8</span><span class=cF0>,,
<a name="l614"></a> x, doc_e-&gt;y, doc_e-&gt;page_line_num);
<a name="l615"></a> </span><span class=cF5>MemCopy</span><span class=cF0>(&amp;doc_ne-&gt;settings, &amp;doc_e-&gt;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="l616"></a> </span><span class=cF5>QueueInsert</span><span class=cF0>(doc_ne, doc_e-&gt;last);
<a name="l617"></a> i -= </span><span class=cFE>8</span><span class=cF0>;
<a name="l618"></a> x += </span><span class=cFE>8</span><span class=cF0>;
<a name="l619"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l620"></a> </span><span class=cF1>if</span><span class=cF0> (i &gt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l621"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l622"></a> b = </span><span class=cF5>MAlloc</span><span class=cF0>(i + </span><span class=cFE>1</span><span class=cF0>, doc-&gt;mem_task);
<a name="l623"></a> </span><span class=cF5>MemSet</span><span class=cF0>(b, </span><span class=cF3>CH_SPACE</span><span class=cF0>, i);
<a name="l624"></a> b[i] = </span><span class=cFE>0</span><span class=cF0>;
<a name="l625"></a> doc_ne = </span><span class=cF5>DocEntryNewBase</span><span class=cF0>(doc,
<a name="l626"></a> </span><span class=cF3>DOCT_TEXT</span><span class=cF0> | doc-&gt;settings_head.default_text_attr &lt;&lt; </span><span class=cFE>8</span><span class=cF0>,,
<a name="l627"></a> x, doc_e-&gt;y, doc_e-&gt;page_line_num);
<a name="l628"></a> doc_ne-&gt;tag = b;
<a name="l629"></a> doc_ne-&gt;max_col = </span><span class=cFE>1</span><span class=cF0>;
<a name="l630"></a> </span><span class=cF5>MemCopy</span><span class=cF0>(&amp;doc_ne-&gt;settings, &amp;doc_e-&gt;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="l631"></a> </span><span class=cF5>QueueInsert</span><span class=cF0>(doc_ne, doc_e-&gt;last);
<a name="l632"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l633"></a> }
<a name="l634"></a> start_of_line = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l635"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l636"></a> }
<a name="l637"></a> doc_e = doc_e-&gt;next;
<a name="l638"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l639"></a> </span><span class=cF5>QueueVectU8Del</span><span class=cF0>(indent);
<a name="l640"></a> }
<a name="l641"></a> start_y = doc-&gt;cur_entry-&gt;y;
<a name="l642"></a> </span><span class=cF5>EdReplaceTroubleAll</span><span class=cF0>(doc, </span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l643"></a> </span><span class=cF5>DocGoToLine</span><span class=cF0>(doc, start_y + </span><span class=cFE>1</span><span class=cF0>);
<a name="l644"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l645"></a>
<a name="l646"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_RENUM_ASM</span><span class=cF0>:
<a name="l647"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdGoToFun</span><span class=cF7>(</span><span class=cF0>doc, </span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF7>)</span><span class=cF0>)
<a name="l648"></a> {
<a name="l649"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdCurU8</span><span class=cF7>(</span><span class=cF0>doc</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF6>'{'</span><span class=cF0>)
<a name="l650"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l651"></a> </span><span class=cF5>EdCursorRight</span><span class=cF0>(doc);
<a name="l652"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l653"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l654"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdCurU8</span><span class=cF7>(</span><span class=cF0>doc</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF6>':'</span><span class=cF0>)
<a name="l655"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l656"></a> </span><span class=cF5>EdCursorRight</span><span class=cF0>(doc);
<a name="l657"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>EdCurU8</span><span class=cF7>(</span><span class=cF0>doc</span><span class=cF7>)</span><span class=cF0> == </span><span class=cF6>':'</span><span class=cF0>)
<a name="l658"></a> </span><span class=cF5>EdCursorRight</span><span class=cF0>(doc);
<a name="l659"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l660"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l661"></a> </span><span class=cF5>DocUnlock</span><span class=cF0>(doc);
<a name="l662"></a> </span><span class=cF1>if</span><span class=cF0> (beep)
<a name="l663"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l664"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>86</span><span class=cF0>);
<a name="l665"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>150</span><span class=cF0>);
<a name="l666"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l667"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>100</span><span class=cF0>);
<a name="l668"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>86</span><span class=cF0>);
<a name="l669"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>150</span><span class=cF0>);
<a name="l670"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l671"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l672"></a> </span><span class=cF5>DocLock</span><span class=cF0>(doc);
<a name="l673"></a> </span><span class=cF5>EdRenumAsm</span><span class=cF0>(doc);
<a name="l674"></a> }
<a name="l675"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l676"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l677"></a>
<a name="l678"></a> </span><span class=cF5>DocRecalc</span><span class=cF0>(doc);
<a name="l679"></a> </span><span class=cF5>DocGoToLine</span><span class=cF0>(doc, goto_line_num);
<a name="l680"></a>
<a name="l681"></a> </span><span class=cF5>DocUnlock</span><span class=cF0>(doc);
<a name="l682"></a> </span><span class=cF1>if</span><span class=cF0> (!unlock)
<a name="l683"></a> </span><span class=cF5>DocLock</span><span class=cF0>(doc);
<a name="l684"></a> </span><span class=cF1>if</span><span class=cF0> (task)
<a name="l685"></a> </span><span class=cF5>Kill</span><span class=cF0>(task, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l686"></a>}
<a name="l687"></a>
<a name="l688"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdPopUpChSC</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_ch, </span><span class=cF9>I64</span><span class=cF0> *_sc)
<a name="l689"></a>{
<a name="l690"></a> </span><span class=cF9>I64</span><span class=cF0> sc;
<a name="l691"></a>
<a name="l692"></a> </span><span class=cF6>&quot;Press A Key\n&quot;</span><span class=cF0>;
<a name="l693"></a> </span><span class=cF5>DocPut</span><span class=cF0>-&gt;flags |= </span><span class=cF3>DOCF_SIZE_MIN</span><span class=cF0>;
<a name="l694"></a> </span><span class=cF1>do</span><span class=cF0> </span><span class=cF5>MessageGet</span><span class=cF0>(_ch, &amp;sc, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>MESSAGE_KEY_DOWN</span><span class=cF0>);
<a name="l695"></a> </span><span class=cF1>while</span><span class=cF0> (sc.u8[</span><span class=cFE>0</span><span class=cF0>] == </span><span class=cF3>SC_SHIFT</span><span class=cF0> || sc.u8[</span><span class=cFE>0</span><span class=cF0>] == </span><span class=cF3>SC_CTRL</span><span class=cF0> || sc.u8[</span><span class=cFE>0</span><span class=cF0>] == </span><span class=cF3>SC_ALT</span><span class=cF0>);
<a name="l696"></a> *_sc = sc;
<a name="l697"></a>}
<a name="l698"></a>
<a name="l699"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdChSC</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l700"></a>{
<a name="l701"></a> </span><span class=cF9>I64</span><span class=cF0> ch, sc;
<a name="l702"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cF3>STR_LEN</span><span class=cF0>];
<a name="l703"></a>
<a name="l704"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;EdPopUpChSC(%d,%d);&quot;</span><span class=cF0>, &amp;ch, &amp;sc);
<a name="l705"></a> </span><span class=cF5>PopUp</span><span class=cF0>(buf, </span><span class=cF5>Fs</span><span class=cF0>);
<a name="l706"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_BACKSPACE</span><span class=cF0>)
<a name="l707"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;CH_BACKSPACE,0x%X&quot;</span><span class=cF0>, sc);
<a name="l708"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'\n'</span><span class=cF0>)
<a name="l709"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;'\n',0x%X&quot;</span><span class=cF0>, sc);
<a name="l710"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF3>CH_CTRLA</span><span class=cF0> &lt;= ch &lt;= </span><span class=cF3>CH_CTRLZ</span><span class=cF0>)
<a name="l711"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;CH_CTRL%C,0x%X&quot;</span><span class=cF0>, ch + </span><span class=cF6>'@'</span><span class=cF0>, sc);
<a name="l712"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'$'</span><span class=cF0>)
<a name="l713"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;'$$',0x%X&quot;</span><span class=cF0>, sc);
<a name="l714"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'\\'</span><span class=cF0>)
<a name="l715"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;'\\\\',0x%X&quot;</span><span class=cF0>, sc);
<a name="l716"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF6>'\''</span><span class=cF0>)
<a name="l717"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;'\\\'',0x%X&quot;</span><span class=cF0>, sc);
<a name="l718"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_ESC</span><span class=cF0>)
<a name="l719"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;CH_ESC,0x%X&quot;</span><span class=cF0>, sc);
<a name="l720"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_SHIFT_ESC</span><span class=cF0>)
<a name="l721"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;CH_SHIFT_ESC,0x%X&quot;</span><span class=cF0>, sc);
<a name="l722"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_SPACE</span><span class=cF0>)
<a name="l723"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc,</span><span class=cF6>&quot;CH_SPACE,0x%X&quot;</span><span class=cF0>, sc);
<a name="l724"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_displayable</span><span class=cF0>, ch</span><span class=cF7>)</span><span class=cF0>)
<a name="l725"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;'%c',0x%X&quot;</span><span class=cF0>, ch, sc);
<a name="l726"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l727"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>&quot;0x%X,0x%X&quot;</span><span class=cF0>, ch, sc);
<a name="l728"></a>}
<a name="l729"></a>
<a name="l730"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>EdCodeTools</span><span class=cF0>(</span><span class=cF9>CDoc</span><span class=cF0> *doc)
<a name="l731"></a>{
<a name="l732"></a> </span><span class=cF9>I64</span><span class=cF0> tool_action = </span><span class=cF5>PopUpEdFormat</span><span class=cF0>;
<a name="l733"></a>
<a name="l734"></a> </span><span class=cF1>switch</span><span class=cF0> (tool_action)
<a name="l735"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l736"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_CMP_CHK</span><span class=cF0>:
<a name="l737"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_REINDENT</span><span class=cF0>:
<a name="l738"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_RENUM_ASM</span><span class=cF0>:
<a name="l739"></a> </span><span class=cF5>EdCodeTools2</span><span class=cF0>(doc, tool_action);
<a name="l740"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l741"></a>
<a name="l742"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_CTRL_SLIDER</span><span class=cF0>:
<a name="l743"></a> </span><span class=cF5>TemplateCtrlSlider</span><span class=cF0>(doc);
<a name="l744"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l745"></a>
<a name="l746"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>EF_CH_SC</span><span class=cF0>:
<a name="l747"></a> </span><span class=cF5>EdChSC</span><span class=cF0>(doc);
<a name="l748"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l749"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l750"></a>}
</span></pre></body>
</html>