From c526f81dfed171b8d1f5f4b1a43f2cd50c49a044 Mon Sep 17 00:00:00 2001 From: ElectricAlchemist Date: Mon, 28 Oct 2019 18:37:18 +0100 Subject: [PATCH] add and delete chars from buffers --- ste | Bin 22168 -> 22208 bytes ste.c | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/ste b/ste index 18a394e266a1754a194a0f8ae6be5da4ba4ccb72..1600ef6f1002138ed82b5fc5e1fc6cf0a291619a 100755 GIT binary patch delta 4378 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 delta 3930 zcmZu!4|G%28GkRyqY09}lqRH6DzOG>td>wx5_aQSDbk{B{=rkJ9${NOhUrm9 zqG^Uhnj_7DwXEQ2eZMQMNonz~!ya0o$6skbqe)qjZJ)GTh z@_qOFeZTwNd%yeV-DLLiJNNQkWhKdLIK3=46j%1F|D&mw9foz;p-kr&*xF5o*{;O+ zf7+V!%x1-J+T(oCIWfNYXL9hBqyN}&$@|&ixi@}T*R7fc1<(4K263d((AIoAZ}*V3 z(U!Q6P|NH}U_^@eNFYP9!tHeiB`dV#YbnhXpF!l%p>mE>r)iqj!-JyUh8m$;tV9|o za&Rwmel)3RG3kAh&WIhS(G`&+zA7S@7arg5Kx z&?kJ>2I-`FK#$l@QWKik@jFl(;Hg9h3HvFJ&X1+e@bTgm;#-j=+R~}nZrc@)n-7CNv_MiR|3bAo~W@e_zJvTaPqIlQCoi z^U4y*=~LfjFl7LB`uZ&nj6Jv1j>|aH^M=+xZ9;SjXX1j*m$82&&O^A|rN&5hx;M z0>eFjIdtfdo>D23>f?#jOT^c+q*uK@^`$LwO0MS#ZM3HPOl{)Xj3mrK1ZfQ0Vsa_R zt@RHQ+Jck>KfqQFuO{;REMQ4E1{ugS$UpRoCBmC9R1veeCwxbPe4lSw0@+A1uofV7 zJ&!6C_CVJ3iQ6ET3m?jiz+vyv=MIMvTn*Cae> z_H(F+bY5KudZae^r&_L>6XnC8MQVay7@Rni*xAc48d6{ch7WL9boKGCu*9+}r3|@T zi8B}VjkM%j{)_NaSK5ejEfnkNEuClnp6u))t-&hhlr4ib?GAC<8f;N&pKtKb+zgMo zy-Z%s&u#Lmvk)s+4MN+3LPDe?ED;xuq&_W@n-kT@hq(P9j#KU!J5w~Y7ZGUi114QO zf;PyZ<1oxEoLX%RmclGd=A|z+Ell09RMsLtrAqY}S)OGYbkiu~$?Op_y7nyK# z)EpM&QfyzG2+8$_1iZO=(9^?W=ly6*g;xQYgI9phc);l+lsj)}GKuN!j8jU5S~Q55 zg?Uhotr;4eqwFY~XX?A4WXi6yRmfYkKn7Qua;B^)(RLn7L@mAsDXSjGpi@!Y)cdh+ z$nVWdkh<{;dVK+_?*>_21R$WPd!eXM2RNPCQkoU~sC_-+N*ICR+_e~w+{EVw5D%v) zw*xwyI;f=%Yq|IIl`OfqnC0~{lZ`mt_OnXw)z>A;(H>I|*JMO_I%~WVX?PQ)X!>A$ zYF5~dDl7b;kxptUlA>Jh1dHj~#)1i*kn%KB8kgB1;Pi0ZmO6>``4Mn_klG()EL_fo z<=_V>yI?zi4RXThB?1a7EVRr*N7-Cwur&elI1qe9aB=3^Sv6F~=$l8WFbx&mhd1B`S-;DiE0^@m&sbA)gDiZX z-OaN73ky@BO;{7nwRjQ7oiknva%dgvNEU8ms%9eY!bh+eetZPuHf@NKRFyr#i_nWRoz)fH#EHn?_NG_ zAHSojut@bc7eio zzftkP+Xn-4)AzVu4m(s9(t+?H;W!;{EM2jbLoWS($;Ki7V#z<#7d1 z4OXsK-dN#Q_E{`<>E3G$v>@5bmf<5;;4AXDHy^FQUxy0MdAQ2e2EyjZ$^**F5w~YM zYAjk|{JIO`MP(@B=Jk=-_QU46>D(s87M-&rYEc$Not|Sl=;GA;Uw}fxkCl6)ZqK-G zmT*Zn+HV!B@@&){SciMk#9f6&{gw;WYcaOz7|fX0zzaiNp!AyE{Bq?pM4p1SUapMe z^3y3qxKrnB(B)mq>XmMOlV0DfJh{^Cc>lNdlukgejTh6>J zE&06Riqgv};4Cv;UcupF56t}FU_EFY~YAFZ&>r{?j( zAIG`*UeYXD;01VDG{+UuUdgv|OgHEo*fB@h!&>pb*X7%~JfzDJU7pb8C0$yTH)3wS zT$c-#(U@DP#ZmAoVN)sJ!cgG{uq$-?5uKIPchars[cur++] = (char)c; + rw->chars[cur++] = c; //copy after cursor for (i = cur; i < rw->size + 1; i++) { @@ -403,6 +410,37 @@ void rowAddChar (row *rw, char c) // WIP t.cur.x++; } +void rowDeleteChar (row *rw, int m) // WIP +{ + int cur = t.cur.x + t.cur.off_x; + char *s = rw->chars; + //Do not delete NULL char + if(s[cur - 1] == '\0' || !cur) return; + + rw->chars = malloc(rw->size); + rw->size--; + + // Backspace + if (!m) { + for (int i = 0; i < cur - 1; i++) + rw->chars[i] = s[i]; + + for (int i = cur; i < rw->size + 1; i++) + rw->chars[i - 1] = s[i]; + // Delete + } else { + for (int i = 0; i < cur; i++) + rw->chars[i] = s[i]; + + for (int i = cur + 1; i < rw->size + 1; i++) + rw->chars[i - 1] = s[i]; + } + + free(s); + updateRender(rw); + t.cur.x--; +} + /* ----------------------------- file operations --------------------------- */ /* take care of the cursor movement */