annotate src/itemlist.c @ 500:614a3177b15c noffle tip

Add mail-from option. Some modern mail systems will try and ensure the sender email is a legitimate address. Which will fail if there isn't such an address.
author Jim Hague <jim.hague@acm.org>
date Wed, 14 Aug 2013 12:04:39 +0100
parents b540ecb6f218
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
1 /*
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
2 itemlist.c
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
3
461
b540ecb6f218 [svn] * src/itemlist.c: Add define so test code builds again.
bears
parents: 281
diff changeset
4 $Id: itemlist.c 606 2003-07-23 07:53:42Z bears $
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
5 */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
6
45
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
7 #if HAVE_CONFIG_H
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
8 #include <config.h>
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
9 #endif
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
10
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
11 #include <ctype.h>
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
12 #include <string.h>
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
13 #include <stdlib.h>
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
14 #include "common.h"
197
24d4cd032da5 [svn] * AUTHORS,INSTALL,NEWS,README,TODO,docs/NOTES,src/client.c,src/protocol.c,
bears
parents: 72
diff changeset
15 #include "itemlist.h"
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
16 #include "log.h"
54
125d79c9e586 [svn] * src/client.c, src/configfile.c, src/content.c, src/control.c,
uh1763
parents: 45
diff changeset
17 #include "portable.h"
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
18
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
19 #if defined(ITEMLIST_TEST)
461
b540ecb6f218 [svn] * src/itemlist.c: Add define so test code builds again.
bears
parents: 281
diff changeset
20 #define Log_err printf
b540ecb6f218 [svn] * src/itemlist.c: Add define so test code builds again.
bears
parents: 281
diff changeset
21 #define Log_fatal printf
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
22 #endif
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
23
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
24 #define SEP_CHAR '\1' /* Replace all separators with this */
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
25
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
26 struct ItemList
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
27 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
28 char *list;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
29 char *next;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
30 size_t count;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
31 };
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
32
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
33 /* Make a new item list. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
34 ItemList *
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
35 new_Itl( const char *list, const char *separators )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
36 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
37 ItemList * res;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
38 char *p;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
39 Bool inItem;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
40
45
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
41 res = malloc( sizeof( ItemList ) );
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
42 if ( res == NULL )
281
5eece4dfd945 [svn] * src/log.c,src/log.h: Add Log_fatal() for reporting fatal errors
bears
parents: 197
diff changeset
43 Log_fatal( "Malloc of ItemList failed." );
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
44
45
32ba1198c6fa [svn] * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
uh1763
parents: 43
diff changeset
45 res->list = malloc ( strlen(list) + 2 );
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
46 if ( res->list == NULL )
281
5eece4dfd945 [svn] * src/log.c,src/log.h: Add Log_fatal() for reporting fatal errors
bears
parents: 197
diff changeset
47 Log_fatal( "Malloc of ItemList.list failed." );
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
48 strcpy( res->list, list );
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
49
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
50 res->count = 0;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
51 res->next = res->list;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
52
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
53 /* Separate items into strings and have final zero-length string. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
54 for( p = res->list, inItem = FALSE; *p != '\0'; p++ )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
55 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
56 Bool isSep = ( strchr( separators, p[ 0 ] ) != NULL );
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
57
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
58 if ( inItem )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
59 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
60 if ( isSep )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
61 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
62 p[ 0 ] = '\0';
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
63 inItem = FALSE;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
64 res->count++;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
65 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
66 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
67 else
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
68 {
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
69 if ( isSep )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
70 p[ 0 ] = SEP_CHAR;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
71 else
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
72 inItem = TRUE;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
73 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
74 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
75 if ( inItem )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
76 res->count++;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
77 p[ 1 ] = '\0';
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
78 return res;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
79 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
80
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
81 /* Delete an item list. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
82 void
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
83 del_Itl( ItemList *self )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
84 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
85 if ( self == NULL )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
86 return;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
87 free( self->list );
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
88 free( self );
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
89 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
90
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
91 /* Get first item. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
92 const char *
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
93 Itl_first( ItemList *self)
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
94 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
95 self->next = self->list;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
96 return Itl_next( self );
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
97 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
98
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
99 /* Get next item or NULL. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
100 const char *
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
101 Itl_next( ItemList *self )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
102 {
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
103 char *res = self->next;
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
104
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
105 if ( res[ 0 ] == '\0' )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
106 return NULL;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
107
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
108 while ( res[ 0 ] == SEP_CHAR )
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
109 res++;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
110
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
111 if ( res[ 0 ] == '\0' && res[ 1 ] == '\0' )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
112 return NULL;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
113
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
114 self->next = res + strlen( res ) + 1;
43
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
115 return res;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
116 }
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
117
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
118 /* Get count of items in list. */
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
119 size_t
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
120 Itl_count( const ItemList *self )
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
121 {
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
122 return self->count;
2842f50feb55 [svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff changeset
123 }
72
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
124
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
125 #if defined(ITEMLIST_TEST)
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
126
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
127 /* Test code borrowed from wildmat.c. Yep, still uses gets(). */
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
128 extern char *gets();
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
129
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
130 int
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
131 main()
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
132 {
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
133 Str line;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
134 Str seps;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
135 ItemList * itl;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
136 int count;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
137 const char *item;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
138
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
139 printf( "Itemlist tester. Enter seperators, then strings to test.\n" );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
140 printf( "A blank line gets prompts for new seperators; blank separators\n" );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
141 printf( "exits the program.\n" );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
142
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
143 for ( ; ; )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
144 {
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
145 printf( "\nEnter seperators: " );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
146 (void) fflush( stdout );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
147 if ( gets( seps ) == NULL || seps[0] == '\0' )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
148 break;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
149 for ( ; ; )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
150 {
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
151 printf( "Enter line: " );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
152 (void) fflush( stdout );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
153 if ( gets( line ) == NULL )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
154 exit( 0 );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
155 if ( line[0] == '\0' )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
156 break;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
157 itl = new_Itl( line, seps );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
158 printf( "%d items on list\n", Itl_count( itl ) );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
159 count = 0;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
160 for ( item = Itl_first( itl );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
161 item != NULL;
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
162 item = Itl_next( itl ) )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
163 printf( " Item %d is '%s'\n", ++count, item );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
164 if ( count != Itl_count( itl ) )
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
165 printf( "*** Warning - counts don't match ***\n" );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
166 del_Itl( itl );
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
167 }
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
168 }
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
169
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
170 exit(0);
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
171 /* NOTREACHED */
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
172 }
78e2ae741240 [svn] Fix stupid bug in Itl_next
bears
parents: 54
diff changeset
173 #endif /* defined(TEST) */