
\begin{DoxyItemize}
\item infos = Information about hexcode plugin is in keys below
\item infos/author = Markus Raab \href{mailto:elektra@libelektra.org}{\tt elektra@libelektra.\+org}
\item infos/licence = B\+S\+D
\item infos/needs =
\item infos/provides = code
\item infos/placements = postgetstorage presetstorage
\item infos/description = Decoding/\+Encoding engine which escapes unwanted characters.
\end{DoxyItemize}

This code plugin translates each unwanted character into a two cypher hexadecimal character. The escape character itself always needs to be encoded, otherwise the plugin would try to interpret the following two characters in the text as a hexadecimal sequence.

\subsection*{Restrictions}


\begin{DoxyItemize}
\item The escape character itself always needs to be encoded, otherwise the plugin would try to interpret the following two characters in the text as a hexadecimal sequence.
\item The length of the resulting string increases. In the worst case the hexcode plugin makes the value three times larger.
\end{DoxyItemize}

\subsection*{Example}

Consider the following {\itshape value} of an key\+: \begin{DoxyVerb}    value=abc xyz
\end{DoxyVerb}


Assuming the escape character is \% the input would be encoded to\+: \begin{DoxyVerb}    value%3Dabc%20xyz
\end{DoxyVerb}


The disadvantage is that the length of the resulting string increases. In the worst case the hexcode plugin makes the value three times larger.

\subsection*{Usage}

Add {\ttfamily ccode} to {\ttfamily infos/needs} for any plugin that you want to be filtered by ccode.

Then, additionally define all characters you need to be escaped below {\ttfamily config/needs/chars} in your contract, e.\+g\+: \begin{DoxyVerb}    config/needs/chars/20 = 61
\end{DoxyVerb}


to transform a space (dec 20) to the escaped letter a (dec 61).

The escape letter itself can be changed by setting\+: \begin{DoxyVerb}    config/needs/escape\end{DoxyVerb}
 