69.43 listings

<..listings.4ht..>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % listings.4ht                          2014-07-12-22:36 %
 % Copyright (C) 2001--2009       Eitan M. Gurari         %
 <.TeX4ht copyright.>
 <.listings sty.>
 <.lstmisc sty.>
 \Hinput{listings}
 \endinput
 -_-_-

<..listings sty..>
 \append:defII\lst@EnterMode{%
   \ifx \lsthk:EveryLine\:UnDef
      \let\lsthk:EveryLine\lsthk@EveryLine
   \fi
   \ifx \lsthk:EveryLine\lsthk@EveryLine
       \pend:def\lsthk@EveryLine{\c:listings
              \def\dd:listings{\d:listings\let\dd:listings\empty}}%
   \fi
   \append:def\lsthk@EveryPar{\dd:listings}%
   \a:listings\bgroup
   \Configure{$}{}{}{}%
   \aftergroup\lst:EnterMode  }
 \def\lst:EnterMode{\b:listings\egroup}
 \NewConfigure{listings}{4}
 \let\dd:listings=\empty
 -_-_-

Configure listings: befoe env, after env, before ln, between # and content.

<..listings sty..>+
 \append:defI\lst@Init{\csname a:listings-init\endcsname}
 \pend:def\lst@DeInit{\csname b:listings-init\endcsname}
 \NewConfigure{listings-init}{2}
 -_-_-

<..listings sty..>+
 \lst@AddToHook{TextStyle}{%
    \Configure{listings}{}{}{}{}%
    \a:lstinline \bgroup \aftergroup\b:lstinline\aftergroup\egroup
   }
 \NewConfigure{lstinline}{2}
 -_-_-

<..listings sty..>+
 \pend:defI\lst@MakeCaption{%
   \let\lst:addcontentsline\addcontentsline
   \def\addcontentsline{\gHAdvance\TitleCount by 1
                        \lst:addcontentsline}%
 }
 \append:defI\lst@MakeCaption{%
   \let\addcontentsline\lst:addcontentsline
 }
 -_-_-

<..lstmisc sty..>
 \HLet\lst@frameInit=\empty
 \HLet\lst@frameExit=\empty
 -_-_-

<..listings sty..>+
 \def\lst@NewLine{%
    \ifx\lst@OutputBox\@gobble\else \the\everypar \fi
    \global\advance\lst@newlines\m@ne
    \lst@newlinetrue
 }%
 \def\lst@InputListing#1{%
     \begingroup
       \lsthk@PreSet \gdef\lst@intname{#1}%
       \expandafter\lstset\expandafter{\lst@set}%
       \lsthk@DisplayStyle
       \catcode\active=\active
       \a:lstinputlisting \lst@Init\relax \let\lst@gobble\z@
       \lst@SkipToFirst
       \lst@ifprint \def\lst@next{\input{#1}}%
              \else \let\lst@next\@empty \fi
       \lst@next \lst@DeInit
       \b:lstinputlisting
     \endgroup}
 \NewConfigure{lstinputlisting}{2}
 -_-_-

<..listings sty..>+
 \def\lst@Kern#1{%
    \setbox\z@\hbox{{\lst@currstyle{\kern#1}}}%
    \global\advance\lst@currlwidth \wd\z@
    \tmp:dim=#1 \let\:tempc=\empty
    \loop \ifdim \tmp:dim>\a:lst@Kern
       \advance \tmp:dim by -\a:lst@Kern
       \advance \tmp:dim by -\b:lst@Kern
       \append:def\:tempc{\:nbsp}%
    \repeat
    \setbox\z@\hbox{{\lst@currstyle{\:tempc}}}%
    \lst@OutputBox\z@}
 \NewConfigure{lst@Kern}{2}
 \Configure{lst@Kern}{0.499em}{0.1em}
 -_-_-

Configure lst@Kern: character width, inter character space size

<..listings sty..>+
 \def\lst@outputspace{\:nbsp}
 -_-_-

Test cases: