<..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
}
-_-_-