

#define oplistinclude /*so other guys can tell if we've been included*/


#ifndef shellinclude

	#include "shell.h"

#endif



typedef struct tylistrecord {
	
	struct tyoutlinerecord ** houtline; /*the list is stored in an outline*/
	
	long ctitems; /*number of items in the list, can be gotten without traversal*/

	boolean isrecord; /*do items have names?*/
	
	boolean (*releaseitemcallback) (Handle); /*routine that releases one of **your** handles*/
	} tylistrecord, *ptrlistrecord, **hdllistrecord;


/*prototypes*/

extern boolean opnewlist (hdllistrecord *, boolean);

extern void opdisposelist (hdllistrecord);

extern boolean oppushhandle (hdllistrecord, ptrstring, Handle);

extern boolean oppushdata (hdllistrecord, ptrstring, ptrvoid, long);

extern boolean oppushstring (hdllistrecord, ptrstring, bigstring);

extern boolean opgetlistdata (hdllistrecord, long, ptrstring, ptrvoid, long);

extern boolean opgetlisthandle (hdllistrecord, long, ptrstring, Handle *);

extern boolean opgetliststring (hdllistrecord, long, ptrstring, bigstring);

extern boolean opsetlisthandle (hdllistrecord, long, ptrstring, Handle);

extern boolean opsetlistdata (hdllistrecord, long, ptrstring, ptrvoid, long);

extern long opcountlistitems (hdllistrecord);

extern boolean opdeletelistitem (hdllistrecord, long, ptrstring);

extern boolean oppacklist (hdllistrecord, Handle *);

extern boolean opunpacklist (Handle, hdllistrecord *);

extern boolean opcopylist (hdllistrecord, hdllistrecord *);

extern boolean oploadstringlist (short, hdllistrecord *);




