/* -*- c -*- */

/*
  GlossTeX, a tool for the automatic preparation of glossaries.
  Copyright (C) 1997 Volkan Yavuz

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

  Volkan Yavuz, [email protected]
*/

/* $Id: list.c,v 1.12 1997/06/02 17:58:16 yavuzv Exp $ */

#include <assert.h>
#include <stdlib.h>
#include "list.h"

void *
list_add (s_list * list, void *ptr)
{
 s_node *new = 0;

 new = (s_node *) malloc (sizeof (s_node));
 assert (new != 0);

 if (list->root == 0) {
   list->root = new;
   list->top = new;            /* LINT: top == 0 */
   list->top->ptr = ptr;
   list->top->next = 0;
 } else {
   list->top->next = new;      /* list->top->next == 0 */
   list->top = new;
   list->top->ptr = ptr;
   list->top->next = 0;
 }

 return new;
}


/* FIXME: finish this one day */
/* void */
/* list_delete(s_list* list, char* string) */
/* { */
/*   if (list->root == 0) */
/*     return; */
/*   else if (list->root == list->top) { */
/*     free(list->root->ptr); */
/*     free(list->root->ptr2); */
/*     free(list->root->ptr2); */
/*     free(list->root); */
/*     list->root = list->top = 0; */
/*     return; */
/*   } else { */
/*     s_node* prev = list->root; */
/*     s_node* p = list->root;  */
/*     for (;;) { */
/*       if (strcmp((char*)p->ptr, string) == 0) { */

/*       } else { */

/*       } */
/*     } */
/*     return; */
/*   } */
/* } */

/* FIXME: lint gives 23 code errors, most of which are not justified */