Todo for next version
=====================

0. Find all bugs and remove them with extreme prejudice.

1. Implement other variations on pop (APOP, POP2)
   Note: I will _not_ implement rpop.  It's a stupid idea.
         I am not going to be responsible for helping to spread
         inherent insecurity.

2. Create a lex/yacc resource file parser and protocol parser.

3. Allow for other types of mail drops/mda

4. expand command line/resource file configurability of client
   this includes alternate mail spool specification, etc.
5. create an interactive user interface

6. handle uidl

7. allow verbosity to be set

8. create stricter security procedure for resource files containing passwords
	(maybe create a utility that creates a pimp.conf/.pimprc that
	 encrypts passwords.  Dunno.)

9. optimize memory usage for low memory systems

10. use the gnu getopt functions

11. use autoconf

12. I will create a library that will handle all pop3 types of transactions
    in the next release.

13. I'm also planning on creating a curses interactive interface.
    This largely depends on whether or not I get a new job.
    If I don't, I won't have the energy to do this as my current
    job makes me depressed and apathetic.
    This interface will _not_ be a mail reader.  It will be merely
    used for viewing headers (possibly body) and selecting mail for
    retrieval and deletion.  Maybe, at some point, I will make it
    also a limited mail reader (with reply and forward capabilities),
    but I doubt it.

14. force all people who use their fingers to count to use binary
    counting on their fingers, left most finger being first bit.
    Possible extensions of format to encompass octal and other
    counting schemes.

----
random todo notes

rewrite retrieve function:
(incorporate into pop3 library)
int retrieve (char *list, struct *mailbodylist){}
takes a list of int's that consist of singular or ranges:
	n - singular, n,n... - singular list, n-n - range
puts clean mailbody into linked list off of root mailbodylist
recommended to not do massive retrievals with this function,
large amnts of memory consumed (n*(sizeof(char)*length[n])
returns either number retrieved or one of these values based on
error:
-1 none of mail in list exists
-2 list is empty
-3 could not allocate needed memory, mailbodylist cleaned out
anything else I can think of

struct mailbodylist {
	char *body;
	long unsigned length;
  	int number;	
	struct mailbodylist *next;
};

modify other functions as needed for this new format
