Commits

Anonymous committed 706fcd7

Re: [xemacsweb PATCH] Convert ALL .content files to XHTML 1.0 Transitional <uk8bakktz.fsf@ecf.teradyne.com>

Comments (0)

Files changed (151)

+2000-10-15  Adrian Aichner  <adrian@xemacs.org>
+
+	* Website.content: Convert to conform with XHTML Transitional DTD.
+	* XEmacsVsGNUemacs.content: Ditto
+	* created.content: Ditto
+
 2000-10-07  Adrian Aichner  <aichner@ecf.teradyne.com>
 
 	* created.content: Add "xarch tu-graz", re-indent to make possible

About/Screenshots/ChangeLog

+2000-10-15  Adrian Aichner  <adrian@xemacs.org>
+
+	* index.content: Convert to conform with XHTML Transitional DTD.
+	
 2000-08-18  Adrian Aichner  <aichner@ecf.teradyne.com>
 
 	* index.content: Remove empty lines in genpage % directives to

About/Screenshots/index.content

 %author%
 john s jacobs anderson
 %main%
-	<h1>XEmacs Screenshots</h1>
+            	<h1>XEmacs Screenshots</h1>
 
 	<p>This area of www.xemacs.org exists so XEmacs users can show
 	off the amazing amounts of customization possible with
 	XEmacs. If you've got a screenshot of XEmacs that you think
 	the world needs to see, send the location to
-	<a href="mailto:webmaster@xemacs.org">webmaster@xemacs.org</a>
-	(Please don't email images without checking.)
+	<a href="mailto:webmaster@xemacs.org" shape="rect">webmaster@xemacs.org</a>
+	(Please don't email images without checking.)</p>
 	
 	<h2>Contributions</h2>
 
 	<ul>
-	  <li>Robin S. Socha: several shots from
-	      <a href="http://www.socha.net/XEmacs/index.html#scrshot">
+	    <li>Robin S. Socha: several shots from
+	      <a href="http://www.socha.net/XEmacs/index.html#scrshot" shape="rect">
 	      Robin's XEmacs settings page</a> and
-	      <a href="http://www.socha.net/Gnus/index.html">
+	      <a href="http://www.socha.net/Gnus/index.html" shape="rect">
 	      Robin's Gnus settings page</a>, showing an html
 	      editting mode, a TeX editting mode, and Gnus, a news and
 	      mail reading application that runs within XEmacs.
-	      <br>Open in this window:
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot1.html">[1]</a>
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot2.html">[2]</a>
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot3.html">[3]</a>
-	      <a href="http://socha.net/Gnus/screenshots/group.html">[4]</a>
-	      <a href="http://socha.net/Gnus/screenshots/summary.html">[5]</a>
-	      <a href="http://socha.net/Gnus/screenshots/article.html">[6]</a>
-	      <a href="http://socha.net/Gnus/screenshots/message.html">[7]</a>
-	      <br>Open in new window:
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot1.html" target="new">[1]</a>
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot2.html" target="new">[2]</a>
-	      <a href="http://socha.net/XEmacs/xemacs.screenshot3.html" target="new">[3]</a>
-	      <a href="http://socha.net/Gnus/screenshots/group.html" target="new">[4]</a>
-	      <a href="http://socha.net/Gnus/screenshots/summary.html" target="new">[5]</a>
-	      <a href="http://socha.net/Gnus/screenshots/article.html" target="new">[6]</a>
-	      <a href="http://socha.net/Gnus/screenshots/message.html" target="new">[7]</a>
-	  <li>Stephen Tse: a nice shot showing a Mule-enabled XEmacs running
-	      <a href="http://www.sfu.ca/~stephent/eicq/">eicq</a>,
+	      <br clear="none"/>Open in this window:
+		<a href="http://socha.net/XEmacs/xemacs.screenshot1.html" shape="rect">[1]</a>
+		<a href="http://socha.net/XEmacs/xemacs.screenshot2.html" shape="rect">[2]</a>
+		<a href="http://socha.net/XEmacs/xemacs.screenshot3.html" shape="rect">[3]</a>
+		<a href="http://socha.net/Gnus/screenshots/group.html" shape="rect">[4]</a>
+		<a href="http://socha.net/Gnus/screenshots/summary.html" shape="rect">[5]</a>
+		<a href="http://socha.net/Gnus/screenshots/article.html" shape="rect">[6]</a>
+		<a href="http://socha.net/Gnus/screenshots/message.html" shape="rect">[7]</a>
+		<br clear="none"/>Open in new window:
+		  <a href="http://socha.net/XEmacs/xemacs.screenshot1.html" shape="rect" target="new">[1]</a>
+		  <a href="http://socha.net/XEmacs/xemacs.screenshot2.html" shape="rect" target="new">[2]</a>
+		  <a href="http://socha.net/XEmacs/xemacs.screenshot3.html" shape="rect" target="new">[3]</a>
+		  <a href="http://socha.net/Gnus/screenshots/group.html" shape="rect" target="new">[4]</a>
+		  <a href="http://socha.net/Gnus/screenshots/summary.html" shape="rect" target="new">[5]</a>
+		  <a href="http://socha.net/Gnus/screenshots/article.html" shape="rect" target="new">[6]</a>
+		  <a href="http://socha.net/Gnus/screenshots/message.html" shape="rect" target="new">[7]</a></li>
+		<li>Stephen Tse: a nice shot showing a Mule-enabled XEmacs running
+	      <a href="http://www.sfu.ca/~stephent/eicq/" shape="rect">eicq</a>,
 	      Stephen's ICQ client that runs within XEmacs.
-	      <br>Open in this window:
-	      <a href="http://www.sfu.ca/~stephent/eicq/eicq.gif">[1]</a>
-	      <br>Open in new window:
-	      <a href="http://www.sfu.ca/~stephent/eicq/eicq.gif" target="new">[1]</a>
+	      <br clear="none"/>Open in this window:
+		    <a href="http://www.sfu.ca/~stephent/eicq/eicq.gif" shape="rect">[1]</a>
+		    <br clear="none"/>Open in new window:
+		      <a href="http://www.sfu.ca/~stephent/eicq/eicq.gif" shape="rect" target="new">[1]</a></li>
 	  <li>Didier Verna: a pair of shots, showing Gnus and a
 	      customization buffer. Nice use of pixmap backgrounds!
-	      <br>Open in this window:
-	      <a href="../../Images/gnus.png">[1]</a>
-	      <a href="../../Images/custom.png">[2]</a>
-	      <br>Open in new window:
-	      <a href="../../Images/gnus.png" target="new">[1]</a>
-	      <a href="../../Images/custom.png"  target="new">[2]</a>
+	      <br clear="none"/>Open in this window:
+		      <a href="../../Images/gnus.png" shape="rect">[1]</a>
+		      <a href="../../Images/custom.png" shape="rect">[2]</a>
+		      <br clear="none"/>Open in new window:
+			<a href="../../Images/gnus.png" shape="rect" target="new">[1]</a>
+			<a href="../../Images/custom.png" shape="rect" target="new">[2]</a></li>
 	  <li>Charles G Waldman: a nice shot showcasing pixmap
 	      backgrounds,multiple frames with multiple windows, and a
 	      customized vm.
-	      <br>Open in this window:
-	      <a href="http://home.fnal.gov/~cgw/xemacs/screenshot.png">[1]</a>
-	      <br>Open in new window:
-	      <a href="http://home.fnal.gov/~cgw/xemacs/screenshot.png" target="new">[1]</a>
-	      <br>Instructions for duplicating the customization are
-	      available <a href="http://home.fnal.gov/~cgw/xemacs/">at
-	      Charles's site</a>.
-      
-	</ul>
-
-
-	
-	<br><br>
-	
-
-    
+	      <br clear="none"/>Open in this window:
+		      <a href="http://home.fnal.gov/~cgw/xemacs/screenshot.png" shape="rect">[1]</a>
+		      <br clear="none"/>Open in new window:
+			<a href="http://home.fnal.gov/~cgw/xemacs/screenshot.png" shape="rect" target="new">[1]</a>
+			<br clear="none"/>Instructions for duplicating the customization are
+			  available <a href="http://home.fnal.gov/~cgw/xemacs/" shape="rect">at
+	      Charles's site</a>.</li>
+	  </ul>

About/Website.content

 %author%
 Adrian Aichner
 %main%
-            <h1>XEmacs <a name="XWoS">Website</a> on Sourceforge</h1>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>
-              This website started out as a copy of the XEmacs site
-              hosted by <a href="http://www.tux.org/">tux.org</a>.
-              Here is a list of key features the new site
-              provides:</p>
-            <ul>
-              <li><p>All site content is under CVS control.</p></li>
-              <li><p>CVS commits update the website
-                  automatically.</p></li>
-              <li><p>The XEmacs website is just another CVS working
-                  directory containing the latest revisions of files from
-                  the repository.  Consequently all its ChangeLog files,
-                  .cvsignore files, genpage .content files, perl scripts,
-                  emacs-lisp files are also available via the
-                  website.</p></li>
-              <li><p>HTML document changes are validated against their
-                  DTD automatically.</p></li>
-              <li><p><a href="../genpage/www/index.html">genpage</a>
-                  eases maintenance of a consistent look</p></li>
-              <li><p>All intra-site links are relative to allow site
-                  mirroring and link-testing in developers working
-                  directories.</p></li>
-              <li><p>Website development model is fully in line with
-                  XEmacs development model.</p></li>
-              <li><p>Site update <a href="../logs/">logs</a> are
-                  available via HTTP.</p></li>
-            </ul>
-            <hr>
-            <h2>XEmacs <a name="XWCR">Website</a> CVS Repository</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>The XEmacs Website repository is hosted by <a href="http://sourceforge.net/">SourceForge</a> and can be
-              <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=xemacs">browsed</a>
+	  <h1>XEmacs <a name="XWoS" shape="rect">Website</a> on Sourceforge</h1>
+	  <p><a href="#index" shape="rect">Goto</a> Index</p>
+	  <p>
+	    This website started out as a copy of the XEmacs site
+	    hosted by <a href="http://www.tux.org/" shape="rect">tux.org</a>.
+	    Here is a list of key features the new site
+	    provides:</p>
+	  <ul>
+	    <li><p>All site content is under CVS control.</p></li>
+	    <li><p>CVS commits update the website
+		automatically.</p></li>
+	    <li><p>The XEmacs website is just another CVS working
+		directory containing the latest revisions of files from
+		the repository.  Consequently all its ChangeLog files,
+		.cvsignore files, genpage .content files, perl scripts,
+		emacs-lisp files are also available via the
+		website.</p></li>
+	    <li><p>HTML document changes are validated against their
+		DTD automatically.</p></li>
+	    <li><p><a href="../genpage/www/index.html" shape="rect">genpage</a>
+		eases maintenance of a consistent look</p></li>
+	    <li><p>All intra-site links are relative to allow site
+		mirroring and link-testing in developers working
+		directories.</p></li>
+	    <li><p>Website development model is fully in line with
+		XEmacs development model.</p></li>
+	    <li><p>Site update <a href="../logs/" shape="rect">logs</a> are
+		available via HTTP.</p></li>
+	  </ul>
+	  <hr/>
+            <h2>XEmacs <a name="XWCR" shape="rect">Website</a> CVS Repository</h2>
+            <p><a href="#index" shape="rect">Goto</a> Index</p>
+            <p>The XEmacs Website repository is hosted by <a href="http://sourceforge.net/" shape="rect">SourceForge</a> and can be
+              <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=xemacs" shape="rect">browsed</a>
               by anyone.</p>
             <p>Only developers can commit their changes to the
-              repository themselves.  Here is the <a href="http://sourceforge.net/project/memberlist.php?group_id=11">current
+              repository themselves.  Here is the <a href="http://sourceforge.net/project/memberlist.php?group_id=11" shape="rect">current
                 list of developers</a>.</p>
             <p>Sources can be checked out into a local working
-              directory according to <a href="http://sourceforge.net/cvs/?group_id=11">these
+              directory according to <a href="http://sourceforge.net/cvs/?group_id=11" shape="rect">these
                 instructions</a>.</p>
             <dl>
               <!-- one of (DD DT) -->
               <dt><strong>by developers via SSH</strong></dt>
               <dd>
                 <p>It allows developers to commit their changes (after
-                  getting approval for the patch sent to <a href="mailto:xemacs-patches@xemacs.org">xemacs-patches@xemacs.org</a>)
+                  getting approval for the patch sent to <a href="mailto:xemacs-patches@xemacs.org" shape="rect">xemacs-patches@xemacs.org</a>)
                   to the repository directly.</p>
                 <p>This will cause the website to be updated and the
                   affected files validated automatically!</p>
-                <p>The result of a commit can be <a href="http://xemacs.sourceforge.net/logs/">viewed</a>
+                <p>The result of a commit can be <a href="http://xemacs.sourceforge.net/logs/" shape="rect">viewed</a>
                   in a newly created log file (containing the UTC time
                   of the commit in its name -- represented almost
                   exactly according to ISO8601).</p>
                 <p>If you have a track record of contributing to
                   XEmacs or its website you may become a developer by
                   registering as a user with sourceforge and then
-                  sending a <a href="https://sourceforge.net/support/?func=addsupport&group_id=11">support
+                  sending a <a href="https://sourceforge.net/support/?func=addsupport&group_id=11" shape="rect">support
                     request</a> for the XEmacs project (use support
                   category <cite>CVS</cite>).</p>
               </dd>
             </dl>
-            <hr>
-            <h2>Automatic <a name="AWU">Website</a> Update</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>This is performed via the shared project account named
-              <strong>xemacs</strong>.  Its password can be found in
-              <samp>~xemacs/.ssh/secret</samp> after first logging in as
-              follows: <samp>ssh -l xemacs shell.sourceforge.net</samp>.
-              You may never need this account, unless you get involved
-              in improving the process or fixing breakage.</p>
-            <p>A <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/CVSROOT/loginfo?cvsroot=xemacs">xemacsweb/loginfo</a>
-              entry for the xemacsweb module takes care of the automatic
-              update, which involves a <cite>cvs update</cite>, followed
-              by a <cite>make</cite> run.</p>
-            <p>Commits also cause a mail message to be sent to list <a href="http://www.geocrawler.com/redir-sf.php3?list=xemacs-checkins">xemacs-checkins</a>@lists.sourceforge.net,
-              which is one of the <a href="http://sourceforge.net/mail/?group_id=11">mailing
-                lists</a> of the xemacs project.</p>
-            <hr>
-            <h2>Automatic <a name="AWV">Website</a> Validation</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>Who could better validate XEmacs documentation than the
-              master himself: XEmacs?</p>
-            <p>A small lisp module, <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/batch-psgml-validate.el?cvsroot=xemacs">xemacsweb/batch-psgml-validate.el</a>,
-              utilizes <cite>PSGML</cite> to validate buffers, files, or
-              directories, according to the DTD they contain.</p>
-            <hr>
-            <h2><a name="Maclwg">Maintaining</a> a consistent look with genpage</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>Whenever you think about changing <var>X</var>.html in
-              this site, please check whether <var>X</var>.content
-              exists as well.  <strong>In such a case, any changes you
-                make to X.html will be lost!</strong></p>
-            <p>See <strong><a href="#GfC">Guidelines for
-                  Contributors</a></strong> for more information about
-              creating and editing .content files.</p>
-            <p><a href="http://www.freddyfrog.com/hacks/genpage/">genpage</a>
-              is used to give a common look to HTML content in this site
-              by wrapping it into HTML templates.  Currently the only
-              template in use is <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/template.html?cvsroot=xemacs">xemacsweb/template.html</a>.
-              genpage is run by the <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/Makefile?cvsroot=xemacs">xemacsweb/Makefile</a>
-              according to the configuration defined in <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/genpage.conf?cvsroot=xemacs">xemacsweb/genpage.conf</a>.</p>
-            <p>You may run this Makefile in your local xemacsweb
-              working directory, provided you have
-              <strong>XEmacs</strong> (including the
-              <strong>PSGML</strong> package), <strong>perl5</strong>
-              and <strong>GNU make</strong> installed.  genpage itself
-              is found in xemacsweb/genpage/bin/genpage, but the
-              Makefile knows that.  On Windows NT you will also need to
-              install Cygwin for the Makefile to run.</p>
-            <p>We currently use genpage version 1.0.7, imported on a
-              vendor branch.  Local changes were necessary to make it
-              work for the XEmacs site, and to make it work on Windows
-              NT (see <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/genpage/ChangeLog?cvsroot=xemacs">xemacsweb/genpage/ChangeLog</a>
-              for details).  These will need to be reviewed when a <a href="http://www.freddyfrog.com/hacks/genpage/completenews.html">newer
-                version</a> of genpage ever gets imported.</p>
-            <hr>
-            <h2>Relative Links <a name="RLaMaOsT">allow</a> Mirroring and Off-site Testing</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>Considerable work has been done to make all links
-              <em>within</em> this website <em>relative</em>.  In
-              particular, all uses of <strong>&lt;base
-                href="..."&gt;</strong> were eliminated since they add
-              another twist.  Relative links become relative to the URL
-              specified by <strong>&lt;base href="..."&gt;</strong>, not
-              relative to the document they appear in.</p>
-            <p>Special consideration had to be given to <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/template.html?cvsroot=xemacs">xemacsweb/template.html</a>.
-              This genpage template is used to provide a consistent look
-              for the XEmacs site.  It wraps all HTML content of
-              .content files in the xemacsweb directory hierarchy.  Any
-              links template.html itself contains must be expanded
-              relative to the directory of the content file.  This has
-              been implemented by use of the <a href="../genpage/www/recipes/relPath.html">relPath</a>
-              genpage recipe.</p>
-            <hr>
-            <h2><a name="GfC">Guidelines</a> for Contributors</h2>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>These rules serve the purpose of <em>minimizing
-                work</em> and <em>accelerating the learning curve</em> for
-              contributors.</p>
-            <p>The goal is to provide a high-quality, consistent
-              website, showing off the power of XEmacs and its
-              contributors.</p>
-            <p>NB: Expect the rules to evolve as they get reviewed by
-              contributors.  These just came in handy while I moved the
-              content over from www.xemacs.org -- Adrian.</p>
-            <p>If you want to follow the discussions going on about
-              this website you should subscribe yourself to the
-              <strong>XEmacs Web Maintainers
-                &lt;xemacs-webmaint@xemacs.org&gt;</strong> list by
-              sending a request to <a href="mailto:xemacs-webmaint-request@xemacs.org">xemacs-webmaint-request@xemacs.org</a>
-              with the word <strong>subscribe</strong> being the body of
-              the message.  This mailing list isn't archived anywhere currently.</p>
-            <hr width="80%">
-            <h3><a name="Ccffnd">Create</a> .content files for new documentation</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>All new documents should be .content files to be
-              processed by genpage.  Just create the new file in
-              xemacsweb or any of its sub-directories and run
-              <strong>make all</strong> in the top-level directory
-              (xemacsweb).  This will generate a .html file by the
-              same name and validate it using XEmacs/PSGML.</p>
-            <p>Here is what a minimal .content file looks like:</p>
-            <table border="1">
-              <tbody>
-                <tr>
-                  <!-- one of (TD TH) -->
-                  <td>
-                    <pre>
-<!-- _GP_ qq{%title%} -->
+            <hr/>
+	      <h2>Automatic <a name="AWU" shape="rect">Website</a> Update</h2>
+	      <p><a href="#index" shape="rect">Goto</a> Index</p>
+	      <p>This is performed via the shared project account named
+		<strong>xemacs</strong>.  Its password can be found in
+		<samp>~xemacs/.ssh/secret</samp> after first logging in as
+		follows: <samp>ssh -l xemacs shell.sourceforge.net</samp>.
+		You may never need this account, unless you get involved
+		in improving the process or fixing breakage.</p>
+	      <p>A <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/CVSROOT/loginfo?cvsroot=xemacs" shape="rect">xemacsweb/loginfo</a>
+		entry for the xemacsweb module takes care of the automatic
+		update, which involves a <cite>cvs update</cite>, followed
+		by a <cite>make</cite> run.</p>
+	      <p>Commits also cause a mail message to be sent to list <a href="http://www.geocrawler.com/redir-sf.php3?list=xemacs-checkins" shape="rect">xemacs-checkins</a>@lists.sourceforge.net,
+		which is one of the <a href="http://sourceforge.net/mail/?group_id=11" shape="rect">mailing
+		  lists</a> of the xemacs project.</p>
+	      <hr/>
+		<h2>Automatic <a name="AWV" shape="rect">Website</a> Validation</h2>
+		<p><a href="#index" shape="rect">Goto</a> Index</p>
+		<p>Who could better validate XEmacs documentation than the
+		  master himself: XEmacs?</p>
+		<p>A small lisp module, <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/batch-psgml-validate.el?cvsroot=xemacs" shape="rect">xemacsweb/batch-psgml-validate.el</a>,
+		  utilizes <cite>PSGML</cite> to validate buffers, files, or
+		  directories, according to the DTD they contain.</p>
+		<hr/>
+		  <h2><a name="Maclwg" shape="rect">Maintaining</a> a consistent look with genpage</h2>
+		  <p><a href="#index" shape="rect">Goto</a> Index</p>
+		  <p>Whenever you think about changing <var>X</var>.html in
+		    this site, please check whether <var>X</var>.content
+		    exists as well.  <strong>In such a case, any changes you
+		      make to X.html will be lost!</strong></p>
+		  <p>See <strong><a href="#GfC" shape="rect">Guidelines for
+			Contributors</a></strong> for more information about
+		    creating and editing .content files.</p>
+		  <p><a href="http://www.freddyfrog.com/hacks/genpage/" shape="rect">genpage</a>
+		    is used to give a common look to HTML content in this site
+		    by wrapping it into HTML templates.  Currently the only
+		    template in use is <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/template.html?cvsroot=xemacs" shape="rect">xemacsweb/template.html</a>.
+		    genpage is run by the <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/Makefile?cvsroot=xemacs" shape="rect">xemacsweb/Makefile</a>
+		    according to the configuration defined in <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/genpage.conf?cvsroot=xemacs" shape="rect">xemacsweb/genpage.conf</a>.</p>
+		  <p>You may run this Makefile in your local xemacsweb
+		    working directory, provided you have
+		    <strong>XEmacs</strong> (including the
+		    <strong>PSGML</strong> package), <strong>perl5</strong>
+		    and <strong>GNU make</strong> installed.  genpage itself
+		    is found in xemacsweb/genpage/bin/genpage, but the
+		    Makefile knows that.  On Windows NT you will also need to
+		    install Cygwin for the Makefile to run.</p>
+		  <p>We currently use genpage version 1.0.7, imported on a
+		    vendor branch.  Local changes were necessary to make it
+		    work for the XEmacs site, and to make it work on Windows
+		    NT (see <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/genpage/ChangeLog?cvsroot=xemacs" shape="rect">xemacsweb/genpage/ChangeLog</a>
+		    for details).  These will need to be reviewed when a <a href="http://www.freddyfrog.com/hacks/genpage/completenews.html" shape="rect">newer
+		      version</a> of genpage ever gets imported.</p>
+		  <hr/>
+		    <h2>Relative Links <a name="RLaMaOsT" shape="rect">allow</a> Mirroring and Off-site Testing</h2>
+		    <p><a href="#index" shape="rect">Goto</a> Index</p>
+		    <p>Considerable work has been done to make all links
+		      <em>within</em> this website <em>relative</em>.  In
+		      particular, all uses of <strong>&lt;base
+			href="..."&gt;</strong> were eliminated since they add
+		      another twist.  Relative links become relative to the URL
+		      specified by <strong>&lt;base href="..."&gt;</strong>, not
+		      relative to the document they appear in.</p>
+		    <p>Special consideration had to be given to <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/template.html?cvsroot=xemacs" shape="rect">xemacsweb/template.html</a>.
+		      This genpage template is used to provide a consistent look
+		      for the XEmacs site.  It wraps all HTML content of
+		      .content files in the xemacsweb directory hierarchy.  Any
+		      links template.html itself contains must be expanded
+		      relative to the directory of the content file.  This has
+		      been implemented by use of the <a href="../genpage/www/recipes/relPath.html" shape="rect">relPath</a>
+		      genpage recipe.</p>
+		    <hr/>
+		      <h2><a name="GfC" shape="rect">Guidelines</a> for Contributors</h2>
+		      <p><a href="#index" shape="rect">Goto</a> Index</p>
+		      <p>These rules serve the purpose of <em>minimizing
+			  work</em> and <em>accelerating the learning curve</em> for
+			contributors.</p>
+		      <p>The goal is to provide a high-quality, consistent
+			website, showing off the power of XEmacs and its
+			contributors.</p>
+		      <p>NB: Expect the rules to evolve as they get reviewed by
+			contributors.  These just came in handy while I moved the
+			content over from www.xemacs.org -- Adrian.</p>
+		      <p>If you want to follow the discussions going on about
+			this website you should subscribe yourself to the
+			<strong>XEmacs Web Maintainers
+			  &lt;xemacs-webmaint@xemacs.org&gt;</strong> list by
+			sending a request to <a href="mailto:xemacs-webmaint-request@xemacs.org" shape="rect">xemacs-webmaint-request@xemacs.org</a>
+			with the word <strong>subscribe</strong> being the body of
+			the message.  This mailing list isn't archived anywhere currently.</p>
+		      <hr width="80%"/>
+			<h3><a name="Ccffnd" shape="rect">Create</a> .content files for new documentation</h3>
+			<p><a href="#index" shape="rect">Goto</a> Index</p>
+			<p>All new documents should be .content files to be
+			  processed by genpage.  Just create the new file in
+			  xemacsweb or any of its sub-directories and run
+			  <strong>make all</strong> in the top-level directory
+			  (xemacsweb).  This will generate a .html file by the
+			  same name and validate it using XEmacs/PSGML.</p>
+			<p>Here is what a minimal .content file looks like:</p>
+			<table border="1">
+			  <tbody>
+			    <tr>
+			      <!-- one of (TD TH) -->
+			      <td rowspan="1" colspan="1">
+				<pre xml:space="preserve">
+%title%
 Title of Your Document
-<!-- _GP_ qq{%author%} -->
+%author%
 Your Name
-<!-- _GP_ qq{%main%} -->
+%main%
 Any text including HTML tags.  This text will be embedded in the
 specified genpage template.  It is equivalent to the contents of the
 &lt;body&gt;...&lt;/body&gt; section of a corresponding HTML
 document.</pre>
-                  </td>
-                </tr>
-              </tbody>
-            </table>
-            <p>When you need to avoid substitution of <a href="../genpage/www/index.html#7">genpage content
-                tags</a> in .content files (like I did in the table
-              above) you may use following trick:</p>
-            <pre>
+			      </td>
+			    </tr>
+			  </tbody>
+			</table>
+			<p>When you need to avoid substitution of <a href="../genpage/www/index.html#7" shape="rect">genpage content
+			    tags</a> in .content files (like I did in the table
+			  above) you may use following trick:</p>
+			<pre xml:space="preserve">
 &lt;!-- _GP_ qq{%title%} --&gt;
-            </pre>
-            <p>
-              Above genpage command returns the string-quoted
-              genpage content tag as a string.</p>
-            <hr width="80%">
-            <h3><a name="Gcffehd">Generate</a> .content files from existing .html documents</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>Use <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/html2content.pl?cvsroot=xemacs">xemacsweb/html2content.pl</a>
-              to convert all .html files in a specified directory
-              (recursively) to .content files.  Existing .content
-              files will not be overwritten.</p>
-            <hr width="80%">
-            <h3>Edit .html <a name="Ehfambtcf">file</a> and merge back to .content file</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>This gives you the power of your favorite HTML
-              editor (you are not using notepad, are you?) and
-              changes can easily be merged to the .content file with
-              <cite>ediff</cite>.</p>
-            <hr width="80%">
-            <h3>Use <a name="UlcHt">lower</a>-case HTML tags</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>This is in preparation of a possible future
-              migration to <cite>XML</cite>.</p>
-            <hr width="80%">
-            <h3>Use relative links <a name="Urlwp">wherever</a> possible</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>This makes site mirroring a free gift and allows
-              developers to test intra-site links in their private
-              working directories off-site.</p>
-            <hr width="80%">
-            <h3>Use logical vs. physical <a name="Ulvpm">markup</a></h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>It is a HTML authoring commandment to prefer logical
-              markups like &lt;blockquote&gt;</p>
-            <blockquote>
-              blockquote</blockquote>&lt;/blockquote&gt;,
-            &lt;strong&gt;<strong>strong</strong>&lt;/strong&gt;,
-            &lt;cite&gt;<cite>cite</cite>&lt;/cite&gt;,
-            &lt;samp&gt;<samp>samp</samp>&lt;/samp&gt; over
-            physical markup like &lt;br&gt;<br> linebreak<br>
-            &lt;br&gt;, &lt;b&gt;<b>bold</b>&lt;/b&gt;,
-            &lt;i&gt;<i>italic</i>&lt;/i&gt;, or
-            &lt;tt&gt;<tt>teletype</tt>&lt;/tt&gt;.
-            <p>Use &lt;pre&gt;</p>
-            <pre>
+			</pre>
+			<p>
+			  Above genpage command returns the string-quoted
+			  genpage content tag as a string.</p>
+			<hr width="80%"/>
+			  <h3><a name="Gcffehd" shape="rect">Generate</a> .content files from existing .html documents</h3>
+			  <p><a href="#index" shape="rect">Goto</a> Index</p>
+			  <p>Use <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/html2content.pl?cvsroot=xemacs" shape="rect">xemacsweb/html2content.pl</a>
+			    to convert all .html files in a specified directory
+			    (recursively) to .content files.  Existing .content
+			    files will not be overwritten.</p>
+			  <hr width="80%"/>
+			    <h3>Edit .html <a name="Ehfambtcf" shape="rect">file</a> and merge back to .content file</h3>
+			    <p><a href="#index" shape="rect">Goto</a> Index</p>
+			    <p>This gives you the power of your favorite HTML
+			      editor (you are not using notepad, are you?) and
+			      changes can easily be merged to the .content file with
+			      <cite>ediff</cite>.</p>
+			    <hr width="80%"/>
+			      <h3>Use <a name="UlcHt" shape="rect">lower</a>-case HTML tags</h3>
+			      <p><a href="#index" shape="rect">Goto</a> Index</p>
+			      <p>This is in preparation of a possible future
+				migration to <cite>XML</cite>.</p>
+			      <hr width="80%"/>
+				<h3>Use relative links <a name="Urlwp" shape="rect">wherever</a> possible</h3>
+				<p><a href="#index" shape="rect">Goto</a> Index</p>
+				<p>This makes site mirroring a free gift and allows
+				  developers to test intra-site links in their private
+				  working directories off-site.</p>
+				<hr width="80%"/>
+				  <h3>Use logical vs. physical <a name="Ulvpm" shape="rect">markup</a></h3>
+				  <p><a href="#index" shape="rect">Goto</a> Index</p>
+				  <p>It is a HTML authoring commandment to prefer logical
+				    markups like &lt;blockquote&gt;</p>
+				  <blockquote>
+				    blockquote</blockquote>&lt;/blockquote&gt;,
+				  &lt;strong&gt;<strong>strong</strong>&lt;/strong&gt;,
+				  &lt;cite&gt;<cite>cite</cite>&lt;/cite&gt;,
+				  &lt;samp&gt;<samp>samp</samp>&lt;/samp&gt; over
+				  physical markup like &lt;br&gt;<br clear="none"/> linebreak<br clear="none"/>
+				      &lt;br&gt;, &lt;b&gt;<b>bold</b>&lt;/b&gt;,
+				      &lt;i&gt;<i>italic</i>&lt;/i&gt;, or
+				      &lt;tt&gt;<tt>teletype</tt>&lt;/tt&gt;.
+				      <p>Use &lt;pre&gt;</p>
+				      <pre xml:space="preserve">
 Retrieving newsgroup: nnml:xemacs-beta...
 Fetching headers for nnml:xemacs-beta...
 Fetching headers for nnml:xemacs-beta...done
 Generating summary...done
 Decoding base64...
 Decoding base64... done</pre>
-            &lt;/pre&gt; to include long runs of program output
-            like error message logs or backtraces.  Don't forget
-            to quote HTML special characters in such excerpts!  In
-            XEmacs this can be easily done with
-            <pre>M-x <strong>html-quote-region</strong></pre>
-            <hr width="80%">
-            <h3>Use qq{<a name="Uq{s}nsigc">string</a>}, not "string" in genpage commands</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>All genpage commands (as opposed to genpage content
-              tags) are embedded in HTML comments.  Whenever these
-              commands are embedded inside an HTML attribute,
-              embedded <cite>"</cite>s will produce an HTML
-              validation error.</p>
-            <p>Therefor, please use</p>
-            <pre>&lt;a href="&lt;!-- _GP_ relPath(<strong>qq{</strong>Develop/devTeam.html<strong>}</strong>) --&gt;"&gt;Who Wrote XEmacs?&lt;/a&gt;</pre>
-            <p>instead of</p>
-            <pre>&lt;a href="&lt;!-- _GP_ relPath("Develop/devTeam.html") --&gt;"&gt;Who Wrote XEmacs?&lt;/a&gt;</pre>
-            <hr width="80%">
-            <h3><a name="ARA">Adding</a> Release Announcements</h3>
-            <p><a href="#index">Goto</a> Index</p>
-            <p>
-              This step has been automated for the unstable XEmacs
-              development branch.  See function
-              <cite>release-mail-to-html</cite> in <a
-              href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/release-mail-to-html.el?cvsroot=xemacs">xemacsweb/release-mail-to-html.el</a>.
-              A new .content file can be auto-generated by running</p>
-            <pre>
+				      &lt;/pre&gt; to include long runs of program output
+				      like error message logs or backtraces.  Don't forget
+				      to quote HTML special characters in such excerpts!  In
+				      XEmacs this can be easily done with
+				      <pre xml:space="preserve">M-x <strong>html-quote-region</strong></pre>
+				      <hr width="80%"/>
+					<h3>Use qq{<a name="Uq{s}nsigc" shape="rect">string</a>}, not "string" in genpage commands</h3>
+					<p><a href="#index" shape="rect">Goto</a> Index</p>
+					<p>All genpage commands (as opposed to genpage content
+					  tags) are embedded in HTML comments.  Whenever these
+					  commands are embedded inside an HTML attribute,
+					  embedded <cite>"</cite>s will produce an HTML
+					  validation error.</p>
+					<p>Therefor, please use</p>
+					<pre xml:space="preserve">&lt;a href="&lt;!-- _GP_ relPath(<strong>qq{</strong>Develop/devTeam.html<strong>}</strong>) --&gt;"&gt;Who Wrote XEmacs?&lt;/a&gt;</pre>
+					<p>instead of</p>
+					<pre xml:space="preserve">&lt;a href="&lt;!-- _GP_ relPath("Develop/devTeam.html") --&gt;"&gt;Who Wrote XEmacs?&lt;/a&gt;</pre>
+					<hr width="80%"/>
+					  <h3><a name="ARA" shape="rect">Adding</a> Release Announcements</h3>
+					  <p><a href="#index" shape="rect">Goto</a> Index</p>
+					  <p>
+					    This step has been automated for the unstable XEmacs
+					    development branch.  See function
+					    <cite>release-mail-to-html</cite> in <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/xemacsweb/release-mail-to-html.el?cvsroot=xemacs" shape="rect">xemacsweb/release-mail-to-html.el</a>.
+					    A new .content file can be auto-generated by running</p>
+					  <pre xml:space="preserve">
 M-x <strong>release-mail-to-html</strong>
-            </pre>
-            <p>
-              Specify the name of the buffer containing a mail like this</p>
-            <table border="1">
-              <tbody>
-                <tr>
-                  <!-- one of (TD TH) -->
-                  <td>
-                    <pre>
+					  </pre>
+					  <p>
+					    Specify the name of the buffer containing a mail like this</p>
+					  <table border="1">
+					    <tbody>
+					      <tr>
+						<!-- one of (TD TH) -->
+						<td rowspan="1" colspan="1">
+						  <pre xml:space="preserve">
 <strong>From:</strong> XEmacs Release Engineer &lt;martin@xemacs.org&gt;
 <strong>Subject:</strong> XEmacs 21.2.36 is released.
 <strong>To:</strong> XEmacs Beta Test &lt;xemacs-beta@xemacs.org&gt;
 
 Brief summary of changes to 21.2.36 "Notus"
 ...
-		    </pre></td>
-                </tr>
-              </tbody>
-            </table>
-            <p>
-              from the <cite>XEmacs Release Engineer</cite>.</p>
-            <p>
-              Save the buffer (automatically named
-              <cite>release-number</cite>.content) in
-              xemacsweb/Releases.</p>
-            <p>
-              Add references to this new files in
-              xemacsweb/index.content and
-              xemacsweb/Releases/index.content.</p>
-            <p>
-              Add the newly created
-              xemacsweb/Releases/<cite>release-number</cite>.content
-              file to CVS and commit it together with the other
-              modified files.</p>
-            <hr>
-	    <p>This <a name="index">index</a> was generated by D:\Users\AichnerAd\pl\HTMLindex.pl -head</p>
-	    <ul>
-	      <li><a href="#">Goto</a> Top</li>
-	      <li>XEmacs <a href="#XWoS">Website</a> on Sourceforge</li>
-	      <li>XEmacs <a href="#XWCR">Website</a> CVS Repository</li>
-	      <li>Automatic <a href="#AWU">Website</a> Update</li>
-	      <li>Automatic <a href="#AWV">Website</a> Validation</li>
-	      <li><a href="#Maclwg">Maintaining</a> a consistent look with genpage</li>
-	      <li>Relative Links <a href="#RLaMaOsT">allow</a> Mirroring and Off-site Testing</li>
-	      <li><a href="#GfC">Guidelines</a> for Contributors</li>
-	      <li><a href="#Ccffnd">Create</a> .content files for new documentation</li>
-	      <li><a href="#Gcffehd">Generate</a> .content files from existing .html documents</li>
-	      <li>Edit .html <a href="#Ehfambtcf">file</a> and merge back to .content file</li>
-	      <li>Use <a href="#UlcHt">lower</a>-case HTML tags</li>
-	      <li>Use relative links <a href="#Urlwp">wherever</a> possible</li>
-	      <li>Use logical vs. physical <a href="#Ulvpm">markup</a></li>
-	      <li>Use qq{<a href="#Uq{s}nsigc">string</a>}, not "string" in genpage commands</li>
-	      <li><a href="#ARA">Adding</a> Release Announcements</li>
-	    </ul>
-	    <hr>
-            <address><a href="mailto: adrian@xemacs.org">Adrian</a> Aichner</address>
+						  </pre></td>
+					      </tr>
+					    </tbody>
+					  </table>
+					  <p>
+					    from the <cite>XEmacs Release Engineer</cite>.</p>
+					  <p>
+					    Save the buffer (automatically named
+					    <cite>release-number</cite>.content) in
+					    xemacsweb/Releases.</p>
+					  <p>
+					    Add references to this new files in
+					    xemacsweb/index.content and
+					    xemacsweb/Releases/index.content.</p>
+					  <p>
+					    Add the newly created
+					    xemacsweb/Releases/<cite>release-number</cite>.content
+					    file to CVS and commit it together with the other
+					    modified files.</p>
+					  <hr/>
+					    <p>This <a name="index" shape="rect">index</a> was generated by D:\Users\AichnerAd\pl\HTMLindex.pl -head</p>
+					    <ul>
+					      <li><a href="#" shape="rect">Goto</a> Top</li>
+					      <li>XEmacs <a href="#XWoS" shape="rect">Website</a> on Sourceforge</li>
+					      <li>XEmacs <a href="#XWCR" shape="rect">Website</a> CVS Repository</li>
+					      <li>Automatic <a href="#AWU" shape="rect">Website</a> Update</li>
+					      <li>Automatic <a href="#AWV" shape="rect">Website</a> Validation</li>
+					      <li><a href="#Maclwg" shape="rect">Maintaining</a> a consistent look with genpage</li>
+					      <li>Relative Links <a href="#RLaMaOsT" shape="rect">allow</a> Mirroring and Off-site Testing</li>
+					      <li><a href="#GfC" shape="rect">Guidelines</a> for Contributors</li>
+					      <li><a href="#Ccffnd" shape="rect">Create</a> .content files for new documentation</li>
+					      <li><a href="#Gcffehd" shape="rect">Generate</a> .content files from existing .html documents</li>
+					      <li>Edit .html <a href="#Ehfambtcf" shape="rect">file</a> and merge back to .content file</li>
+					      <li>Use <a href="#UlcHt" shape="rect">lower</a>-case HTML tags</li>
+					      <li>Use relative links <a href="#Urlwp" shape="rect">wherever</a> possible</li>
+					      <li>Use logical vs. physical <a href="#Ulvpm" shape="rect">markup</a></li>
+					      <li>Use qq{<a href="#Uq{s}nsigc" shape="rect">string</a>}, not "string" in genpage commands</li>
+					      <li><a href="#ARA" shape="rect">Adding</a> Release Announcements</li>
+					    </ul>
+					    <hr/>
+					      <address><a href="mailto: adrian@xemacs.org" shape="rect">Adrian</a> Aichner</address>

About/XEmacsVsGNUemacs.content

 %author%
 **YOUR NAME HERE
 %main%
-	<h1>XEmacs vs. GNU Emacs</h1>
+	  <h1>XEmacs vs. GNU Emacs</h1>
 
-	<p>There are currently irreconcilable differences in the views
-	about technical, programming, design and organizational
-	matters between RMS and the XEmacs development team which
-	provide little hope for a merge to take place in the
-	short-term future.
+	  <p>There are currently irreconcilable differences in the views
+	    about technical, programming, design and organizational
+	    matters between RMS and the XEmacs development team which
+	    provide little hope for a merge to take place in the
+	    short-term future.</p>
 
-	<p>If you have a comment to add regarding the merge, it is a
-	good idea to avoid posting to the newsgroups, because of the
-	very heated flamewars that often result.  Mail your questions
-	to 
-	<a href="mailto:xemacs-beta@xemacs.org">xemacs-beta@xemacs.org</a>
-	and
-	<a href="mailto:bug-gnu-emacs@prep.ai.mit.edu">bug-gnu-emacs@prep.ai.mit.edu</a>.
+	    <p>If you have a comment to add regarding the merge, it is a
+	      good idea to avoid posting to the newsgroups, because of the
+	      very heated flamewars that often result.  Mail your questions
+	      to 
+	      <a href="mailto:xemacs-beta@xemacs.org" shape="rect">xemacs-beta@xemacs.org</a>
+	      and
+	      <a href="mailto:bug-gnu-emacs@prep.ai.mit.edu" shape="rect">bug-gnu-emacs@prep.ai.mit.edu</a>.</p>
 
 
-	<h2>Difference between XEmacs and GNU Emacs 19, from the XEmacs Point of View</h2>
-	
-	<p>In XEmacs 20, characters are first-class objects.
-	Characters can be converted to integers, but are not integers.
-	FSF 19, XEmacs 19, and Mule represent them as integers.
+	      <h2>Difference between XEmacs and GNU Emacs 19, from the XEmacs Point of View</h2>
+	      
+	      <p>In XEmacs 20, characters are first-class objects.
+		Characters can be converted to integers, but are not integers.
+		FSF 19, XEmacs 19, and Mule represent them as integers.</p>
 
-	<p>In XEmacs, events are first-class objects.  FSF 19
-	represents them as integers, which obscures the differences
-	between a key gesture and the ancient ASCII code used to
-	represent a particular overlapping subset of them.
+		<p>In XEmacs, events are first-class objects.  FSF 19
+		  represents them as integers, which obscures the differences
+		  between a key gesture and the ancient ASCII code used to
+		  represent a particular overlapping subset of them.</p>
 
-	<p>In XEmacs, keymaps are first-class opaque objects.  FSF 19
-	represents them as complicated combinations of association
-	lists and vectors.  If you use the advertised functional
-	interface to manipulation of keymaps, the same code will work
-	in XEmacs, Emacs 18, and GNU Emacs 19; if your code depends on
-	the underlying implementation of keymaps, it will not.
+		  <p>In XEmacs, keymaps are first-class opaque objects.  FSF 19
+		    represents them as complicated combinations of association
+		    lists and vectors.  If you use the advertised functional
+		    interface to manipulation of keymaps, the same code will work
+		    in XEmacs, Emacs 18, and GNU Emacs 19; if your code depends on
+		    the underlying implementation of keymaps, it will not.</p>
 
-	<p>XEmacs uses "extents" to represent all non-textual aspects
-	of buffers; FSF 19 uses two distinct objects, "text
-	properties" and "overlays", which divide up the functionality
-	between them.  Extents are a superset of the functionality of
-	the two FSF data types.  The full FSF 19 interface to text
-	properties and overlays is supported in XEmacs (with extents
-	being the underlying representation).
+		    <p>XEmacs uses "extents" to represent all non-textual aspects
+		      of buffers; FSF 19 uses two distinct objects, "text
+		      properties" and "overlays", which divide up the functionality
+		      between them.  Extents are a superset of the functionality of
+		      the two FSF data types.  The full FSF 19 interface to text
+		      properties and overlays is supported in XEmacs (with extents
+		      being the underlying representation).</p>
 
-        <p>Extents can be made to be copied into strings, and thus
-        restored by kill and yank.  Thus, one can specify this
-        behavior on either "extents" or "text properties", whereas in
-        FSF 19 text properties always have this behavior and overlays
-        never do.
+		      <p>Extents can be made to be copied into strings, and thus
+			restored by kill and yank.  Thus, one can specify this
+			behavior on either "extents" or "text properties", whereas in
+			FSF 19 text properties always have this behavior and overlays
+			never do.</p>
 
-        <p>Many more packages are provided standard with XEmacs than
-        with FSF 19.
+			<p>Many more packages are provided standard with XEmacs than
+			  with FSF 19.</p>
 
-        <p>Images of arbitrary size can be embedded in a buffer.
+			  <p>Images of arbitrary size can be embedded in a buffer.</p>
 
-        <p>Variable width fonts work.
+			    <p>Variable width fonts work.</p>
 
-        <p>The height of a line is the height of the tallest font on
-        that line, instead of all lines having the same height.
+			      <p>The height of a line is the height of the tallest font on
+				that line, instead of all lines having the same height.</p>
 
-        <p>XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls,
-        which makes it be a more well-behaved X citizen (and also
-        improves portability).  A result of this is that it is
-        possible to include other Xt "Widgets" in the XEmacs window.
-        Also, XEmacs understands the standard Xt command-line
-        arguments.
+				<p>XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls,
+				  which makes it be a more well-behaved X citizen (and also
+				  improves portability).  A result of this is that it is
+				  possible to include other Xt "Widgets" in the XEmacs window.
+				  Also, XEmacs understands the standard Xt command-line
+				  arguments.</p>
 
-        <p>XEmacs provides support for ToolTalk on systems that have
-        it.
+				  <p>XEmacs provides support for ToolTalk on systems that have
+				    it.</p>
 
-        <p>XEmacs can ask questions using popup dialog boxes.  Any
-        command executed from a menu will ask yes/no questions with
-        dialog boxes, while commands executed via the keyboard will
-        use the minibuffer.
+				    <p>XEmacs can ask questions using popup dialog boxes.  Any
+				      command executed from a menu will ask yes/no questions with
+				      dialog boxes, while commands executed via the keyboard will
+				      use the minibuffer.</p>
 
-        <p>XEmacs has a built-in toolbar.  Four toolbars can actually
-        be configured: top, bottom, left, and right toolbars.
+				      <p>XEmacs has a built-in toolbar.  Four toolbars can actually
+					be configured: top, bottom, left, and right toolbars.</p>
 
-        <p>XEmacs has vertical and horizontal scrollbars.  Unlike in
-        FSF 19 (which provides a primitive form of vertical
-        scrollbar), these are true toolkit scrollbars.  A look-alike
-        Motif scrollbar is provided for those who don't have
-        Motif. (Even for those who do, the look-alike may be
-        preferable as it is faster.)
+					<p>XEmacs has vertical and horizontal scrollbars.  Unlike in
+					  FSF 19 (which provides a primitive form of vertical
+					  scrollbar), these are true toolkit scrollbars.  A look-alike
+					  Motif scrollbar is provided for those who don't have
+					  Motif. (Even for those who do, the look-alike may be
+					  preferable as it is faster.)</p>
 
-        <p>If you're running on a machine with audio hardware, you can
-        specify sound files for XEmacs to play instead of the default
-        X beep.  See the documentation of the function load-sound-file
-        and the variable sound-alist.
+					  <p>If you're running on a machine with audio hardware, you can
+					    specify sound files for XEmacs to play instead of the default
+					    X beep.  See the documentation of the function load-sound-file
+					    and the variable sound-alist.</p>
 
-        <p>An XEmacs frame can be placed within an "external client
-        widget" managed by another application.  This allows an
-        application to use an XEmacs frame as its text pane rather
-        than the standard Text widget that is provided with Motif or
-        Athena.  XEmacs supports Motif applications, generic Xt
-        (e.g. Athena) applications, and raw Xlib applications.
+					    <p>An XEmacs frame can be placed within an "external client
+					      widget" managed by another application.  This allows an
+					      application to use an XEmacs frame as its text pane rather
+					      than the standard Text widget that is provided with Motif or
+					      Athena.  XEmacs supports Motif applications, generic Xt
+					      (e.g. Athena) applications, and raw Xlib applications.</p>
 
- 
-        <h2>The FSF Point of View</h2>
+					      
+					      <h2>The FSF Point of View</h2>
 
-        <p><a href="mailto:rms@gnu.org">Richard Stallman</a> writes:</p>
+					      <p><a href="mailto:rms@gnu.org" shape="rect">Richard Stallman</a> writes:</p>
 
-        <blockquote>
+					      <blockquote>
 
-        <p>XEmacs is GNU software because it's a modified version of a
-        GNU program.  And it is GNU software because the FSF is the
-        copyright holder for most of it, and therefore the legal
-        responsibility for protecting its free status falls on us
-        whether we want it or not.  This is why the term "GNU XEmacs"
-        is legitimate.
+						<p>XEmacs is GNU software because it's a modified version of a
+						  GNU program.  And it is GNU software because the FSF is the
+						  copyright holder for most of it, and therefore the legal
+						  responsibility for protecting its free status falls on us
+						  whether we want it or not.  This is why the term "GNU XEmacs"
+						  is legitimate.</p>
 
-        <p>But in another sense it is not GNU software, because we
-        can't use XEmacs in the GNU system: using it would mean paying
-        a price in terms of our ability to enforce the GPL.  Some of
-        the people who have worked on XEmacs have not provided, and
-        have not asked other contributors to provide, the legal papers
-        to help us enforce the GPL.  I have managed to get legal
-        papers for some parts myself, but most of the XEmacs
-        developers have not helped me get them.
+						  <p>But in another sense it is not GNU software, because we
+						    can't use XEmacs in the GNU system: using it would mean paying
+						    a price in terms of our ability to enforce the GPL.  Some of
+						    the people who have worked on XEmacs have not provided, and
+						    have not asked other contributors to provide, the legal papers
+						    to help us enforce the GPL.  I have managed to get legal
+						    papers for some parts myself, but most of the XEmacs
+						    developers have not helped me get them.</p>
 
-        <p>
-XEmacs was possible because free software means that anyone can change
-it and distribute a modified version.  I have no regrets about
-establishing this freedom for Emacs.  Everyone should have the freedom
-to change any program, and this is not limited to changes that the
-original author likes.
+						    <p>
+						      XEmacs was possible because free software means that anyone can change
+						      it and distribute a modified version.  I have no regrets about
+						      establishing this freedom for Emacs.  Everyone should have the freedom
+						      to change any program, and this is not limited to changes that the
+						      original author likes.</p>
 
-        <p>Many people have taken advantage of the freedom to change
-        GNU Emacs, over the last decade.  Most of them were willing to
-        cooperate on integrating their changes into Emacs.  XEmacs
-        arose as a separate forked version because some of the
-        developers--starting with Zawinski--were unwilling to do that.
+						      <p>Many people have taken advantage of the freedom to change
+							GNU Emacs, over the last decade.  Most of them were willing to
+							cooperate on integrating their changes into Emacs.  XEmacs
+							arose as a separate forked version because some of the
+							developers--starting with Zawinski--were unwilling to do that.</p>
 
-        <p>People should have the freedom to decide what to work on,
-        including the freedom to compete with the GNU project, but
-        it's a shame when they make that choice.  The whole community
-        loses when someone chooses competition rather than
-        cooperation.
+							<p>People should have the freedom to decide what to work on,
+							  including the freedom to compete with the GNU project, but
+							  it's a shame when they make that choice.  The whole community
+							  loses when someone chooses competition rather than
+							  cooperation.</p>
 
-        <p>But this is worse than competition--it is unfair
-        competition.  The XEmacs developers can and do copy code they
-        like from Emacs.  If I could copy the code I like from XEmacs
-        in the same way, at least the rivalry would be fair.  But I
-        can't do that't, because substantial parts of XEmacs don't
-        have legal papers, or don't have known authors.
+							  <p>But this is worse than competition--it is unfair
+							    competition.  The XEmacs developers can and do copy code they
+							    like from Emacs.  If I could copy the code I like from XEmacs
+							    in the same way, at least the rivalry would be fair.  But I
+							    can't do that't, because substantial parts of XEmacs don't
+							    have legal papers, or don't have known authors.</p>
 
-        <p>As long as we cannot use XEmacs in the GNU system, the GNU
-        project has to make sure that Emacs is not left behind.  In
-        other words, we have to behave like rivals too, even though we
-        wish there were no rivalry.  When XEmacs developers try to
-        persuade people to use, test, fix and enhance XEmacs instead
-        of Emacs, the GNU project can't sit still; we need them to
-        use, test, fix and enhance Emacs instead.
+							    <p>As long as we cannot use XEmacs in the GNU system, the GNU
+							      project has to make sure that Emacs is not left behind.  In
+							      other words, we have to behave like rivals too, even though we
+							      wish there were no rivalry.  When XEmacs developers try to
+							      persuade people to use, test, fix and enhance XEmacs instead
+							      of Emacs, the GNU project can't sit still; we need them to
+							      use, test, fix and enhance Emacs instead.</p>
 
-        <p>There is good code in XEmacs, which I'd be happy to have in
-        a merged Emacs any day.  But I cannot copy it out of XEmacs
-        myself because of the uncertain authorship and/or lack of
-        legal papers.
+							      <p>There is good code in XEmacs, which I'd be happy to have in
+								a merged Emacs any day.  But I cannot copy it out of XEmacs
+								myself because of the uncertain authorship and/or lack of
+								legal papers.</p>
 
-        <p>This problem could probably be resolved, at least for large
-        parts of XEmacs, with substantial help from the authors of
-        that code.  Otherwise, the GNU project has to write or find
-        replacements for it.
+								<p>This problem could probably be resolved, at least for large
+								  parts of XEmacs, with substantial help from the authors of
+								  that code.  Otherwise, the GNU project has to write or find
+								  replacements for it.</p>
 
-        <p>I invite people who like Emacs, and want the best possible
-        version of Emacs to be available for use in the GNU system, to
-        help in one way or the other.
+								  <p>I invite people who like Emacs, and want the best possible
+								    version of Emacs to be available for use in the GNU system, to
+								    help in one way or the other.</p>
 
-        </blockquote>
+					      </blockquote>
 
-    <p><strong>Sources:</strong> <a href="http://www.xemacs.org/FAQ/">FAQ</a>
-    item 1.0.5, and XEmacs 21.0 NEWS file
+					      <p><strong>Sources:</strong> <a href="http://www.xemacs.org/FAQ/" shape="rect">FAQ</a>
+						item 1.0.5, and XEmacs 21.0 NEWS file</p>

About/created.content

 %author%
 jsja
 %main%
-            <h1>Created with XEmacs</h1>
-            <img src="../Images/cbx.jpg" alt="Created with XEmacs!" height="54" width="150">
-            <img src="../Images/cbxSmall.jpg" alt="Created with XEmacs!" height="36" width="100">
-            <p>Do you use XEmacs to build your websites? Would you like to
-              be listed as a <a href="./created.html#list">Created with XEmacs site</a>?
-              Just follow these steps:</p>
-            <ol type="1">
-              <li>Download the one of the above badges. Please don't link
-                directly to the images on xemacs.org!</li>
-              <li>Put the image on your site. Please link the image back
-                to this page if possible.</li>
-              <li>Send mail to <a href="mailto:webmaster@xemacs.org">webmaster@xemacs.org</a>
-                with the URL where the logo is displayed, and your site will
-                be added to <a href="./created.html#list">the list</a>.</li>
-            </ol>
-            <h1><a name="list">Sites that have been Created with XEmacs</a></h1>
-            <ul>
-              <li><a href="http://www.xemacs.org">Official XEmacs Website</a></li>
-              <li><a href="http://xemacs.sourceforge.net">New XEmacs Website Under Construction</a></li>
-              <li><a href="http://genehack.org">GeneHack</a></li>
-              <li><a href="http://www.interhack.net/">interhack</a></li>
-              <li><a href="http://theo.phys.sci.hiroshima-u.ac.jp/~sf/">
-                  http://theo.phys.sci.hiroshima-u.ac.jp/~sf/</a></li>
-              <li><a href="http://www.mindspring.com/~rafferty">Colin and Marleny Rafferty</a></li>
-              <li><a href="http://www.cad.polito.it/">Electronic CAD &amp; Reliability Group</a></li>
-              <li><a href="http://www.eccellente.com/index.shtml">Cafe Eccellente</a></li>
-              <li><a href="http://www.monadlug.org/">Monadnock Linux Users Group</a></li>
-              <li><a href="http://www.mcs.le.ac.uk/~rb39">R. J. Bruce</a></li>
-              <li><a href="http://www.tucson.ars.ag.gov/">U.S.D.A. Southwest Watershed Research Center</a></li>
-              <li><a href="http://elroy.anu.edu.au/~rado/">Rado Faletic's home page</a></li>
-              <li><a href="http://www.FallRiverOnline.com/rkba/">RKBA</a></li>
-              <li><a href="http://www.geocities.com/~hishikawa/">White Dragon Website</a></li>
-              <li><a href="http://www.clark.net/pub/ray/">Curtis Consulting</a></li>
-              <li><a href="http://www.lowbudgetscreamers.com/">www.lowbudgetscreamers.com</a></li>
-              <li><a href="http://wmserver.rect.ucv.ve/nestor/">La Esquina del Ping�ino (The Penguin's Place)</a></li>
-              <li><a href="http://www.kcte.org">Kentucky Council of Teachers of English</a></li>
-              <li><a href="http://www.Jochen-Kuepper.de">Jochen-K�pper</a></li>
-              <li><a href="http://rt-com.sourceforge.net">rt_com</a></li>
-              <li><a href="http://www.crosswinds.net/~suvrit">Survit's Home Page</a></li>
-              <li><a href="http://www.kloek-und-stroehle.de/">Autohaus Kl�k &amp; Str�hle GmbH</a></li>
-              <li><a href="http://users.ozlinx.com.au/~youngs_s/eicq/">eicq - An XEmacs ICQ Client</a></li>
-              <li><a href="http://valkyrie.aarg.net/">valkyrie.aarg.net</a></li>
-              <li><a href="http://www.pathcom.com/~ssahmed/">Salman Ahmed's home page</a></li>
-              <li><a href="http://www.monochromatic.net/">monochromatic dot net</a></li>
-              <li><a href="http://www.aarg.net/mason/">Erik's Masonic Journey</a></li>
-              <li><a href="http://juggle.sourceforge.net">Juggle Homepage</a></li>
-              <li><a href="http://www.sopos.org">Sozialistische Positionen</a></li>
-              <li><a href="http://www.offizin-verlag.de">Offizin-Verlag</a></li>
-              <li><a href="http://www.ph.tum.de/~msprange/">Michael Spranger - personal homepage</a></li>
-              <li><a href="http://www.katzbrown.com/">katzbrown.com</a></li>
-              <li><a href="http://website.lineone.net/~ajhoughton/">Alastair's Place</a></li>
-              <li><a href="http://dirac.ruc.dk/~gnalle/">Niels Langager Ellegaard</a></li>
-              <li><a href="http://www.astro.psu.edu/users/eschnett/index.html">Erik Schnetter's fan out</a></li>
-              <li><a href="http://xarch.tu-graz.ac.at/autocad/">xarch tu-graz / autocad</a></li>
-            </ul>
+	  <h1>Created with XEmacs</h1>
+	  <img src="../Images/cbx.jpg" alt="Created with XEmacs!" height="54" width="150"/>
+            <img src="../Images/cbxSmall.jpg" alt="Created with XEmacs!" height="36" width="100"/>
+	      <p>Do you use XEmacs to build your websites? Would you like to
+		be listed as a <a href="./created.html#list" shape="rect">Created with XEmacs site</a>?
+		Just follow these steps:</p>
+	      <ol type="1">
+		<li>Download the one of the above badges. Please don't link
+		  directly to the images on xemacs.org!</li>
+		<li>Put the image on your site. Please link the image back
+		  to this page if possible.</li>
+		<li>Send mail to <a href="mailto:webmaster@xemacs.org" shape="rect">webmaster@xemacs.org</a>
+		  with the URL where the logo is displayed, and your site will
+		  be added to <a href="./created.html#list" shape="rect">the list</a>.</li>
+	      </ol>
+	      <h1><a name="list" shape="rect">Sites that have been Created with XEmacs</a></h1>
+	      <ul>
+		<li><a href="http://www.xemacs.org" shape="rect">Official XEmacs Website</a></li>
+		<li><a href="http://xemacs.sourceforge.net" shape="rect">New XEmacs Website Under Construction</a></li>
+		<li><a href="http://genehack.org" shape="rect">GeneHack</a></li>
+		<li><a href="http://www.interhack.net/" shape="rect">interhack</a></li>
+		<li><a href="http://theo.phys.sci.hiroshima-u.ac.jp/~sf/" shape="rect">
+		    http://theo.phys.sci.hiroshima-u.ac.jp/~sf/</a></li>
+		<li><a href="http://www.mindspring.com/~rafferty" shape="rect">Colin and Marleny Rafferty</a></li>
+		<li><a href="http://www.cad.polito.it/" shape="rect">Electronic CAD &amp; Reliability Group</a></li>
+		<li><a href="http://www.eccellente.com/index.shtml" shape="rect">Cafe Eccellente</a></li>
+		<li><a href="http://www.monadlug.org/" shape="rect">Monadnock Linux Users Group</a></li>
+		<li><a href="http://www.mcs.le.ac.uk/~rb39" shape="rect">R. J. Bruce</a></li>
+		<li><a href="http://www.tucson.ars.ag.gov/" shape="rect">U.S.D.A. Southwest Watershed Research Center</a></li>
+		<li><a href="http://elroy.anu.edu.au/~rado/" shape="rect">Rado Faletic's home page</a></li>
+		<li><a href="http://www.FallRiverOnline.com/rkba/" shape="rect">RKBA</a></li>
+		<li><a href="http://www.geocities.com/~hishikawa/" shape="rect">White Dragon Website</a></li>
+		<li><a href="http://www.clark.net/pub/ray/" shape="rect">Curtis Consulting</a></li>
+		<li><a href="http://www.lowbudgetscreamers.com/" shape="rect">www.lowbudgetscreamers.com</a></li>
+		<li><a href="http://wmserver.rect.ucv.ve/nestor/" shape="rect">La Esquina del Ping�ino (The Penguin's Place)</a></li>
+		<li><a href="http://www.kcte.org" shape="rect">Kentucky Council of Teachers of English</a></li>
+		<li><a href="http://www.Jochen-Kuepper.de" shape="rect">Jochen-K�pper</a></li>
+		<li><a href="http://rt-com.sourceforge.net" shape="rect">rt_com</a></li>
+		<li><a href="http://www.crosswinds.net/~suvrit" shape="rect">Survit's Home Page</a></li>
+		<li><a href="http://www.kloek-und-stroehle.de/" shape="rect">Autohaus Kl�k &amp; Str�hle GmbH</a></li>
+		<li><a href="http://users.ozlinx.com.au/~youngs_s/eicq/" shape="rect">eicq - An XEmacs ICQ Client</a></li>
+		<li><a href="http://valkyrie.aarg.net/" shape="rect">valkyrie.aarg.net</a></li>
+		<li><a href="http://www.pathcom.com/~ssahmed/" shape="rect">Salman Ahmed's home page</a></li>
+		<li><a href="http://www.monochromatic.net/" shape="rect">monochromatic dot net</a></li>
+		<li><a href="http://www.aarg.net/mason/" shape="rect">Erik's Masonic Journey</a></li>
+		<li><a href="http://juggle.sourceforge.net" shape="rect">Juggle Homepage</a></li>
+		<li><a href="http://www.sopos.org" shape="rect">Sozialistische Positionen</a></li>
+		<li><a href="http://www.offizin-verlag.de" shape="rect">Offizin-Verlag</a></li>
+		<li><a href="http://www.ph.tum.de/~msprange/" shape="rect">Michael Spranger - personal homepage</a></li>
+		<li><a href="http://www.katzbrown.com/" shape="rect">katzbrown.com</a></li>
+		<li><a href="http://website.lineone.net/~ajhoughton/" shape="rect">Alastair's Place</a></li>
+		<li><a href="http://dirac.ruc.dk/~gnalle/" shape="rect">Niels Langager Ellegaard</a></li>
+		<li><a href="http://www.astro.psu.edu/users/eschnett/index.html" shape="rect">Erik Schnetter's fan out</a></li>
+		<li><a href="http://xarch.tu-graz.ac.at/autocad/" shape="rect">xarch tu-graz / autocad</a></li>
+	      </ul>

About/index.content

 %author%
 john s jacobs anderson, stealing content from the FAQ
 %main%
-	<h1>The History of XEmacs</h1>
+	  <h1>The History of XEmacs</h1>
 
-	<p>An alternative to GNU Emacs, XEmacs was originally based on
-	an early alpha version of FSF's version 19, and has diverged
-	quite a bit since then. XEmacs was known as Lucid Emacs
-	through version 19.10. Almost all features of GNU Emacs are
-	supported in XEmacs.  The maintainers of XEmacs actively track
-	changes to GNU Emacs while also working to add new features.
+	  <p>An alternative to GNU Emacs, XEmacs was originally based on
+	    an early alpha version of FSF's version 19, and has diverged
+	    quite a bit since then. XEmacs was known as Lucid Emacs
+	    through version 19.10. Almost all features of GNU Emacs are
+	    supported in XEmacs.  The maintainers of XEmacs actively track
+	    changes to GNU Emacs while also working to add new features.</p>
 
-	<p>More information about the current and past developers of
-	XEmacs, as well as some information about the history of
-	XEmacs development is available within XEmacs by selecting
-	<strong>'About XEmacs...' </strong> from the
-	<strong>Help</strong> menu. Detailed information is available
-	in the <a>NEWS files</a> from each release.
-	
+	    <p>More information about the current and past developers of
+	      XEmacs, as well as some information about the history of
+	      XEmacs development is available within XEmacs by selecting
+	      <strong>'About XEmacs...' </strong> from the
+	      <strong>Help</strong> menu. Detailed information is available
+	      in the <a shape="rect">NEWS files</a> from each release.</p>
+	      
 
-	<p><strong>Source:</strong> <a href="../FAQ/">FAQ</a> item 1.0.1
+	      <p><strong>Source:</strong> <a href="../FAQ/" shape="rect">FAQ</a> item 1.0.1</p>

Architecting-XEmacs/ChangeLog

+2000-10-15  Adrian Aichner  <adrian@xemacs.org>
+
+	* I18N.content: Convert to conform with XHTML Transitional DTD.
+	* color-list.content: Ditto
+	* compat-package.content: Ditto
+	* custom.content: Ditto
+	* dialog-boxes.content: Ditto
+	* dot-xemacs.content: Ditto
+	* drag-n-drop.content: Ditto
+	* dynamic-modules.content: Ditto
+	* elisp-structures.content: Ditto
+	* enabling-extensions.content: Ditto
+	* encourage.content: Ditto
+	* extent.content: Ditto
+	* faster-elisp.content: Ditto
+	* init-files.content: Ditto
+	* intro.content: Ditto
+	* keybinding-schemes.content: Ditto
+	* keyboard-actions.content: Ditto
+	* lisp-engine-replacement.content: Ditto
+	* lisp-engine.content: Ditto
+	* lisp-interface.content: Ditto
+	* long-term-I18N.content: Ditto
+	* mail-home.content: Ditto
+	* misc-user-event.content: Ditto
+	* mule-plan.content: Ditto
+	* package-changes.content: Ditto
+	* packages.content: Ditto
+	* pointer.content: Ditto
+	* profiling.content: Ditto
+	* proto.content: Ditto
+	* redisplay.content: Ditto
+	* senstive-callbacks.content: Ditto
+	* showstoppers.content: Ditto
+	* symbol-value-handlers.content: Ditto
+	* toolbar-customization.content: Ditto
+	* translation-macros.content: Ditto
+	* unexec.content: Ditto
+	* version-number.content: Ditto
+	* website.content: Ditto
+	* windows-I18N.content: Ditto
+	* windows-install.content: Ditto
+	* windows-key-bindings.content: Ditto
+	* windows-ole.content: Ditto
+	* windows-printing.content: Ditto
+	* xemacs-intro.content: Ditto
+	* xemacs-short-intro.content: Ditto
+	* xemacs-tour.content: Ditto
+
 2000-08-18  Adrian Aichner  <aichner@ecf.teradyne.com>
 
 	* I18N.content: Remove empty lines in genpage content tags to

Architecting-XEmacs/I18N.content

 %author%
 Ben Wing
 %main%
-<H1 align="CENTER">International Support Improvement</H1>
+            <h1>International Support Improvement</h1>
 
-<P>This page doesn't exist yet.</P>
+<p>This page doesn't exist yet.</p>
 
 
-<HR> <ADDRESS><A HREF="http://www.666.com/ben/">Ben Wing</A></ADDRESS>
+<hr> <address><a>Ben Wing</a></address></hr>
 

Architecting-XEmacs/color-list.content

 Ben Wing
 
 %main%
+	  <center><h1>Abstracted Color List Interface</h1></center>
 
-            <center><h1>Abstracted Color List Interface</h1></center>
+	  <p><strong>Owner:</strong>  ???</p>
+	  <p><strong>Effort:</strong> ???</p>
+	  <p><strong>Dependencies:</strong> ???</p>
 
-            <p><strong>Owner:</strong>  ???</p>
-            <p><strong>Effort:</strong> ???</p>
-            <p><strong>Dependencies:</strong> ???</p>
+	  <p><strong>Abstract:</strong> ???</p>
 
-            <p><strong>Abstract:</strong> ???</p>
-
-            <p>This change is quite straightforward to implement.  We
+	  <p>This change is quite straightforward to implement.  We
             simply create a function called
             <code>device-color-list</code>, which takes a device as
             its argument and returns the list currently returned by
             <code>x-color-list</code>, and
             <code>mswindows-color-list</code>.</p>
 
-            <hr><address><a href="http://www.666.com/ben/">Ben Wing</a></address>
-
+	  <hr/><address><a href="http://www.666.com/ben/" shape="rect">Ben Wing</a></address>

Architecting-XEmacs/compat-package.content

 %author%
 Ben Wing
 %main%
-<h1 align="center">Elisp Compatibility Package</h1>
+	  <h1 align="center">Elisp Compatibility Package</h1>
 
-            <p><strong>Owner:</strong>  ???</p>
-            <p><strong>Effort:</strong> ???</p>
-            <p><strong>Dependencies:</strong> ???</p>
-            <p><strong>Abstract:</strong> ???</p>
+	  <p><strong>Owner:</strong>  ???</p>
+	  <p><strong>Effort:</strong> ???</p>
+	  <p><strong>Dependencies:</strong> ???</p>
+	  <p><strong>Abstract:</strong> ???</p>
 
-<p>A while ago I created a package called Sysdep, which aimed to be a
-forward compatibility package for Elisp.  The idea was that instead of
-having to write your package using the oldest version of Emacs that
-you wanted to support, you could use the newest XEmacs API, and then
-simply load the Sysdep package, which would automatically define the
-new API in terms of older APIs as necessary.  The idea of this package
-was good, but its design wasn't perfect, and it wasn't widely adopted.
-I propose a new package called Compat that corrects the design flaws
-in Sysdep, and hopefully will be adopted by most of the major
-packages.</p>
+	  <p>A while ago I created a package called Sysdep, which aimed to be a
+	    forward compatibility package for Elisp.  The idea was that instead of
+	    having to write your package using the oldest version of Emacs that
+	    you wanted to support, you could use the newest XEmacs API, and then
+	    simply load the Sysdep package, which would automatically define the
+	    new API in terms of older APIs as necessary.  The idea of this package
+	    was good, but its design wasn't perfect, and it wasn't widely adopted.
+	    I propose a new package called Compat that corrects the design flaws
+	    in Sysdep, and hopefully will be adopted by most of the major
+	    packages.</p>
 
-<p>In addition, this package will provide macros that can be used to
-bracket code as necessary to disable byte compiler warnings generated
-as a result of supporting the APIs of different versions of Emacs; or
-rather the Compat package strives to provide useful constructs to make
-doing this support easier, and these constructs have the side effect
-of not causing spurious byte compiler warnings.  The idea here is that
-it should be possible to create well-written, clean, and
-understandable Elisp that supports both older and newer APIs, and has
-no byte compiler warnings.  Currently many warnings are unavoidable,
-and as a result, they are simply ignored, which also causes a lot of
-legitimate warnings to be ignored.</p>
+	  <p>In addition, this package will provide macros that can be used to
+	    bracket code as necessary to disable byte compiler warnings generated
+	    as a result of supporting the APIs of different versions of Emacs; or
+	    rather the Compat package strives to provide useful constructs to make
+	    doing this support easier, and these constructs have the side effect
+	    of not causing spurious byte compiler warnings.  The idea here is that
+	    it should be possible to create well-written, clean, and
+	    understandable Elisp that supports both older and newer APIs, and has
+	    no byte compiler warnings.  Currently many warnings are unavoidable,
+	    and as a result, they are simply ignored, which also causes a lot of
+	    legitimate warnings to be ignored.</p>
 
-<p>The approach taken by the Sysdep package to make sure that the
-newest API was always supported was fairly simple: when the Sysdep
-package was loaded, it checked for the existence of new API functions,
-and if they weren't defined, it defined them in terms of older API
-functions that were defined.  This had the advantage that the checks
-for which API functions were defined were done only once at load time
-rather than each time the function was called.  However, the fact that
-the new APIs were globally defined caused a lot of problems with
-unwanted interactions, both with other versions of the Sysdep package
-provided as part of other packages, and simply with compatibility code
-of other sorts in packages that would determine whether an API existed
-by checking for the existence of certain functions within that API.
-In addition, the Sysdep package did not scale well because it defined
-all of the functions that it supported, regardless of whether or not
-they were used.</p>
+	  <p>The approach taken by the Sysdep package to make sure that the
+	    newest API was always supported was fairly simple: when the Sysdep
+	    package was loaded, it checked for the existence of new API functions,
+	    and if they weren't defined, it defined them in terms of older API
+	    functions that were defined.  This had the advantage that the checks
+	    for which API functions were defined were done only once at load time
+	    rather than each time the function was called.  However, the fact that
+	    the new APIs were globally defined caused a lot of problems with
+	    unwanted interactions, both with other versions of the Sysdep package
+	    provided as part of other packages, and simply with compatibility code
+	    of other sorts in packages that would determine whether an API existed
+	    by checking for the existence of certain functions within that API.
+	    In addition, the Sysdep package did not scale well because it defined
+	    all of the functions that it supported, regardless of whether or not
+	    they were used.</p>
 
-<p>The Compat package remedies the first problem by ensuring that the
-new APIs are defined only within the lexical scope of the packages
-that actually make use of the Compat package.  It remedies the second
-problem by ensuring that only definitions of functions that are
-actually used are loaded.  This all works roughly according to the
-following scheme:</p>
+	  <p>The Compat package remedies the first problem by ensuring that the
+	    new APIs are defined only within the lexical scope of the packages
+	    that actually make use of the Compat package.  It remedies the second
+	    problem by ensuring that only definitions of functions that are
+	    actually used are loaded.  This all works roughly according to the
+	    following scheme:</p>
 
-<ol>
+	  <ol>
 
-<li><p>Part of the Compat package is a module called the Compat
-generator.  This module is actually run as an additional step during
-byte compilation of a package that uses Compat.  This can happen
-either through the makefile or through the use of an
-<code>eval-when-compile</code> call within the package code itself.
-What the generator does is scan all of the Lisp code in the package,
-determine which function calls are made that the Compat package knows
-about, and generates custom <code>compat</code> code that
-conditionally defines just these functions when the package is loaded.
-The custom <code>compat</code> code can either be written to a
-separate Lisp file (for use with multi-file packages), or inserted
-into the beginning of the Lisp file of a single file package.  (In the
-latter case, the package indicates where this generated code should go
-through the use of magic comments that mark the beginning and end of
-the section.  Some will say that doing this trick is bad juju, but I
-have done this sort of thing before, and it works very well in
-practice).</p></li>
+	    <li><p>Part of the Compat package is a module called the Compat
+		generator.  This module is actually run as an additional step during
+		byte compilation of a package that uses Compat.  This can happen
+		either through the makefile or through the use of an
+		<code>eval-when-compile</code> call within the package code itself.
+		What the generator does is scan all of the Lisp code in the package,
+		determine which function calls are made that the Compat package knows
+		about, and generates custom <code>compat</code> code that
+		conditionally defines just these functions when the package is loaded.
+		The custom <code>compat</code> code can either be written to a
+		separate Lisp file (for use with multi-file packages), or inserted
+		into the beginning of the Lisp file of a single file package.  (In the
+		latter case, the package indicates where this generated code should go
+		through the use of magic comments that mark the beginning and end of
+		the section.  Some will say that doing this trick is bad juju, but I
+		have done this sort of thing before, and it works very well in
+		practice).</p></li>
 
-<li><p>The functions in the custom <code>compat</code> code have their
-names prefixed with both the name of the package and the word
-<code>compat</code>, ensuring that there will be no name space
-conflicts with other functions in the same package, or with other
-packages that make use of the Compat package.</p></li>
+	    <li><p>The functions in the custom <code>compat</code> code have their
+		names prefixed with both the name of the package and the word
+		<code>compat</code>, ensuring that there will be no name space
+		conflicts with other functions in the same package, or with other
+		packages that make use of the Compat package.</p></li>
 
-<li><p>The actual definitions of the functions in the custom
-<code>compat</code> code are determined at run time.  When the
-equivalent API already exists, the wrapper functions are simply
-defined directly in terms of the actual functions, so that the only
-run time overhead from using the Compat package is one additional
-function call.  (Alternatively, even this small overhead could be
-avoided by retrieving the definitions of the actual functions and
-supplying them as the definitions of the wrapper functions.  However,
-this appears to me to not be completely safe.  For example, it might
-have bad interactions with the advice package).</p></li>
+	    <li><p>The actual definitions of the functions in the custom
+		<code>compat</code> code are determined at run time.  When the
+		equivalent API already exists, the wrapper functions are simply
+		defined directly in terms of the actual functions, so that the only
+		run time overhead from using the Compat package is one additional
+		function call.  (Alternatively, even this small overhead could be
+		avoided by retrieving the definitions of the actual functions and
+		supplying them as the definitions of the wrapper functions.  However,
+		this appears to me to not be completely safe.  For example, it might
+		have bad interactions with the advice package).</p></li>
 
-<li><p>The code that wants to make use of the custom
-<code>compat</code> code is bracketed by a call to the construct
-<code>compat-execute</code>.  What this actually does is lexically
-bind all of the function names that are being redefined with macro
-functions by using the Common Lisp macro macrolet.  (The definition of
-this macro is in the CL package, but in order for things to work on
-all platforms, the definition of this macro will presumably have to be
-copied and inserted into the custom <code>compat</code> code).</p></li>
+	    <li><p>The code that wants to make use of the custom
+		<code>compat</code> code is bracketed by a call to the construct
+		<code>compat-execute</code>.  What this actually does is lexically
+		bind all of the function names that are being redefined with macro
+		functions by using the Common Lisp macro macrolet.  (The definition of
+		this macro is in the CL package, but in order for things to work on
+		all platforms, the definition of this macro will presumably have to be
+		copied and inserted into the custom <code>compat</code> code).</p></li>
 
-</ol>
+	  </ol>
 
-<p>In addition, the Compat package should define the macro
-<code>compat-if-fboundp</code>.  Similar macros such as
-<code>compile-when-fboundp</code> and
-<code>compile-case-fboundp</code> could be defined using similar
-principles).  The <code>compat-if-fboundp</code> macro behaves just
-like an <code>(if (fboundp ...) ...)</code> clause when executed, but
-in addition, when it's compiled, it ensures that the code inside the
-<code>if-true</code> sub-block will not cause any byte compiler
-warnings about the function in question being unbound.  I think that
-the way to implement this would be to make
-<code>compat-if-fboundp</code> be a macro that does what it's supposed
-to do, but which defines its own byte code handler, which ensures that
-the particular warning in question will be suppressed.  (Actually
-ensuring that just the warning in question is suppressed, and not any
-others, might be rather tricky.  It certainly requires further
-thought).</p>
+	  <p>In addition, the Compat package should define the macro
+	    <code>compat-if-fboundp</code>.  Similar macros such as
+	    <code>compile-when-fboundp</code> and
+	    <code>compile-case-fboundp</code> could be defined using similar
+	    principles).  The <code>compat-if-fboundp</code> macro behaves just
+	    like an <code>(if (fboundp ...) ...)</code> clause when executed, but
+	    in addition, when it's compiled, it ensures that the code inside the
+	    <code>if-true</code> sub-block will not cause any byte compiler
+	    warnings about the function in question being unbound.  I think that
+	    the way to implement this would be to make
+	    <code>compat-if-fboundp</code> be a macro that does what it's supposed
+	    to do, but which defines its own byte code handler, which ensures that
+	    the particular warning in question will be suppressed.  (Actually
+	    ensuring that just the warning in question is suppressed, and not any
+	    others, might be rather tricky.  It certainly requires further
+	    thought).</p>
 
-<p>Note: An alternative way of avoiding both warnings about unbound
-functions and warnings about obsolete functions is to just call the
-function in question by using <code>funcall</code>, instead of calling
-the function directly.  This seems rather inelegant to me, though,
-and doesn't make it obvious why the function is being called in such a
-roundabout manner.  Perhaps the Compat package should also provide a
-macro <code>compat-funcall</code>, which works exactly like
-<code>funcall</code>, but which indicates to anyone reading the code
-why the code is expressed in such a fashion.</p>
+	  <p>Note: An alternative way of avoiding both warnings about unbound
+	    functions and warnings about obsolete functions is to just call the
+	    function in question by using <code>funcall</code>, instead of calling
+	    the function directly.  This seems rather inelegant to me, though,
+	    and doesn't make it obvious why the function is being called in such a
+	    roundabout manner.  Perhaps the Compat package should also provide a
+	    macro <code>compat-funcall</code>, which works exactly like
+	    <code>funcall</code>, but which indicates to anyone reading the code
+	    why the code is expressed in such a fashion.</p>
 
-<p>If you're wondering how to implement the part of the Compat
-generator where it scans Lisp code to find function calls for
-functions that it wants to do something about, I think the best way is
-to simply process the code using the Lisp function <code>read</code>
-and recursively descend any lists looking for function names as the
-first element of any list encountered.  This might extract out a few
-more functions than are actually called, but it is almost certainly
-safer than doing anything trickier like byte compiling the code, and
-attempting to look for function calls in the result.  (It could also
-be argued that the names of the functions should be extracted, not
-only from the first element of lists, but anywhere <code>symbol</code>
-occurs.  For example, to catch places where a function is called using
-<code>funcall</code> or <code>apply</code>.  However, such uses of
-functions would not be affected by the surrounding macrolet call, and
-so there doesn't appear to be any point in extracting them).</p>
+	  <p>If you're wondering how to implement the part of the Compat
+	    generator where it scans Lisp code to find function calls for
+	    functions that it wants to do something about, I think the best way is
+	    to simply process the code using the Lisp function <code>read</code>
+	    and recursively descend any lists looking for function names as the
+	    first element of any list encountered.  This might extract out a few
+	    more functions than are actually called, but it is almost certainly
+	    safer than doing anything trickier like byte compiling the code, and
+	    attempting to look for function calls in the result.  (It could also
+	    be argued that the names of the functions should be extracted, not
+	    only from the first element of lists, but anywhere <code>symbol</code>
+	    occurs.  For example, to catch places where a function is called using
+	    <code>funcall</code> or <code>apply</code>.  However, such uses of
+	    functions would not be affected by the surrounding macrolet call, and
+	    so there doesn't appear to be any point in extracting them).</p>
 
-<hr> <address><a href="http://www.666.com/ben/">Ben Wing</a></address>
+	  <hr/> <address><a href="http://www.666.com/ben/" shape="rect">Ben Wing</a></address>

Architecting-XEmacs/custom.content

 %author%
 Ben Wing
 %main%
+	  <h1 align="center">Custom Review</h1>
 
-<h1 align="center">Custom Review</h1>
+	  <p>This page doesn't exist yet.</p>
 
-<p>This page doesn't exist yet.</p>
 
-
-<HR> <address><a href="http://www.666.com/ben/">Ben Wing</a></address>
-
+	  <hr> <address><a href="http://www.666.com/ben/" shape="rect">Ben Wing</a></address></hr>

Architecting-XEmacs/dialog-boxes.content

 %author%
 Ben Wing
 %main%
-            <h1 align="center">Dialog Boxes</h1>
+	  <h1 align="center">Dialog Boxes</h1>
 
-            <p><strong>Owner:</strong> ???</p>
-            <p><strong>Effort:</strong> ???</p>
-            <p><strong>Dependencies:</strong> ???</p>
+	  <p><strong>Owner:</strong> ???</p>
+	  <p><strong>Effort:</strong> ???</p>
+	  <p><strong>Dependencies:</strong> ???</p>
 
-            <ol>
+	  <ol>
 
-              <li><p>The primary interface to creating dialog boxes should be a
-                  function something like <code>popup-dialog-box</code> that takes a
-                  tree that specifies the layout of the components and call-back
-                  functions and properties and such.  What I mean by <em>tree</em> is a
-                  list of components, along with some layout properties, and the
-                  components can in turn recursively be lists of components and so on.</p></li>
+	    <li><p>The primary interface to creating dialog boxes should be a
+		function something like <code>popup-dialog-box</code> that takes a
+		tree that specifies the layout of the components and call-back
+		functions and properties and such.  What I mean by <em>tree</em> is a
+		list of components, along with some layout properties, and the
+		components can in turn recursively be lists of components and so on.</p></li>
 
-              <li><p>The layout mechanism needs to be general, similar to the way
-                  things are done under X and under the Java AWT toolkit, not hard-coded
-                  to specific positions like under Windows.</p></li>
+	    <li><p>The layout mechanism needs to be general, similar to the way
+		things are done under X and under the Java AWT toolkit, not hard-coded
+		to specific positions like under Windows.</p></li>
 
-              <li><p>The layout mechanism should involve <em>layout managers,</em>
-                  which are functions that determine how components are to be laid out.
-                  I think it's possible to do this in a way that's sensible and not
-                  overly complicated but still works well, unlike the unwieldy and
-                  incomprehensible geometry management process in Xt.</p></li>
+	    <li><p>The layout mechanism should involve <em>layout managers,</em>
+		which are functions that determine how components are to be laid out.
+		I think it's possible to do this in a way that's sensible and not
+		overly complicated but still works well, unlike the unwieldy and
+		incomprehensible geometry management process in Xt.</p></li>
 
-              <li><p>We expose the current hard-coded layout mechanism in the redisplay
-                  engine as simply one layout manager that lays out its components in
-                  the expected fashion.  Dialog boxes simply contain other layout
-                  managers laying things out in a different fashion.  This way regular
-                  frames and dialog boxes are conceptually integrated.</p></li>
+	    <li><p>We expose the current hard-coded layout mechanism in the redisplay
+		engine as simply one layout manager that lays out its components in
+		the expected fashion.  Dialog boxes simply contain other layout
+		managers laying things out in a different fashion.  This way regular
+		frames and dialog boxes are conceptually integrated.</p></li>
 
-              <li><p>The standard user interface elements of a frame are translated
-                  into components, which include a toolbar component, a scrollbar
-                  component, a menubar component, and an Emacs text area component,
-                  which includes a bare text area with a modeline optionally below it.
-                  Other components include buttons, list boxes, check boxes, radio
-                  boxes, grouping boxes, sliders, etc.</p></li>
+	    <li><p>The standard user interface elements of a frame are translated
+		into components, which include a toolbar component, a scrollbar
+		component, a menubar component, and an Emacs text area component,
+		which includes a bare text area with a modeline optionally below it.
+		Other components include buttons, list boxes, check boxes, radio
+		boxes, grouping boxes, sliders, etc.</p></li>
 
-              <li><p>We should use the standard window-system-provided components
-                  for simple elements such as buttons, check boxes, etc. as much as
-                  possible.  We should do the layout in a way that's compatible with the
-                  window system, which usually means using actual Windows controls or
-                  Xt/Motif widgets for many of the components.  I think it would be a
-                  grave mistake to attempt to do all this simply by drawing things into
-                  a buffer as some have suggested for these reasons:</p>
+	    <li><p>We should use the standard window-system-provided components
+		for simple elements such as buttons, check boxes, etc. as much as
+		possible.  We should do the layout in a way that's compatible with the
+		window system, which usually means using actual Windows controls or
+		Xt/Motif widgets for many of the components.  I think it would be a
+		grave mistake to attempt to do all this simply by drawing things into
+		a buffer as some have suggested for these reasons:</p>
 
-                <ul>
+	      <ul>
 
-                  <li><p>It would be extremely difficult to modify the existing
-                      redisplay mechanism to allow for many of the added features that we
-                      want.</p></li>
+		<li><p>It would be extremely difficult to modify the existing
+		    redisplay mechanism to allow for many of the added features that we
+		    want.</p></li>
 
-                  <li><p>It would never look as good as what could be done more simply
-                      with standard components and would certainly not look like what the
-                      user expects it to look like given other applications on the same
-                      window system.</p></li>
+		<li><p>It would never look as good as what could be done more simply
+		    with standard components and would certainly not look like what the
+		    user expects it to look like given other applications on the same
+		    window system.</p></li>
 
-                  <li><p>It would seriously distort the current redisplay model to
-                      implement even a fraction of the things (for example, grouping
-                      components, which draw a box around their subcomponents) that could be
-                      done much more simply by creating a new layout mechanism and subsuming
-                      the existing layout of windows, buffers, toolbars and such into this
-                      mechanism.  If we do this, then we keep the mechanism for drawing
-                      buffers clean and at least possible for somebody to understand and
-                      maintain.</p></li>
+		<li><p>It would seriously distort the current redisplay model to
+		    implement even a fraction of the things (for example, grouping
+		    components, which draw a box around their subcomponents) that could be
+		    done much more simply by creating a new layout mechanism and subsuming
+		    the existing layout of windows, buffers, toolbars and such into this
+		    mechanism.  If we do this, then we keep the mechanism for drawing
+		    buffers clean and at least possible for somebody to understand and
+		    maintain.</p></li>
 
-                </ul></li>
+	      </ul></li>
 
-            </ol>
+	  </ol>
 
-            <hr><address><a href="http://www.666.com/ben/">Ben Wing</a></address>
-
-
+	  <hr/><address><a href="http://www.666.com/ben/" shape="rect">Ben Wing</a></address>

Architecting-XEmacs/dot-xemacs.content

 %title%
 $HOME/.xemacs should not be a Package Directory
-
 %author%
 Ben Wing
+%main%
+	  <center><h1>~/.xemacs should not be a Package Directory</h1></center>
 
-%main%
-            
-            <center><h1>~/.xemacs should not be a Package Directory</h1></center>
+	  <p><strong>Owner:</strong> ???</p>
+	  <p><strong>Effort:</strong> ???</p>
+	  <p><strong>Dependencies:</strong> ???</p>
 
-            <p><strong>Owner:</strong> ???</p>
-            <p><strong>Effort:</strong> ???</p>
-            <p><strong>Dependencies:</strong> ???</p>
+	  <p>This page doesn't exist yet.</p>
 
-            <p>This page doesn't exist yet.</p>
-
-            <hr> <address><a href="http://www.666.com/ben/">Ben Wing</a></address>
-