/*
 * Set of general macros for dealing with exec lists.
 */

#define  FOREACH_LIST_SAFE(list,element) \
  { struct Node *next_elem=((struct List *)list)->lh_Head; \
  \
  while(next_elem->ln_Succ!=NULL) { \
    (element)=(void *)next_elem; \
    next_elem=next_elem->ln_Succ;

#define  END_LIST_SAFE }}


#define  FOREACH_LIST_UNSAFE(list,element) \
  for((element)=(void *)(((struct List *)list)->lh_Head); \
      ((struct Node *)element)->ln_Succ!=NULL; \
      (element)=(void *)(((struct Node *)element)->ln_Succ)) { \

#define  END_LIST_UNSAFE }




