Configurations

<..html latex halign..>+
 \def\InitHBorder{%
    <.init for vspaces.>%
    <.init for hlines.>%
    <.init for clines.>}
 \def\HBorder{%
    \ifx \hline:s\empty \else\hline:s\fi
    \ifx \vspc:s\empty \else\vspc:s\fi
    \ifnum \expandafter\inspect:cline\cline:s{-1}>0 \d:HBorder
       \expandafter\reset:cline\cline:s2\g:HBorder\fi}
 <.cline contains non-zero value?.>
 \def\reset:cline#1{\ifcase #1
        \e:HBorder\expandafter\reset:cline
   \or  \f:HBorder\expandafter\reset:cline
   \else
   \fi}
 \InitHBorder
 -_-_-

The value of ‘\cline:s’ might contain too many digits for a TeX integer, hence the recursive macro ‘\inspect:cline’ checks the digits separately.

<..cline contains non-zero value?..>
 \def\inspect:cline#1{%
    \ifnum #1>0 1\expandafter\exit:inspect:cline
    \else \ifnum #1=-1
         0\else \expandafter\expandafter\expandafter\inspect:cline
    \fi   \fi
 }
 \def\exit:inspect:cline#1{%
    \ifnum #1=-1
         0\else \expandafter\exit:inspect:cline
    \fi
 }
 -_-_-