Improvements To Browser
Local directory listing for other platforms
Format handling for other platforms
Currently only UNIX will allow external converters to be used. With
VMS it is difficult since most commands don't use standard input and
standard output, so intermediate files must be used instead
PUT command
The PUT command would allow the browser to place the current document
either back where it came from or (optionally) elsewhere. How it
does this depends upon the protocol which was used to retrieve it.
Local file
Where the document is to be saved as a local file, it is merely enough
to determine write priviledges. If the user has write access, and
the file has not been altered since it was read, the file can be saved
back. However, the editability of the file should be determined at
the time of putting, not at the time of reading, since the permissions
can change dynamically.
FTP
To my knowledge there is no guarrenteed way to find out the write
permissions of a file over ftp. If this is the case, then the browser
must assume that the file can be written (and so is editable) until
it finds that it cannot write. Even if it can be discovered, in the
same way as files, the permissions can change indeterminantly.
HTTP
The server supplies an EDITABLE field if it will accept back that
document. However, that only suggests that it is possible to write
back, not that the client definitely can (because of changing write
permissions).
News
This really requires posting the article to the news, something I
am not familiar with. However, I suspect that the browser would have
to run an external news posting program, which has the necessary group
ID (on dxcern only users who are members of the 'news' group can read
the news directories - all news readers are run with that effective
group ID). News articles also have a particular format which might
have to be imposed (though, again, I'm not sure).
Others
I don't think that the other protocols (i.e. gopher) can handle documents
being returned.
Additional complications
As all this wasn't bad enough, there is the addtional complication
of format handling. Once the browser has received a file it may transform
it in a number of ways. It may be that the final format may be acceptable
to the server, on the other hand it may not. Currently there is no
way for the browser to know.
The simplest implementation would be to place the restriction that
a document can only be returned in the same form as it was recieved.
The browser would then have to determine if it could undo the conversions
it did to get the document in displayable form. If it could then
the document is editable.
The more complicated alternative is for the server to tell the browser
which formats it can receive the document back in, when it first sends
the document. The ommision of such an indication would indicate that
the document was only acceptable in the format it was received in.
Editing browser
External text editor
The simplest implementation for this is to allow the user to specify
an external editor to be invoked, which then allow the SOURCE of the
current document to be edited. Unfortunately the current line mode
browser implementation does not store enough information about each
document to allow the HTML to be regenerated. This can be overcome
is a number of ways:
1 For every document (or at least those marked as EDITABLE), store
the source (either in memory or in a temporary file).
2 When the user indicates that she wished to edit the file, retrieve
the document again and store it (probably in a temporary file). The
problem with this method is if the document is changed in between
the initial fetch of the document and the edit fetch.
3 Change the way the browser stores the document. This would mean
rewriting the GridText.c module.
Once the source has been obtained, the editor can be invoked (most
likely to work on a temporary file) and the source changed. The old
version of the document would be discarded, and the new version read
in.
External SGML editor
The use of a generic SGML editor (again external to the browser) would
require that HTML be redefined, since in its current form it is not
understandable by most SGML editors.
Internal HTML editor
To implement a line mode HTML editor would require the writing of
an editor which would run on every platform, and be able to handle
the HTML styles. It would perhaps be possible to modify an existing
public domain editor (such as EMACS) for the purpose, but it would
require a great deal of time and effort (especially since EMACS is
written is LISP).
______________________________________________________ CTB