This file contains some of my thoughts about the future 
changes of Zen. They are listed in no particular order, and
will be taken care of in a completely different order.

- Abandon libmagick as first choice, and instead use libjpeg,
  libpng and libungif to decode images. Hopefully, this will
  increase speed and quality of the most common image types.
  Libmagick might be used as a secondary backup.
+ This is partly done, in supporting the use of libjpeg as a
  separate library. 

- Connected to the above, is to only load the shared libraries
  when they are first needed. That is, if a page only contain
  JPEG images, Zen will only open libjpeg, using libdl, and use
  it for decoding. This will then be loaded for as long as Zen
  is running for the current session.

- Support page location in URLs, specified with '#'.

- Support USEMAP.

- Support the different kinds of lists.

- Set total number of bytes in the status bar, when available.

- Support forms.

- Use more threads for images on a page to speed up the image
  processing, possibly with some delay before starting the next
  thread, so that it will not request all images at once. 
  Limit the number of threads to use.

- Configuration files, one general for the main program, and
  one for each interface. Both global, which can be overridden
  by local ones in the user's home directory.

- Create a plain text parser, which will basically put the
  whole text within a <pre> container.

- Terrorize and torture the people that made Netscape and MSIE
  accept so many cases of really bad HTML.

- Create a generic content type handler, which will decide
  what parser that will take care of the data.

- Add a download link command.

- Support background images, in the whole page, and in tables. 

- Support frames, and provide a few alternatives in the 
  configuration file, for example: real frames, frame list in
  the same style as Lynx, or convert into static tables, as
  w3m does.

- Cache files retrieved with HTTP. To start with, only cache for
  the current session, like Lynx does. Later, maybe save the
  cached files between sessions, like Netscape.

- Support bookmarks, probably the easiest way would be to create
  an HTML file located in a directory in the user's home directory.

- Add user interface helper function to layout a page again. This
  has to be done in order to create an interface with scalable 
  display areas, for example an X window.

- Implement FTP protocol support.

- Fix the main program, so that it may be called more than once
  at the same time. This is required to be able to request more
  than one URL at a time. 
+ Started with introducing page identifiers. 


Tomas Berndtsson, <tomas@nocrew.org>