Fixed minor memory leak.
[privoxy.git] / list.h
diff --git a/list.h b/list.h
index 5a6ea13..b57405d 100644 (file)
--- a/list.h
+++ b/list.h
@@ -1,9 +1,9 @@
 #ifndef _LIST_H
 #define _LIST_H
-#define LIST_H_VERSION "$Id: list.h,v NOT CHECKED IN YET $"
+#define LIST_H_VERSION "$Id: list.h,v 1.2 2001/06/01 18:49:17 jongfoster Exp $"
 /*********************************************************************
  *
- * File        :  $Source: /cvsroot/ijbswa/current/list.c,v $
+ * File        :  $Source: /cvsroot/ijbswa/current/list.h,v $
  *
  * Purpose     :  Declares functions to handle lists.
  *                Functions declared include:
  *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
  * Revisions   :
- *    $Log: list.c,v $
+ *    $Log: list.h,v $
+ *    Revision 1.2  2001/06/01 18:49:17  jongfoster
+ *    Replaced "list_share" with "list" - the tiny memory gain was not
+ *    worth the extra complexity.
+ *
+ *    Revision 1.1  2001/05/31 21:11:53  jongfoster
+ *    - Moved linked list support to new "list.c" file.
+ *      Structure definitions are still in project.h,
+ *      function prototypes are now in "list.h".
+ *    - Added support for "struct list_share", which is identical
+ *      to "struct list" except it saves memory by not duplicating
+ *      the strings.  Obviously, this only works if there is some
+ *      other way of managing the memory used by the strings.
+ *      (These list_share lists are used for lists which last
+ *      for only 1 request, and where all the list entries are
+ *      just coming directly from entries in the actionsfile.)
+ *      Note that you still need to destroy list_share lists
+ *      properly to free the nodes - it's only the strings
+ *      which are shared.
+ *
  *
  *********************************************************************/
 \f
@@ -48,24 +67,22 @@ extern "C" {
 
 
 extern void enlist(struct list *h, const char *s);
-extern void destroy_list(struct list *h);
-extern char *list_to_text(struct list *h);
+extern void enlist_unique(struct list *header, const char *str, int n);
+extern void enlist_first(struct list *header, const char *str);
+extern int   list_remove_item(struct list *header, const char *str);
 
-void enlist_unique(struct list *header, const char *str);
+extern void  list_append_list_unique(struct list *dest, const struct list *src);
+extern void  list_append_list_unique(struct list *dest, const struct list *src);
+extern int   list_remove_list(struct list *header, const struct list *to_remove);
+extern void  list_duplicate(struct list *dest, const struct list *src);
 
-int list_remove_item(struct list *header, const char *str);
-int list_remove_list(struct list *header, const struct list *to_remove);
+extern void  destroy_list(struct list *h);
 
-void list_duplicate(struct list *dest, const struct list *src);
-void list_append_list_unique(struct list *dest, const struct list *src);
+extern char *list_to_text(struct list *h);
 
-void destroy_list_share(struct list_share *h);
-void enlist_share(struct list_share *header, const char *str);
-void enlist_unique_share(struct list_share *header, const char *str);
-int list_remove_item_share(struct list_share *header, const char *str);
-int list_remove_list_share(struct list_share *dest, const struct list *src);
-void list_duplicate_share(struct list_share *dest, const struct list *src);
-void list_append_list_unique_share(struct list_share *dest, const struct list *src);
+extern struct map* map(struct map* map, char *name, int nc, char *value, int vc);
+extern char *lookup(struct map *list, char *name);
+extern void free_map(struct map *list);
 
 /* Revision control strings from this header and associated .c file */
 extern const char list_rcs[];