%%
%% This is file `footnotehyper.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% footnotehyper.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from footnotehyper.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file footnotehyper.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{footnotehyper}%
 [2016/10/03 v0.9f hyperref aware footnote.sty (JFB)]
%%
%% Package: footnotehyper
%% Version: 0.9f (2016/10/03)
%% License: LPPL 1.3c
%% Copyright (C) 2016 Jean-Francois Burnol <jfbu at free dot fr>.
%%
\DeclareOption*{\PackageWarning{footnotehyper}{Option `\CurrentOption' is unknown}}%
\ProcessOptions\relax
\@ifpackageloaded{footnote}
 {\PackageWarningNoLine{footnotehyper}%
  {Please next time do not load package footnote,^^J
 but leave that to me. For the time being, I will start by undoing the^^J
 modifications it did to \string\parbox. Use \string\fnparbox\space if needed.}%
 }
 {\let\FNH@@makefntext\@makefntext\let\@makefntext\@firstofone
  \RequirePackage{footnote}
  \let\@makefntext\FNH@@makefntext
 }%
\let\fnparbox\parbox\let\parbox\fn@parbox
\let\FNH@fn@footnote    \footnote     % footnote.sty's \footnote will get
\let\FNH@fn@footnotetext\footnotetext % redefined later. We preserve also
\let\footnote    \fn@latex@@footnote  % the meaning of \footnote from prior
\let\footnotetext\fn@latex@@footnotetext % to the loading of footnote.sty
\def\fn@endnote  {\color@endgroup}%
\AtBeginDocument {%
    \let\fn@latex@@footnote    \footnote % meaning of \footnote at end of preamble
    \let\fn@latex@@footnotetext\footnotetext
}%
\AtBeginDocument{\@ifpackageloaded{hyperref}
  {\ifHy@hyperfootnotes
    \let\fn@fntext \FNH@hyper@fntext
    \let\spewnotes \FNH@hyper@spewnotes
    \let\endsavenotes\spewnotes
    \let\fn@endfntext\FNH@fixed@endfntext
    \let\footnote    \FNH@fixed@footnote
    \let\footnotetext\FNH@fixed@footnotetext
   \else
     \FNH@inactive
   \fi }{\FNH@inactive}%
    \let\endfootnote\fn@endfntext
    \let\endfootnotetext\endfootnote
}%
\def\FNH@fix@endfntext\@finalstrut\strutbox\fn@postfntext
    {\@finalstrut\strutbox\fn@postfntext\fn@endnote}%
\def\FNH@inactive {%
    \let\footnote    \FNH@fn@footnote
    \let\footnotetext\FNH@fn@footnotetext
    \expandafter\expandafter\expandafter\def
    \expandafter\expandafter\expandafter\fn@endfntext
    \expandafter\expandafter\expandafter
       {\expandafter\FNH@fix@endfntext\fn@endfntext}%
    \PackageInfo{footnotehyper}%
     {hyperref package not loaded or hyperfootnotes^^J
  =false option; I did not activate myself and only patched footnote.sty^^J
  for color/xcolor compatibility, leaving some other issues unfixed.}}%
\def\FNH@hyper@fntext {\ifx\ifmeasuring@\undefined\expandafter\@secondoftwo
                                      \else\expandafter\@firstofone\fi
    {\ifmeasuring@\expandafter\@gobbletwo\fi}%
    \FNH@hyper@fntext@i }%
\long\def\FNH@hyper@fntext@i #1{\global\setbox\fn@notes\vbox
     {\unvbox\fn@notes
      \fn@startnote
      \@makefntext
       {\rule\z@\footnotesep\ignorespaces
        \ifHy@nesting\expandafter\ltx@firstoftwo
                \else\expandafter\ltx@secondoftwo
        \fi
        {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}{#1}}%
        {\Hy@raisedlink
          {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}%
          {\relax}}%
         \let\@currentHref\Hy@footnote@currentHref
         \let\@currentlabelname\@empty
         #1}%
      \@finalstrut\strutbox }%
      \fn@endnote }%
}%
\def\FNH@hyper@spewnotes {\endgroup
    \if@savingnotes\else\ifvoid\fn@notes\else
    \begingroup\let\@makefntext\@empty
               \let\@finalstrut\@gobble
               \let\rule\@gobbletwo
               \H@@footnotetext{\unvbox\fn@notes}%
    \endgroup\fi\fi
}%
\def\FNH@fixed@endfntext {%
    \@finalstrut\strutbox
    \fn@postfntext
    \fn@endnote
    \egroup\FNH@endfntext@next % will decide if link or no link
}%
\def\FNH@endfntext@link {\begingroup
    \let\@makefntext\@empty\let\@finalstrut\@gobble\let\rule\@gobbletwo
    \@footnotetext {\unvbox\z@}%
    \endgroup
}%
\def\FNH@endfntext@nolink {\begingroup
    \let\@makefntext\@empty\let\@finalstrut\@gobble
    \let\rule\@gobbletwo
    \if@savingnotes\expandafter\fn@fntext\else\expandafter\H@@footnotetext\fi
    {\unvbox\z@}\endgroup
}%
\def\FNH@fixed@footnote {\ifx\@currenvir\fn@footnote
    \expandafter\FNH@footnoteenv\else\expandafter\fn@latex@@footnote\fi }%
\def\FNH@footnoteenv {\@ifnextchar[\FNH@xfootnoteenv%]
    {\stepcounter\@mpfn
     \protected@xdef\@thefnmark{\thempfn}\@footnotemark
     \def\FNH@endfntext@next{\FNH@endfntext@link}\fn@startfntext}}%
\def\FNH@xfootnoteenv [#1]{%
    \begingroup
     \csname c@\@mpfn\endcsname #1\relax
     \unrestored@protected@xdef\@thefnmark{\thempfn}%
    \endgroup\@footnotemark\def\FNH@endfntext@next{\FNH@endfntext@link}%
    \fn@startfntext}%
\def\FNH@fixed@footnotetext {\ifx\@currenvir\fn@footnotetext
  \expandafter\FNH@footnotetextenv\else\expandafter\fn@latex@@footnotetext\fi}%
\def\FNH@footnotetextenv {\@ifnextchar[\FNH@xfootnotetextenv%]
    {\protected@xdef\@thefnmark{\thempfn}%
     \def\FNH@endfntext@next{\FNH@endfntext@link}\fn@startfntext}}%
\def\FNH@xfootnotetextenv [#1]{%
    \begingroup
     \csname c@\@mpfn\endcsname #1\relax
     \unrestored@protected@xdef\@thefnmark{\thempfn}%
    \endgroup\def\FNH@endfntext@next{\FNH@endfntext@nolink}%
    \fn@startfntext }%
\ifx\FNH@@makefntext\undefined\expandafter\@gobble
   \else\expandafter\AtBeginDocument\fi
{%
 \ifx\@makefntextFB\undefined
                   \expandafter\@gobble\else\expandafter\@firstofone\fi
 {\ifFBFrenchFootnotes \let\FNH@@makefntext\@makefntextFB \else
                       \let\FNH@@makefntext\@makefntextORI\fi}%
 \expandafter\FNH@check@a\FNH@@makefntext{1.2!3?4,}\FNH@@@1.2!3?4,\FNH@@@\relax
}%
\long\def\FNH@check@a #11.2!3?4,#2\FNH@@@#3%
{%
     \ifx\relax#3\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
     \FNH@bad@footnote@env
     {\def\fn@prefntext{#1}\def\fn@postfntext{#2}\FNH@check@b}%
}%
\def\FNH@check@b #1\relax
{%
    \expandafter\expandafter\expandafter\FNH@check@c
    \expandafter\meaning\expandafter\fn@prefntext
                            \meaning\fn@postfntext1.2!3?4,\FNH@check@c\relax
}%
\def\FNH@check@c #11.2!3?4,#2#3\relax
   {\ifx\FNH@check@c#2\expandafter\@gobble\fi\FNH@bad@footnote@env}%
\def\FNH@bad@footnote@env
{\PackageWarningNoLine{footnotehyper}%
 {The footnote environment from package footnote^^J
  will be dysfunctional, sorry (not my fault...). You may try to mail me the^^J
  preamble and/or only the next lines:}%
    \typeout{\meaning\@makefntext}%
    \let\fn@prefntext\@empty\let\fn@postfntext\@empty
}%
\endinput
%%
%% End of file `footnotehyper.sty'.
