/----------------------\
|                      |
|      TODO            |
|                      |
\----------------------/

* 'refresh shared files' + 'rehash' should be in FILES pop-up menu as well

* a cancelled download should be removed immediately from the shared files list
  (or a refresh message should be sent)

* make downloads + completed arrays static to file and get rid of all these horrible
  clist selection macros.

* FIX: delete_event callbacks should return TRUE or FALSE, and take a GdkEvent argument as well!

* FIX: do we need to check with configure whether gettext() is part of the
  standard C libary and/or available? Same for textdomain() and bindtextdomain()
  (case: FreeBSD, see -users mailing list from January 2002)
  If not, then we could just define all three of them away. Of course then there
  is only English available as a language, but that might be tolerable.

* check if we can use dl->lasttime_gaps and dl->lasttime_status_changed fields or if we
  should get rid of them again

* FEATURE: filter junk in uploads window (?)

* FEATURE: preview of shared files (must take care if it's a temp file or incoming file or other file)

* FEATURE: multiple selections + keyboard shortcuts in upload stats page 

* split up misc.c in different files, and put preview stuff in preview.c file

* FEATURE: delete first X lines if statuslog is longer than X kB or X characters or X lines

* FEATURE: add option to DL options menu: 'don't open xterm when previewing files'

* fix BUG: if auto-connect fails, dns lookup should not take place!

* FIX ramfile.c read routines so that they never read beyond the ed2k PACKET length.
  Currently it can happen that the ramfile contains more than one ed2k-packet, that is
  when we get 2 packets with one network read. currently the read routines will read
  beyond the length of the first packet instead of returning an error.

* FIX BUG in core spawn routine (endless 'Unrecognised command..' in ~/.xsession-errors
  file on some systems if the core is spawned via the GUI. Probably this happens
  because the spawn routine closes stdin or something [which the core can't handle])

* make the options file ASCII format instead of binary format (=>Tim)

* make drawing the progress bars more efficient:
  - use fixed GdkDrawable/Pixmap/Bitmap/whatever canvas and free/renew this
    only when the column is resized
  - draw progress bars on this canvas directly instead of first creating an
    XPM and making that into a pixmap every time *shudder*

* FIX BUG: sometimes it shows 'not connected to any server' _even though_
  we got a message from the core in this respect (does this have to do with
  the dns lookups/gnet threads somehow???)

* rewrite stats plotting code:
  - instead of relying on a record for every x time units, get all records between
    t1 and t2 and draw dots depending on time stamp in record (x = f(t)) ...

* get rid of all the horrible strrealloccpy() stuff

* get rid of all free() and malloc() and use g_free etc.

* if it's not a Linux system, then icon_tux should be loaded with some other
  system-dependent mascot (e.g. little red devil for freebsd etc.)

* in downloads list: make sub menu 'show column' in pop-up menu with hidden columns + all

* WRITE DOCUMENTATION!

* check:
	do pop-up menus need to be destroyed explicitely with gtk_widget_destroy after they "go away"???
	[=> when showing them, put them in a static variable. Then before making a new one, destroy the old one.]
	(seems not to be the case, but I've read it somewhere on the gtk-app-devel mailing list?!]

* FEATURE: add a column 'n', so results can be ordered by the order they come in
	(which is less chaotic if many 'extended' results come it belated)

* FEATRUE: new option to completely turn off logging to logfile

* FEATURE: save past searches in entry widget (hmm??)

* FEATURE: auto-extend search if less than X results: make X an option

* FEATURE: download list pop-up menu item: optimise column widths (maybe also in search)

* FEATURE: fix window repositioning bug (or make now fixed correctives configurable)



/----------------------\
|                      |
|      DONE            |
|                      |
\----------------------/

* FIX: strtof() might not exist on all systems
  (case: FreeBSD, see -users mailing list from January 2002)
  check for strtof() in configure and replace with atof if it is not defined
  (e.g. in parse_message.c)

* FIX: in donkey_process_running_check():
  currently a running core in GUI mode is only recognised, if the FIRST arg puts the
  core into GUI mode (e.g. ./donkey - !), while it is not recognised if the second
  or third argument does that.

