\hypertarget{group__Eina__Prefix__Group}{}\section{Prefix}
\label{group__Eina__Prefix__Group}\index{Prefix@{Prefix}}


This group discusses the functions that provide the ability to determine the runtime location of a software package.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Eina\+\_\+\+Prefix \hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix}
\begin{DoxyCompactList}\small\item\em An opaque type for prefix handle. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$ \hyperlink{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{eina\+\_\+prefix\+\_\+new} (const char $\ast$argv0, void $\ast$symbol, const char $\ast$envprefix, const char $\ast$sharedir, const char $\ast$magicsharefile, const char $\ast$pkg\+\_\+bin, const char $\ast$pkg\+\_\+lib, const char $\ast$pkg\+\_\+data, const char $\ast$pkg\+\_\+locale)
\begin{DoxyCompactList}\small\item\em Creates a new prefix handle given that some input information is provided. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Prefix__Group_ga65e0df5dc859d63c95b885cc1682be10}{eina\+\_\+prefix\+\_\+free} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Frees the prefix object and all its contents. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Prefix__Group_ga8892f868975666602d7b0d9b23ee1a5e}{eina\+\_\+prefix\+\_\+get} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Gets the prefix base directory. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Prefix__Group_ga0330375b538fe932aa892386d9241823}{eina\+\_\+prefix\+\_\+bin\+\_\+get} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Gets the binary installation directory. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Prefix__Group_ga52216034692a523f90c5d90167041a48}{eina\+\_\+prefix\+\_\+lib\+\_\+get} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Gets the library installation directory. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Prefix__Group_ga26034e5a259d72fc535278cabf90a410}{eina\+\_\+prefix\+\_\+data\+\_\+get} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Gets the data installation directory. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Prefix__Group_ga331ef2cf3447036408a0a0d21c666cce}{eina\+\_\+prefix\+\_\+locale\+\_\+get} (\hyperlink{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{Eina\+\_\+\+Prefix} $\ast$pfx)
\begin{DoxyCompactList}\small\item\em Gets the locale installation directory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This group discusses the functions that provide the ability to determine the runtime location of a software package. 

\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}


\subsection{Typedef Documentation}
\index{Prefix@{Prefix}!Eina\+\_\+\+Prefix@{Eina\+\_\+\+Prefix}}
\index{Eina\+\_\+\+Prefix@{Eina\+\_\+\+Prefix}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{Eina\+\_\+\+Prefix}{Eina_Prefix}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Prefix}}\hypertarget{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}{}\label{group__Eina__Prefix__Group_ga5aa9df62e665fe6cc10d10d5ea63e2da}


An opaque type for prefix handle. 

This is a prefix object that is returned by \hyperlink{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{eina\+\_\+prefix\+\_\+new()} when trying to determine the runtime location of the software in question so that other data files such as images, sound files, other executable utilities, libraries, modules, and locale files can be found.

\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}


\subsection{Function Documentation}
\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+new@{eina\+\_\+prefix\+\_\+new}}
\index{eina\+\_\+prefix\+\_\+new@{eina\+\_\+prefix\+\_\+new}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+new(const char $\ast$argv0, void $\ast$symbol, const char $\ast$envprefix, const char $\ast$sharedir, const char $\ast$magicsharefile, const char $\ast$pkg\+\_\+bin, const char $\ast$pkg\+\_\+lib, const char $\ast$pkg\+\_\+data, const char $\ast$pkg\+\_\+locale)}{eina_prefix_new(const char *argv0, void *symbol, const char *envprefix, const char *sharedir, const char *magicsharefile, const char *pkg_bin, const char *pkg_lib, const char *pkg_data, const char *pkg_locale)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Prefix}$\ast$ eina\+\_\+prefix\+\_\+new (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{argv0, }
\item[{void $\ast$}]{symbol, }
\item[{const char $\ast$}]{envprefix, }
\item[{const char $\ast$}]{sharedir, }
\item[{const char $\ast$}]{magicsharefile, }
\item[{const char $\ast$}]{pkg\+\_\+bin, }
\item[{const char $\ast$}]{pkg\+\_\+lib, }
\item[{const char $\ast$}]{pkg\+\_\+data, }
\item[{const char $\ast$}]{pkg\+\_\+locale}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{}\label{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}


Creates a new prefix handle given that some input information is provided. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em argv0} & If this is an executable this is argv\mbox{[}0\mbox{]} of the binary, otherwise {\ttfamily N\+U\+LL} if it is used from a shared library \\
\hline
\mbox{\tt in}  & {\em symbol} & A symbol (function for example) inside the binary or library to find the source location of, provide {\ttfamily N\+U\+LL} if not used \\
\hline
\mbox{\tt in}  & {\em envprefix} & The prefix to any environment variable that may override prefix detection and give the exact location of the software \\
\hline
\mbox{\tt in}  & {\em sharedir} & The directory inside the standard share or data dir where the software stores data files \\
\hline
\mbox{\tt in}  & {\em magicsharefile} & A magic file to check existence of and determine whether the prefix found is correct, and it must be located in the data dir under the share dir provided above, or {\ttfamily N\+U\+LL} if the check is not to be done \\
\hline
\mbox{\tt in}  & {\em pkg\+\_\+bin} & The compile-\/time binary install dir \\
\hline
\mbox{\tt in}  & {\em pkg\+\_\+lib} & The compile-\/time library install dir \\
\hline
\mbox{\tt in}  & {\em pkg\+\_\+data} & The compile-\/time share/data install dir \\
\hline
\mbox{\tt in}  & {\em pkg\+\_\+locale} & The compile-\/time locale install dir \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The prefix handle, otherwise {\ttfamily N\+U\+LL} on failure
\end{DoxyReturn}
Applications and libraries are most often not just single executables nor single shared library binaries, but also come with extra modules that they have to load, extra binary utilities they need to run, or have data files that they need to load. A very primitive application A\+S\+S\+U\+M\+ES a fixed install location at compile-\/time, but this disallows the ability to re-\/locate the application (or library) somewhere else after compilation (if you run out of space on a given disk, partition etc. for example), or necessitate the need for having to maintain environment variables for every piece of software to let it know its location, or have to use large sets of symlinks pointing from the compiled location to the new one.

Being re-\/locatable at runtime allows much easier distribution and installation into places like the users own home directory, instead of on a system partition, if the developer wishes for easier distribution of pre-\/compiled binaries.

The prefix system is designed to locate where the given software is installed (under a common prefix) at runtime and then report specific locations of this prefix and common directories inside this prefix like the binary, library, data, and locale directories.

To do this some information needs to be provided to \hyperlink{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{eina\+\_\+prefix\+\_\+new()}. If you have developed a binary executable, then provide argv\mbox{[}0\mbox{]} as the {\itshape argv0} argument. This plus the P\+A\+TH environment variable helps the prefix system to determine its location. Call \hyperlink{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{eina\+\_\+prefix\+\_\+new()} early on before you change the working directory or anything about argv\mbox{[}0\mbox{]}, so it gets accurate information. It uses the first argument, being the executable itself, to look in absolute directories, relative paths, and P\+A\+TH to see if it finds the right executable to determine just where the actual binary is installed and being run from. If you develop a share library, just pass {\ttfamily N\+U\+LL} as {\itshape argv0}.

\begin{DoxyNote}{Note}
It would prefer to use the {\itshape symbol} function to determine the location as that function is unique inside the application and try and trace back which file this function comes from (be it a binary or shared library) as this avoids more expensive searches via {\itshape argv0}. It uses this symbol if given in preference to {\itshape argv0}.

The {\itshape envprefix} parameter, provides a string prefix to prepend before environment variables to allow a fallback to specific environment variables to locate the software. For example, if \char`\"{}\+M\+Y\+A\+P\+P\char`\"{} is provided as the prefix, then it uses \char`\"{}\+M\+Y\+A\+P\+P\+\_\+\+P\+R\+E\+F\+I\+X\char`\"{} as a master environment variable to specify the exact install prefix for the software, or more specific environment variables like \char`\"{}\+M\+Y\+A\+P\+P\+\_\+\+B\+I\+N\+\_\+\+D\+I\+R\char`\"{}, \char`\"{}\+M\+Y\+A\+P\+P\+\_\+\+L\+I\+B\+\_\+\+D\+I\+R\char`\"{}, \char`\"{}\+M\+Y\+A\+P\+P\+\_\+\+D\+A\+T\+A\+\_\+\+D\+I\+R\char`\"{}, and \char`\"{}\+M\+Y\+A\+P\+P\+\_\+\+L\+O\+C\+A\+L\+E\+\_\+\+D\+I\+R\char`\"{}, which can be set by the user or scripts before launching. If not provided (N\+U\+LL) environment variables are not used to override compiled-\/in defaults or auto detections.

The {\itshape sharedir} string provides a subdirectory inside the system shared data dir for data files. For example, if the system dir is /usr/local/share then this dir name is appended, creating /usr/local/share/appname if this dir is the \char`\"{}appname\char`\"{} string. It is expected that the application or library installs data files in this directory.

The {\itshape magicsharefile} is a filename or path of something inside the share or data dir to be used to test that the prefix detection worked. For example, your app installs a wallpaper image as /usr/local/share/appname/images/wallpaper.jpg and so to check that this worked, provide \char`\"{}images/wallpaper.\+jpg\char`\"{} as the {\itshape magicsharefile} string so detection can know if it worked or not.

The {\itshape pkg\+\_\+bin}, {\itshape pkg\+\_\+lib}, {\itshape pkg\+\_\+data}, and {\itshape pkg\+\_\+locale} are compile-\/time strings (the kind standard autoconf/automake define) to be passed in so that there can be a fallback to compiled-\/in defaults as well as use them to determine actual names of directories like libdirs maybe changing to be lib32 or lib64 instead of lib, and so on.
\end{DoxyNote}
Compile the following defining at compile time your prefixes like (example)\+:

gcc appname.\+c -\/o appname -\/\+D\+P\+A\+C\+K\+A\+G\+E\+\_\+\+B\+I\+N\+\_\+\+D\+IR=\textbackslash{}\char`\"{}/usr/local/bin\textbackslash{}\char`\"{} -\/\+D\+P\+A\+C\+K\+A\+G\+E\+\_\+\+L\+I\+B\+\_\+\+D\+IR=\textbackslash{}\char`\"{}/usr/local/lib\textbackslash{}\char`\"{} -\/\+D\+P\+A\+C\+K\+A\+G\+E\+\_\+\+D\+A\+T\+A\+\_\+\+D\+IR=\textbackslash{}\char`\"{}/usr/local/share/appname\textbackslash{}\char`\"{} -\/\+D\+L\+O\+C\+A\+L\+E\+\_\+\+D\+IR=\textbackslash{}\char`\"{}/usr/local/share/locale\textbackslash{}\char`\"{} {\ttfamily pkg-\/config -\/-\/cflags -\/-\/libs eina}

(of course add appropriate compile flags to linking and note that locale dir is optional. If you don\textquotesingle{}t need it, provide data dir as the locale dir. Also note that the magicsharefile is optional for testing and ensuring that the prefix check is correct. This file must be installed in the application data dir (eg /usr/local/share/appname) and be referred to using a unix-\/style relative path from that dir, eg directory/filename.\+png)


\begin{DoxyCode}
1 #include <Eina.h>
2 
3 static Eina\_Prefix *pfx = NULL;
4 
5 int main(int argc, char **argv)
6 \{
7   eina\_init();
8 
9   pfx = eina\_prefix\_new(argv[0], main, "APPNAME", "appname", NULL,
10                         PACKAGE\_BIN\_DIR, PACKAGE\_LIB\_DIR,
11                         PACKAGE\_DATA\_DIR, LOCALE\_DIR);
12   if (!pfx) printf("ERROR: Critical error in finding prefix\(\backslash\)n");
13   printf("install prefix is: %s\(\backslash\)n", eina\_prefix\_get(pfx));
14   printf("binaries are in: %s\(\backslash\)n", eina\_prefix\_bin\_get(pfx));
15   printf("libraries are in: %s\(\backslash\)n", eina\_prefix\_lib\_get(pfx));
16   printf("data files are in: %s\(\backslash\)n", eina\_prefix\_data\_get(pfx));
17   eina\_prefix\_free(pfx);
18 
19   eina\_shutdown();
20 \}
\end{DoxyCode}


\begin{DoxySince}{Since}
1.\+1.\+0
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Prefix__Group_ga65e0df5dc859d63c95b885cc1682be10}{eina\+\_\+prefix\+\_\+free()} 
\end{DoxySeeAlso}


References alloca(), D\+BG, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+P\+A\+T\+H\+\_\+\+S\+E\+P\+\_\+C, E\+I\+N\+A\+\_\+\+P\+A\+T\+H\+\_\+\+S\+E\+P\+\_\+S, E\+I\+N\+A\+\_\+\+T\+R\+UE, I\+NF, and W\+RN.



Referenced by ecore\+\_\+init(), edje\+\_\+edit\+\_\+script\+\_\+program\+\_\+set(), eeze\+\_\+sensor\+\_\+async\+\_\+read(), elua\+\_\+init(), emotion\+\_\+init(), and ethumb\+\_\+init().

\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+free@{eina\+\_\+prefix\+\_\+free}}
\index{eina\+\_\+prefix\+\_\+free@{eina\+\_\+prefix\+\_\+free}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+free(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_free(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+prefix\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga65e0df5dc859d63c95b885cc1682be10}{}\label{group__Eina__Prefix__Group_ga65e0df5dc859d63c95b885cc1682be10}


Frees the prefix object and all its contents. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object\\
\hline
\end{DoxyParams}
This function frees the prefix object and all its allocated content. It is invalid to access the object after it is freed.

\begin{DoxySince}{Since}
1.\+1.\+0
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Prefix__Group_ga93628783bb571b56b4e9bc55a18187ad}{eina\+\_\+prefix\+\_\+new()} 
\end{DoxySeeAlso}


Referenced by ecore\+\_\+shutdown(), edje\+\_\+edit\+\_\+script\+\_\+program\+\_\+set(), eeze\+\_\+sensor\+\_\+async\+\_\+read(), elua\+\_\+shutdown(), emotion\+\_\+init(), emotion\+\_\+shutdown(), ethumb\+\_\+init(), and ethumb\+\_\+shutdown().

\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+get@{eina\+\_\+prefix\+\_\+get}}
\index{eina\+\_\+prefix\+\_\+get@{eina\+\_\+prefix\+\_\+get}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+get(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_get(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+prefix\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga8892f868975666602d7b0d9b23ee1a5e}{}\label{group__Eina__Prefix__Group_ga8892f868975666602d7b0d9b23ee1a5e}


Gets the prefix base directory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The base prefix (eg \char`\"{}/usr/local\char`\"{}, \char`\"{}/usr\char`\"{}, \char`\"{}/opt/appname\char`\"{} or \char`\"{}/home/user/myapps/appname\char`\"{} etc.) that the software resides in at runtime
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}
\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+bin\+\_\+get@{eina\+\_\+prefix\+\_\+bin\+\_\+get}}
\index{eina\+\_\+prefix\+\_\+bin\+\_\+get@{eina\+\_\+prefix\+\_\+bin\+\_\+get}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+bin\+\_\+get(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_bin_get(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+prefix\+\_\+bin\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga0330375b538fe932aa892386d9241823}{}\label{group__Eina__Prefix__Group_ga0330375b538fe932aa892386d9241823}


Gets the binary installation directory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The location of installed binaries (eg \char`\"{}/usr/local/bin\char`\"{}, \char`\"{}/usr/bin\char`\"{}, \char`\"{}/opt/appname/bin\char`\"{}, \char`\"{}/home/user/myapps/appname/bin\char`\"{} etc.)
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}


Referenced by edje\+\_\+edit\+\_\+script\+\_\+program\+\_\+set().

\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+lib\+\_\+get@{eina\+\_\+prefix\+\_\+lib\+\_\+get}}
\index{eina\+\_\+prefix\+\_\+lib\+\_\+get@{eina\+\_\+prefix\+\_\+lib\+\_\+get}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+lib\+\_\+get(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_lib_get(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+prefix\+\_\+lib\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga52216034692a523f90c5d90167041a48}{}\label{group__Eina__Prefix__Group_ga52216034692a523f90c5d90167041a48}


Gets the library installation directory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The location of installed binaries (eg \char`\"{}/usr/local/lib\char`\"{}, \char`\"{}/usr/lib32\char`\"{}, \char`\"{}/opt/appname/lib64\char`\"{}, \char`\"{}/home/user/myapps/appname/lib\char`\"{} etc.)
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}
\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+data\+\_\+get@{eina\+\_\+prefix\+\_\+data\+\_\+get}}
\index{eina\+\_\+prefix\+\_\+data\+\_\+get@{eina\+\_\+prefix\+\_\+data\+\_\+get}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+data\+\_\+get(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_data_get(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+prefix\+\_\+data\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga26034e5a259d72fc535278cabf90a410}{}\label{group__Eina__Prefix__Group_ga26034e5a259d72fc535278cabf90a410}


Gets the data installation directory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The location of installed binaries (eg \char`\"{}/usr/local/share/appname\char`\"{}, \char`\"{}/usr/share/appname\char`\"{}, \char`\"{}/opt/appname/share/appname\char`\"{}, \char`\"{}/home/user/myapps/appname/share/appname\char`\"{} etc.)
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}


Referenced by edje\+\_\+edit\+\_\+script\+\_\+program\+\_\+set(), elua\+\_\+state\+\_\+dirs\+\_\+fill(), and emotion\+\_\+init().

\index{Prefix@{Prefix}!eina\+\_\+prefix\+\_\+locale\+\_\+get@{eina\+\_\+prefix\+\_\+locale\+\_\+get}}
\index{eina\+\_\+prefix\+\_\+locale\+\_\+get@{eina\+\_\+prefix\+\_\+locale\+\_\+get}!Prefix@{Prefix}}
\subsubsection[{\texorpdfstring{eina\+\_\+prefix\+\_\+locale\+\_\+get(\+Eina\+\_\+\+Prefix $\ast$pfx)}{eina_prefix_locale_get(Eina_Prefix *pfx)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+prefix\+\_\+locale\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Prefix} $\ast$}]{pfx}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Prefix__Group_ga331ef2cf3447036408a0a0d21c666cce}{}\label{group__Eina__Prefix__Group_ga331ef2cf3447036408a0a0d21c666cce}


Gets the locale installation directory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em pfx} & The prefix object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The location of installed binaries (eg \char`\"{}/usr/local/share/locale\char`\"{}, \char`\"{}/usr/share/locale\char`\"{}, \char`\"{}/opt/appname/share/locale\char`\"{}, \char`\"{}/home/user/myapps/appname/share/locale\char`\"{} etc.)
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+C\+O\+L\+O\+R\+\_\+\+D\+E\+F\+A\+U\+LT, eina\+\_\+log\+\_\+domain\+\_\+register(), eina\+\_\+log\+\_\+domain\+\_\+unregister(), E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+E\+RR, and E\+I\+N\+A\+\_\+\+T\+R\+UE.

