+ * Revision 1.19 2007/04/17 18:14:06 fabiankeil
+ * Add list_contains_item().
+ *
+ * Revision 1.18 2006/12/28 19:21:23 fabiankeil
+ * Fixed gcc43 warning and enabled list_is_valid()'s loop
+ * detection again. It was ineffective since the removal of
+ * the arbitrary list length limit two years ago.
+ *
+ * Revision 1.17 2006/07/18 14:48:46 david__schmidt
+ * Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
+ * with what was really the latest development (the v_3_0_branch branch)
+ *
+ * Revision 1.15.2.2 2004/05/25 02:04:23 david__schmidt
+ * Removed the "arbitrary" 1000 filter limit in file.c. See tracker #911950.
+ *
+ * Revision 1.15.2.1 2002/11/28 18:14:54 oes
+ * Added unmap function that removes all items with a given
+ * name from a map.
+ *
+ * Revision 1.15 2002/03/26 22:29:55 swa
+ * we have a new homepage!
+ *
+ * Revision 1.14 2002/03/24 13:25:43 swa
+ * name change related issues
+ *
+ * Revision 1.13 2002/03/07 03:46:17 oes
+ * Fixed compiler warnings
+ *
+ * Revision 1.12 2001/10/25 03:40:48 david__schmidt
+ * Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
+ * threads to call select() simultaneously. So, it's time to do a real, live,
+ * native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
+ * (native). Both versions will work, but using __OS2__ offers multi-threading.
+ *
+ * Revision 1.11 2001/10/23 21:21:03 jongfoster
+ * New error handling - error codes are now jb_errs, not ints.
+ * Changed the way map() handles out-of-memory, to dramatically
+ * reduce the amount of error-checking clutter needed.
+ *
+ * Revision 1.10 2001/09/16 17:30:24 jongfoster
+ * Fixing a compiler warning.
+ *
+ * Revision 1.9 2001/09/16 13:20:29 jongfoster
+ * Rewrite of list library. Now has seperate header and list_entry
+ * structures. Also added a large sprinking of assert()s to the list
+ * code.
+ *
+ * Revision 1.8 2001/08/07 14:00:20 oes
+ * Fixed comment
+ *
+ * Revision 1.7 2001/08/05 16:06:20 jongfoster
+ * Modifiying "struct map" so that there are now separate header and
+ * "map_entry" structures. This means that functions which modify a
+ * map no longer need to return a pointer to the modified map.
+ * Also, it no longer reverses the order of the entries (which may be
+ * important with some advanced template substitutions).
+ *
+ * Revision 1.6 2001/07/31 14:44:51 oes
+ * list_to_text() now appends empty line at end
+ *
+ * Revision 1.5 2001/06/29 21:45:41 oes
+ * Indentation, CRLF->LF, Tab-> Space
+ *
+ * Revision 1.4 2001/06/29 13:30:22 oes
+ * - Added Convenience function enlist_unique_header(),
+ * which takes the Header name and value as separate
+ * arguments and thus saves the pain of sprintf()ing
+ * and determining the Header name length to enlist_unique
+ * - Improved comments
+ * - Removed logentry from cancelled commit
+ *
+ * Revision 1.3 2001/06/03 19:12:24 oes
+ * functions for new struct map, 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.
+ *