From 00c74a47d7d55f30f459fe30de0763faa6b3ea84 Mon Sep 17 00:00:00 2001 From: Dany Thinnes Date: Thu, 2 Dec 2021 10:05:42 +0100 Subject: [PATCH] Version 0.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Folgende Ziele wurden erreicht: * Fehlerbereinigung * Falls sich der Text geändert hat, wird nachgefragt, ob der Text gespeichert, > * Name vom geladenen Text wird im Titel angezeigt Folgendes bleibt zu tun: - Fehlerbereinigung (bleibt immer als Ziel dabei) - Stern hinter Name, wenn der Text sich geändert hat --- Versionen | 12 ++- phED | Bin 9424 -> 19036 bytes phED.link | 6 +- phED.map | 214 +++++++++++++++++++++++++++++++++----------------- phED.¶ | 9 +++ phed-file.h | 9 ++- phed-init.h | 7 +- phed-req.h | 32 ++++++++ phed.c | 74 +++++++++++++---- phed.debug | Bin 45908 -> 46880 bytes phed.o | Bin 1976 -> 2984 bytes unbenannt.txt | 2 +- 12 files changed, 267 insertions(+), 98 deletions(-) create mode 100644 phed-req.h diff --git a/Versionen b/Versionen index d15d8e4..01c7ebe 100644 --- a/Versionen +++ b/Versionen @@ -4,6 +4,12 @@ Im ersten Video wird es um Version 0.1 gehen. Folgendes soll dabei erreicht werd * Anzeige des Text-Editors * Laden eines Textes mittels Startparameter * Prüfung, ob der Text im Editor sich verändert hat beim verlassen -- Falls sich der Text nicht geändert hat, wird das Programm einfach beendet -- Falls sich der Text geändert hat, wird nachgefragt, ob der Text gespeichert, nicht gespeichert, oder ob der Vorgang abgebrochen werden soll. -* Wenn der Text gespeichert werden soll, wird entweder der zuvor geladene Text überschreiben und falls keiner geladen wurde, der Text in die Datei "unbenannt.txt" gespeichert.^@Y*à \ No newline at end of file +* Falls sich der Text nicht geändert hat, wird das Programm einfach beendet +* Wenn der Text gespeichert werden soll, wird entweder der zuvor geladene Text überschreiben und falls keiner geladen wurde, der Text in die Datei "unbenannt.txt" gespeichert. + +Zweites Video Ziele: + +* Fehlerbereinigung +* Falls sich der Text geändert hat, wird nachgefragt, ob der Text gespeichert, nicht gespeichert, oder ob der Vorgang abgebrochen werden soll. +* Name vom geladenen Text wird im Titel angezeigt +- Stern hinter Name, wenn der Text sich geändert hat \ No newline at end of file diff --git a/phED b/phED index 6e07fcf508af1654f479227fe66bb0209eba2589..0e6ba26152171590b6e9ce99c72a4ffb4b35a415 100644 GIT binary patch literal 19036 zcmd6P4{%gfn(x;)mrm1ZGHq;Q6S|UX)5*3WNjI2vLTqEFiB4}P8)D)((dX(VkiLK+ zi6OxZmB(w6fUIjd=rS&4@qE^lrHl){43BluvM59z#juW>;!#uGzIO`Y7lG%Aa{h(i zD+Wnj{1N9^{Ezriz1&I(X#rBJxP+RD z_buo022nv4%?Q)u5`p{}=#bNJ3O>$Mp6Lz|?=j;&v*KN5ylYmx+l)`kKiyIBMDsxO z3r*=KnYWi#e4V?r`K{ld5pCcUe4NH(nN;hkbgDPp7&? zs@qWdEwM=4%I!r5gG$pUVU;DKVAGX(M2!nH;@+{R0Y-OhHt*&{5}WM^-=xhZ@!8I{gmN8KHQoJnC}aZwSX#@k?E!5 zEh{rQS#HNLRDrr)(G~sWjFg%ka;nXLA=<&K^^ha-1~eI#`Te_inpK{1DrG@|c zm%f!~)lo>~X!@i<)Gv88VE1kyhYvMeGDMwZNnTy@XUWOP{^Zn(%j87(T66>F;@SkF zkn;)V7qB;7!60(@dbnk{J#zoA;Hw7g;+ey-ki!y~FZ)FK5`29qjaE&582uu+OsgbY zKRFWUPfL%^QUvZKmHBXQNxkRxUJ_28OQi-Xljk@`>A{wjskl@L?}p^L$Wj|+$18SG z{=D8Q`m8#YcP4e2mQ8zR?iA&W4nU^!Ov_Rf3mcT9h!!}^G0H)~@oMA^`5&mBM=E+m zXj>?eLxtQnc*;@gxj`R!z+(~`652++E?E{Ki|AL^4a&Gu`M))nL*!Cg=0yiBJ0S^% zNjelar6l^xbZ9gk8cv5s(xI)~Zh}g;Xa&?36nlgO&Kt=25bAaV!3a-U9?xK^3GL}2JN?Gh~FQANC? zWJSLPc_M(hmzyE}0bLh73i2;6}2eWlqb{70(xPA7_4x z&$O@PTA6XT^hnN z-RRud+qrJ_TBK=DcOq~1edK%i{?=NpckTTR+QXfF8`t%8Yr(2z6zS{)jc)our=(@4 zW)$q#jP!d;U(fo^C;PSNy1wpsU*|e{BDQMiiRR9A-9t~*cXad(tX@mTsx?Mu|HeSq zsvq|Z^jFE(bZkFl?p(93zo##i!eUS#^>scq(7Ca{v#)A(*Q$*hX`s8KvwKx{cYjs? zU_U)gPp|7<)AO{MD6ICfvL13(^pF$d=^<`KIm2kNF`m8pFkj_M+iOp-zM((NcW%p{ zp43~oABgIIhaa0ahVf?CVw#^^tRVfzHTGis0@G9l&6;3YfPDS{X^_#4 zR`m2!Y&8CWHh4vS(JV=lahr%sYp=rWS26;ESq0CBd$*5E1nToF5>(%;tECF z9occPdM~r&IhX}e*O@f@*P$WXWF`$OjdI;nEz_SwUH19NNVSzBd}z^1afg`;amm+p z;r&`tt(nyZm@zzpdsViyhOAZ1j5t}VrP*<))hO4>GFPUx8UFC=rA!ZH;*zhYYB9Ti zjVdiB)A}qvKiM{+meX~x7KN#JFJe)vb5fu5M}_=#*>V}OMWZv~WQ*2k$Hj|hN-t!| zY8@>WgT`Xkd{^*th+ija(?G6S()gjr1=3#e98RjJGjc)a-QHN_=j0J#P5k=AuV4ID zcw>u)pc73Llp*IRRm)JpKB_T8$0#I2w|-7x8FGcF!3;e{Q8Tognq=s<1hwd5g=N7k zmmCsn8`@0TJXpn0^S~-vwFLh zOgqTQ>xd!J8q@YU5x4WWZ<=DC+S>>#E9^}%#J_v%*{x=775sMTp@1T#$M2ow zkM?4v#Ztps74G4AOH;;~QaDX%*rYUkc36*Ujb(n)QWVUZ--(*D#!g62r@Ii^Yq*FH~%{CS~1-lKIU9oNJv-(xUx%KkccEcrGQ{=VCym~>Z zg)u)&%Q&F{qMxvK(VDK%d~%C5kh9-Xu$R7fhpCPHWNnk4*XoMch+!+Z#bF`4p#^f< zu;z=d!>UuPQ}dg6CXOYZR8J>##YbXxbMV{?y}8KqfWH!}M`#T+#{n%&&+Ha5H76uA zhv#RhIiXA*g-|!sD)8vlt1* zmJ=K?=E2b~JP?mJ=ChstIeI&*RxJJ4NSC@fiC$y7A?MZ@?P4X zywr+%XOCuHy9k+;%}GJSZ?+61XUiZo5iMWYb4^_rY(ZSfQ!%ro0;hQH#OSpr=lA>(7(p)d+RlWxE>=y+!giqWS|`%&WdQ46d*yPhxf&L&-Jy zf}US^jG(8Z_9DmVjdEmkGh1SxS~hQn#B!WNymFN!3; znaSNLc4tiPs-`e!Uy0-myTksttCys%3eQu_vKZYiWh;7DGkT>Cu{{4K<0{)`vPQal zp|hD$rq`lBQ{2Nwg%-oi13i}dkkNXnN!cZPDOD1x_21C{_2hy!!TL4-aC$QOMU9v3 z-XQgxdt}0+7vn>;waqB@#_BImPi4;*Wg#dybar|zY-!e*gHD`-r%{M?tTU?&&n|~_ zWiY9!;Oya6?p3WkN^D}@w?&{2LjB98hG-6=Hu>%ZHzYRTq4P7I+E|3Mr48 zQfe6~)9W<$OkQmnd3;0}frd?*d~*6kUCcI>J8;ws-vivM^loqCtwUtTO1g1z6fMlZ zF3mPR;%h90?&Ez0c_KUSSOKdmY9OhK(k88$HHj6! zPprR}aUZAKis%*iYxBpjdhEn`g&B6QAsRMocZX<2csv+|kapM4QJTF?&)9JM;VfBI z>0d%m6z^K%-NY)HnraEjQ(H^6U;K`BBJP&GYUax45<>s|kR0oA?iI+>Dtd*IkIGoC z11*!ZM2Z#h*jvymv_|lCa}9Q)HYsVoO%}Oyq|bbVyg%S(dwGyYm@~7I z#~6W?@s%g19vMD361Rz6bi`zGm}dt?Zx62)HdxEyoqFkKOMh0*KVp}I$DHulQe#e7 zZ`CO8!2E}{Q!xKEh>*=FhrM*RC$z*P2`vme?pz=0P3kqX;{1s7Y0ehpdl30FCoHTA z?`CF6o|6VLGmgo%EQ@Q%)Qgxd=xf-yPH=1y40X~$MC!#F||6)JBx4&;-UzDgzy^U@eT)`t3id+ z-|e8BQ+V$c6f}gok-N8pIT?t%8_#tZ$uw_g2hnSI8vxgYps^7&{7Bh^*g>2>lp(xc zj>0(h+^{BgVMjMNpa$ke-YBU|UM{gl-hc;a$Epx3JoZ0}YH;>vk!z^32IyaKBB5hX z>1N6}4!Ip(`((2-vdZ!5B!(^HxTlJAjO;f(+8`k+`wtT{$A7o?m ztrEumSZddm(fSAK*!BAKW_9d3eW+|t)rNIQ>UXC88Hp=*q1TI9E0u@lmdIEkZ#ZxZ zkA*5No!^(rkJF`#l7p$Qe}eOibXzZaHKVP|)}VA1bF*ByQR$Kpb>2kz*T1Fw{WnoQ z{w?J@S!2Gl1~;rfYHqxAbZ<)LjE14srK}|>t->rtlYLqad_b{J7o=c21qU(nZhyb|&zm=5%|BUx8S8Uf zdxCerN$htoy2jx}XE5tm%9}hM7xcy@*W3Z6>54_c9$Ww`cK8O7H#CKL-aD1{5`w}@ z;9WeMSESWNuwsY5F}v)XlBR!=T`G{zey-Tm_2&(d2o%gvjR1>qP?wUh2aUH5s*7Jhu`82N#)iblG zUYbMoOcqtXBQhX+NW`|_HVD^8a!$R;5_sdb=6gWsA1BTMu~*GI*zvE$Y8b1HnQ1Y1 ze5x%vGY6L!XOz6AcJxxgLPI^^HYQ`1xGm;1;A!hlmv%tuQW3HqPc3p1$;)&qHyvZ_=5*y6u06zrt_^E_U*>B z=CLWPQ#f{?o-fzEd=CaYk^2z0cQXyLC%Gq9Nkwrh`<7G$pUvil-!`0xJA|)zc+jE~ zeVB^p9lWvOZo=I)>wyuh6JJZEaJ$y+!hXDMNj-7d%H%sKNkCz!pUSZFoSpl=>I$VQ zXKsAmo)i_$>dgg5``B#~+tlJDhFUuAOaG+O8Mw$q~r_mkG8qjih0CmW30QA*o6d^Umg zRVB_mn5QMqJ}qL=f_rptI$p_&->aJ?k>?`&3+)O&q)8J#yhXV zD~4YxeHOdXzTyhJrS-`vy@BuZ&ci8(W;Y_5&8S0)6FXoyAXN6C*U+0sO=BL=-7w4dt)gWr7dgrlcDsqg+^CK^Ej5xo< zxzCb@Hl!RjWSQKb zhFw37mHBb8A~>2}Cmh8Z;4p52|8N_nZRh1Vy@nLL&94O1F8r}Tle=XGQKC`*-^tEs8d z@NZ9Pxu~-%ZXHKhx5h>dr7a=)HNT5b%=0s{;KphwjG>UFg}D2Nx!sf@t#yY}^iwHw zB$(K6W9jy#O1DBH$P?xkfn7&0Bu|N+n%a<$Ha)53?nDmEXkB8-cMFalS0Z$fquHD$zvri1bwoNVAq%TSqE# z;FC<;vK2RfhoeU|C0+k>*KL(Ub6O$Oi`KExE{7&}9-SK~xe2lzHoUsktkE;rr%>BQ z$F_I>hIu-JxJHJxnsJ`%U{q+ik0xTz#I0O&LupOGo}Lo(_3Cbi48!97*Dj>sHb`z( zI`ydB@7ZO2gmvLjcvwXnRNN!Bp%0684*Srm$)iRwIC$fBc;9aD*Nl9u+NW-j?Nz2Tj7qV!%Q?%lO6r&!sgsp-q~@tH-K{D_H%Er1m7m5WMUl`6vorFd=#{*GCA}*p=rz|Kbwp0yEzV;>1pBCz}q@m zFguDB_(Tb0%5X_@kIdp;_6KwM2rY}Vk5mms?FvA(G8NZ=x(H8lNh+oleZ!*%Ews9) zn8ST*gm3PVI-T8OB30a1tMl}kPt7trUv{p!sSjo8Li}5GA#)e78FO+?6ut(YIl6q- zG~fyUgTHZVx}sXh&2m^s?&oRCQ6I6N$MZkD6?w0sTAY$si#;GmbTH>jt|^VSuPpm9 zp4FSgcR#7S$b{RyzdwR6kF2pp@hRQG`+>E7r@IilUS8f$s_}B^YV>T#S;STVyM}Jj zl6J!>o|`(k@o{?s$1kYECZo|?kBr@p6;$gQ{(hk^b_|V?A~%j1-&AMEi6P& z-Iu5qw=sjrBU^Et5xbRldb+D$?vwVV%0A03Qs)% ze@uK2i92Ldsr$3Fusras#2s4M8}R&b-{<#dyfJSAcOhSh_r+M!tHydx=TU}lwqEvz z|HnTVsari*S7hanaJ%1|;JakKHs?P-cp^EKeXk6+YSE`WN~fO3C^f&X)zlTpKZ6d@ z&+eLnX~12*7|y3@mz3|Xe~Ei8XSFcy(eH~tEM%K9nlOuA(xyPy71_&xoCtly%+qG`>D((-hRet6~EAVMkPrugF+u5yoOE-Ee_!BPiC01$InkxHurT?&d zRYzB+*59M`4M+l2w6c*}T37y{;m=xY!Jqf_`Oc$*dx^gkkhS!-pnW>ehx;{cG2Cc6P4m8R+O(l^It&Udrgm`#wuFa_ocXisSE3 z3`bW)R*a9xF@RGZM{Mi*;)boOiW(Bl0}Tnh+3@CQ*ovQ#9M z1m7$TG;9rnTk})kZ^y2Q)-Vzt*7G?QZ&vZM8Ei6qJEO<2l4&F z5bt>n$L;u%(Ao#ZUO9R}#b;o#xX@>X6FjK`}4*p%jb5gwV)jtAbbSbbI zs0P*p`1aoNDsTvWhSg~f;&UDXP6B6uYxpe03X}tP1JKoZfVCJvek}cU?Sy zpJ?G(0Og8*LsU`=JP#mF10D8lypy=4(oA&6yTI3YM;^AoUdU7eSxbVU_9e&9oVv4^-)%RdAIs;q;uFB#T(6=lD zY5>&R@-P5-ENC0cbHIxjgC{Wdx`0=K;~2M5l*f}k2EIa`e83BYfyaR%MrUJ+Bqm1)z)-d94R9){6i?#_kx#YBk0U>Y4|c@*rp4m%uctggQCE-?0UNJdRfY z(073T0<^~h9b*JzCw~XV%P@epa)O`pbBvQg;C1|OJkUM`s9OQb-wLsBMW5UX{K_BwbcXdE9-~-BmAOJms=u~J0902NEh=@Y8W8oU~VHbe%g;VI~B0vLB z?)F*$ZFM{3zr7Ve-Q9iwvMdCxg^+up8vvh$NMFeD`_Mi|h?XO5IqF&K!h0WpwyN0) z90wi+bfnb)F#zwi4FKZ!FXy+wmk5Af_FvAG>^B+CeFJ$f&5h@FVRLb#KYZCq&QXjH z$Xjp>{wLIQNJ!%q-J+KvAHXuAI<^75`f|M5P&cs^o2e-f7OAE3+e z7oJ=%p7m9u2@ce+E*KZjzxgM$3EqG8t4@AKlvkh7`1$?lrt|#VP_!$-&z}YN9O380 zdmo&~bA{u{Yy7^V{)0jBzNz|0c%>D8`+nCEe*W+F&(7o7aNB?P@OwjJk$g{F{YdBc zzpJ#I$MeR2w?Q{+p-=b1Hr&&m$>$s5bt&w@cIa;d^bh@d4|MI`)5wp?)>g}Op(B2? zoQ5az5a@~dWDTC^cO0w{bpbli3vinp0mgv$0Pv;{fn&fS-~@CGG%aqx2DktR-~&8> o6VNb38Awy`t{`1OUL_2KfEu702m%!V=<%Nz1OEqs=Q;fU0sqqnTmS$7 delta 4130 zcmZvfe{7WH9l*c$_GsUG?^>>R*WPtE6Su0lwF%?f%3z~XquD7nbhNwFcdeD_p z>j8Bkv{q*vSrmL3F~$&M4D$~q-E0Umgb-s4Bm1K>gfPEph&KW`+tK2@%`yOze zd(+Q7&+~o0&-d5!ygxd-&o%Sdo^YV%h=@etHIb^ni_{$1o4h|9>rXv^Oway7Byytv zb=Ah++gmhSV*R%4NbdENI8yVD?6&N4W=h=4Uto>O7z?6$72 zOsy!bN=HUy&2@Jnd+7T!%Z@YjXRt5+!s?3I$gSCkJsT;Qw`Z#^+?oy9vmxu4E8gi5 z@ukut3wEUJ&=>5^^&~o`=R^w0l#%kPfEUg5_oSq2OkCx0$JsgYrwlb$owQoC=y-6d zpJle8f}^AiHFq3VhKfa3{^^vrYs_sM>Duz2YqnXpGLsO;ka99J**lRckHdRZAWFA9 zU(EH~*6f|=T%n6^lH$pbmj8*ax+24GInJw-{XM49ea`33K1Hb?FP);4E6jUEFN$wM zX>JWQZ6Wi!#jQedeb(P|Pe-#HK?pm;TJkfX{-JN=8K@5Ad{=EKrlLF9tt z$4viH%W3A8($zIrO5d<)qj`}}%zI1U2#);aO3sOp#eG)y6b}4Hzjl1&&A8YLTHuUxPbf4>HXGSEuE%C%7y{pWTO^>WKpV(;4 z*64xzBsaQsaO2O5X4mG?;epYOo2`5F_Qq|)>o*QRGdx^eUK}gR4%xAJc*E8m%by*3 z=K1GEtk?BLEzTh{GgIo&ji$V*I_JRDbgN1eWqI7tXU*vC(drR({_^3jG2K3wBwNm9IfAgN{fWl z262!2QY{i!r9f+^v9`tdE>&lrfH!kJnTbM3ogJ^MQZ~?J`!%gghS}oPE2qlp^_8+) z>MOnGxN)&^s?e*f8~>UoTW!lO&6Bm*va9oCVOw^kQZ^v+RuYR<@_%e3k&TNn--w-_ zG2ckFyi8>#oFtpP#S-QHAR&cv+D#hA`xP^@v_td(Us(%T>0mx`b4@}8@wK|i9KF1_ z;wq$Z<9cPh1v@XVd!Ee6>-$O>dA+Ria{Vxq&1!+L|)Uc8b*IWTn$vI414o-X2LiJ^z$+IK6sZ)|Puo=_>a&NVn4qbW1KD zaFVgw>L!(+>ADtmBb=|>uLU<*V+&U*;h}~7s?q)H3>CvtBJfXHL;hyX8?pBJ2f|`D zQH-K&cTtdIHw$F>>zkFa_WJvkv5|Tnx~4T3YE{kW^=~xJU)Jp1|6%EJ?@PCqPX<;g z&0~Qf)wBkqs_6>u_SrXOc^9m+j{JJCRYj8wB`afG7m6Cb%jJ+STDwBcT5Zlc80u4| zh$Q5MK-4o+FAd$SMY_RuJl6223jcV6?Rd5!62GNA%gr9_3)Ss zH_?1_FdTAe!9CW|MJH)KdNs0>;gnS!HC2<0Him~pHsicTAu zu?E}wRk6M5U1-Zoo^p-X_4br*Q!1)QS1%EF5Xc!DA%A|Lv(ronqd`W z0VRDGya966smkFr2P;os0grt#g6**P4 zz#+6hgR^jrd0e>&*+uwn)@om%QwJ;I2;kbCff1Nx_pwz?8a2D&6t#U14#P=Kgif(M zIQOu?L;RjWAVkjrz?sns81Q1i$0qs6yY_9EqS$L;RAgZ_P|t;|U-&1uNYQt}Thtrf zdK}dgNFV|`VLz}w*usejVl+rpp)~vgh%WRokVONA8z$i(Ov9&ei4E$69Bcp_McCoR z2{r>KF*k&v8&&~2F_MbygE4p&NFqk!u|u4Q7|vou7`w`j;V{mkI1A!$!+AE#fVK1q zB)%I?FfP*GplyV8JStk)8g^PV%6*!OeL+&J3tWP4fJz4Dkf9QwLV?eL00QG@`T3HG zK4>GmcIcvyli=UrGO#d2U?KK66ak!ua26uqhNl5z4P@SM0dN#%K8!p(MpdZ7ViH-5 zZuA{0b%QzVQNB$qSFXEC8NCUNyJUj{g&<8o-vcviZ Io!3 - ___exit_table68k = 80 (0x50) referenced 1 times + ___exit_table68k = 552 (0x228) referenced 1 times File BSS diff --git a/phED.¶ b/phED.¶ index bce8f09..930c7bd 100644 --- a/phED.¶ +++ b/phED.¶ @@ -43,6 +43,8 @@ File 1 "phed.c" "phed.c" "Projekte:phED/phed-init.h" +"Projekte:phED/phed-file.h" +"Projekte:phED/phed-req.h" Storm Shell Project (Dependencies) "phed.o" "phed.debug" "" @@ -57,6 +59,13 @@ Storm Shell Project (Dependencies) "" File 2 "phed-file.h" +"phed-file.h" +Storm Shell Project (Dependencies) +"" "" +"" +File +2 "phed-req.h" +"phed-req.h" Storm Shell Project (Dependencies) "" "" "" diff --git a/phed-file.h b/phed-file.h index f7f8738..b955d00 100644 --- a/phed-file.h +++ b/phed-file.h @@ -4,6 +4,7 @@ void saveText(char *name, UBYTE *buffer) if(fp = fopen(name, "w")) { + buffer[strlen(buffer)] = '\0'; fwrite(buffer, sizeof(char), strlen(buffer), fp); fclose(fp); @@ -22,16 +23,18 @@ UBYTE *loadText(char *name) { char tmp[1025]; - int read = 1; + int read; - while(read > 0) + while(1) { read = fread(tmp, 1, 1024, fp); + tmp[read] = '\0'; + buffer = (char *) realloc(buffer, strlen(buffer) + read + 1); strcat(buffer, tmp); - buffer[strlen(buffer)+1] = '\0'; + buffer[strlen(buffer)] = '\0'; if(read < 1024) break; } diff --git a/phed-init.h b/phed-init.h index abf36c7..407c4ff 100644 --- a/phed-init.h +++ b/phed-init.h @@ -1,5 +1,6 @@ struct Library *WindowBase = NULL, *LayoutBase = NULL, + *RequesterBase = NULL, *TextFieldBase = NULL; void closeLibraries() @@ -7,6 +8,7 @@ void closeLibraries() if(WindowBase) CloseLibrary((struct Library *) WindowBase); if(TextFieldBase) CloseLibrary((struct Library *) TextFieldBase); if(LayoutBase) CloseLibrary((struct Library *) LayoutBase); + if(RequesterBase) CloseLibrary((struct Library *) RequesterBase); } @@ -20,7 +22,10 @@ BOOL openLibraries() { if(LayoutBase = (struct Library *) OpenLibrary("gadgets/layout.gadget", 0L)) { - ret = TRUE; + if(RequesterBase = (struct Library *) OpenLibrary("requester.class", 0L)) + { + ret = TRUE; + } } } } diff --git a/phed-req.h b/phed-req.h new file mode 100644 index 0000000..bc95f5d --- /dev/null +++ b/phed-req.h @@ -0,0 +1,32 @@ +Object *requesterNew(char *titel) +{ + Object *obj; + + obj = RequesterObject, + REQ_TitleText, titel, + EndMember; + + return obj; +} + +ULONG OpenRequesterTags(Object *obj, struct Window *win, ULONG Tag1, ...) +{ + struct orRequest msg[1]; + + msg->MethodID = RM_OPENREQ; + msg->or_Window = win; + msg->or_Screen = NULL; + msg->or_Attrs = (struct TagItem *)&Tag1; + + return DoMethodA(obj, (Msg)msg); +} + +ULONG beendenReq(char *text, Object *obj, struct Window *win) +{ + return OpenRequesterTags( obj, + win, + REQ_Type, REQTYPE_INFO, + REQ_BodyText, text, + REQ_GadgetText, "_Ja|_Nein|_Abbruch", + TAG_DONE); +} \ No newline at end of file diff --git a/phed.c b/phed.c index eca306a..1ee49f2 100644 --- a/phed.c +++ b/phed.c @@ -8,17 +8,20 @@ #include #include #include +#include #include #include +#include #include #include "phed-init.h" #include "phed-file.h" +#include "phed-req.h" -const char *version = "$VER: phED Version 0.1"; +static const char *version = "$VER: phED Version 0.2"; enum { @@ -31,27 +34,37 @@ int main(int argc, char *argv[]) struct Window *window; struct Gadget *gadgets[GID_LAST]; - Object *Win_Object; + Object *Win_Object, *beenden_object; ULONG signal, result; ULONG done = FALSE; - APTR text; - - char *buf; + char *buf, *titel; - if(argc > 0) + if(argc > 1) { - buf = loadText(argv[1]); + titel = (char *) malloc(strlen(argv[1])); + strcpy(titel, argv[1]); + titel[strlen(argv[1])] = '\0'; - text = &buf; + buf = loadText(argv[1]); } + else + { + titel = (char *) malloc(strlen("phED")); + strcpy(titel, "phED"); + titel[strlen("phED")] = '\0'; + + buf = (char *) malloc(0); + } if(openLibraries()) { + beenden_object = requesterNew("Beenden"); + Win_Object = WindowObject, WA_ScreenTitle, "Projekt Hirnfrei", - WA_Title, "phED", + WA_Title, titel, WA_SizeGadget, TRUE, WA_DepthGadget, TRUE, WA_DragBar, TRUE, @@ -74,7 +87,7 @@ int main(int argc, char *argv[]) { if(window = (struct Window *) RA_OpenWindow(Win_Object)) { - ULONG wait, changed; + ULONG wait, changed, ret; UBYTE *buffer; GetAttr(WINDOW_SigMask, Win_Object, &signal); @@ -88,30 +101,59 @@ int main(int argc, char *argv[]) { while((result = RA_HandleInput(Win_Object, NULL)) != WMHI_LASTMSG) { - switch(result) + switch(result & WMHI_CLASSMASK) { case WMHI_CLOSEWINDOW: GetAttr(GA_TEXTEDITOR_HasChanged, gadgets[GID_TEXTEDITOR], &changed); if(changed) { - buffer = (UBYTE *) DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ExportText, NULL); + ret = beendenReq("\033cDer Text wurde verändert!\n\nSoll der Text gespeichert werden?", beenden_object, window); + + if(ret == 1) + { + buffer = (UBYTE *) DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ExportText, NULL); - if(!argv[1]) saveText("unbenannt.txt", buffer); - else saveText(argv[1], buffer); + if(!argv[1]) saveText("unbenannt.txt", buffer); + else saveText(argv[1], buffer); + done = TRUE; + } + if(ret == 2) + { + done = TRUE; + } + if(ret == 0) + { + done = FALSE; + } } - - done = TRUE; + else done = TRUE; break; + + case WMHI_GADGETUP: + { + switch(result & WMHI_GADGETMASK) + { + case GID_TEXTEDITOR: + GetAttr(GA_TEXTEDITOR_HasChanged, gadgets[GID_TEXTEDITOR], &changed); + + if(changed == 1) printf("Geändert\n"); + if(changed == 0) printf("Nicht geändert\n"); + + break; + } + } } } } } } + DisposeObject(beenden_object); DisposeObject(Win_Object); } } closeLibraries(); + if(titel) free(titel); if(buf) free(buf); } \ No newline at end of file diff --git a/phed.debug b/phed.debug index 59167b03fca959a0726ca0339dff50ef11f757ad..afe647906bdd85d5adf3046e13334a14f669b74f 100644 GIT binary patch delta 4984 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