* University of Maryland at College Park
*/
/*
- * $Id: sl.c,v 1.1.2.3 2004/04/23 11:44:57 martinea Exp $
+ * $Id: sl.c,v 1.6 2006/05/25 01:47:12 johnfranks Exp $
*
* A doubly linked list of string (char *)
*/
#include "sl.h"
-void init_sl(sl)
-sl_t *sl;
+void init_sl(
+ sl_t *sl)
{
sl->first = NULL;
sl->last = NULL;
}
-sl_t *new_sl() {
+sl_t *
+new_sl(void)
+{
sl_t *sl;
- sl = alloc(sizeof(sl_t));
+ sl = alloc(SIZEOF(sl_t));
init_sl(sl);
return(sl);
}
-sl_t *insert_sl(sl, name)
-sl_t *sl;
-char *name;
+sl_t *
+insert_sl(
+ sl_t *sl,
+ char *name)
{
sle_t *a;
if(!sl) {
sl = new_sl();
}
- a = alloc(sizeof(sle_t));
+ a = alloc(SIZEOF(sle_t));
a->name = stralloc(name);
a->next = sl->first;
a->prev = NULL;
}
-sl_t *append_sl(sl, name)
-sl_t *sl;
-char *name;
+sl_t *
+append_sl(
+ sl_t * sl,
+ char * name)
{
sle_t *a;
if(!sl) {
sl = new_sl();
}
- a = alloc(sizeof(sle_t));
+ a = alloc(SIZEOF(sle_t));
a->name = stralloc(name);
a->prev = sl->last;
a->next = NULL;
}
-sl_t *insert_sort_sl(sl, name)
-sl_t *sl;
-char *name;
+sl_t *
+insert_sort_sl(
+ sl_t * sl,
+ char * name)
{
sle_t *a, *b;
sl = new_sl();
}
- for(b=sl->first; b != NULL < 0; b=b->next) {
+ for(b=sl->first; b != NULL; b=b->next) {
int i = strcmp(b->name, name);
if(i==0) return(sl); /* already there, no need to insert */
if(i>0) break;
if(b == sl->first) return insert_sl(sl, name);
if(b == NULL) return append_sl(sl, name);
- a = alloc(sizeof(sle_t));
+ a = alloc(SIZEOF(sle_t));
a->name = stralloc(name);
/* insert before b */
}
-void free_sl(sl)
-sl_t *sl;
+void
+free_sl(
+ sl_t * sl)
{
sle_t *a, *b;
}
-void remove_sl(sl, elem)
-sl_t *sl;
-sle_t *elem;
+void
+remove_sl(
+ sl_t * sl,
+ sle_t * elem)
{
if(elem->prev)
elem->prev->next = elem->next;
}
-sl_t *duplicate_sl(sl)
-sl_t *sl;
+sl_t *
+duplicate_sl(
+ sl_t * sl)
{
sl_t *new_sl = NULL;
sle_t *a;
/*
* Return "true" iff sl is empty (i.e. contains no elements).
*/
-int is_empty_sl(sl)
-sl_t *sl;
+int
+is_empty_sl(
+ sl_t * sl)
{
if (sl == NULL)
return 1;