%
% Defining some commands to manipulate counter to avoid ude of 
% \label and \ref commands (and related problem to remeber the 
% used labels) to refer nearest objects
%
%
\newcounter{usercount}       % define a new counter for internal use
%
% Figure commands
%
\newcommand{\curfig}{fig.~\thefigure}

\newcommand{\nfig}{%
\setcounter{usercount}{\value{figure}}%
\addtocounter{usercount}{1}%
fig.~\thechapter.\theusercount}

\newcommand{\pfig}{%
\setcounter{usercount}{\value{figure}}%
\addtocounter{usercount}{-1}%
fig.~\thechapter.\theusercount}

\newcommand{\figref}[1]{fig.~\ref{#1}}
%
% Tables commands
%
\newcommand{\curtab}{tab.~\thetable}
\newcommand{\ntab}{%
\setcounter{usercount}{\value{table}}%
\addtocounter{usercount}{1}%
tab.~\thechapter.\theusercount}
\newcommand{\ptab}{%
\setcounter{usercount}{\value{table}}%
\addtocounter{usercount}{-1}%
tab.~\thechapter.\theusercount}
\newcommand{\tabref}[1]{tab.~\ref{#1}}
%
% equations commands
%
\newcommand{\cureq}{(\theequation)}
\newcommand{\nxeq}{%
\setcounter{usercount}{\value{equation}}%
\addtocounter{usercount}{1}%
(\thechapter.\theusercount)}
\newcommand{\preeq}{%
\setcounter{usercount}{\value{equation}}%
\addtocounter{usercount}{-1}%
(\thechapter.\theusercount)}
%
% Macro to put picture (in format PICT) inside a figure
%
\newcommand{\pictfig}[3]{
        \begin{minipage}[t][#1][b]{#2}
        \mbox{\special{pict=#3}}
%    \vspace{3cm}
    \end{minipage}
}
%
% Command for section and chapters
%
\newcommand{\capref}[1]{cap.~\ref{#1}}
\newcommand{\secref}[1]{sez.~\ref{#1}}
%
% Macro to create a special environment for function prototypes
% boxed description
%
\newenvironment{prototype}[2]
{% defining what is done by \begin
  \center
  \begin{boxedminipage}[c]{14cm}
  \footnotesize
    \begin{description*}{}{} 
    \item \texttt{\#include <#1>}
    \item \texttt{#2} \par
%   \begin{lstlisting}{}
% #1
% #2
%   \end{lstlisting}
}
{% defining what is done by \end
%  \end{list} 
%  \par 
\end{description*}
\end{boxedminipage}
\vspace{6pt}
\par
\normalsize 
}
\newenvironment{errlist}{\begin{basedescript}{\desclabelwidth{1.5cm}}}
{\end{basedescript}}

%
% Slighty different envirnoment to be used for multi-header, 
% multi-functions boxed description
%
\newcommand{\headdecl}[1]{\item\texttt{\#include <#1>}}
\newcommand{\funcdecl}[1]{\item\texttt{#1}\par}
\newcommand{\bodydesc}[1]{\par \end{description*} #1
 \begin{description*}{}{} \baselineskip=0pt
 \item \vspace{-4pt}
} 
\newenvironment{functions}
{% defining what is done by \begin
  \center
    \begin{boxedminipage}[c]{14cm}
      \footnotesize
    \begin{description*}{}{} 
}
{% defining what is done by \end
      \end{description*}
    \end{boxedminipage}
    \vspace{6pt}
     \par
    \normalsize 
%\break
}
%
% Wrapper for shell command, functions, filenames, links,
% variables, macros,  and everything can be useul, 
%
\newcommand{\cmd}[1]{\texttt{#1}}     % shell command
\newcommand{\code}[1]{\texttt{#1}}    % for simple code
\newcommand{\func}[1]{%
\index{#1@{\tt {#1}}}\texttt{#1}%
}                                     % library function (or system call)
\newcommand{\macro}[1]{\texttt{#1}}   % macro constant
\newcommand{\var}[1]{\texttt{#1}}     % variable 
\newcommand{\file}[1]{\texttt{#1}}    % file name
\newcommand{\link}[1]{\texttt{#1}}    % html link
\newcommand{\ctyp}[1]{\texttt{#1}}    % C standard type
\newcommand{\type}[1]{%
\index{#1@{\tt {#1}}}\texttt{#1}%
}                                     % system type
\newcommand{\param}[1]{\texttt{#1}}   % function parameter
\newcommand{\acr}[1]{\textsl{#1}}     % acrostic (for pid, suid, etc.)


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "gapil"
%%% End: 
