RB_RIGHT
RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \
(tmp) = RB_RIGHT(elm, field); \
if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field))) { \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field))) { \
RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
RB_RIGHT(tmp, field) = (elm); \
tmp = RB_RIGHT(gparent, field); \
if (RB_RIGHT(parent, field) == elm) { \
tmp = RB_RIGHT(parent, field); \
tmp = RB_RIGHT(parent, field); \
(RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
if (RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\
tmp = RB_RIGHT(parent, field); \
if (RB_RIGHT(tmp, field)) \
RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\
(RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
if ((oright = RB_RIGHT(tmp, field)))\
child = RB_RIGHT(elm, field); \
else if (RB_RIGHT(elm, field) == NULL) \
elm = RB_RIGHT(elm, field); \
child = RB_RIGHT(elm, field); \
RB_RIGHT(parent, field) = child; \
RB_RIGHT(RB_PARENT(old, field), field) = elm;\
if (RB_RIGHT(old, field)) \
RB_PARENT(RB_RIGHT(old, field), field) = elm; \
RB_RIGHT(parent, field) = child; \
tmp = RB_RIGHT(tmp, field); \
RB_RIGHT(parent, field) = elm; \
tmp = RB_RIGHT(tmp, field); \
tmp = RB_RIGHT(tmp, field); \
if (RB_RIGHT(elm, field)) { \
elm = RB_RIGHT(elm, field); \
(elm == RB_RIGHT(RB_PARENT(elm, field), field)))\
while (RB_RIGHT(elm, field)) \
elm = RB_RIGHT(elm, field); \
(elm == RB_RIGHT(RB_PARENT(elm, field), field))) \
tmp = RB_RIGHT(tmp, field); \