From c87696f5c13900b498cfe2a2cd6ea01c3f7206d6 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Wed, 3 Oct 2018 22:01:40 +0200 Subject: [PATCH] Add _hash, _equal_p, _out_str, _in_str, _get_str, _parse_str for intrusive list. --- doc/Container.ods | Bin 41582 -> 41570 bytes m-i-list.h | 6 +++++- tests/test-milist.c | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/Container.ods b/doc/Container.ods index 304fe5efafb54bec91eaf6729f9089a61707d5c1..ab6558b62603061dd8c6359afe2311a881ef073c 100644 GIT binary patch delta 8968 zcmZvCWl&yCv+aYsySqzpPjGj4_W(hI!v=!8yK8WF4;mn72<|Qq5H$Er-uF9S<=i^` zr}wOxH8Z=rYPxHB&ITd32O&{ZdMdWo0}f0iK``h*cByh?N964pNEGsO>Uf{p^-6Hh^ybw&9dUi z>gG}4_v$Ii>fiat#PGSWeJ6kxCuGbLt%u(urxdgOj90QD`VPhyDo=ua6foaK5Jq{p ze(LHF_QfkK&tvS?tJLfTM*_qF7x)-xlLf8cV0PTzuq=%JGK(_A9%wso__`bP6D8a_vYFLrrnR->4(tKODJ@p=MvOed;H8SP~NCN)&Tl;8P}Y-jI~RC z=chXyk@ZkI`$b)s4so8pghx|FQ_;CBMX!WR*cjj&AkPp?axt7crxnPH^k%nNmT@C3=LXo4OPDLw- zZ!ZO1llDdh+aKpQ!vn;T?J%um9dH!&@bF>Zp$+;Rq{+;zs{?#|*V3_vO~hEAb94jK zG`X!|mqV3V2JS*yDM!RP2RZl1;Dro**Qa&+Ph1D9VVwP>5WEA8wb81wX0H*5BiE)# zwD2flG2wuH&~_-~RPs>>W*7Z-J+#%dQBL(L29&zd;LFj^O5nyheh(@Y+}lm>FCyg@ z3nGvh#KDlUEkhM84x=!N=CjZi34pvnv8C7?%jdO0=NQGBBJPqS8fD~OYEh9`K}mq( ztJ2I02eqgW3g4V<(991gnY`)y4S;OI#U4G>7V zpFk=0>!c+?_NmzQcNTEBuPCz>0S3UYa}CtQLOXER9xS8>e@5+g5!O zR z`ZGiw5r6}=fk=GVY+<8^sk9)W$9AZ>t^Rk zzKFS<3~G0lGS_9L5pnhS39QIn2!`=@%5&C7NjUkerL4&y4Cu67T25yL$W0fI-nAh! zgs#VX%Uzya1Qe2uPCgs57F5E)#^;_LlsBk78^DKL(x;~v<@2ZhzWT3T8?7T$+meba zca*n4W52i0*8TO_P=C7jK@X0=R=ahKj3?>Rfxk$XSM8O>$<;62IVRKVV?>WQB03-G zT^daA#0u+8GwDzsF|X3?nYtb2az?AAf}%UwufiN-u~z;If(7Y79DXK^uC~~_o$XDA z$RO8&bOqY5q_YC$FsaAW(~0nNR`?b?a1cB2aYxH4XJU5^Er zOMl6=dAqdiE0z;JE#c~8=eptoh8cODp)IXpT>VxmTv(*cD~Cda4sr-yS7}g#^IR-L!HsK5iLx@`ZU)^ z=JQ-mkk0X`3p!ZfDRpmnZ8A+t=6&7CIs5KJ8I6<<$2F?+!J%>2?69eCFF#@i2V2SA zrz?qb%U)6GH)aFQl6Q}v<}tKI9K%d`m#J4C1wU=rxwL*I9ypbaa4K-U@Fyh#6dXit zm|2l^qNj;ZV+R}u?J;DIc*1TsYUfg*juUOu^bOBTiertvF^V;jCcy_M(|Kl zcZXsSSQbV+C<*%;>@@Cm#HBt1R5>j-EqXRj3J9{MdfQrBh|ydQS%$5{2~)(M&3Sj6 zao^*=c1qNOTk+7cW(f4@aM9X!5GrAU$@hjkCh%tF!U+$@Be#GrlnS#urE~TfW zv$^y5{LaQZ!`2!(eX!^9$gPPSNDP}u$lR4yT$(<9ocZyNOF4GehVy0y_`%PgPz07C za~P?PC3YBjusM+v+mfJKQHtBM5uBIFvK^aoFO6!MEbyW({{T*v^0SlWsHy(O-h?)# zpgU=Mg$y2;Ybm~QuyaE(ywXVIi|Oe<9gEb=ay=w=k1ghto`a-0R@Qbo?2m zJV@}ao?rT8T4>M6Rj_{ti067Hcach6QMipgOdp-jflTQ>eE0V4tds|084&Sr?*wnPmP2flq{;=DJd6Q zPVeMCB3aI#gC7q(AfqlRk=_8m`BwDHNs-Bo+0koSqV^vA z&Ce_HJI$M;ZakFj7fctKE31m#P4(f1{US0+A>qY$Lj0(OQiq-Pkx%MOFRpd^MiB`H z9O0P0d4?tG!?i}SPk@O#22D@Ar(Sq`+~9^p1MODcDEn(C>zW(O5(_xSFGW_El&9qD zL^mDyK`v^^XGA&r)%b&?9MVBWfs74LYDo?*8QvMa$^&6>UTW?bi$Rt=j%8iEs2(Y+ z2Lbi{`}WCcyU>^POT^^BD~?`yS&=Hq62wl+c2i94P6JM=HGoi!$y1Nw1YDjCXVfM1 zjWv#0z^#j5R)6lOsjVUMP~^I*1#YL~L2 z=|GGOBXe}u6~BuNKJxn^-#XcB0YoS*e@X7E@x46tv~2Q`34BcXDE{-^!I!zYFI>Xs z1f9M%6=t{$X~43o$xM?O+YF}qlzy||xq-~>qH%8v5;ceG!v2>DLkwLEa>~iI00g9h za5s2#3i^?Z3&?lDTr%Jg6^REbs<}Nz)-i@uAuK93TF)<40V$~}#1vn@Lz#9N_jvXe zwf-pH^aNgyTgHa(NV@mv#>C}SVCB+}yj^A5!%{=G<$&}fuTq{%WCA49)OA~cm9V1n zQnyU!QVF`Ma|_}zNfBR?tpdsPG8a#Lyu5R5OnFb9Aj<9L2cLabFK#q4A7#0@97Gy6 zQ>NLWS)^(0L*-a0amTy@e;=F47cu(6Xqa&HNTfgt4ejqn@HAC6DjaAKthju6zK2<1 zeYg?jyg)>uE_I24C+`id>gK*>AQhaF8cbBM=EULnYeHi=Z@EV7m{E2r9d>cJgLFV7 z@dVczvsVo?7ivg|O1(?Wdw5AlR+#-==(ccj?1cQ$VhODyW(6AY;G(WZu6suc&4C*= zsvDiKr5Nen*9Ui6S&@i&v^@BT_1>&A5~5eZ6+qgZaVGBc2-h6m=k;i>xb2>_B?3$F zFkC(&7ITX1*DardNZ1B4x7m7(yAVZW1SI4>j2%ebgrU>fG`S-k6l}$=Kkr+r9MQq@KEDddg(itmkK}uNgU*FK_LoL`DgZfgJ_c9!}qW(n`ecE|P^6BPAdB?L9Ks!u1CV)9Nb$|RIAaNvtQ z5E+SsMx$zObwD?*gdCir7lm_}JPSGV=VFb%pR2{Nil6NWX}jFSDn%%XWI_IM}d(TKrdj(B{iQ- z-MT~_l(oQXm2I^dujTIKW43NLP_2jE-6rY#O096+pAy56u(iZQL}!{xLHFgF^`yv9 zs?$KS)8I+)#Q1E59zdVdX?g}ZysD^{7SF-ry2)Bdv{>%{2%zpF$dhn!4cd6fc*J9h1~{N7580A+DQp4979B~_0=r1D0YV}%Xur{xk;y#JiTcG_L8ke8YbRU z=o?kNx{-ChWL(CFh-gMnoBvXB6VxVQkSa2H^Q9yP6)P~J51T?MNO39cihxbiQ=$2$ z6*CB1IUP^a0JYxDK(qcrkD)D?ZSzQercc{RsQ+&L4N4Kw&n}VeB#g-17OJYS-1R` zl}PTmrN1C7EcYzyS|lU$G_FQ>&YidRbJzGMX)QA|cL*Gwv?|S??h>q(;U|+eZ{2m! zdh|yd?)&_JhH3xN)Q1mHU_Esl_Tof8)XRDk{rgZ{g?1PpH@`=?PNQa;eis2p9Vs%^ z<~J4Fa-Nb$H!&RsZ2)t2!16M@TU}*jrf%Q{S;^h-V@NCnY?}NR*>BJtv#_ua@!!{d^Xw}14q?WRtH4cXH2OZu36rc0w`wIuW4@7=$8dhDe?ui!6d_q-N z4n!HQsT>7N_XW+TVNsN(4@EuY2lQ2WP%}T6IU#EEs2tlss00R5QKOW1SkL%Er{U zii_9S)@cD+U^)EO$2arIF686*He_DlCwM~j()o~cHl#FjlgQoUEYz6~LJj;hq$ph6mJk$KoFet6Iw#9dNg%E^Zk{%%<2X6i#zGY2@93zNC1cTw0M9~| zMK$)Y*zYm*=)+acOMvv;HF z_3m6T)kB?gDH$mp@zpkqcthP3xuWbw;b=LHfd)a1S~+y(<{Skzq`sbDJhS80 zU)tiP6inn1jCR-i`jUO`fJjNxx>P6U?PP>J)22w37j}S{$t$FW0ime@GzA2RiBRN! z&&I-Ns{&xQiUpt6g=|+#N0|f|*4<9D*~Or-rwGU^Wo?rBmW#ur$6r)6Zh~%c7NV7X z0^e7%ffz^@Z&*pD`f9d6S5z~}&C2?sqgGJWtYb=NYn@?h8OUh##xHhuKY04x!wh3m z(o6-1GVU|1X!*)@SbN<9@knVz&h7Q2u1Ips-1?AE4@!+Z5Vuwp+Q!lQ446H1Dq z;RCgyFFJ;x&@^!CLqS^2Deu1EZAD$oBWzGal%o3+qrnDKM#@KSM;8A+Dqn*I5;FH3 zG`yY}jgOVjFoF=^x1sC4izJ(o54&Zug}8D^U{lJW6b_5#^%~v)?#@*xg-##yquX|t ze&?eD*Ag&Wt&Lcd^W+82n*xD}dR-N;k~c%VrDS(~Nt%fSgk}i!&?NHy{AS|8m|_S5 z$wuh%;WUGZnNYO8*{l?)=<;%j7r7^%F#gy2G0+@AsG@W`eT!3YuRnQ%Nxq<(mZ7*` zCApw`!@mvA)jA9TAnHlR{ows1X(H;5U7Z++M28~gx)a8cHGV>2n^u0_q0#z0-QqC1 zyn@6#F1biw*xy&%F>k>WvJ00jl>*==<|r@Yyd@p4~_HLVlOF!q5how zLvv#w;C;e9T=4|agn%1fp}D$@mr`2X&_5tYzI@VGNFf>p#NZOK@Q{}TQV=yQqN~@$ zmJJ*1Q1qyUCy$#$lH(7S5Bxh_f@HauyYb?gqfax-wYxybOqM2wV>uZ*AwRW7r14v! zufNX7{N6MW$6XWg#`SVb{jmE)X0lKRi&21*)u8R{d#)1uhCueAY}@Qp)wM4aZj<~a z-1il0V_;all4QxRT<^uA`Eh)w(S7_=R@uHSlV45Ux8#h+qtCy^aYcK2X_HmUAp+nR( zzWUdblzn9kOHuB+552Qecy_W^yhV6tW6c}Bhiz$6qP~2_d$=&}VNeM7v)aA3Ru58J z$(>~}Tt8efRnK8l-S(4!W4m1t>M9QlG%1Y-T%9XYZ}Ghi7lSlV1RjCy9`f7_zV^$z zi(0*ZYpSW4P%lscYHi6p?|o(*+;L>0F_3pu6E;SZ+`w(bNh|IR)XUrbBKcs z4t%C!u2n?Mit8kcrlkt2yQ0UI*Obb=fjF7e7Mv&z2Dc|0A{rY~)wa+P7K+n5$YA+f z#yu3h&$4LV{;|+s+u~DYxcnNSKH|EUpILkfO{+NOp4JHlOy6K18c^!A)Y+`Qr3s4~ zHsYyy#k5uNdnM$)cw5Zoju6mw@J(y*mM`2hA#|^SX^4Cz8or`~ZO*DPG|YRL?FE!J zPoQ=+tyAIU&+ypv=oF=qR~ZYjc*yvsdCqamenJ(`nQxzx7@e0IVw`tj57#owdaseP z)qP!M@tkV~SgPd&`4&3xzXemLZMW3!ARr_H$TP_i(g>^M!M|KHj4)Uk`3Da=6xs zH!~DhvV*3Nt~Eg^MTAp-#qqdjjm%LB7&e%Fq>qysaAJ09api=t)0aV{(O-hGx%k4# zTiiZaUa?O8mOih?g5kO0(G^=4-ghLk-D6+Y7 z!pg!yZ$=ZASbLlIM=2PiHhEaARk|%roDyG~r#&((xmfvfCk>g{AvE4UPW4ueq$VjU zkN82mhF%)bvFxby7)d0+8G~gzo|B%AuUYm0StqMBX~NkC(hYO1__7V*h`sS(n59@+i3AaHe=K(lO!zo((4 z5b``v>4p~Hfb^9P3O9lUz3v4$LzE4+QS&CU^l|F$PGIJe+;|U;YnCXfZbYW}&1Dqu zr8yLKI1hFJCLCT$-HeUjnu|Dq*yi&(=BC&sghcb%P5uKg;=+ecc)mFd%|z8z%NGS# zK8LMkY_$S6(vAs6edg>xM%nAd!ngabPRoQq!RCCt--TYG5PLYoheu7N6M;Zvgm@{L zzSry{>3ENln3q$N1453#XYFuEomK`aBwpE*CRO%@SkqGqUp`TDZ>3X~Z|)%p;N3b( z0!JTZ3x9yiyfwb&1UPT<)JkSl91y(wDaNyZ%_Hwy2KSw&WSz4gdNnxAWF(lW^&tJ! z#QngfYX;XDb;}M$At$ht5q|wCq(kG#irMVYlv)k^O-i*Ot6HD6#5-zlDT@Fgw9-($ ze`4OkT@tUCh5Km6M&TY+OYdG`JudlqJ@U=|R4T!Q7I?oANg1#e2_3j}#dAEn*B(Yh zwbJA*DOl=%1F7t%|M5Ni=P|R{uSt^%y-yMkVmBRvl{1@0njfk8T3Ih$Nh*j^%If9n zdr-Yw+7e&(^?twOz|e zvB3>e>%XkJ^z_4moafQ~k|B=|J=2<6=ZT&%Eb&MzzqON9LMdQ$lr1)v(I}~XJ&wP; ze~d+sNg!18Mrf7_YU?@hju+1jyN)~1WH!cjx*C{3S2}aA z7WvWK>%CvwHGaR1*wbCot07)>9hc)~{J?#1*SoiiJRkUA)UL~V($@eM9y9#jtDpZe zwZ;4TI~Rb1XC~zabYMZC5wia;&NK>U2toW)n+JD@+VXIZ|yM2FP8=QgZ!P{a9;AhAK%p#Q9) z_;+ai{VL-xS&RpP94y^T|1Z|xhLT47iv$8CCW1h&ZeI45uKyRY>CR>r=659j^gEIx z|1Tb8l2abhKcxu&X(L!2bvTHM*q$ delta 8920 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 diff --git a/m-i-list.h b/m-i-list.h index 6563e7d4..16ea2b91 100644 --- a/m-i-list.h +++ b/m-i-list.h @@ -26,6 +26,7 @@ #define MSTARLIB_I_LIST_H #include "m-core.h" +#include "m-list.h" // For LISTI_ITBASE_DEF /* Interface to add to a structure to enable intrusive doubly-linked support. name: name of the intrusive list. @@ -587,5 +588,8 @@ typedef struct ilist_head_s { it->prev = next; \ ILISTI_CONTRACT(name, list); \ } \ - + \ + LISTI_ITBASE_DEF(name, type, oplist, list_t, list_it_t) + + #endif diff --git a/tests/test-milist.c b/tests/test-milist.c index ba544f19..282dcae7 100644 --- a/tests/test-milist.c +++ b/tests/test-milist.c @@ -35,7 +35,7 @@ typedef struct test_s { #include "coverage.h" START_COVERAGE -ILIST_DEF(ilist_tname, test_t) +ILIST_DEF(ilist_tname, test_t, M_POD_OPLIST) END_COVERAGE ILIST_DEF(ilist_free, test_t, (DEL(free))) @@ -143,6 +143,7 @@ static void test2(void) } assert (ilist_tname_size(list1) == NUM); assert (ilist_tname_size(list2) == 0); + assert (ilist_tname_equal_p(list1, list2) == false); ilist_tname_it_t it; ilist_tname_it (it, list1); for(int i = 0; i < NUM; i++) { @@ -151,6 +152,7 @@ static void test2(void) } assert (ilist_tname_size(list1) == 0); assert (ilist_tname_size(list2) == NUM); + assert (ilist_tname_equal_p(list1, list2) == false); int n = 0; for M_EACH(item, list2, ILIST_OPLIST(ilist_tname)) { assert (n == item->n);