//
// Duplicate names between elements and tags
//
// in the case where a given name applies to both an element and a tag,
// m4 requires that I diffrentiate which is which.  I settled on the following
// prefixes:
//
//	tag_ means I chose to rename an element 
//	attr_ means I chose to rename an attribute of an element
//
// I believe I made sane choices.  The prefixed elements were chosen on the basis
// of which was least likely to be used, or which was deprecated, or which was
// least *frequently* used  you only ever need one title element()	which is provided
// in the template, but you need many title attributes in a document)
//
// the following list indicates which element/attributes got which prefix:
//
//	attr_link
//	link
//
//	attr_abbr
//	abbr
//
//	cite
//	tag_cite
//
//	attr_code
//	code
//
//	dir
//	tag_dir
//
//	attr_label
//	label
//
//	attr_object
//	object
//
//	attr_span
//	span
//
//	style
//	tag_style
//
//	title
//	tag_title
//
//	tag_col
//	col


// empty elements

#define base(XX)	<base (XX) />)
#define meta(XX)	<meta (XX) />)
#define link(XX)	<link (XX) />)
#define hr(XX)	<hr (XX) />)
#define br(XX)	<br (XX) />)
#define basefont(XX)	<basefont (XX) />)
#define param(XX)	<param (XX) />)
#define img(XX)	<img (XX) />)
#define area(XX)	<area (XX) />)
#define input(XX)	<input (XX) />)
#define isindex(XX)	<isindex (XX) />)
#define tag_col(XX)	<col (XX) />)

// non-empty elements

#define a(XX, YY)	<a (XX)>(YY)</a>)
#define abbr(XX, YY)	<abbr (XX)>(YY)</abbr>)
#define acronym(XX, YY)	<acronym (XX)>(YY)</acronym>)
#define address(XX, YY)	<address (XX)>(YY)</address>)
#define applet(XX, YY)	<applet (XX)>(YY)</applet>)
#define b(XX, YY)	<b (XX)>(YY)</b>)
#define bdo(XX, YY)	<bdo (XX)>(YY)</bdo>)
#define big(XX, YY)	<big (XX)>(YY)</big>)
#define blockquote(XX, YY)	<blockquote (XX)>(YY)</blockquote>)
#define body(XX, YY)	<body (XX)>(YY)</body>)
#define button(XX, YY)	<button (XX)>(YY)</button>)
#define caption(XX, YY)	<caption (XX)>(YY)</caption>)
#define center(XX, YY)	<center (XX)>(YY)</center>)
#define tag_cite(XX, YY)	<cite (XX)>(YY)</cite>)
#define code(XX, YY)	<code (XX)>(YY)</code>)
#define colgroup(XX, YY)	<colgroup (XX)>(YY)</colgroup>)
#define dd(XX, YY)	<dd (XX)>(YY)</dd>)
#define del(XX, YY)	<del (XX)>(YY)</del>)
#define dfn(XX, YY)	<dfn (XX)>(YY)</dfn>)
#define tag_dir(XX, YY)	<dir (XX)>(YY)</dir>)
#define div(XX, YY)	<div (XX)>(YY)</div>)
#define dl(XX, YY)	<dl (XX)>(YY)</dl>)
#define dt(XX, YY)	<dt (XX)>(YY)</dt>)
#define em(XX, YY)	<em (XX)>(YY)</em>)
#define fieldset(XX, YY)	<fieldset (XX)>(YY)</fieldset>)
#define font(XX, YY)	<font (XX)>(YY)</font>)
#define form(XX, YY)	<form (XX)>(YY)</form>)
#define h1(XX, YY)	<h1 (XX)>(YY)</h1>)
#define h2(XX, YY)	<h2 (XX)>(YY)</h2>)
#define h3(XX, YY)	<h3 (XX)>(YY)</h3>)
#define h4(XX, YY)	<h4 (XX)>(YY)</h4>)
#define h5(XX, YY)	<h5 (XX)>(YY)</h5>)
#define h6(XX, YY)	<h6 (XX)>(YY)</h6>)
#define head(XX, YY)	<head (XX)>(YY)</head>)
#define html(XX, YY)	<html (XX)>(YY)</html>)
#define i(XX, YY)	<i (XX)>(YY)</i>)
#define iframe(XX, YY)	<iframe (XX)>(YY)</iframe>)
#define ins(XX, YY)	<ins (XX)>(YY)</ins>)
#define kbd(XX, YY)	<kbd (XX)>(YY)</kbd>)
#define label(XX, YY)	<label (XX)>(YY)</label>)
#define legend(XX, YY)	<legend (XX)>(YY)</legend>)
#define li(XX, YY)	<li (XX)>(YY)</li>)
#define map(XX, YY)	<map (XX)>(YY)</map>)
#define menu(XX, YY)	<menu (XX)>(YY)</menu>)
#define noframes(XX, YY)	<noframes (XX)>(YY)</noframes>)
#define noscript(XX, YY)	<noscript (XX)>(YY)</noscript>)
#define object(XX, YY)	<object (XX)>(YY)</object>)
#define ol(XX, YY)	<ol (XX)>(YY)</ol>)
#define optgroup(XX, YY)	<optgroup (XX)>(YY)</optgroup>)
#define option(XX, YY)	<option (XX)>(YY)</option>)
#define p(XX, YY)	<p (XX)>(YY)</p>)
#define pre(XX, YY)	<pre (XX)>(YY)</pre>)
#define q(XX, YY)	<q (XX)>(YY)</q>)
#define s(XX, YY)	<s (XX)>(YY)</s>)
#define samp(XX, YY)	<samp (XX)>(YY)</samp>)
#define script(XX, YY)	<script (XX)>(YY)</script>)
#define select(XX, YY)	<select (XX)>(YY)</select>)
#define small(XX, YY)	<small (XX)>(YY)</small>)
#define span(XX, YY)	<span (XX)>(YY)</span>)
#define strike(XX, YY)	<strike (XX)>(YY)</strike>)
#define strong(XX, YY)	<strong (XX)>(YY)</strong>)
#define style(XX, YY)	<style (XX)>(YY)</style>)
#define sub(XX, YY)	<sub (XX)>(YY)</sub>)
#define sup(XX, YY)	<sup (XX)>(YY)</sup>)
#define table(XX, YY)	<table (XX)>(YY)</table>)
#define tbody(XX, YY)	<tbody (XX)>(YY)</tbody>)
#define td(XX, YY)	<td (XX)>(YY)</td>)
#define textarea(XX, YY)	<textarea (XX)>(YY)</textarea>)
#define tfoot(XX, YY)	<tfoot (XX)>(YY)</tfoot>)
#define th(XX, YY)	<th (XX)>(YY)</th>)
#define thead(XX, YY)	<thead (XX)>(YY)</thead>)
#define tag_title(XX, YY)	<title (XX)>(YY)</title>)
#define tr(XX, YY)	<tr (XX)>(YY)</tr>)
#define tt(XX, YY)	<tt (XX)>(YY)</tt>)
#define u(XX, YY)	<u (XX)>(YY)</u>)
#define ul(XX, YY)	<ul (XX)>(YY)</ul>)

// attributes

#define attr_abbr(XX)	 abbr="(XX)")
#define accept(XX)	 accept="(XX)")
#define acceptcharset(XX)	 accept-charset="(XX)")
#define accesskey(XX)	 accesskey="(XX)")
#define action(XX)	 action="(XX)")
#define align(XX)	 align="(XX)")
#define alink(XX)	 alink="(XX)")
#define alt(XX)	 alt="(XX)")
#define archive(XX)	 archive="(XX)")
#define axis(XX)	 axis="(XX)")
#define background(XX)	 background="(XX)")
#define bgcolor(XX)	 bgcolor="(XX)")
#define border(XX)	 border="(XX)")
#define cellpadding(XX)	 cellpadding="(XX)")
#define cellspacing(XX)	 cellspacing="(XX)")
#define char(XX)	 char="(XX)")
#define charoff(XX)	 charoff="(XX)")
#define charset(XX)	 charset="(XX)")
#define checked(XX)	 checked="(XX)")
#define cite(XX)	 cite="(XX)")
#define class(XX)	 class="(XX)")
#define classid(XX)	 classid="(XX)")
#define clear(XX)	 clear="(XX)")
#define attr_code(XX)	 code="(XX)")
#define codebase(XX)	 codebase="(XX)")
#define codetype(XX)	 codetype="(XX)")
#define color(XX)	 color="(XX)")
#define cols(XX)	 cols="(XX)")
#define colspan(XX)	 colspan="(XX)")
#define compact(XX)	 compact="(XX)")
#define content(XX)	 content="(XX)")
#define coords(XX)	 coords="(XX)")
#define data(XX)	 data="(XX)")
#define datetime(XX)	 datetime="(XX)")
#define declare(XX)	 declare="(XX)")
#define defer(XX)	 defer="(XX)")
#define dir(XX)	 dir="(XX)")
#define disabled(XX)	 disabled="(XX)")
#define enctype(XX)	 enctype="(XX)")
#define face(XX)	 face="(XX)")
#define for(XX)	 for="(XX)")
#define frame(XX)	 frame="(XX)")
#define frameborder(XX)	 frameborder="(XX)")
#define headers(XX)	 headers="(XX)")
#define height(XX)	 height="(XX)")
#define href(XX)	 href="(XX)")
#define hreflang(XX)	 hreflang="(XX)")
#define hspace(XX)	 hspace="(XX)")
#define httpequiv(XX)	 http-equiv="(XX)")
#define id(XX)	 id="(XX)")
#define ismap(XX)	 ismap="(XX)")
#define attr_label(XX)	 label="(XX)")
#define lang(XX)	 lang="(XX)")
#define language(XX)	 language="(XX)")
#define attr_link(XX)	 link="(XX)")
#define longdesc(XX)	 longdesc="(XX)")
#define marginheight(XX)	 marginheight="(XX)")
#define marginwidth(XX)	 marginwidth="(XX)")
#define maxlength(XX)	 maxlength="(XX)")
#define media(XX)	 media="(XX)")
#define method(XX)	 method="(XX)")
#define multiple(XX)	 multiple="(XX)")
#define name(XX)	 name="(XX)")
#define nohref(XX)	 nohref="(XX)")
#define noshade(XX)	 noshade="(XX)")
#define nowrap(XX)	 nowrap="(XX)")
#define attr_object(XX)	 object="(XX)")
#define onblur(XX)	 onblur="(XX)")
#define onchange(XX)	 onchange="(XX)")
#define onclick(XX)	 onclick="(XX)")
#define ondblclick(XX)	 ondblclick="(XX)")
#define onfocus(XX)	 onfocus="(XX)")
#define onkeydown(XX)	 onkeydown="(XX)")
#define onkeypress(XX)	 onkeypress="(XX)")
#define onkeyup(XX)	 onkeyup="(XX)")
#define onload(XX)	 onload="(XX)")
#define onmousedown(XX)	 onmousedown="(XX)")
#define onmousemove(XX)	 onmousemove="(XX)")
#define onmouseout(XX)	 onmouseout="(XX)")
#define onmouseover(XX)	 onmouseover="(XX)")
#define onmouseup(XX)	 onmouseup="(XX)")
#define onreset(XX)	 onreset="(XX)")
#define onselect(XX)	 onselect="(XX)")
#define onsubmit(XX)	 onsubmit="(XX)")
#define onunload(XX)	 onunload="(XX)")
#define profile(XX)	 profile="(XX)")
#define prompt(XX)	 prompt="(XX)")
#define readonly(XX)	 readonly="(XX)")
#define rel(XX)	 rel="(XX)")
#define rev(XX)	 rev="(XX)")
#define rows(XX)	 rows="(XX)")
#define rowspan(XX)	 rowspan="(XX)")
#define rules(XX)	 rules="(XX)")
#define scheme(XX)	 scheme="(XX)")
#define scope(XX)	 scope="(XX)")
#define scrolling(XX)	 scrolling="(XX)")
#define selected(XX)	 selected="(XX)")
#define shape(XX)	 shape="(XX)")
#define size(XX)	 size="(XX)")
#define attr_span(XX)	 span="(XX)")
#define src(XX)	 src="(XX)")
#define standby(XX)	 standby="(XX)")
#define start(XX)	 start="(XX)")
#define style(XX)	 style="(XX)")
#define summary(XX)	 summary="(XX)")
#define tabindex(XX)	 tabindex="(XX)")
#define target(XX)	 target="(XX)")
#define text(XX)	 text="(XX)")
#define title(XX)	 title="(XX)")
#define type(XX)	 type="(XX)")
#define usemap(XX)	 usemap="(XX)")
#define valign(XX)	 valign="(XX)")
#define value(XX)	 value="(XX)")
#define valuetype(XX)	 valuetype="(XX)")
#define vlink(XX)	 vlink="(XX)")
#define vspace(XX)	 vspace="(XX)")
#define width(XX)	 width="(XX)")
#define xmllang(XX)	 xml:lang="(XX)")
#define xmlspace(XX)	 xml:space="(XX)")
#define xmlns(XX)	 xmlns="(XX)")
