Index: ossp-pkg/sio/al.c RCS File: /v/ossp/cvs/ossp-pkg/sio/Attic/al.c,v rcsdiff -q -kk '-r1.18' '-r1.19' -u '/v/ossp/cvs/ossp-pkg/sio/Attic/al.c,v' 2>/dev/null --- al.c 2002/10/17 15:02:49 1.18 +++ al.c 2002/10/18 08:58:19 1.19 @@ -36,138 +36,7 @@ #include #endif -/****************************************************************************/ - -#define LIST(elem) \ - struct { elem *head, *tail; } -#define NODE(elem) \ - struct { elem *next, *prev; } - -#define HEAD(q,l) ((q)->l.head) -#define TAIL(q,l) ((q)->l.tail) -#define NEXT(n,l) ((n)->l.next) -#define PREV(n,l) ((n)->l.prev) - -#define ISEMPTY(q,l) (HEAD(q,l) == NULL) - -#define LISTINIT(q,l) \ -do { \ - HEAD(q,l) = NULL; \ - TAIL(q,l) = NULL; \ -} while(0) - -#define NODEINIT(n,l) \ -do { \ - NEXT(n,l) = NULL; \ - PREV(n,l) = NULL; \ -} while(0) - -#define ADDTAIL(q,l,n) \ -do { \ - if (TAIL(q,l)) { \ - NEXT(TAIL(q,l),l) = (n); \ - PREV(n,l) = TAIL(q,l); \ - } else { \ - PREV(n,l) = NULL; \ - HEAD(q,l) = (n); \ - } \ - TAIL(q,l) = (n); \ - NEXT(n,l) = NULL; \ -} while (0) - -#define ADDHEAD(q,l,n) \ -do { \ - if (HEAD(q,l)) { \ - PREV(HEAD(q,l),l) = (n); \ - NEXT(n,l) = HEAD(q,l); \ - } else { \ - NEXT(n,l) = NULL; \ - TAIL(q,l) = (n); \ - } \ - HEAD(q,l) = (n); \ - PREV(n,l) = NULL; \ -} while (0) - -#define REMHEAD(q,l,n) \ -do { \ - (n) = HEAD(q,l); \ - if (n) { \ - HEAD(q,l) = NEXT(n,l); \ - if (HEAD(q,l)) \ - PREV(HEAD(q,l),l) = NULL; \ - else \ - TAIL(q,l) = NULL; \ - } \ -} while(0) - -#define REMTAIL(q,l,n) \ -do { \ - (n) = TAIL(q,l); \ - if (n) { \ - TAIL(q,l) = PREV(n,l); \ - if (TAIL(q,l)) \ - NEXT(TAIL(q,l),l) = NULL; \ - else \ - HEAD(q,l) = NULL; \ - } \ -} while(0) - -#define REMOVE(q,l,n) \ -do { \ - if (PREV(n,l)) \ - NEXT(PREV(n,l),l) = NEXT(n,l); \ - else \ - HEAD(q,l) = NEXT(n,l); \ - if (NEXT(n,l)) \ - PREV(NEXT(n,l),l) = PREV(n,l); \ - else \ - TAIL(q,l) = PREV(n,l); \ - NEXT(n,l) = NULL; \ - PREV(n,l) = NULL; \ -} while (0) - -#define INSERT(q,l,i,n) \ -do { \ - if (PREV(i,l)) { \ - NEXT(PREV(i,l),l) = (n); \ - } else { \ - HEAD(q,l) = (n); \ - } \ - PREV(n,l) = PREV(i,l); \ - PREV(i,l) = (n); \ - NEXT(n,l) = (i); \ -} while (0) - -#define APPENDLIST(q1,l,q2) \ -do { \ - if (TAIL(q1,l)) { \ - NEXT(TAIL(q1,l),l) = HEAD(q2,l); \ - PREV(HEAD(q2,l),l) = TAIL(q1,l); \ - } else { \ - HEAD(q1,l) = HEAD(q2,l); \ - } \ - TAIL(q1,l) = TAIL(q2,l); \ - LISTINIT(q2,l); \ -} while(0) - -#define INSERTLIST(q1,l,i,q2) \ -do { \ - if (PREV(i,l)) { \ - NEXT(PREV(i,l),l) = HEAD(q2,l); \ - } else { \ - HEAD(q1,l) = HEAD(q2,l); \ - } \ - PREV(HEAD(q2,l),l) = PREV(i,l); \ - NEXT(TAIL(q2,l),l) = (i); \ - PREV(i,l) = TAIL(q2,l); \ - LISTINIT(q2,l); \ -} while(0) - -#define FOREACH(q,l,n) for (n = HEAD(q,l); n; n = NEXT(n,l)) -#define FOREACHR(q,l,n) for (n = TAIL(q,l); n; n = PREV(n,l)) -#define FOREACHD(q,l,n,r) for (n = TAIL(q,l); n && (r = PREV(n,l), 1); n = r) - -/****************************************************************************/ +#include "list.h" #include "al.h"