Sending an attachment qp encoded, like on a csv file with long lines,
and then receiving that file through Outlook, garbles the attachment.
Not sure why, but I've seen it happen a lot and it's a pain.
The quick fix here is to never qp encode, but jump straight to b64.

Get the messages from files in /usr/share/edbrowse/locale/country/blah,
like other programs do.
Then we wouldn't have to recompile every time a word changed,
or we got additional support for a language.
See messages.c.
I might leave English hard-coded, in case those files weren't there.

Every attribute in the html tag needs to become
a property in the corresponding object,
not just the few tags that we anticipate.
This is more general, and how DOM is suppose to work.

A complete rewrite would be nice,
with the screen rendered from the js object tree rather than from html.
This is described in README.

resolveURL with /?foobar

<form ... onclick= ... >

why is there an extra blank line after preformatted sections?

Bad html uses &nbsp: instead of &nbsp;  should we watch for these things?

find host fails for gvm1ghzxnlx0(+%##*vposzwx.watchfly.com because # in domain name??

document.myFlash  what is this.

makeIt('1','IE')

id=name in certain tags causes a newline to appear.
This leads to a lot of annoying blank lines.
If easier, we could just compress them after the fact.

<a id=something> instead of name=

Don't recognize any of these yet.
window.screenLeft window.screenTop window.screenX window.screenY window.outerWidth window.outerHeight

onload and onunload in body seem to run under document, not the body subobject

call javaSetsTagBool when js checks or updates a checkbox or radio button

what does all.tags("object") mean?

This is not implemented, but might be the same as readonly?
<input disabled>

options.length = 0,
js objects gone, but <option> tags still exist, and point to those objects.
This can lead to seg faults etc.
in general, dynamic domain objects are not implemented;
dynamic options would be most useful!
Lots of websites build a secondary menu based on your selection
in a primary menu.  Building the option list on the fly.
We could implement this directly, or wait for the rewrite,
which would render the screen from the js objects,
and would take care of this problem + many others.

attachEvent("onclick", doSomething);
I think we know what this does; it just isn't implemented.

getAttribute setAttribute

Let the re command put in an account: directive
when it sets up the headers for your reply.
So you are sending it from the same email account it was sent to.

<!-- comment >
This is bad htmo, but it happens.

Are these methods not yet implemented?
history.go history.back history.forward

imap support.

If edbrowse is started via an ebpager symlink, it should run in
"pager" mode.  Think of all the Unix commands which use a pager.
For instance, wouldn't it be nice to read manpages with edbrowse, instead
of the default "less"?
Grep commandline archives for ebpager to get the implementation ideas.

edbrowse should be able to automatically uncompress .gz and .bz2 files.
For that matter, it would be nice to be able to browse tar and zip archives,
as though they were directories.  You can do that in emacs, and it's useful.

It should be possible to apply Unix filters to edbrowse buffers.
Let's call this the !| command.
!| foo does the following:
* write the current buffer to tempfile1,
* Call foo < tempfile1 > tempfile2,
* Read tempfile2, clobbering the buffer.

