\documentstyle{article}
\pagestyle{headings}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9in}
\setlength{\topmargin}{0in}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
\newcommand{\htmladdnormallink}[2] { #1 }
\begin{document}

\title{World Wide Web Browser For Emacs, Version 0.98 Beta}
\author{William M. Perry wmperry@indiana.edu}
\begin{abstract}
W3.el is an Emacs lisp program that allows you to view these documents
and follow the links from within emacs.  Multiple fonts are supported
in Emacs 19, Lucid Emacs, and Epoch.  Inlined graphics are supported
in Epoch, if you have the graphic zone support compiled in.

I would like to thank the following people for writing packages that I
use in w3.el:

\begin{description}
\item[ange-ftp] by Andy Norman (ange@hplb.hpl.hp.com)
\item[background] by Joseph G. Keane (jk3k+@ANDREW.CMU.EDU)
\item[forms] by Johan Vromans (jv@mh.nl)
\item[gopher] by Scott Snyder (snyder@d0gsc.fnal.gov)
\item[html-mode] by Marc Andreesen (marca@ncsa.uiuc.edu)
\item[nntp] by Masonobu UMEDA (umerin@flab.flab.fujitsu.junet)
\item[tcp] by Masonobu UMEDA (umerin@flab.flab.fujitsu.junet)
\end{description}

I would also like to thank the 60 or so beta testers who have sent in
many (i mean {\bf MANY}) bug reports over the last 5 months.

\htmladdnormallink{Version information}{version-info.html} is also available, as is a \htmladdnormallink{wishlist for version 1.0}{wishlist.html}.

The most current copy of the source code is always available from \htmladdnormallink{cs.indiana.edu:/pub/elisp/w3}{file://cs.indiana.edu/pub/elisp/w3}
\end{abstract}
\maketitle
\newpage

\pagenumbering{roman} \tableofcontents \newpage \pagenumbering{arabic}

\section{Introduction}
\subsection{What Is The World Wide Web?}
The World Wide Web is a large-scale networked hypertext information
system started by people at CERN in Switzerland.

WWW is heavily hypertext-based and uses its own hypertext document
description format called HTML (HyperText Markup Language), which is
in turn SGML based.

It also has its own network protocol, called HTTP, for HyperText
Transfer Protocol. HTTP is kind of like NNTP, with elements of the
WAIS protocol added for flavor. 

WWW also allows searches of indices that are located anywhere on the
network; in this respect, it mirrors certain capabilities found in
both WAIS and Gopher.

\subsection{What Is w3.el?}
I decided to write a World Wide Web browser because I was not
satisfied with the browsers that were available for dumb ASCII
terminals.

I wanted the browser to be very portable (and small), so I decided to
write it in Emacs-Lisp.  Since elisp doesn't vary from platform to
platform, it is able to run on any machine that has Emacs installed
(with subprocesses enabled).

It is also trivial to add new functionality to the elisp browser.  For
example, the ftp and gopher links are just passed off to other elisp
programs that other people have written.

W3-mode is constantly being changed, and the latest version can always
be obtained via anonymous ftp from moose.cs.indiana.edu in
/pub/elisp/w3/w3.tar.z.

\subsection{How To Start W3}
To be able to run W3, you will have to make a few changes to your
.emacs file.  You will need to add the directory where you are storing
the w3.el file to your load-path variable with a command like:
\\
(setq load-path (cons ``$<$WHERE THE W3.EL FILE IS$>$'' load-path))\hfill\\

You will also need to add a few autoload statements.  These should
work:
\\
(autoload 'w3 ``w3'' ``WWW Browser'' t) \hfill \\
(autoload 'w3-open-local ``w3'' ``Open local file for WWW browsing'' t) \hfill \\
(autoload 'w3-fetch ``w3'' ``Open remote file for WWW browsing'' t) \hfill \\
(autoload 'w3-use-hotlist ``w3'' ``Use shortcuts to WWW Docs'' t) \hfill \\
(autoload 'w3-preview-this-buffer ``w3'' ``Parse this buffer as HTML'' t) \hfill\\

There are several ways to start W3: M-x w3, M-x w3-open-local, M-x
w3-fetch, M-x w3-use-hotlist, and M-x w3-preview-this-buffer.

\begin{description}
\item[w3] causes W3 to try and retrieve the file specified by
w3-default-homepage.  w3-default-homepage defaults to the beginning of
a hypertext documentation tree for W3 here at IU.
\item[w3-open-local] will prompt for a filename on the local system.  W3
will open this file and attempt to parse it as an HTML document.
Filename completion is used.
\item[w3-fetch] will prompt for a valid URL.  W3 will attempt to parse
this url and retrieve the document specified.
\item[w3-use-hotlist] will do a completing-read on w3-hotlist.  If a valid
hotlist entry is chosen, that URL is retrieved and parsed.
\item[w3-preview-this-buffer] will try to parse out the current buffers
contents as an HTML document and display them.
\end{description}

If there are any links in the document, there will either be brackets
around it ([[this is a link]]) or a label in brackets after the link
(this is a link[5]).  The variable w3-delimit-links determines this (t
yields [[]], 'linkname yields [5]).  If you are using Emacs 19, Epoch
or Lucid Emacs, then the headers will be highlighted in some manner
(Underlined in Epoch, bold and italicized in Lucid and Emacs 19).

\section{Viewing/Traversing Documents}
When W3 is finished parsing a document, there will be a few things to
remember about what is what in the buffer, and how to maneuver between
links and different documents.

(Almost) Anything surrounded by double brackets is a link to another
document.  If you aren't sure if its a link or not, put your cursor
close to it and hit return.  Pressing return on (or near) a link will
attempt to fetch that document and open it in another window.

If you are using Epoch, Emacs19, or Lucid Emacs, clicking the middle
mouse button over a link will follow the link.

If you are using epoch, some of the lines might be huge because of
graphics inserted in the middle of lines of text.  There isn't a good
way around this, just try to ignore it. :)

If you are using Lucid Emacs or Emacs 19:

\begin{itemize}
\item Headers, links, addresses, and many other special formatting
commands used in HTML will appear in different fonts, as specified by
your Xresources (or default values).
\item A new menu will be created, called WWW, which will have most of
the commands needed in it, along with submenus titled ``Hotlist'' and
``Links''.  Links will list all the links to other documents in the
current buffer, and Hotlist will show a menu of all the hotlist items
you have saved.
\item Clicking the right mouse button will bring up a menu of common
commands.
\end{itemize}

Basic commands are:

\begin{itemize}
\item To move forward a link, hit 'f'.
\item To move backward a link, hit 'b'.
\item To fetch the link under the cursor, hit Return.
\item To perform a search, hit 's'.
\item To reload this document, hit 'r'.
\item To view this document's source, hit 'ESC-s'.
\item To quit, hit 'q'.
\item To view the current documents URL, hit 'v'.
\item To view the URL of the link under the cursor, hit 'V'.
\item To open a local file for viewing, hit 'o'.
\item To manually enter a URL, hit 'CTRL-o'.
\end{itemize}

\section{Compatibility With Hyperbole}
Since hyperbole is such a general package, I have included a file written
by Jin S. Choi (jsc@monolith.mit.edu) to add W3 support to hyperbole.
There are 2 small changes you have to make to the hyperbole source, but
they are extremely minor (they keep hyperbole from thinking URLs are ftp
links).  See the file w3-hyperbole.el for more information.

I am considering merging W3 with hyperbole more completely, but am
not sure if this is a good idea.  If you have any strong feelings on
the subject, send mail to me at wmperry@indiana.edu.  Any comments
welcome.

\section{Compatibility With Xmosaic}
Since Xmosaic is the de-facto hypertext browser at most sites, W3 is
compatible with it in several ways.

\subsection {``Hotlist'' Handling}
In order to avoid having to traverse many documents to get to the same
document over and over, W3 supports a ``hotlist'' like Xmosaic.  This
is a file that contains URLS and aliases.  You can quickly go to any
document in the Web, providing you've been there before and added it
to your hotlist.  The variable w3-hotlist-file determines where this
information is saved.  The structure of the file is compatible with
Xmosaic's hotlist file, so this defaults to $\tilde{}$.mosaic-hotlist-default.

Hotlist commands are:

\begin{itemize}
\item To add a document to your hotlist, just hit 'a' in any W3 buffer.
\item To kill a hotlist entry, hit 'd' in any W3 buffer.  You will be
prompted for the alias of the entry to kill.  (Hit space or tab for
partial completions)
\item To jump to a hotlist entry, hit 'h' in any W3 buffer, or type
M-x w3-use-hotlist from anywhere.  This will prompt you for the alias
to jump to.  (Hit space or tab for partial completions)
\end{itemize}

\subsection{``History''}
Xmosaic supports the idea of a ``history'' of URLs you have visited,
and it displays them in a different style than normal URLs so you will
not visit the same place on accident.

If you set the variable w3-keep-history to t, then W3 will keeep a
list of all the URLS you visit in a session.  To write the file out,
you will have to hit CTRL-q in a W3 buffer, then the list will be
added to those already in the file specified by
w3-global-history-file, which defaults to .mosaic-global-history.  If
any URL in the list is found in the file, it is not saved, but new
ones are added at the end of the file.

\subsection{Annotations}
Xmosaic allows you to {\it annotate} documents.  You can type in
comments about the current document, and these annotations will appear
as a link to your comments at the end of the document when you browse
it in Xmosaic.  The original file is not changed.

There are two types of annotations supported in Xmosaic, and both are
supported by W3 as well.

\subsubsection{Group Annotations}
An experimental {\it annotation server} is running at NCSA.  This
server allows people to annotate any document on the Web, and have
anyone else see it.  To activate this feature in Xmosaic, set the
resource XMosaic*annotationServer to hoohoo.ncsa.uiuc.edu:8001.

In W3, if the variable w3-group-annotation-server is defined, then it
will try to contact the server and retrieve any annotations for the
current document.  This variable should be a string containing the
name of the annotation server (defaults to ``hoohoo.ncsa.uiuc.edu'').
To turn off group annotation support, set this variable to nil.  If
you have a slow connection to uiuc, I'd recommend doing this.  The
variable w3-group-annotation-port defaults to 8001, and should be an
integer representing the port number the server is running on.

The group annotations (if any) will appear as normal links at the
bottom of your document.  They can be selected just like any other
link.

Both Xmosaic and W3 support multiple levels of annotation (Annotations
on annotations ad infitim).

To create a new annotation, type M-x w3-add-group-annotation $<$RET$>$.
This will put you in a new buffer, in HTML-mode.  If you are not
familiar with HTML-mode, hit C-h m for instructions, and see the file
html-mode.el that came with W3.  At the top of this buffer is an HTML
tag $<$/PRE$>$.  If you don't want to use any HTML commands, you can
delete this and just type in your message and it should be formatted
just as you type it.  If you leave this in, you can use any HTML
formatting command (italics, headings, bold, etc) except adding a
title.  When you are finished editing your annotation, hit C-c C-c.
It will then prompt you for a title for your annotation, defaulting to
Annotation by $<$user information$>$.  Hit return after typing in your
title.  If any errors are received, they will be put in a W3 buffer.

To delete an annotation, you must be reading it.  Then type M-x
w3-delete-group-annotation.  If any errors are received, they will be
put in a W3 buffer.

I do not currently support editing group annotations.

\subsubsection{Personal Annotations}
If you do not want to share your musings about a particular document
with the entire network, you can add a personal annotation that only
you can see.  W3 will look in the directory specified by
w3-personal-annotation-directory (defaults to
$\tilde{}$/.mosaic-personal-annotations).  It will store any annotations
it finds in an associative list (w3-personal-annotations).  Any
personal annotations for a document will be automatically appended
when it is retrieved.

To add a new personal annotation, type M-x w3-add-personal-annotation.
This will put you in a new buffer, in HTML-mode.  If you are not
familiar with HTML-mode, hit C-h m for instructions, and see the file
html-mode.el that came with W3.  At the top of this buffer is an HTML
tag $<$/PRE$>$.  If you don't want to use any HTML commands, you can
delete this and just type in your message and it should be formatted
just as you type it.  If you leave this in, you can use any HTML
formatting command (italics, headings, bold, etc) except adding a
title.  When you are finished editing your annotation, hit C-c C-c.
It will then prompt you for a title for your annotation, defaulting to
Annotation by $<$user information$>$ on $<$date$>$.

To delete a personal annotation, you must be reading it.  Once reading
the annotation, type M-x w3-delete-personal-annotation $<$RET$>$.  It will
delete the file containing the annotation, and any references to it in
your log file.

I do not currently support editing personal annotations.

\section{HTTP/1.0 And MIME Support}

With the arrival of more servers that correctly speak HTTP/1.0, I
thought it would be best to implement it in W3.  So HTTP/1.0 is now
fully (or close to fully) supported by W3.  W3 will always send a full
HTTP/1.0 request to the server - if the server is not 1.0 compliant,
it should ignore the extra fields - if not, please let the server
maintainer know.  (Usually webmaster@offending.host.com)

You may now specify viewers by their MIME content-type.  The format
might take a little getting used to.  The variable is w3-mime-viewers,
and is an assoc list of top-level MIME types (application, text,
etc).  The cdr of each element is another assoc list of the MIME
sub-types (postscript, gif, etc).  This can have a regular expression
as the car.  The cdr of {\bf that} assoc list is either a string to
pass to a shell, with '\%s' standing for the filename (I'll give it a
unique one and run it through format), or a lisp symbol, which should
be a function to run on the buffer contents (no arguments will be
passed to it).  Check out the documentation string for more
info/examples.

A viewer for the MIME content-type takes precedence over a viewer
specified in the w3-viewer-alist.

\section{Customizing W3}
\subsection{Using W3 When Emacs Can't Resolve Hostnames}

W3 makes extensive use of the open-network-stream lisp primitive.  A
few problems can arise because of this.  

When you compil	be W3, a warning will show up if emacs can't resolve
hostnames (this could be because of a firewall or emacs wasn't linked
correctly).

\subsubsection{Behind a Firewall}
If you are behind a firewall, your only hope will be to use a telnet
program that is capable of going through your firewall.  Most
companies have something like this.

You will need to set a few variables in your .emacs for this to work
correctly:

\begin{description}
\item[w3-telnet-prog] The name of the telnet executable that can get past the firewall
\item[w3-telnet-header-length] Number of lines of garbage that telnet puts in a buffer before it is ready for input (0 is the normal value)
\item[w3-telnet-ready-regexp] A regular expression matching the last line output by telnet before it is ready to take input.
\item[w3-use-telnet] Set this to 't'
\end{description}

If you don't have a version of telnet that can go through your firewall, you may still be able to write expect scripts to do the same thing yourself.  Expect requires tcl, and both can be anonymously ftped from \htmladdnormallink{ftp.cme.nist.gov:/pub/expect}{file://ftp.cme.nist.gov/pub/expect}.

\subsubsection{Emacs Linked Incorrectly}
On some systems, the static binaries don't have the hostname-resolving
versions of gethostbyname() in them.  (I've had this happen on SunOS
and Ultrix 4.2)

If you can get your local emacs maintainer to relink emacs with the
correct libraries, you should be able to use W3 with no other changes.
(On SunOS and Ultrix, you have to link with -lresolv, not sure what
needs to be done on other systems)

If your local emacs guru can't/won't relink emacs, there is still
hope.  The files tcp.c and tcp.el that came in the extras.tar.z file
will help.  You will need to compile the file tcp.c (gcc -o tcp tcp.c
should take care of it) and move the executable into a directory you
own.  Move the tcp.el file into the directory where you are keeping
the W3 lisp files.  Then add these lines to your .emacs file:
\\
(setq tcp-program-name ``/full/path/to/the/tcp/executable'')\hfill\\
(require 'tcp)\hfill\\

This will run a subprocess to connect to the remote machine and pass
the input back to emacs.

\subsection{Configuration Variables}

There are many different variables that you can use to customize W3.
To modify any of these variables, you would add a line of the form:
\\
(setq $<$variable-name$>$ $<$value$>$)\hfill\\

Here is a list of the user-modifiable variables.  If you don't see a
variable in this list, you probably shouldn't change it.

\begin{description}
\item[w3-annotation-marker] The string to put at the start of each personal annotation.  Required by XMosaic. Defaults to $<$ncsa-annotation-format-1$>$
\item[w3-default-homepage] The URL to open at startup
\item[w3-delimit-links] Should links be shown with brackets around them? If t, show with brackets, if eq to 'linkname, show with NAME in brackets after link text.
\item[w3-directory-format] How to format directory listings.  If value is 'hypertext, use directory-files to list them out and transform them into a hypertext document, then pass it through the parse like any other document.  If value is 'dired, just pass the directory off to dired using find-file.
\item[w3-global-history-file] The file to store global history in.
\item[w3-graphic-converter-alist] Assoc-list of how to convert graphics into x pixmaps.  See w3.el 
\item[w3-group-annotation-port] The port on the annotation server to talk to (defaults to 8001)
\item[w3-group-annotation-server] The annotation server to connect to (defaults to hoohoo.ncsa.uiuc.edu)
\item[w3-hotlist-file] The file to store hotlist data in.
\item[w3-html2latex-prog] Program to convert html to latex
\item[w3-html2latex-args] Args to pass to html2latex-prog
\item[w3-hypertext-extns] Extensions to not add PLAINTEXT to. See w3.el
\item[w3-keep-history] Should we keep a history list?
\item[w3-link-end-delimiter] String to put at the end of each link when w3-delimit-links is t
\item[w3-link-start-delimiter] String to put at the start of each link when w3-delimit-links is t
\item[w3-mutable-windows] Go to new buffers in another window?
\item[w3-news-server] News server for news links.  Defaults to NNTPSERVER or ``news''
\item[w3-personal-annotation-directory]  Directory specifying where to look for personal annotations.
\item[w3-print-command] Command to print DVI files.  Defaults to lpr -h -d
\item[w3-right-border] How much space to leave on the right side of the screen.  Defaults to 2 
\item[w3-running-epoch] Are we running Epoch?
\item[W3-Running-FSF19] Are we running Emacs 19?
\item[w3-running-lemacs] Are we running Lucid?
\item[w3-telnet-header-length] How many lines to kill from the beginning of a telnet buffer
\item[w3-telnet-prog] Telnet program to use
\item[w3-uncompressor-alist] Assoc list of file extensions and the commands to uncompress them
\item[w3-use-html2latex] Use a program or built-in conversion for printing html files?
\item[w3-use-telnet] Use telnet or open-network-stream.  If your emacs is not linked with -lresolv, set this to t
\item[w3-viewer-alist] Assoc-list of file extensions and shell commands or lisp-functions to run when a file is loaded.  A '\%s' signifies a temporary filename the data is stored in.
\item[w3-xterm-command] Command to use in xwindows to start a terminal emulator
\end{description}

\subsection{Hook Variables}
Here is a list of hooks that W3 uses.  Should be pretty self explanatory.

\begin{description}
\item[w3-file-done-hooks] Function or list of functions to run after preparing a buffer
\item[w3-file-prepare-hooks] Function or list of functions to run before preparing a buffer
\item[w3-mode-hooks] Function or list of functions to run after entering w3-mode
\item[w3-load-hooks] Function or list of function to run after loading w3 for the first time
\end{description}

\subsection{Emacs 19 Specific Customization}
When you are using W3 in Emacs 19, it will try to read any Xresources
that you have defined.

\label{emacs19resources}
When you are using W3 in Emacs19, it will try to read any Xresources
that you have defined.

For each style of text that W3 uses, you can specify any of the
following resources by replacing $<$style$>$ with the actual style
name.

\label{emacs19resources}
\begin{description}
\item[Emacs*$<$Style$>$.AttributeFont] Font for fixed-width text
\item[Emacs*$<$Style$>$.AttributeForeground] Foreground color
\item[Emacs*$<$Style$>$.AttributeBackground] Background color
\item[Emacs*$<$Style$>$.AttributeBackgroundPixmap] Pixmap to put in background
\item[Emacs*$<$Style$>$.AttributeUnderline] Underline text?
\end{description}

W3 uses these style names:
\begin{description}
\item[w3-bold-style] For anything in bold, strong, or a definition
\item[w3-default-style] For normal text
\item[w3-header-style] For any headers
\item[w3-italic-style] For italic text, emphasized, or addresses
\item[w3-node-style] For links to other documents
\item[w3-tt-style] For fixed width fonts, code segments, samples, or variables
\item[w3-underline-style] For underlining, and citations
\end{description}

\subsection{Epoch Specific Customization}
When you are using W3 in Epoch, it will try to read any Xresources
that you have defined.

\label{epochresources}
\begin{description}
\item[w3*bold-font] Font for displaying bold
\item[w3*bold-background] Background for bold
\item[w3*bold-foreground] Foreground for bold
\item[w3*default-font] Font for normal text
\item[w3*default-background] Background for normal text
\item[w3*default-foreground] Foreground for normal text
\item[w3*header-font] Font for displaying headers
\item[w3*header-background] Background for Headers
\item[w3*header-foreground] Foreground for Headers
\item[w3*header-underline-p] Should headers be underlined?
\item[w3*italic-font] Font for displaying italics
\item[w3*italic-background] Background for Italic
\item[w3*italic-foreground] Foreground for Italic
\item[w3*node-font] Font for displaying links
\item[w3*node-background] Background for Links
\item[w3*node-foreground] Foreground for Links
\item[w3*tt-font] A fixed width font
\item[w3*tt-background] Background For Fixed Width
\item[w3*tt-foreground] Foreground For Fixed Width
\item[w3*underline-font] Font for displaying underlined text
\item[w3*underline-background] Background for Underline
\item[w3*underline-foreground] Foreground for Underline
\item[w3*underline-p] Should Underlined be Underlined?
\end{description}

\subsection{Lucid Emacs Specific Customization}
When you are using W3 in Lucid Emacs, it will try to read any
Xresources that you have defined.

For each style of text that W3 uses, you can specify any of the
following resources by replacing $<$style$>$ with the actual style name.

\label{lemacsresources}
\begin{description}
\item[Emacs*$<$Style$>$.AttributeFont] Font for fixed-width text
\item[Emacs*$<$Style$>$.AttributeForeground] Foreground color
\item[Emacs*$<$Style$>$.AttributeBackground] Background color
\item[Emacs*$<$Style$>$.AttributeBackgroundPixmap] Pixmap to put in background
\item[Emacs*$<$Style$>$.AttributeUnderline] Underline text?
\end{description}

W3 uses these style names:
\begin{description}
\item[w3-bold-style] For anything in bold, strong, or a definition
\item[w3-default-style] For normal text
\item[w3-header-style] For any headers
\item[w3-italic-style] For italic text, emphasized, or addresses
\item[w3-node-style] For links to other documents
\item[w3-tt-style] For fixed width fonts, code segments, samples, or variables
\item[w3-underline-style] For underlining, and citations
\end{description}

\section{Listing of Functions}
The following functions are defined in W3

\begin{description}
\item[w3-add-document-to-hotlist] This will add the current document to your hotlist.  This is for compatibility with Xmosaic.
\item[w3-add-gopher-hotlist-entry] This will add the current gopher document to your hotlist.
\item[w3-add-group-annotation] This will start editing a group annotation for the current document.
\item[w3-add-personal-annotation] This will start editing a personal annotation for the current document.
\item[w3-back-link] Move backward to the previous link in the buffer. This is modified for each version of emacs.
\item[w3-delete-group-annotation] If the current document is a group annotation, then delete it.  Any errors are reported.
\item[w3-delete-personal-annotation] If the current document is a personal annotation, then delete it.
\item[w3-document-source] Display the HTML source for the current buffer
\item[w3-fetch] Prompt for a URL and attempt to retrieve and parse it.
\item[w3-follow-link] Attempt to go to the document specified by the link at the current cursor position.
\item[w3-follow-mouse] This will attempt to follow the link under the mouse cursor.  This is modified for each version of emacs.
\item[w3-forward-link] Move forward to the next link in the buffer.  This is modified for each version of emacs, to take advantage of different features.
\item[w3-insert-this-url] Insert the current url in another buffer.  With prefix arg, insert the url of the link under point in another buffer.
\item[w3-goto-last-buffer] Go to the last W3 buffer visited.
\item[w3-help] Get a list of current keybindings and what they do, as well as variables and their documentation strings.
\item[w3-mail-current-document] Mail the current (formatted) document to someone.
\item[w3-open-local] Open a local file as an HTML document and parse it.
\item[w3-popup-menu] This will pop up a menu of commonly used commands. (Lucid Emacs and Emacs 19 Only)
\item[w3-preview-this-buffer] Parse the current buffer as an HTML document, and display in another buffer.
\item[w3-print-this-url] This will convert the current document to LaTeX and print it out
\item[w3-print-url-under-point] This will convert the document pointed to by the url under point into LaTeX and print it out.
\item[w3-quit] Kill the current W3 buffer
\item[w3-reload-document] Request the current document again.
\item[w3-remove-from-hotlist] Remove a link from your hotlist file.  This is for compatibility with Xmosaic.
\item[w3-save-url] Save the current url in the kill ring.
\item[w3-search] If the current document is a searchable index, prompts for a query string, and sends the request to the server.
\item[w3-show-history-list] If w3-history-list exists, transform it into an HTML doc of previously visited URLs and parse it out.  NOTE: you must have w3-keep-history set to 't' for this to be of any use.
\item[w3-submit-bug] Send mail to the maintainer about a bug.  Maintainers email address, information on emacs version, system type, and version number of W3 are automatically filled in.
\item[w3-toggle-telnet] This will toggle between using a telnet subprocess, or the open-network-stream lisp primitive.
\item[w3-use-hotlist] Quickly go to a link in your hotlist.  This is for compatibility with Xmosaic.
\item[w3-view-this-url] This will show the URL of the link under the cursor.  This is modified for each version of emacs.
\item[w3-view-url] Display the current buffers URL in the minibuffer
\item[w3-write-global-history] This will write out the current sessions history into the file specified by w3-global-history-file.  This is for compatibility with Xmosaic.
\end{description}

\end{document}
