/**********************************************************************
*
*  projet   : DilibPro
*  module   : Dam  (Dilib Acces Method)
*  fichier  : DamTool.h
*  Auteur   : J. DUCLOY
*  Date     : Octobre 93
*
***********************************************************************/
#ifndef _DAM_TOOL_H
#define _DAM_TOOL_H

/****************** quelques macros sur string *****************/

#define DamToolStrCopy(s1,s2)           \
{                                \
   s1=malloc(strlen(s2)+1);      \
   strcpy (s1,s2);               \
 }

#define DamToolStrCat2(r,s1,s2)                   \
{                                          \
   r=malloc(strlen(s1)+strlen(s2)+1);      \
   strcpy(r,s1); strcat(r,s2);             \
}

/*************** fonctions/macros sur les listes **************************/
/*
   ces fonctions supposent que la tete contient 2 pointeurs first et last,
   et chaque element 2 pointeurs next et prev
*/

#define DamToolListPrevNextInsert(list,elem)                   \
{                                                       \
       if (list->first)                                 \
	 {                                              \
	   elem->prev=list->last;                       \
	   list->last->next=elem;                       \
	 }                                              \
       else                                             \
	 {                                              \
	   elem->prev=NULL;                             \
	   list->first=elem;                            \
	 }                                              \
       list->last=elem;                                 \
       elem->next=NULL;                                 \
}

#endif    /*  _DAM_TOOL_H_ */
