Skip to content
Snippets Groups Projects
Commit 6a4c6512 authored by g0dil's avatar g0dil
Browse files

Add bytefield.sty latex package to doclib

parent 288266ad
No related branches found
No related tags found
No related merge requests found
......@@ -130,7 +130,7 @@ env.Append(
'CONCURRENCY_LEVEL' : env.GetOption('num_jobs') or "1",
'SCONS' : 1,
'PATH' : os.environ.get('PATH'),
'TEXINPUTS' : os.environ.get('TEXINPUTS',':'),
'TEXINPUTS' : os.environ.get('TEXINPUTS',env.Dir('#/doclib').abspath + ':'),
},
LOCAL_CONFIG_FILES = [ '/Doxyfile.local', '/SConfig', '/local_config.hh' ],
DPKG_IGNORED_FILES = [ '$LOCAL_CONFIG_FILES', '.svn', '/_templates' ],
......
......@@ -5,7 +5,7 @@ Build-Depends: debhelper (>= 5), scons (>= 0.97), g++, binutils-dev, libboost-de
libboost-test-dev, libboost-date-time-dev, libboost-regex-dev,
libboost-filesystem-dev, libboost-serialization-dev, libboost-iostreams-dev,
libboost-signals-dev, doxygen (>= 1.5.5), libreadline-dev, dia, tidy, xsltproc,
graphviz, perl-base, linklint, netpbm, gs, tetex-bin, texlive-latex-extra, perl
graphviz, perl-base, linklint, netpbm, gs, tetex-bin, perl
Standards-Version: 3.7.2
Section: libs
......
%%
%% This is file `bytefield.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% bytefield.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright (C) 2005 by Scott Pakin <scott+bf@pakin.org>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3a of this license
%% or (at your option) any later version. The latest version of this
%% license is in:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3a or later is part of all distributions of LaTeX version
%% 2004/10/11 or later.
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{bytefield}
[2005/07/31 v1.2a Network protocol diagrams]
\RequirePackage{calc}[1998/07/07]
\def\bf@newdimen#1{\advance\count11 by 1
\ch@ck1\insc@unt\dimen% Check room
\allocationnumber=\count11
\dimendef#1=\allocationnumber
\wlog{\string#1=\string\dimen\the\allocationnumber\space (locally)}}
\newlength{\bytefield@height}
\newif\ifcounting@words
\newlength{\bytefield@height@increment}
\DeclareRobustCommand{\inc@bytefield@height}[1]{%
\setlength{\bytefield@height@increment}{#1}%
\global\advance\bytefield@height by \bytefield@height@increment}
\newcounter{bits@wide}
\newsavebox{\entire@bytefield@picture}
\newenvironment{bytefield}[1]{%
\setcounter{bits@wide}{#1}%
\let\old@nl=\\%
\let\amp=&%
\catcode`\&=10
\openup -1pt
\setlength{\bytefield@height}{0pt}%
\setlength{\unitlength}{1pt}%
\counting@wordstrue
\begin{lrbox}{\entire@bytefield@picture}%
\renewcommand{\\}{%
\amp\show@wordlabelr\cr%
\ignorespaces\counting@wordstrue\make@lspace\amp}%
\vbox\bgroup\ialign\bgroup##\amp##\amp##\cr\amp%
}{%
\amp\show@wordlabelr\cr\egroup\egroup%
\end{lrbox}%
\usebox{\entire@bytefield@picture}}
\newlength{\bitwidth}
\AtBeginDocument{\settowidth{\bitwidth}{\tiny 99i}}
\newlength{\byteheight}
\AtBeginDocument{\setlength{\byteheight}{4ex}}
\newlength{\units@wide}
\newlength{\units@tall}
\DeclareRobustCommand{\bitbox}[3][lrtb]{%
\setlength{\units@wide}{\bitwidth * #2}%
\parse@bitbox@arg{#1}%
\draw@bit@picture{\strip@pt\units@wide}{\strip@pt\byteheight}{#3}}
\DeclareRobustCommand{\wordbox}[3][lrtb]{%
\setlength{\units@wide}{\bitwidth * \value{bits@wide}}%
\setlength{\units@tall}{\byteheight * #2}%
\parse@bitbox@arg{#1}%
\draw@bit@picture{\strip@pt\units@wide}{\strip@pt\units@tall}{#3}}
\DeclareRobustCommand{\draw@bit@picture}[3]{%
\begin{picture}(#1,#2)%
\put(0,0){\makebox(#1,#2){\parbox[c]{#1\unitlength}{%
\bf@newdimen\height
\bf@newdimen\depth
\bf@newdimen\totalheight
\bf@newdimen\width
\height=#2\unitlength
\depth=0pt%
\totalheight=#2\unitlength
\width=#1\unitlength
\def\widthunits{#1}%
\def\heightunits{#2}%
\centering #3}}}%
\ifbitbox@top
\put(0,#2){\line(1,0){#1}}
\fi
\ifbitbox@bottom
\put(0,0){\line(1,0){#1}}
\fi
\ifbitbox@left
\put(0,0){\line(0,1){#2}}
\fi
\ifbitbox@right
\put(#1,0){\line(0,1){#2}}
\fi
\end{picture}%
\ifcounting@words
\inc@bytefield@height{\unitlength * \real{#2}}%
\counting@wordsfalse
\fi
\ignorespaces}
\newif\ifbitbox@top
\newif\ifbitbox@bottom
\newif\ifbitbox@left
\newif\ifbitbox@right
\def\parse@bitbox@arg#1{%
\bitbox@topfalse
\bitbox@bottomfalse
\bitbox@leftfalse
\bitbox@rightfalse
\parse@bitbox@sides#1X}
\def\parse@bitbox@sides#1{%
\ifx#1X%
\else
\ifx#1t%
\bitbox@toptrue
\else
\ifx#1b%
\bitbox@bottomtrue
\else
\ifx#1l%
\bitbox@lefttrue
\else
\ifx#1r%
\bitbox@righttrue
\fi
\fi
\fi
\fi
\expandafter\parse@bitbox@sides
\fi}
\newlength{\units@high}
\DeclareRobustCommand{\skippedwords}[1][2ex]{%
\setlength{\units@wide}{\bitwidth * \value{bits@wide}}%
\setlength{\units@high}{1pt * \ratio{\units@wide}{6.0pt}}%
\setlength{\units@tall}{#1 + \units@high}%
\edef\num@wide{\strip@pt\units@wide}%
\edef\num@tall{\strip@pt\units@tall}%
\edef\num@high{\strip@pt\units@high}%
\begin{picture}(\num@wide,\num@tall)
\put(0,\num@tall){\line(6,-1){\num@wide}}
\put(\num@wide,0){\line(-6,1){\num@wide}}
\put(0,0){\line(0,1){\num@high}}
\put(\num@wide,\num@tall){\line(0,-1){\num@high}}
\end{picture}%
\ifcounting@words
\inc@bytefield@height{\unitlength * \real{\num@tall}}%
\counting@wordsfalse
\fi}
\DeclareRobustCommand{\bitheader}[2][l]{%
\parse@bitbox@arg{lrtb}%
\setlength{\units@wide}{\bitwidth * \value{bits@wide}}%
\setlength{\units@tall}{\heightof{\tiny 9}}%
\setlength{\units@high}{\units@tall * -1}%
\def\bit@endianness{#1}%
\begin{picture}(\strip@pt\units@wide,\strip@pt\units@tall)%
(0,\strip@pt\units@high)
\parse@range@list#2,X,
\end{picture}%
\ifcounting@words
\inc@bytefield@height{\unitlength * \real{\strip@pt\units@tall}}%
\counting@wordsfalse
\fi
\ignorespaces}
\def\parse@range@list#1,{%
\ifx X#1
\else
\parse@range#1-#1-#1\relax
\expandafter\parse@range@list
\fi}
\newlength{\header@xpos}
\newcounter{header@val}
\newcounter{max@header@val}
\def\parse@range#1-#2-#3\relax{%
\setcounter{header@val}{#1}
\setcounter{max@header@val}{#2 + 1}
\loop
\ifnum\value{header@val}<\value{max@header@val}%
\if\bit@endianness b%
\setlength{\header@xpos}{%
\bitwidth * (\value{bits@wide}-\value{header@val}-1)}
\else
\setlength{\header@xpos}{\bitwidth * \value{header@val}}
\fi
\put(\strip@pt\header@xpos,0){%
\makebox(\strip@pt\bitwidth,\strip@pt\units@tall){%
\tiny \theheader@val}}
\addtocounter{header@val}{1}
\repeat}
\newlength{\curlyshrinkage}
\setlength{\curlyshrinkage}{5pt}
\newlength{\curlyspace}
\AtBeginDocument{\setlength{\curlyspace}{1ex}}
\newlength{\labelspace}
\AtBeginDocument{\setlength{\labelspace}{0.5ex}}
\newbox{\curly@box}
\def\store@rcurly#1#2{%
\begingroup
\bf@newdimen\curly@height%
\setlength{\curly@height}{#2 - \curlyshrinkage}%
\bf@newdimen\half@curly@height%
\setlength{\half@curly@height}{0.5\curly@height}%
\bf@newdimen\curly@shift%
\setlength{\curly@shift}{\half@curly@height + 0.5\curlyshrinkage}%
\global\sbox{#1}{\raisebox{\curly@shift}{%
$\xdef\old@axis{\the\fontdimen22\textfont2}$%
$\fontdimen22\textfont2=0pt%
\left.\vrule height\half@curly@height
width 0pt
depth\half@curly@height\right\}$%
$\fontdimen22\textfont2=\old@axis$}}%
\endgroup
}
\def\store@lcurly#1#2{%
\begingroup
\bf@newdimen\curly@height%
\setlength{\curly@height}{#2 - \curlyshrinkage}%
\bf@newdimen\half@curly@height%
\setlength{\half@curly@height}{0.5\curly@height}%
\bf@newdimen\curly@shift%
\setlength{\curly@shift}{\half@curly@height + 0.5\curlyshrinkage}%
\global\sbox{#1}{\raisebox{\curly@shift}{%
$\xdef\old@axis{\the\fontdimen22\textfont2}$%
$\fontdimen22\textfont2=0pt%
\left\{\vrule height\half@curly@height
width 0pt
depth\half@curly@height\right.$%
$\fontdimen22\textfont2=\old@axis$}}%
\endgroup
}
\def\show@wordlabelr{}
\newlength{\wordlabelr@start}
\newlength{\wordlabelr@end}
\newenvironment{wordgroupr}[1]{%
\global\wordlabelr@start=\bytefield@height
\gdef\wordlabelr@text{#1}%
\ignorespaces%
}{%
\global\wordlabelr@end=\bytefield@height
\gdef\show@wordlabelr{%
\sbox{\word@label@box}{%
\begin{tabular}[b]{@{}l@{}}\wordlabelr@text\end{tabular}}%
\settowidth{\label@box@width}{\usebox{\word@label@box}}%
\setlength{\label@box@height}{\wordlabelr@end-\wordlabelr@start}%
\store@rcurly{\curly@box}{\label@box@height}%
\bf@newdimen\total@box@width%
\setlength{\total@box@width}{%
\curlyspace +
\widthof{\usebox{\curly@box}} +
\labelspace +
\label@box@width}%
\begin{picture}(\strip@pt\total@box@width,0)
\put(0,0){%
\hspace*{\curlyspace}%
\usebox{\curly@box}%
\hspace*{\labelspace}%
\makebox(\strip@pt\label@box@width,\strip@pt\label@box@height){%
\usebox{\word@label@box}}}
\end{picture}%
\gdef\show@wordlabelr{}}%
\ignorespaces}
\newlength{\wordlabell@start}
\newlength{\wordlabell@end}
\newlength{\total@lbox@width}
\gdef\make@lspace{}
\newenvironment{wordgroupl}[1]{%
\global\wordlabell@start=\bytefield@height
\gdef\wordlabell@text{#1}%
\sbox{\word@label@box}{%
\begin{tabular}[b]{@{}l@{}}\wordlabell@text\end{tabular}}%
\settowidth{\label@box@width}{\usebox{\word@label@box}}%
\store@lcurly{\curly@box}{5cm}%
\setlength{\total@lbox@width}{%
\curlyspace +
\widthof{\usebox{\curly@box}} +
\labelspace +
\label@box@width}%
\global\total@lbox@width=\total@lbox@width
\gdef\make@lspace{%
\hspace*{\total@lbox@width}%
\gdef\make@lspace{}}%
\ignorespaces%
}{%
\global\wordlabell@end=\bytefield@height
\bf@newdimen\starting@point
\setlength{\starting@point}{%
-\total@lbox@width - \bitwidth*\value{bits@wide}}%
\sbox{\word@label@box}{%
\begin{tabular}[b]{@{}l@{}}\wordlabell@text\end{tabular}}%
\settowidth{\label@box@width}{\usebox{\word@label@box}}%
\setlength{\label@box@height}{\wordlabell@end-\wordlabell@start}%
\store@lcurly{\curly@box}{\label@box@height}%
\begin{picture}(0,0)
\put(\strip@pt\starting@point,0){%
\makebox(\strip@pt\label@box@width,\strip@pt\label@box@height){%
\usebox{\word@label@box}}%
\hspace*{\labelspace}%
\usebox{\curly@box}%
\hspace*{\curlyspace}}
\end{picture}%
\ignorespaces}
\newlength{\label@box@width}
\newlength{\label@box@height}
\newsavebox{\word@label@box}
\endinput
%%
%% End of file `bytefield.sty'.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment