diff --git a/doc/html/man/term.7.html b/doc/html/man/term.7.html
index 53ea633..749139e 100644
--- a/doc/html/man/term.7.html
+++ b/doc/html/man/term.7.html
@@ -1,7 +1,6 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2010,2011 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,31 +26,32 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.7,v 1.18 2007/06/02 20:40:07 tom Exp @
+  * @Id: term.7,v 1.23 2011/12/17 23:32:17 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 7</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 7</H1>
-<HR>
+<H1 class="no-header">term 7</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
 <STRONG><A HREF="term.7.html">term(7)</A></STRONG>                                                         <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
 
 
 
 
 </PRE>
-<H2>NAME</H2><PRE>
+<H2><a name="h2-NAME">NAME</a></H2><PRE>
        term - conventions for naming terminal types
 
 
 </PRE>
-<H2>DESCRIPTION</H2><PRE>
+<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
        The  environment variable <STRONG>TERM</STRONG> should normally contain the
        type name of the terminal, console or display-device  type
        you  are  using.   This  information  is  critical for all
@@ -59,7 +59,7 @@
        mailer.
 
        A  default  <STRONG>TERM</STRONG>  value will be set on a per-line basis by
-       either <STRONG>/etc/inittab</STRONG> (Linux and  System-V-like  UNIXes)  or
+       either  <STRONG>/etc/inittab</STRONG>  (e.g.,  System-V-like   UNIXes)   or
        <STRONG>/etc/ttys</STRONG>  (BSD  UNIXes).  This will nearly always suffice
        for workstation and microcomputer consoles.
 
@@ -85,9 +85,9 @@
        the tty device and baud rate.
 
        Setting your own <STRONG>TERM</STRONG> value may also be useful if you have
-       created a custom  entry  incorporating  options  (such  as
-       visual  bell  or reverse-video) which you wish to override
-       the system default type for your line.
+       created a custom entry incorporating options (such as vis-
+       ual  bell or reverse-video) which you wish to override the
+       system default type for your line.
 
        Terminal type descriptions are stored as files of capabil-
        ity data underneath /usr/share/terminfo.  To browse a list
@@ -101,9 +101,9 @@
        you  must  use the <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> command.  Invoke it as fol-
        lows:
 
-            infocmp <EM>entry-name</EM>
+            infocmp <EM>entry</EM><STRONG>_</STRONG><EM>name</EM>
 
-       where <EM>entry-name</EM> is the name of the type you wish to exam-
+       where <EM>entry</EM><STRONG>_</STRONG><EM>name</EM> is the name of the type you wish to exam-
        ine  (and the name of its capability file the subdirectory
        of /usr/share/terminfo named for its first letter).   This
        command  dumps  a  capability  file  in  the  text  format
@@ -152,7 +152,7 @@
        thus <STRONG>vt100</STRONG>, <STRONG>hp2621</STRONG>, <STRONG>wy50</STRONG>.
 
        The root name for a PC-Unix console type should be the  OS
-       name,  i.e.  <STRONG>linux</STRONG>, <STRONG>bsdos</STRONG>, <STRONG>freebsd</STRONG>, <STRONG>netbsd</STRONG>.  It should <EM>not</EM>
+       name,  i.e., <STRONG>linux</STRONG>, <STRONG>bsdos</STRONG>, <STRONG>freebsd</STRONG>, <STRONG>netbsd</STRONG>.  It should <EM>not</EM>
        be <STRONG>console</STRONG> or any other generic that might cause confusion
        in  a  multi-platform environment!  If a model number fol-
        lows, it should indicate either the OS  release  level  or
@@ -161,7 +161,7 @@
        The  root  name  for a terminal emulator (assuming it does
        not fit one of the standard ANSI or vt100 types) should be
        the program name or a readily recognizable abbreviation of
-       it (i.e. <STRONG>versaterm</STRONG>, <STRONG>ctrm</STRONG>).
+       it (i.e., <STRONG>versaterm</STRONG>, <STRONG>ctrm</STRONG>).
 
        Following the root name, you may add any reasonable number
        of hyphen-separated feature suffixes.
@@ -216,14 +216,14 @@
 
 
 </PRE>
-<H2>PORTABILITY</H2><PRE>
+<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        For  maximum  compatibility  with  older  System V UNIXes,
        names and aliases should be unique  within  the  first  14
        characters.
 
 
 </PRE>
-<H2>FILES</H2><PRE>
+<H2><a name="h2-FILES">FILES</a></H2><PRE>
        /usr/share/terminfo/?/*
             compiled terminal capability data base
 
@@ -235,17 +235,21 @@
 
 
 </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>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
 
 
 
                                                                 <STRONG><A HREF="term.7.html">term(7)</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-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
 </BODY>
 </HTML>
