\hypertarget{eina_inlist_01_8c-example}{}\doxysection{eina\+\_\+inlist\+\_\+01.\+c}

\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{// Compile with:}}
\DoxyCodeLine{\textcolor{comment}{// gcc -\/g eina\_inlist\_01.c -\/o eina\_inlist\_01 `pkg-\/config -\/-\/cflags -\/-\/libs eina`}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#include <\mbox{\hyperlink{Eina_8h}{Eina.h}}>}}
\DoxyCodeLine{\textcolor{preprocessor}{\#include <stdio.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{struct }my\_struct \{}
\DoxyCodeLine{     \mbox{\hyperlink{group__Eina__Inline__List__Group_gab30a76fcfa50307c797491705d60136a}{EINA\_INLIST}};}
\DoxyCodeLine{     \textcolor{keywordtype}{int} a, b;}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}}
\DoxyCodeLine{sort\_cb(\textcolor{keyword}{const} \textcolor{keywordtype}{void} *d1, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *d2)}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Inlist}{Eina\_Inlist}} *l1, *l2;}
\DoxyCodeLine{   \textcolor{keyword}{const} \textcolor{keyword}{struct }my\_struct *x1, *x2;}
\DoxyCodeLine{}
\DoxyCodeLine{   l1 = d1;}
\DoxyCodeLine{   l2 = d2;}
\DoxyCodeLine{}
\DoxyCodeLine{   x1 = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(l1, \textcolor{keyword}{struct} my\_struct);}
\DoxyCodeLine{   x2 = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(l2, \textcolor{keyword}{struct} my\_struct);}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{return} x1-\/>a -\/ x2-\/>a;}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}}
\DoxyCodeLine{main(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \textcolor{keyword}{struct }my\_struct *d, *cur;}
\DoxyCodeLine{   \mbox{\hyperlink{struct__Eina__Inlist}{Eina\_Inlist}} *list, *itr, *tmp;}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Main__Group_gafee4bfc0e509b6ffed6598edf6f4b3de}{eina\_init}}();}
\DoxyCodeLine{}
\DoxyCodeLine{   d = malloc(\textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{   d-\/>a = 1;}
\DoxyCodeLine{   d-\/>b = 10;}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga095c6abf8b0122e30271ce98c26c0524}{eina\_inlist\_append}}(NULL, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{}
\DoxyCodeLine{   d = malloc(\textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{   d-\/>a = 2;}
\DoxyCodeLine{   d-\/>b = 20;}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga095c6abf8b0122e30271ce98c26c0524}{eina\_inlist\_append}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{}
\DoxyCodeLine{   d = malloc(\textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{   d-\/>a = 3;}
\DoxyCodeLine{   d-\/>b = 30;}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga9b05113628965ac5865c35c8ace6562d}{eina\_inlist\_prepend}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"{}list=\%p\(\backslash\)n"{}}, list);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Inline__List__Group_ga65e496b9b16d527d23c1d735652b4e62}{EINA\_INLIST\_FOREACH}}(list, cur)}
\DoxyCodeLine{     printf(\textcolor{stringliteral}{"{}\(\backslash\)ta=\%d, b=\%d\(\backslash\)n"{}}, cur-\/>a, cur-\/>b);}
\DoxyCodeLine{}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_gaaad2933c1da2d5f11a07d7c259df89fe}{eina\_inlist\_promote}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{}
\DoxyCodeLine{   d = malloc(\textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{   d-\/>a = 4;}
\DoxyCodeLine{   d-\/>b = 40;}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga188a035d7159c3856d8b608187064534}{eina\_inlist\_append\_relative}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d), list);}
\DoxyCodeLine{}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_gabea5613e6992fb5bc07271c999f439e0}{eina\_inlist\_demote}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_gac1132bfed4e77a5b63b0fb81d46f20c9}{eina\_inlist\_sort}}(list, sort\_cb);}
\DoxyCodeLine{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"{}list after sort=\%p\(\backslash\)n"{}}, list);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Inline__List__Group_ga65e496b9b16d527d23c1d735652b4e62}{EINA\_INLIST\_FOREACH}}(list, cur)}
\DoxyCodeLine{     printf(\textcolor{stringliteral}{"{}\(\backslash\)ta=\%d, b=\%d\(\backslash\)n"{}}, cur-\/>a, cur-\/>b);}
\DoxyCodeLine{}
\DoxyCodeLine{   tmp = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga2e073030214eaf33c2a0200364ebae5e}{eina\_inlist\_find}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (tmp)}
\DoxyCodeLine{     cur = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(tmp, \textcolor{keyword}{struct} my\_struct);}
\DoxyCodeLine{   \textcolor{keywordflow}{else}}
\DoxyCodeLine{     cur = NULL;}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (d != cur)}
\DoxyCodeLine{     printf(\textcolor{stringliteral}{"{}wrong node! cur=\%p\(\backslash\)n"{}}, cur);}
\DoxyCodeLine{}
\DoxyCodeLine{   list = \mbox{\hyperlink{group__Eina__Inline__List__Group_gad84d4a8ad4c3392df4be8278ce10a274}{eina\_inlist\_remove}}(list, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\_INLIST\_GET}}(d));}
\DoxyCodeLine{   free(d);}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"{}list=\%p\(\backslash\)n"{}}, list);}
\DoxyCodeLine{   \textcolor{keywordflow}{for} (itr = list; itr != NULL; itr = itr-\/>\mbox{\hyperlink{struct__Eina__Inlist_ae95deba8e271f94f8ad8aecf7fdb5dde}{next}})}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        cur = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(itr, \textcolor{keyword}{struct} my\_struct);}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"{}\(\backslash\)ta=\%d, b=\%d\(\backslash\)n"{}}, cur-\/>a, cur-\/>b);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{while} (list)}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \textcolor{keyword}{struct }my\_struct *aux = \mbox{\hyperlink{group__Eina__Inline__List__Group_ga8c4e6011e7caa9ec5c22b003c4950338}{EINA\_INLIST\_CONTAINER\_GET}}(list,}
\DoxyCodeLine{                                                          \textcolor{keyword}{struct} my\_struct);}
\DoxyCodeLine{        list = \mbox{\hyperlink{group__Eina__Inline__List__Group_gad84d4a8ad4c3392df4be8278ce10a274}{eina\_inlist\_remove}}(list, list);}
\DoxyCodeLine{        free(aux);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Main__Group_ga2c8b4020427108a30c44707af22c99d3}{eina\_shutdown}}();}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\}}

\end{DoxyCodeInclude}
 