\doxysection{comps\+\_\+doc.\+h File Reference}
\hypertarget{comps__doc_8h}{}\label{comps__doc_8h}\index{comps\_doc.h@{comps\_doc.h}}


\doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} header file.  


{\ttfamily \#include "{}comps\+\_\+obj.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+objdict.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+objlist.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+log.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+types.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+docgroup.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+doccategory.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+docenv.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+validate.\+h"{}}\newline
{\ttfamily \#include "{}comps\+\_\+default.\+h"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{comps__doc_8h_a092572f00d2a60147154c487098d4e8b}{comps\+\_\+doc\+\_\+create}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc, \mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}args)
\item 
void \mbox{\hyperlink{comps__doc_8h_a164fd1441fb6d1208d7b96e023780d27}{comps\+\_\+doc\+\_\+copy}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc\+\_\+dst, \mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc\+\_\+src)
\item 
void \mbox{\hyperlink{comps__doc_8h_a2ffd011d084239ccfd1e9fc09597c974}{comps\+\_\+doc\+\_\+destroy}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc)
\item 
signed char \mbox{\hyperlink{comps__doc_8h_ac7633c2f643b3c7ec788d3d8917b0c7d}{comps\+\_\+doc\+\_\+cmp\+\_\+u}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj1, \mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj2)
\item 
signed char \mbox{\hyperlink{comps__doc_8h_ab3f7801a8f7b84909bdcdd15f2c54cce}{comps2xml\+\_\+f}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc, char \texorpdfstring{$\ast$}{*}filename, char stdoutredirect, COMPS\+\_\+\+XMLOptions \texorpdfstring{$\ast$}{*}xml\+\_\+options, COMPS\+\_\+\+Defaults\+Options \texorpdfstring{$\ast$}{*}def\+\_\+options)
\item 
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__doc_8h_a00711382df5ef2ed402d155535312c1e}{comps2xml\+\_\+str}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}doc, COMPS\+\_\+\+XMLOptions \texorpdfstring{$\ast$}{*}options, COMPS\+\_\+\+Defaults\+Options \texorpdfstring{$\ast$}{*}def\+\_\+options)
\item 
\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__doc_8h_a025c1cdad40f643b98411f77dee92fa4}{comps\+\_\+doc\+\_\+union}} (\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}c1, \mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}c2)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} header file. 

\doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object support union operation. Read more about \doxylink{}{Libcomps objects unioning } \begin{DoxySeeAlso}{See also}
\doxylink{group__COMPS__Doc__getters}{COMPS\+\_\+\+Doc getters} 

\doxylink{group__COMPS__Doc__setters}{COMPS\+\_\+\+Doc setters} 

\doxylink{group__COMPS__Doc__adders}{COMPS\+\_\+\+Doc adders} 
\end{DoxySeeAlso}


\label{doc-func-members}
\Hypertarget{comps__doc_8h_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{comps__doc_8h_ab3f7801a8f7b84909bdcdd15f2c54cce}\index{comps\_doc.h@{comps\_doc.h}!comps2xml\_f@{comps2xml\_f}}
\index{comps2xml\_f@{comps2xml\_f}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps2xml\_f()}{comps2xml\_f()}}
{\footnotesize\ttfamily \label{comps__doc_8h_ab3f7801a8f7b84909bdcdd15f2c54cce} 
signed char comps2xml\+\_\+f (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{filename}{, }\item[{char}]{stdoutredirect}{, }\item[{COMPS\+\_\+\+XMLOptions \texorpdfstring{$\ast$}{*}}]{xml\+\_\+options}{, }\item[{COMPS\+\_\+\+Defaults\+Options \texorpdfstring{$\ast$}{*}}]{def\+\_\+options}{}\end{DoxyParamCaption})}

Write XML representation to file 
\begin{DoxyParams}{Parameters}
{\em doc} & \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \\
\hline
{\em filename} & filename where to write \\
\hline
{\em stdoutredirect} & in non-\/zero all warning and error messages will be redirected to stdout, otherwise will be stored in doc-\/\texorpdfstring{$>$}{>}log only \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if there wasn\textquotesingle{}t any errors, 1 if there was non-\/fatal errors -\/1 if fatal error emerge during xml generation 
\end{DoxyReturn}
\Hypertarget{comps__doc_8h_a00711382df5ef2ed402d155535312c1e}\index{comps\_doc.h@{comps\_doc.h}!comps2xml\_str@{comps2xml\_str}}
\index{comps2xml\_str@{comps2xml\_str}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps2xml\_str()}{comps2xml\_str()}}
{\footnotesize\ttfamily \label{comps__doc_8h_a00711382df5ef2ed402d155535312c1e} 
char \texorpdfstring{$\ast$}{*} comps2xml\+\_\+str (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc}{, }\item[{COMPS\+\_\+\+XMLOptions \texorpdfstring{$\ast$}{*}}]{options}{, }\item[{COMPS\+\_\+\+Defaults\+Options \texorpdfstring{$\ast$}{*}}]{def\+\_\+options}{}\end{DoxyParamCaption})}

Generate XML string representating \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} structure 
\begin{DoxyParams}{Parameters}
{\em doc} & \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XML string 
\end{DoxyReturn}
\Hypertarget{comps__doc_8h_ac7633c2f643b3c7ec788d3d8917b0c7d}\index{comps\_doc.h@{comps\_doc.h}!comps\_doc\_cmp\_u@{comps\_doc\_cmp\_u}}
\index{comps\_doc\_cmp\_u@{comps\_doc\_cmp\_u}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps\_doc\_cmp\_u()}{comps\_doc\_cmp\_u()}}
{\footnotesize\ttfamily \label{comps__doc_8h_ac7633c2f643b3c7ec788d3d8917b0c7d} 
signed char comps\+\_\+doc\+\_\+cmp\+\_\+u (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj1}{, }\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj2}{}\end{DoxyParamCaption})}

comparator callback for \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \Hypertarget{comps__doc_8h_a164fd1441fb6d1208d7b96e023780d27}\index{comps\_doc.h@{comps\_doc.h}!comps\_doc\_copy@{comps\_doc\_copy}}
\index{comps\_doc\_copy@{comps\_doc\_copy}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps\_doc\_copy()}{comps\_doc\_copy()}}
{\footnotesize\ttfamily \label{comps__doc_8h_a164fd1441fb6d1208d7b96e023780d27} 
void comps\+\_\+doc\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc\+\_\+dst}{, }\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc\+\_\+src}{}\end{DoxyParamCaption})}

copy callback for \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \Hypertarget{comps__doc_8h_a092572f00d2a60147154c487098d4e8b}\index{comps\_doc.h@{comps\_doc.h}!comps\_doc\_create@{comps\_doc\_create}}
\index{comps\_doc\_create@{comps\_doc\_create}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps\_doc\_create()}{comps\_doc\_create()}}
{\footnotesize\ttfamily \label{comps__doc_8h_a092572f00d2a60147154c487098d4e8b} 
void comps\+\_\+doc\+\_\+create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc}{, }\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{args}{}\end{DoxyParamCaption})}

constructor callback for \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object. \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} is \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate. Use \doxylink{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de}{comps\+\_\+object\+\_\+create()} or COMPS\+\_\+\+OBJECT\+\_\+\+CREATE for construction instead


\begin{DoxyParams}{Parameters}
{\em doc} & allocated \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \\
\hline
{\em args} & array of constructor arguments. \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} constructor accepts encoding argument as \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} object only so array need not end with sentinel item \\
\hline
\end{DoxyParams}
\Hypertarget{comps__doc_8h_a2ffd011d084239ccfd1e9fc09597c974}\index{comps\_doc.h@{comps\_doc.h}!comps\_doc\_destroy@{comps\_doc\_destroy}}
\index{comps\_doc\_destroy@{comps\_doc\_destroy}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps\_doc\_destroy()}{comps\_doc\_destroy()}}
{\footnotesize\ttfamily \label{comps__doc_8h_a2ffd011d084239ccfd1e9fc09597c974} 
void comps\+\_\+doc\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{doc}{}\end{DoxyParamCaption})}

destructor callback for \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object. \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} is \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate. Use \doxylink{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de}{comps\+\_\+object\+\_\+create()} for construction instead \Hypertarget{comps__doc_8h_a025c1cdad40f643b98411f77dee92fa4}\index{comps\_doc.h@{comps\_doc.h}!comps\_doc\_union@{comps\_doc\_union}}
\index{comps\_doc\_union@{comps\_doc\_union}!comps\_doc.h@{comps\_doc.h}}
\doxysubsubsection{\texorpdfstring{comps\_doc\_union()}{comps\_doc\_union()}}
{\footnotesize\ttfamily \label{comps__doc_8h_a025c1cdad40f643b98411f77dee92fa4} 
\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*} comps\+\_\+doc\+\_\+union (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{c1}{, }\item[{\mbox{\hyperlink{structCOMPS__Doc}{COMPS\+\_\+\+Doc}} \texorpdfstring{$\ast$}{*}}]{c2}{}\end{DoxyParamCaption})}

Union two \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} structures \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} structures are unioned as unioning it\textquotesingle{}s subparts (group, categories, environments). Object with same \textquotesingle{}id\textquotesingle{} attribute are regarded as equal and unioned by with each other


\begin{DoxyParams}{Parameters}
{\em c1} & \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \\
\hline
{\em c2} & \doxylink{structCOMPS__Doc}{COMPS\+\_\+\+Doc} object \\
\hline
\end{DoxyParams}
