<..frames for fancyvrb..>
\ifx \FV@BeginListFrame\relax\else
\tmp:dim=\FV@FrameRule \edef\HSize{\the\tmp:dim}%
\a:fancyvrbframe
\fi
\ifx \FV@LeftListFrame\relax\else
\tmp:dim=\FV@FrameRule \edef\HSize{\the\tmp:dim}%
\b:fancyvrbframe
\fi
\ifx \FV@EndListFrame\relax\else
\tmp:dim=\FV@FrameRule \edef\HSize{\the\tmp:dim}%
\c:fancyvrbframe
\fi
\ifx \FV@RightListFrame\relax\else
\tmp:dim=\FV@FrameRule \edef\HSize{\the\tmp:dim}%
\d:fancyvrbframe
\fi
-_-_-
<..fancyvrb.sty shared config..>+
\NewConfigure{fancyvrbframe}{6}
-_-_-
Frame up/left/down/right/thickness/padding
We get duplications, because we don’t know the order of parameters (e.g., ‘\begin{Verbatim}% [frame=single,framerule=1mm]’), and even which ones are present at all.
<..fix fancyvrb..>+
\define@key{FV}{framerule}{%
\@tempdima=#1\relax
\edef\FV@FrameRule{\number\@tempdima sp\relax}%
{\Advance:\fancyvrbNo by 1 \tmp:dim=\FV@FrameRule
\edef\HSize{\the\tmp:dim}%
\e:fancyvrbframe}}
\define@key{FV}{framesep}{%
\@tempdima=#1\relax
\edef\FV@FrameSep{\number\@tempdima sp\relax}%
{\Advance:\fancyvrbNo by 1 \tmp:dim=\FV@FrameSep
\edef\HSize{\the\tmp:dim}%
\f:fancyvrbframe}}
-_-_-