l3.libnazgul/src/spaceListRem.c
2020-03-03 23:46:32 +01:00

42 lines
895 B
C

#include "libnazgul.h"
int msgSpaceListRem(msgSpaceListElemId oldElemId){
msgSpaceListElem * listOldHeadElem;
msgSpaceList * list=NULL;
list=msgSpaceListOpen();
if (strcmp(list->headId,list->id)==0){
NZG_ERROR("msgSpaceListElemRem : Empty list",list->id);
goto ERROR;
}
strcpy(oldElemId,list->headId);
listOldHeadElem=msgSpaceListElemOpen(oldElemId);
if (listOldHeadElem == NULL){
NZG_ERROR("msgSpaceListElemOpen",oldElemId);
goto ERROR;
}
// on indique à la list le nouveau premier element
strcpy(list->headId,listOldHeadElem->next);
// on fait en sorte que l'element ne connaisse plus
// ses voisins (utile pour le Delete)
strcpy(listOldHeadElem->next,listOldHeadElem->id);
if (msgSpaceListElemClose(listOldHeadElem)<0 ){
NZG_ERROR("msgSpaceListElemClose",oldElemId);
goto ERROR;
}
msgSpaceListClose(list);
return 0;
ERROR:
return -1;
}