Fix for UBSan build
[platform/upstream/doxygen.git] / doc / doxygen.sty
1 \NeedsTeXFormat{LaTeX2e}
2 \ProvidesPackage{doxygen}
3
4 % Packages used by this style file
5 \RequirePackage{alltt}
6 \RequirePackage{array}
7 \RequirePackage{calc}
8 \RequirePackage{color}
9 \RequirePackage{fancyhdr}
10 \RequirePackage{longtable}
11 \RequirePackage{verbatim}
12 \RequirePackage{ifthen}
13 \RequirePackage{xtab}
14 \RequirePackage{multirow}
15 \RequirePackage[table]{xcolor}
16
17 % Use helvetica font instead of times roman
18 \RequirePackage{helvet}
19 \RequirePackage{sectsty}
20 \RequirePackage{tocloft}
21 \providecommand{\rmdefault}{phv}
22 \providecommand{\bfdefault}{bc}
23
24
25 % Setup fancy headings
26 \pagestyle{fancyplain}
27 \newcommand{\clearemptydoublepage}{%
28   \newpage{\pagestyle{empty}\cleardoublepage}%
29 }
30 \renewcommand{\chaptermark}[1]{%
31   \markboth{#1}{}%
32 }
33 \renewcommand{\sectionmark}[1]{%
34   \markright{\thesection\ #1}%
35 }
36 \fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
37 \fancyhead[CE]{\fancyplain{}{}}
38 \fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
39 \fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
40 \fancyhead[CO]{\fancyplain{}{}}
41 \fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
42 \fancyfoot[LE]{\fancyplain{}{}}
43 \fancyfoot[CE]{\fancyplain{}{}}
44 \fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
45 \fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
46 \fancyfoot[CO]{\fancyplain{}{}}
47 \fancyfoot[RO]{\fancyplain{}{}}
48 %---------- Internal commands used in this style file ----------------
49
50 \newcommand\tabfill[1]{%
51   \dimen@\linewidth%
52   \advance\dimen@\@totalleftmargin%
53   \advance\dimen@-\dimen\@curtab%
54   \parbox[t]\dimen@{\raggedright #1\ifhmode\strut\fi}%
55 }
56
57 \newcommand{\ensurespace}[1]{%
58   \begingroup
59     \setlength{\dimen@}{#1}%
60     \vskip\z@\@plus\dimen@
61     \penalty -100\vskip\z@\@plus -\dimen@
62     \vskip\dimen@
63     \penalty 9999%
64     \vskip -\dimen@
65     \vskip\z@skip % hide the previous |\vskip| from |\addvspace|
66   \endgroup
67 }
68
69 % Generic environment used by all paragraph-based environments defined
70 % below. Note that the command \title{...} needs to be defined inside
71 % those environments!
72 \newenvironment{DoxyDesc}[1]{%
73   \ensurespace{4\baselineskip}%
74   \begin{list}{}%
75   {%
76     \settowidth{\labelwidth}{40pt}%
77     \setlength{\leftmargin}{\labelwidth}%
78     \setlength{\parsep}{0pt}%
79     \setlength{\itemsep}{-4pt}%
80     \renewcommand{\makelabel}{\entrylabel}%
81   }%
82   \item[#1]%
83 }{%
84   \end{list}%
85 }
86
87 %---------- Commands used by doxygen LaTeX output generator ----------
88
89 % Used by <pre> ... </pre>
90 \newenvironment{DoxyPre}{%
91   \small%
92   \begin{alltt}%
93 }{%
94   \end{alltt}%
95   \normalsize%
96 }
97
98 % Used by @code ... @endcode
99 \newenvironment{DoxyCode}{%
100
101
102 \begin{scriptsize}\begin{alltt}%
103 }{%
104 \end{alltt}\end{scriptsize}%
105 }
106
107 % Used by @example, @include, @includelineno and @dontinclude
108 \newenvironment{DoxyCodeInclude}{%
109   \DoxyCode%
110 }{%
111   \endDoxyCode%
112 }
113
114 % Used by @verbatim ... @endverbatim
115 \newenvironment{DoxyVerb}{%
116   \footnotesize%
117   \verbatim%
118 }{%
119   \endverbatim%
120   \normalsize%
121 }
122
123 % Used by @verbinclude
124 \newenvironment{DoxyVerbInclude}{%
125   \DoxyVerb%
126 }{%
127   \endDoxyVerb%
128 }
129
130 % Used by numbered lists (using '-#' or <ol> ... </ol>)
131 \newenvironment{DoxyEnumerate}{%
132   \enumerate%
133 }{%
134   \endenumerate%
135 }
136
137 % Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
138 \newenvironment{DoxyItemize}{%
139   \itemize%
140 }{%
141   \enditemize%
142 }
143
144 % Used by description lists (using <dl> ... </dl>)
145 \newenvironment{DoxyDescription}{%
146   \description%
147 }{%
148   \enddescription%
149 }
150
151 % Used by @image, @dotfile, and @dot ... @enddot
152 % (only if caption is specified)
153 \newenvironment{DoxyImage}{%
154   \begin{figure}[H]%
155   \begin{center}%
156 }{%
157   \end{center}%
158   \end{figure}%
159 }
160
161 % Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
162 % (only if no caption is specified)
163 \newenvironment{DoxyImageNoCaption}{%
164 }{%
165 }
166
167 % Used by @attention
168 \newenvironment{DoxyAttention}[1]{%
169   \begin{DoxyDesc}{#1}%
170 }{%
171   \end{DoxyDesc}%
172 }
173
174 % Used by @author and @authors
175 \newenvironment{DoxyAuthor}[1]{%
176   \begin{DoxyDesc}{#1}%
177 }{%
178   \end{DoxyDesc}%
179 }
180
181 % Used by @date
182 \newenvironment{DoxyDate}[1]{%
183   \begin{DoxyDesc}{#1}%
184 }{%
185   \end{DoxyDesc}%
186 }
187
188 % Used by @invariant
189 \newenvironment{DoxyInvariant}[1]{%
190   \begin{DoxyDesc}{#1}%
191 }{%
192   \end{DoxyDesc}%
193 }
194
195 % Used by @note
196 \newenvironment{DoxyNote}[1]{%
197   \begin{DoxyDesc}{#1}%
198 }{%
199   \end{DoxyDesc}%
200 }
201
202 % Used by @post
203 \newenvironment{DoxyPostcond}[1]{%
204   \begin{DoxyDesc}{#1}%
205 }{%
206   \end{DoxyDesc}%
207 }
208
209 % Used by @pre
210 \newenvironment{DoxyPrecond}[1]{%
211   \begin{DoxyDesc}{#1}%
212 }{%
213   \end{DoxyDesc}%
214 }
215
216 % Used by @copyright
217 \newenvironment{DoxyCopyright}[1]{%
218   \begin{DoxyDesc}{#1}%
219 }{%
220   \end{DoxyDesc}%
221 }
222
223 % Used by @remark
224 \newenvironment{DoxyRemark}[1]{%
225   \begin{DoxyDesc}{#1}%
226 }{%
227   \end{DoxyDesc}%
228 }
229
230 % Used by @return
231 \newenvironment{DoxyReturn}[1]{%
232   \begin{DoxyDesc}{#1}%
233 }{%
234   \end{DoxyDesc}%
235 }
236
237 % Used by @since
238 \newenvironment{DoxySince}[1]{%
239   \begin{DoxyDesc}{#1}%
240 }{%
241   \end{DoxyDesc}%
242 }
243
244 % Used by @see
245 \newenvironment{DoxySeeAlso}[1]{%
246   \begin{DoxyDesc}{#1}%
247 }{%
248   \end{DoxyDesc}%
249 }
250
251 % Used by @version
252 \newenvironment{DoxyVersion}[1]{%
253   \begin{DoxyDesc}{#1}%
254 }{%
255   \end{DoxyDesc}%
256 }
257
258 % Used by @warning
259 \newenvironment{DoxyWarning}[1]{%
260   \begin{DoxyDesc}{#1}%
261 }{%
262   \end{DoxyDesc}%
263 }
264
265 % Used by @internal
266 \newenvironment{DoxyInternal}[1]{%
267   \paragraph*{#1}%
268 }{%
269 }
270
271 % Used by @par and @paragraph
272 \newenvironment{DoxyParagraph}[1]{%
273   \begin{list}{}%
274   {%
275     \settowidth{\labelwidth}{40pt}%
276     \setlength{\leftmargin}{\labelwidth}%
277     \setlength{\parsep}{0pt}%
278     \setlength{\itemsep}{-4pt}%
279     \renewcommand{\makelabel}{\entrylabel}%
280   }%
281   \item[#1]%
282 }{%
283   \end{list}%
284 }
285
286 % Used by parameter lists
287 \newenvironment{DoxyParams}[2][]{%
288   \begin{DoxyDesc}{#2}%
289     \item[] \hspace{\fill} \vspace{-40pt}%
290     \settowidth{\labelwidth}{40pt}%
291     \setlength{\LTleft}{0pt}%
292     \setlength{\tabcolsep}{0.01\textwidth}%
293     \ifthenelse{\equal{#1}{}}%
294     {\begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
295                         p{0.815\textwidth}|}}%
296     {\ifthenelse{\equal{#1}{1}}%
297       {\begin{longtable}{|>{\centering}p{0.10\textwidth}|%
298                          >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
299                          p{0.685\textwidth}|}}%
300       {\begin{longtable}{|>{\centering}p{0.10\textwidth}|%
301                          >{\centering\hspace{0pt}}p{0.15\textwidth}|%
302                          >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
303                          p{0.515\textwidth}|}}%
304     }\hline%
305 }{%
306     \end{longtable}%
307   \end{DoxyDesc}%
308 }
309
310 % Used for fields of simple structs
311 \newenvironment{DoxyFields}[1]{%
312   \begin{DoxyDesc}{#1}%
313     \item[] \hspace{\fill} \vspace{-40pt}%
314     \settowidth{\labelwidth}{40pt}%
315     \setlength{\LTleft}{0pt}%
316     \setlength{\tabcolsep}{0.01\textwidth}%
317     \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
318                          p{0.15\textwidth}|%
319                          p{0.635\textwidth}|}%
320     \hline%
321 }{%
322     \end{longtable}%
323   \end{DoxyDesc}%
324 }
325
326 % is used for parameters within a detailed function description
327 \newenvironment{DoxyParamCaption}{%
328   \renewcommand{\item}[2][]{##1 {\em ##2}}%
329   }{%
330 }
331
332 % Used by return value lists
333 \newenvironment{DoxyRetVals}[1]{%
334   \begin{DoxyDesc}{#1}%
335     \begin{description}%
336       \item[] \hspace{\fill} \vspace{-25pt}%
337       \setlength{\tabcolsep}{0.01\textwidth}%
338       \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
339                           p{0.77\textwidth}|}%
340       \hline%
341 }{%
342       \end{longtable}%
343     \end{description}%
344   \end{DoxyDesc}%
345 }
346
347 % Used by exception lists
348 \newenvironment{DoxyExceptions}[1]{%
349   \begin{DoxyDesc}{#1}%
350     \begin{description}%
351       \item[] \hspace{\fill} \vspace{-25pt}%
352       \definecolor{tableShade}{HTML}{F8F8F8}%
353       \rowcolors{1}{white}{tableShade}%
354       \arrayrulecolor{gray}%
355       \setlength{\tabcolsep}{0.01\textwidth}%
356       \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
357                           p{0.77\textwidth}|}%
358       \hline%
359 }{%
360       \end{longtable}%
361     \end{description}%
362   \end{DoxyDesc}%
363 }
364
365 % Used by template parameter lists
366 \newenvironment{DoxyTemplParams}[1]{%
367   \begin{DoxyDesc}{#1}%
368     \begin{description}%
369       \item[] \hspace{\fill} \vspace{-25pt}%
370       \definecolor{tableShade}{HTML}{F8F8F8}%
371       \rowcolors{1}{white}{tableShade}%
372       \arrayrulecolor{gray}%
373       \setlength{\tabcolsep}{0.01\textwidth}%
374       \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
375                           p{0.77\textwidth}|}%
376       \hline%
377 }{%
378       \end{longtable}%
379     \end{description}%
380   \end{DoxyDesc}%
381 }
382
383 \newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
384 \newenvironment{DoxyCompactList}
385 {\begin{list}{}{
386   \setlength{\leftmargin}{0.5cm}
387   \setlength{\itemsep}{0pt}
388   \setlength{\parsep}{0pt}
389   \setlength{\topsep}{0pt}
390   \renewcommand{\makelabel}{\hfill}}}
391 {\end{list}}
392 \newenvironment{DoxyCompactItemize}
393 {
394   \begin{itemize}
395   \setlength{\itemsep}{-3pt}
396   \setlength{\parsep}{0pt}
397   \setlength{\topsep}{0pt}
398   \setlength{\partopsep}{0pt}
399 }
400 {\end{itemize}}
401 \newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
402 \newlength{\tmplength}
403 \newenvironment{TabularC}[1]
404 {
405 \setlength{\tmplength}
406      {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
407       \par\begin{xtabular*}{\linewidth}
408              {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
409 }
410 {\end{xtabular*}\par}
411 \newcommand{\entrylabel}[1]{
412    {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{%
413    \usefont{OT1}{phv}{bc}{n}\color{darkgray}#1}\vspace{1.5\baselineskip}}}}
414 \newenvironment{Desc}
415 {\begin{list}{}
416   {
417     \settowidth{\labelwidth}{40pt}
418     \setlength{\leftmargin}{\labelwidth}
419     \setlength{\parsep}{0pt}
420     \setlength{\itemsep}{-4pt}
421     \renewcommand{\makelabel}{\entrylabel}
422   }
423 }
424 {\end{list}}
425 \newsavebox{\xrefbox}
426 \newlength{\xreflength}
427 \newcommand{\xreflabel}[1]{%
428   \sbox{\xrefbox}{#1}%
429   \setlength{\xreflength}{\wd\xrefbox}%
430   \ifthenelse{\xreflength>\labelwidth}{%
431     \begin{minipage}{\textwidth}%
432       \setlength{\parindent}{0pt}%
433       \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
434     \end{minipage}%
435   }{%
436    \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
437   }}%
438 \newenvironment{DoxyRefList}{%
439   \begin{list}{}{%
440     \setlength{\labelwidth}{10pt}%
441     \setlength{\leftmargin}{\labelwidth}%
442     \addtolength{\leftmargin}{\labelsep}%
443     \renewcommand{\makelabel}{\xreflabel}%
444     }%
445   }%
446 {\end{list}}
447 \newenvironment{DoxyRefDesc}[1]
448 {\begin{list}{}{%
449   \renewcommand\makelabel[1]{\textbf{##1}}
450   \settowidth\labelwidth{\makelabel{#1}}
451   \setlength\leftmargin{\labelwidth+\labelsep}}}
452 {\end{list}}
453 \newenvironment{Indent}
454   {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
455       \item[]\ignorespaces}
456   {\unskip\end{list}}
457 \setlength{\parindent}{0cm}
458 \setlength{\parskip}{0.2cm}
459 \addtocounter{secnumdepth}{2}
460 \usepackage[T1]{fontenc}
461 \makeatletter
462 \renewcommand{\paragraph}{\@startsection{paragraph}{4}{0ex}%
463    {-1.0ex}%
464    {1.0ex}%
465    {\usefont{OT1}{phv}{bc}{n}\color{darkgray}}}
466 \renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{0ex}%
467    {-1.0ex}%
468    {1.0ex}%
469    {\usefont{OT1}{phv}{bc}{n}\color{darkgray}}}
470 \makeatother
471 \allsectionsfont{\usefont{OT1}{phv}{bc}{n}\selectfont\color{darkgray}}
472 \stepcounter{secnumdepth}
473 \stepcounter{tocdepth}
474 \definecolor{comment}{rgb}{0.5,0.0,0.0}
475 \definecolor{keyword}{rgb}{0.0,0.5,0.0}
476 \definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
477 \definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
478 \definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
479 \definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
480 \definecolor{charliteral}{rgb}{0.0,0.5,0.5}
481 \definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
482 \definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
483 \definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
484 \definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}