\label{doc_decisions_elektra_prefix_md_md_doc_decisions_elektra_prefix}%
\Hypertarget{doc_decisions_elektra_prefix_md_md_doc_decisions_elektra_prefix}%
 \hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1771}{}\doxysection{Problem}\label{doc_decisions_elektra_prefix_md_autotoc_md1771}
Some names, such as kdb\+Open, key\+New are so generic that other libraries might also use them.\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1772}{}\doxysection{Constraints}\label{doc_decisions_elektra_prefix_md_autotoc_md1772}

\begin{DoxyItemize}
\item In C such libraries, containing the same external identifier, cannot be used together.
\item The \href{http://www.open-std.org/jtc1/sc22/wg14/}{\texttt{ C99 standard, section 5.\+2.\+4.\+1}} gives following limit\+: 31 significant initial characters in an external identifier (each universal character name specifying a short identifier of 0000FFFF or less is considered 6 characters, each universal character name specifying a short identifier of 00010000 or more is considered 10 characters, and each extended source character is considered the same number of characters as the corresponding universal character name, if any)
\end{DoxyItemize}\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1773}{}\doxysection{Assumptions}\label{doc_decisions_elektra_prefix_md_autotoc_md1773}
\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1774}{}\doxysection{Considered Alternatives}\label{doc_decisions_elektra_prefix_md_autotoc_md1774}

\begin{DoxyItemize}
\item leave it as is
\item use macros to have short names for actually longer external identifiers
\end{DoxyItemize}\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1775}{}\doxysection{Decision}\label{doc_decisions_elektra_prefix_md_autotoc_md1775}
Rename all functions to start with elektra.\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1776}{}\doxysection{Rationale}\label{doc_decisions_elektra_prefix_md_autotoc_md1776}

\begin{DoxyItemize}
\item This makes it clear which functions come from Elektra.
\item Unifies all function names within Elektra (including core).
\item Avoids collisions with other libs.
\end{DoxyItemize}\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1777}{}\doxysection{Implications}\label{doc_decisions_elektra_prefix_md_autotoc_md1777}

\begin{DoxyItemize}
\item Changes in basically every application and tool, but this is automated with a refactoring tool @kodebach writes.
\end{DoxyItemize}\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1778}{}\doxysection{Related Decisions}\label{doc_decisions_elektra_prefix_md_autotoc_md1778}
\hypertarget{doc_decisions_elektra_prefix_md_autotoc_md1779}{}\doxysection{Notes}\label{doc_decisions_elektra_prefix_md_autotoc_md1779}
