%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% nameref.4ht                           2011-01-30-16:01 %
% Copyright (C) 2005--2009       Eitan M. Gurari         %
%               2009--2011       TeX Users Group         %
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3c of this license or (at your option) any   %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3c or later is part of all distributions %
% of LaTeX version 2005/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is the TeX4ht Project <tex4ht@tug.org>.                %
%                                                        %
% If you modify this program your changing its signature %
% with a directive of the following form will be         %
% appreciated.                                           %
%            \message{signature}                         %
%                                                        %
%                                        tex4ht@tug.org  %
%                             http://www.tug.org/tex4ht  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version 2011-01-30-16:01}

   \let\ltx@label\label
\def\prf:label{{\ifx \NR:Title\:UnDef \else \NR:Title\fi}%
               {\ifx \NR:Type\:UnDef \else \NR:Type .1\fi}{}}%
\let\NR:StartSec\:StartSec
\let\NR:no@sect\no@sect
\def\no@sect#1#2#3#4#5#6[#7]#8{\gdef\NR:Title{\a:newlabel{#7}}%
     \NR:no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}}
\def\:StartSec#1#2#3{%
   \gdef\NR:Title{\a:newlabel{#3}}%
   \gdef\NR:Type{#1}%
   \gdef\@currentlabelname{#3}%
   \NR:StartSec{#1}{#2}{#3}%
}
\pend:defI\begin{\PushMacro\NR:Type \PushMacro\NR:Title}
\pend:defI\end{%
   \PopMacro\NR:Type \PopMacro\NR:Title
   \global\let\NR:Type\NR:Type
   \global\let\NR:Title\NR:Title
}
\def\:tempc#1#2#3#4#5#6[#7]#8{%
   \gdef\NR:Title{\a:newlabel{#7}}%
   \gdef\NR:Type{#1}%
   \o:NR@sect:{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}}
\HLet\NR@sect\:tempc

\def\:tempc#1#2#3#4#5{%
   \gdef\NR:Title{\a:newlabel\ssect:ttl}%
   \gdef\NR:Type{#1}%
   \o:NR@ssect:{#1}{#2}{#3}{#4}{#5}%
   \def\@currentlabelname{\ssect:ttl}}
\HLet\NR@ssect\:tempc

\def\:tempc[#1]#2{%
   \gdef\NR:Title{\a:newlabel{#1}}%
   \o:no@part:[{#1}]{#2}}
\HLet\no@part\:tempc

\def\:tempc#1{%
   \gdef\NR:Title{\a:newlabel{#1}}%
   \o:no@spart:{#1}}
\HLet\no@spart\:tempc

\def\:tempc[#1]#2{%
   \gdef\NR:Title{\a:newlabel{#1}}%
   \o:NR@chapter:[#1]{#2}}
\HLet\NR@chapter\:tempc

\def\:tempc#1{%
   \gdef\NR:Title{\a:newlabel\sch:ttl}%
   \o:NR@schapter:{#1}%
   \def\@currentlabelname{\sch:ttl}}
\HLet\NR@schapter\:tempc

% \long\def\:tempc#1[#2]{%
%    \gdef\NR:Type{#1}%
%    \gdef\NR:Title{\a:newlabel{#2}}%
%   \gdef\@currentlabelname{#2}%
%   \o:NR@@caption:{#1}[{#2}]%
% }
% \HLet\NR@@caption\:tempc

\let\NR@@caption\@caption

\long\def\@caption#1[#2]{%
      \NR@gettitle{#2}%
      \NR@@caption{#1}[{#2}]}%

\AtBeginDocument{%
  \@ifpackageloaded{listings}{%
      \def\:tempc#1{%
         \gdef\NR:Title{\a:newlabel{listing}}%
         \gdef\NR:Type{lstlisting}%
         \o:NROrg@lst@MakeCaption:{#1}%
         \gdef\@currentlabelname{listing}}
      \HLet\NROrg@lst@MakeCaption\:tempc
  }{}%
}
\let\T:ref=\::ref
\def\::ref{\protect\T@ref}
\def\T@ref#1{%
  \@safe@activestrue
  \let\::ref \T:ref
  \expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
  \def\::ref{\protect\T@ref}%
  \@safe@activesfalse
}

\def\tht:label#1{%
  \@bsphack
  \begingroup
    \@onelevel@sanitize\@currentlabelname
    \edef\@currentlabelname{%
      \expandafter\strip@period\@currentlabelname.\relax\@@@%
    }%
%   \typeout{::::::::::::[\@currentlabelname]::::::::::::}%
    \protected@write\@auxout{}{%
      \string\newlabel{#1}{%
        {\string\rEfLiNK{\cur:th\:currentlabel}
           {\string\csname\space :autoref\string\endcsname
             {\@@currentlabelname}\@currentlabel}%
        }%    
        {\thepage}%
        {\a:newlabel\@currentlabelname}%
        {\@@currentlabelname.\@currentlabel}{}%
      }%
    }%
  \endgroup
  \@esphack
}%

\HLet\label\tht:label

\Configure{newlabel}
   {\cur:th \:currentlabel}
   {\string\csname\space%\string%\string\space
    :autoref\string\endcsname {\@@currentlabelname}#1}

\ifx \@@currentlabelname\:UnDef
   \let\@@currentlabelname\empty
\fi
\append:defI\refstepcounter{\def\@@currentlabelname{#1}}
\pend:def\eqnarray{\edef\@@currentlabelname{equation}}
\pend:def\equation{\edef\@@currentlabelname{equation}}
\pend:defI\section{\edef\@@currentlabelname{section}}
\pend:defI\subsection{\edef\@@currentlabelname{section}}
\pend:defI\subsubsection{\edef\@@currentlabelname{section}}

\ifx \figure\:UnDef \else
  \pend:def\figure{\edef\@@currentlabelname{figure}}
  \expandafter\pend:def\csname
     figure*\endcsname{\edef\@@currentlabelname{figure}}
\fi
\ifx \table\:UnDef \else
  \pend:def\table{\edef\@@currentlabelname{table}}
  \expandafter\pend:def\csname
     table*\endcsname{\edef\@@currentlabelname{table}}
\fi
\pend:defII\:thm{\edef\@@currentlabelname{##1}}
\pend:defIII\@setref{\edef\RefArg{##3}}
\append:defIII\@setref{\let\:autoref\:gobble}
\let\:autoref\:gobble


\Hinput{nameref}
\endinput 

