Adding support for LOG_LEVEL_CGI
[privoxy.git] / list.h
diff --git a/list.h b/list.h
index 5a6ea13..b803251 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 $"
+#ifndef LIST_H_INCLUDED
+#define LIST_H_INCLUDED
+#define LIST_H_VERSION "$Id: list.h,v 1.5 2001/07/29 18:43:08 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.5  2001/07/29 18:43:08  jongfoster
+ *    Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
+ *    ANSI C rules.
+ *
+ *    Revision 1.4  2001/06/29 13:30:37  oes
+ *    - Introduced enlist_unique_header()
+ *    - Removed logentry from cancelled commit
+ *
+ *    Revision 1.3  2001/06/03 11:03:48  oes
+ *    introduced functions for new list type "map": map(), lookup(),
+ *    free_map(), and extended enlist_unique
+ *
+ *    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 +79,25 @@ 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_unique_header(struct list *header, const char *name, const char *value);
+extern void enlist_first(struct list *header, const char *str);
 
-void enlist_unique(struct list *header, const char *str);
+extern int   list_remove_item(struct list *header, const char *str);
 
-int list_remove_item(struct list *header, const char *str);
-int list_remove_list(struct list *header, const struct list *to_remove);
+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);
 
-void list_duplicate(struct list *dest, const struct list *src);
-void list_append_list_unique(struct list *dest, const struct list *src);
+extern void  list_duplicate(struct list *dest, const struct list *src);
+
+extern void  destroy_list(struct list *h);
+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 *new_map(void);
+extern void free_map(struct map *list);
+extern void map(struct map* map, const char *name, int nc, const char *value, int vc);
+extern const char *lookup(const struct map *list, const char *name);
 
 /* Revision control strings from this header and associated .c file */
 extern const char list_rcs[];
@@ -75,7 +107,7 @@ extern const char list_h_rcs[];
 } /* extern "C" */
 #endif
 
-#endif /* ndef _LIST_H */
+#endif /* ndef LIST_H_INCLUDED */
 
 /*
   Local Variables: