diff --git a/doc/html/man/term.5.html b/doc/html/man/term.5.html
index 50fdc55..221db40 100644
--- a/doc/html/man/term.5.html
+++ b/doc/html/man/term.5.html
@@ -1,7 +1,6 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2010,2015 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,37 +26,40 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp @
+  * @Id: term.5,v 1.22 2015/04/26 14:50:23 tom Exp @
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>term 5</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>term 5</H1>
-<HR>
+<H1 class="no-header">term 5</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>                                                         <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 
 
 
 
 </PRE>
-<H2>NAME</H2><PRE>
+<H2><a name="h2-NAME">NAME</a></H2><PRE>
        term - format of compiled term file.
 
 
 </PRE>
-<H2>SYNOPSIS</H2><PRE>
+<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        <STRONG>term</STRONG>
 
 
 </PRE>
-<H2>DESCRIPTION</H2><PRE>
-   <STRONG>STORAGE</STRONG> <STRONG>LOCATION</STRONG>
+<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+
+</PRE>
+<H3><a name="h3-STORAGE-LOCATION">STORAGE LOCATION</a></H3><PRE>
        Compiled terminfo descriptions are placed under the direc-
        tory <STRONG>/usr/share/terminfo</STRONG>.   Two  configurations  are  sup-
        ported (when building the ncurses libraries):
@@ -89,7 +91,9 @@
             directory  tree  for  entries  that  correspond to an
             existing directory, and hashed database otherwise.
 
-   <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>
+
+</PRE>
+<H3><a name="h3-STORAGE-FORMAT">STORAGE FORMAT</a></H3><PRE>
        The format has been chosen so that it will be the same  on
        all  hardware.   An  8 or more bit byte is assumed, but no
        assumptions about byte  ordering  or  sign  extension  are
@@ -113,7 +117,7 @@
             (4) the number of short integers in the numbers  sec-
             tion;
 
-            (5) the number of offsets  (short  integers)  in  the
+            (5)  the  number  of  offsets (short integers) in the
             strings section;
 
             (6) the size, in bytes, of the string table.
@@ -167,7 +171,9 @@
        the values of string capabilities referenced in the string
        section.  Each string is null terminated.
 
-   <STRONG>EXTENDED</STRONG> <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>
+
+</PRE>
+<H3><a name="h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></H3><PRE>
        The  previous  section describes the conventional terminfo
        binary format.  With some minor variations of the  offsets
        (see  PORTABILITY),  the same binary format is used in all
@@ -197,7 +203,7 @@
                  bytes.
 
        Using  the  counts and sizes, ncurses allocates arrays and
-       reads data for the extended capabilties in the same  order
+       reads data for the extended capabilities in the same order
        as the header information.
 
        The extended string table contains values for string capa-
@@ -207,7 +213,7 @@
 
 
 </PRE>
-<H2>PORTABILITY</H2><PRE>
+<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        Note that it is possible for <EM>setupterm</EM> to expect a differ-
        ent  set  of capabilities than are actually present in the
        file.  Either the database may  have  been  updated  since
@@ -233,7 +239,7 @@
 
 
 </PRE>
-<H2>EXAMPLE</H2><PRE>
+<H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
        As  an  example, here is a hex dump of the description for
        the Lear-Siegler ADM-3, a  popular  though  rather  stupid
        early terminal:
@@ -271,24 +277,24 @@
 
 
 </PRE>
-<H2>LIMITS</H2><PRE>
+<H2><a name="h2-LIMITS">LIMITS</a></H2><PRE>
        Some  limitations:  total  compiled  entries cannot exceed
        4096 bytes.  The name field cannot exceed 128 bytes.
 
 
 </PRE>
-<H2>FILES</H2><PRE>
+<H2><a name="h2-FILES">FILES</a></H2><PRE>
        /usr/share/terminfo/*/*  compiled terminal capability data
        base
 
 
 </PRE>
-<H2>SEE ALSO</H2><PRE>
+<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
 </PRE>
-<H2>AUTHORS</H2><PRE>
+<H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
        Thomas E. Dickey
        extended terminfo format for ncurses 5.0
        hashed database support for ncurses 5.6
@@ -299,10 +305,24 @@
 
                                                                 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 </PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-STORAGE-LOCATION">STORAGE LOCATION</a></li>
+<li><a href="#h3-STORAGE-FORMAT">STORAGE FORMAT</a></li>
+<li><a href="#h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></li>
+</ul>
+</li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
+<li><a href="#h2-LIMITS">LIMITS</a></li>
+<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+</ul>
+</div>
 </BODY>
 </HTML>
