\hypertarget{group__Eina__Unicode__String__Buffer__Group}{}\section{Unicode String Buffer}
\label{group__Eina__Unicode__String__Buffer__Group}\index{Unicode String Buffer@{Unicode String Buffer}}


These functions provide unicode string buffers management.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga2df89d90d995cdcd94006fb0d9015b2e}{eina\+\_\+ustrbuf\+\_\+prepend}(buf,  str)~\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{eina\+\_\+ustrbuf\+\_\+insert}(buf, str, 0)
\begin{DoxyCompactList}\small\item\em Prepend the given string to the given buffer. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga74f79468f265edb54c88737c5ce34d89}{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped}(buf,  str)~\hyperlink{group__Eina__Unicode__String__Buffer__Group_gab455325438ba6417a1bdca7f8c4a26a0}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped}(buf, str, 0)
\begin{DoxyCompactList}\small\item\em Prepend the given escaped string to the given buffer. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eina__Unicode__String__Buffer__Group_gac9c2670138e359fb589070a3022c029b}{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n}(buf,  str,  maxlen)~\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n}(buf, str, maxlen, 0)
\begin{DoxyCompactList}\small\item\em Prepend the given escaped string to the given buffer. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga506aeb220292c78e6e5c0fc3c77241cd}{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length}(buf,  str,  length)~\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length}(buf, str, length, 0)
\begin{DoxyCompactList}\small\item\em Prepend the given escaped string to the given buffer. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga948150887ad0c0d563c8272951be909d}{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char}(buf,  c)~\hyperlink{group__Eina__Unicode__String__Buffer__Group_gacd082fde0314e40ea0751b6414fe6d45}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char}(buf, c, 0)
\begin{DoxyCompactList}\small\item\em Prepend the given unicode character to the given buffer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \hyperlink{struct__Eina__Strbuf}{\+\_\+\+Eina\+\_\+\+Strbuf} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{}\label{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}

\begin{DoxyCompactList}\small\item\em Type for a string buffer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$ \hyperlink{group__Eina__Unicode__String__Buffer__Group_gae65fd48114aef5426d50784d46014d30}{eina\+\_\+ustrbuf\+\_\+new} (void)
\begin{DoxyCompactList}\small\item\em Create a new string buffer. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$ \hyperlink{group__Eina__Unicode__String__Buffer__Group_gac82867081a70ee01519a84edff5fd22f}{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new} (\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str)
\begin{DoxyCompactList}\small\item\em Create a new string buffer using the passed string. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$ \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga3fe5948e0a957065a11084f43dfcee53}{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length} (\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create a new string buffer using the passed string. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{eina\+\_\+ustrbuf\+\_\+free} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Free a string buffer. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Unicode__String__Buffer__Group_gace4cd475062194c019ea5224bf2ab931}{eina\+\_\+ustrbuf\+\_\+reset} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Reset a string buffer. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str)
\begin{DoxyCompactList}\small\item\em Append a string to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_gae0d9246a1fdca1192db495f98595f49f}{eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str)
\begin{DoxyCompactList}\small\item\em Append an escaped string to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1f423c6728c19b7291401ade2db6c2c6}{eina\+\_\+ustrbuf\+\_\+append\+\_\+n} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t maxlen)
\begin{DoxyCompactList}\small\item\em Append a string to a buffer, reallocating as necessary, limited by the given length. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{eina\+\_\+ustrbuf\+\_\+append\+\_\+length} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Append a string of exact length to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1a9ae6645fb473c28cd810ca3c1191de}{eina\+\_\+ustrbuf\+\_\+append\+\_\+char} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} c)
\begin{DoxyCompactList}\small\item\em Append a character to a string buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{eina\+\_\+ustrbuf\+\_\+insert} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t pos)
\begin{DoxyCompactList}\small\item\em Insert a string to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_gab455325438ba6417a1bdca7f8c4a26a0}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t pos)
\begin{DoxyCompactList}\small\item\em Insert an escaped string to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t maxlen, size\+\_\+t pos)
\begin{DoxyCompactList}\small\item\em Insert a string to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$str, size\+\_\+t length, size\+\_\+t pos)
\begin{DoxyCompactList}\small\item\em Insert a string of exact length to a buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_gacd082fde0314e40ea0751b6414fe6d45}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} c, size\+\_\+t pos)
\begin{DoxyCompactList}\small\item\em Insert a character to a string buffer, reallocating as necessary. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga6fdf161dc3be55146d266de92878fe45}{eina\+\_\+ustrbuf\+\_\+remove} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf, size\+\_\+t start, size\+\_\+t end)
\begin{DoxyCompactList}\small\item\em Remove a slice of the given string buffer. \end{DoxyCompactList}\item 
const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}{eina\+\_\+ustrbuf\+\_\+string\+\_\+get} (const \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Retrieve a pointer to the contents of a string buffer. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\+\_\+\+Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Steal the contents of a string buffer. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga82cc368e0e2e597f2db9fbae6404b3bf}{eina\+\_\+ustrbuf\+\_\+string\+\_\+free} (\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Free the contents of a string buffer but not the buffer. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{group__Eina__Unicode__String__Buffer__Group_gaa47c70e6012f47eeae4860be27b2005e}{eina\+\_\+ustrbuf\+\_\+length\+\_\+get} (const \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1eafaa2e98b141efc47bc19d892da81b}{Eina\+\_\+\+U\+Strbuf} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Retrieve the length of the string buffer content. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
These functions provide unicode string buffers management. 

The Unicode String Buffer data type is designed to be a mutable string, allowing to append, prepend or insert a string to a buffer. 

\subsection{Macro Definition Documentation}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+prepend@{eina\+\_\+ustrbuf\+\_\+prepend}}
\index{eina\+\_\+ustrbuf\+\_\+prepend@{eina\+\_\+ustrbuf\+\_\+prepend}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+prepend}{eina_ustrbuf_prepend}}]{\setlength{\rightskip}{0pt plus 5cm}\#define eina\+\_\+ustrbuf\+\_\+prepend(
\begin{DoxyParamCaption}
\item[{}]{buf, }
\item[{}]{str}
\end{DoxyParamCaption}
)~{\bf eina\+\_\+ustrbuf\+\_\+insert}(buf, str, 0)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga2df89d90d995cdcd94006fb0d9015b2e}{}\label{group__Eina__Unicode__String__Buffer__Group_ga2df89d90d995cdcd94006fb0d9015b2e}


Prepend the given string to the given buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to prepend to. \\
\hline
{\em str} & The string to prepend. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This macro is calling \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{eina\+\_\+ustrbuf\+\_\+insert()} at position 0.\+If {\ttfamily buf} can\textquotesingle{}t prepend it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped}}
\index{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped}{eina_ustrbuf_prepend_escaped}}]{\setlength{\rightskip}{0pt plus 5cm}\#define eina\+\_\+ustrbuf\+\_\+prepend\+\_\+escaped(
\begin{DoxyParamCaption}
\item[{}]{buf, }
\item[{}]{str}
\end{DoxyParamCaption}
)~{\bf eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped}(buf, str, 0)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga74f79468f265edb54c88737c5ce34d89}{}\label{group__Eina__Unicode__String__Buffer__Group_ga74f79468f265edb54c88737c5ce34d89}


Prepend the given escaped string to the given buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to prepend to. \\
\hline
{\em str} & The string to prepend. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This macro is calling \hyperlink{group__Eina__Unicode__String__Buffer__Group_gab455325438ba6417a1bdca7f8c4a26a0}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped()} at position 0. If {\ttfamily buf} can\textquotesingle{}t prepend it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n}}
\index{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n}{eina_ustrbuf_prepend_n}}]{\setlength{\rightskip}{0pt plus 5cm}\#define eina\+\_\+ustrbuf\+\_\+prepend\+\_\+n(
\begin{DoxyParamCaption}
\item[{}]{buf, }
\item[{}]{str, }
\item[{}]{maxlen}
\end{DoxyParamCaption}
)~{\bf eina\+\_\+ustrbuf\+\_\+insert\+\_\+n}(buf, str, maxlen, 0)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gac9c2670138e359fb589070a3022c029b}{}\label{group__Eina__Unicode__String__Buffer__Group_gac9c2670138e359fb589070a3022c029b}


Prepend the given escaped string to the given buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to prepend to. \\
\hline
{\em str} & The string to prepend. \\
\hline
{\em maxlen} & The maximum number of Eina\+\_\+\+Unicode $\ast$s to prepend. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This macro is calling \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n()} at position 0. If {\ttfamily buf} can\textquotesingle{}t prepend it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length}}
\index{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length}{eina_ustrbuf_prepend_length}}]{\setlength{\rightskip}{0pt plus 5cm}\#define eina\+\_\+ustrbuf\+\_\+prepend\+\_\+length(
\begin{DoxyParamCaption}
\item[{}]{buf, }
\item[{}]{str, }
\item[{}]{length}
\end{DoxyParamCaption}
)~{\bf eina\+\_\+ustrbuf\+\_\+insert\+\_\+length}(buf, str, length, 0)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga506aeb220292c78e6e5c0fc3c77241cd}{}\label{group__Eina__Unicode__String__Buffer__Group_ga506aeb220292c78e6e5c0fc3c77241cd}


Prepend the given escaped string to the given buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to prepend to. \\
\hline
{\em str} & The string to prepend. \\
\hline
{\em length} & The exact length to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This macro is calling \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length()} at position 0. If {\ttfamily buf} can\textquotesingle{}t prepend it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char}}
\index{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char@{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char}{eina_ustrbuf_prepend_char}}]{\setlength{\rightskip}{0pt plus 5cm}\#define eina\+\_\+ustrbuf\+\_\+prepend\+\_\+char(
\begin{DoxyParamCaption}
\item[{}]{buf, }
\item[{}]{c}
\end{DoxyParamCaption}
)~{\bf eina\+\_\+ustrbuf\+\_\+insert\+\_\+char}(buf, c, 0)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga948150887ad0c0d563c8272951be909d}{}\label{group__Eina__Unicode__String__Buffer__Group_ga948150887ad0c0d563c8272951be909d}


Prepend the given unicode character to the given buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to prepend to. \\
\hline
{\em c} & The Eina\+\_\+\+Unicode character to prepend. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This macro is calling eina\+\_\+ustrbuf\+\_\+insert\+\_\+\+Eina\+\_\+\+Unicode $\ast$() at position 0. If {\ttfamily buf} can\textquotesingle{}t prepend it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. 

\subsection{Function Documentation}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+new@{eina\+\_\+ustrbuf\+\_\+new}}
\index{eina\+\_\+ustrbuf\+\_\+new@{eina\+\_\+ustrbuf\+\_\+new}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+new(void)}{eina_ustrbuf_new(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+U\+Strbuf}$\ast$ eina\+\_\+ustrbuf\+\_\+new (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gae65fd48114aef5426d50784d46014d30}{}\label{group__Eina__Unicode__String__Buffer__Group_gae65fd48114aef5426d50784d46014d30}


Create a new string buffer. 

\begin{DoxyReturn}{Returns}
Newly allocated string buffer instance.
\end{DoxyReturn}
This function creates a new string buffer. On error, {\ttfamily N\+U\+LL} is returned. To free the resources, use \hyperlink{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{eina\+\_\+ustrbuf\+\_\+free()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{eina\+\_\+ustrbuf\+\_\+free()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}{eina\+\_\+ustrbuf\+\_\+string\+\_\+get()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), and evas\+\_\+textblock\+\_\+cursor\+\_\+copy().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+manage\+\_\+new@{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new}}
\index{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new@{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new(\+Eina\+\_\+\+Unicode $\ast$str)}{eina_ustrbuf_manage_new(Eina_Unicode *str)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+U\+Strbuf}$\ast$ eina\+\_\+ustrbuf\+\_\+manage\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Unicode} $\ast$}]{str}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gac82867081a70ee01519a84edff5fd22f}{}\label{group__Eina__Unicode__String__Buffer__Group_gac82867081a70ee01519a84edff5fd22f}


Create a new string buffer using the passed string. 

The passed string is used directly as the buffer, it\textquotesingle{}s somehow the opposite function of \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal} . The passed string must be malloced.


\begin{DoxyParams}{Parameters}
{\em str} & the string to manage \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated string buffer instance.
\end{DoxyReturn}
This function creates a new string buffer. On error, {\ttfamily N\+U\+LL} is returned. To free the resources, use \hyperlink{group__Eina__String__Buffer__Group_ga35331525102f5cd40350c3951fbd2786}{eina\+\_\+strbuf\+\_\+free()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{eina\+\_\+ustrbuf\+\_\+free()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}{eina\+\_\+ustrbuf\+\_\+string\+\_\+get()} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+1.\+0 
\end{DoxySince}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length@{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length}}
\index{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length@{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length(\+Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t length)}{eina_ustrbuf_manage_new_length(Eina_Unicode *str, size_t length)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+U\+Strbuf}$\ast$ eina\+\_\+ustrbuf\+\_\+manage\+\_\+new\+\_\+length (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga3fe5948e0a957065a11084f43dfcee53}{}\label{group__Eina__Unicode__String__Buffer__Group_ga3fe5948e0a957065a11084f43dfcee53}


Create a new string buffer using the passed string. 

The passed string is used directly as the buffer, it\textquotesingle{}s somehow the opposite function of \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal} . The passed string must be malloced.


\begin{DoxyParams}{Parameters}
{\em str} & the string to manage \\
\hline
{\em length} & the length of the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated string buffer instance.
\end{DoxyReturn}
This function creates a new string buffer. On error, {\ttfamily N\+U\+LL} is returned. To free the resources, use \hyperlink{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{eina\+\_\+ustrbuf\+\_\+free()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_gac82867081a70ee01519a84edff5fd22f}{eina\+\_\+ustrbuf\+\_\+manage\+\_\+new()} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2.\+0 
\end{DoxySince}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+free@{eina\+\_\+ustrbuf\+\_\+free}}
\index{eina\+\_\+ustrbuf\+\_\+free@{eina\+\_\+ustrbuf\+\_\+free}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+free(\+Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_free(Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+ustrbuf\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}{}\label{group__Eina__Unicode__String__Buffer__Group_gabe1f60b2fae2b2880ab35a62724606d6}


Free a string buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to free.\\
\hline
\end{DoxyParams}
This function frees the memory of {\ttfamily buf}. {\ttfamily buf} must have been created by \hyperlink{group__Eina__Unicode__String__Buffer__Group_gae65fd48114aef5426d50784d46014d30}{eina\+\_\+ustrbuf\+\_\+new()}. 

Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), and evas\+\_\+textblock\+\_\+cursor\+\_\+copy().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+reset@{eina\+\_\+ustrbuf\+\_\+reset}}
\index{eina\+\_\+ustrbuf\+\_\+reset@{eina\+\_\+ustrbuf\+\_\+reset}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+reset(\+Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_reset(Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+ustrbuf\+\_\+reset (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gace4cd475062194c019ea5224bf2ab931}{}\label{group__Eina__Unicode__String__Buffer__Group_gace4cd475062194c019ea5224bf2ab931}


Reset a string buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to reset.\\
\hline
\end{DoxyParams}
This function reset {\ttfamily buf\+:} the buffer len is set to 0, and the string is set to \textquotesingle{}\textbackslash{}0\textquotesingle{}. No memory is free\textquotesingle{}d. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+append@{eina\+\_\+ustrbuf\+\_\+append}}
\index{eina\+\_\+ustrbuf\+\_\+append@{eina\+\_\+ustrbuf\+\_\+append}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+append(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str)}{eina_ustrbuf_append(Eina_UStrbuf *buf, const Eina_Unicode *str)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+append (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{}\label{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}


Append a string to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to append to. \\
\hline
{\em str} & The string to append. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function appends {\ttfamily str} to {\ttfamily buf}. It computes the length of {\ttfamily str}, so is slightly slower than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{eina\+\_\+ustrbuf\+\_\+append\+\_\+length()}. If the length is known beforehand, consider using that variant. If {\ttfamily buf} can\textquotesingle{}t append it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{eina\+\_\+ustrbuf\+\_\+append\+\_\+length()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped}}
\index{eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str)}{eina_ustrbuf_append_escaped(Eina_UStrbuf *buf, const Eina_Unicode *str)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+append\+\_\+escaped (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gae0d9246a1fdca1192db495f98595f49f}{}\label{group__Eina__Unicode__String__Buffer__Group_gae0d9246a1fdca1192db495f98595f49f}


Append an escaped string to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to append to. \\
\hline
{\em str} & The string to append. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function appends the escaped string {\ttfamily str} to {\ttfamily buf}. If {\ttfamily str} can not be appended, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+append\+\_\+n@{eina\+\_\+ustrbuf\+\_\+append\+\_\+n}}
\index{eina\+\_\+ustrbuf\+\_\+append\+\_\+n@{eina\+\_\+ustrbuf\+\_\+append\+\_\+n}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+append\+\_\+n(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t maxlen)}{eina_ustrbuf_append_n(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+append\+\_\+n (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{maxlen}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga1f423c6728c19b7291401ade2db6c2c6}{}\label{group__Eina__Unicode__String__Buffer__Group_ga1f423c6728c19b7291401ade2db6c2c6}


Append a string to a buffer, reallocating as necessary, limited by the given length. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to append to. \\
\hline
{\em str} & The string to append. \\
\hline
{\em maxlen} & The maximum number of characters to append. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function appends at most {\ttfamily maxlen} characters of {\ttfamily str} to {\ttfamily buf}. It can\textquotesingle{}t appends more than the length of {\ttfamily str}. It computes the length of {\ttfamily str}, so is slightly slower than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{eina\+\_\+ustrbuf\+\_\+append\+\_\+length()}. If the length is known beforehand, consider using that variant ({\ttfamily maxlen} should then be checked so that it is greater than the size of {\ttfamily str}). If {\ttfamily str} can not be appended, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{eina\+\_\+ustrbuf\+\_\+append\+\_\+length()} 
\end{DoxySeeAlso}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+append\+\_\+length@{eina\+\_\+ustrbuf\+\_\+append\+\_\+length}}
\index{eina\+\_\+ustrbuf\+\_\+append\+\_\+length@{eina\+\_\+ustrbuf\+\_\+append\+\_\+length}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+append\+\_\+length(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t length)}{eina_ustrbuf_append_length(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+append\+\_\+length (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}{}\label{group__Eina__Unicode__String__Buffer__Group_ga97722b96a56cca4eeed4217ca2069c17}


Append a string of exact length to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to append to. \\
\hline
{\em str} & The string to append. \\
\hline
{\em length} & The exact length to use. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function appends {\ttfamily str} to {\ttfamily buf}. {\ttfamily str} must be of size at most {\ttfamily length}. It is slightly faster than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} as it does not compute the size of {\ttfamily str}. It is useful when dealing with strings of known size, such as eina\+\_\+strngshare. If {\ttfamily buf} can\textquotesingle{}t append it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned.

\begin{DoxySeeAlso}{See also}
eina\+\_\+stringshare\+\_\+length() 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga1f423c6728c19b7291401ade2db6c2c6}{eina\+\_\+ustrbuf\+\_\+append\+\_\+n()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+copy(), and evas\+\_\+textblock\+\_\+text\+\_\+utf8\+\_\+to\+\_\+markup().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+append\+\_\+char@{eina\+\_\+ustrbuf\+\_\+append\+\_\+char}}
\index{eina\+\_\+ustrbuf\+\_\+append\+\_\+char@{eina\+\_\+ustrbuf\+\_\+append\+\_\+char}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+append\+\_\+char(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, Eina\+\_\+\+Unicode c)}{eina_ustrbuf_append_char(Eina_UStrbuf *buf, Eina_Unicode c)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+append\+\_\+char (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{{\bf Eina\+\_\+\+Unicode}}]{c}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga1a9ae6645fb473c28cd810ca3c1191de}{}\label{group__Eina__Unicode__String__Buffer__Group_ga1a9ae6645fb473c28cd810ca3c1191de}


Append a character to a string buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to append to. \\
\hline
{\em c} & The char to append. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts {\ttfamily c} to {\ttfamily buf}. If it can not insert it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+insert@{eina\+\_\+ustrbuf\+\_\+insert}}
\index{eina\+\_\+ustrbuf\+\_\+insert@{eina\+\_\+ustrbuf\+\_\+insert}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+insert(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t pos)}{eina_ustrbuf_insert(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+insert (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{}\label{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}


Insert a string to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to insert. \\
\hline
{\em str} & The string to insert. \\
\hline
{\em pos} & The position to insert the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts {\ttfamily str} to {\ttfamily buf} at position {\ttfamily pos}. It computes the length of {\ttfamily str}, so is slightly slower than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length()}. If the length is known beforehand, consider using that variant. If {\ttfamily buf} can\textquotesingle{}t insert it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped}}
\index{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t pos)}{eina_ustrbuf_insert_escaped(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+insert\+\_\+escaped (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gab455325438ba6417a1bdca7f8c4a26a0}{}\label{group__Eina__Unicode__String__Buffer__Group_gab455325438ba6417a1bdca7f8c4a26a0}


Insert an escaped string to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to insert to. \\
\hline
{\em str} & The string to insert. \\
\hline
{\em pos} & The position to insert the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts the escaped string {\ttfamily str} to {\ttfamily buf} at position {\ttfamily pos}. If {\ttfamily buf} can\textquotesingle{}t insert {\ttfamily str}, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+insert\+\_\+n@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n}}
\index{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t maxlen, size\+\_\+t pos)}{eina_ustrbuf_insert_n(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen, size_t pos)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+insert\+\_\+n (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{maxlen, }
\item[{size\+\_\+t}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}{}\label{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}


Insert a string to a buffer, reallocating as necessary. 

Limited by maxlen.


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to insert to. \\
\hline
{\em str} & The string to insert. \\
\hline
{\em maxlen} & The maximum number of chars to insert. \\
\hline
{\em pos} & The position to insert the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts {\ttfamily str} ot {\ttfamily buf} at position {\ttfamily pos}, with at most {\ttfamily maxlen} bytes. The number of inserted characters can not be greater than the length of {\ttfamily str}. It computes the length of {\ttfamily str}, so is slightly slower than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length()}. If the length is known beforehand, consider using that variant ({\ttfamily maxlen} should then be checked so that it is greater than the size of {\ttfamily str}). If {\ttfamily str} can not be inserted, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+insert\+\_\+length@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length}}
\index{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+insert\+\_\+length(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, const Eina\+\_\+\+Unicode $\ast$str, size\+\_\+t length, size\+\_\+t pos)}{eina_ustrbuf_insert_length(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length, size_t pos)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+insert\+\_\+length (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{const {\bf Eina\+\_\+\+Unicode} $\ast$}]{str, }
\item[{size\+\_\+t}]{length, }
\item[{size\+\_\+t}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}{}\label{group__Eina__Unicode__String__Buffer__Group_ga4a8e9fa7aa26d929ecabf1fdf29ca83e}


Insert a string of exact length to a buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to insert to. \\
\hline
{\em str} & The string to insert. \\
\hline
{\em length} & The exact length to use. \\
\hline
{\em pos} & The position to insert the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts {\ttfamily str} to {\ttfamily buf}. {\ttfamily str} must be of size at most {\ttfamily length}. It is slightly faster than \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{eina\+\_\+ustrbuf\+\_\+insert()} as it does not compute the size of {\ttfamily str}. It is useful when dealing with strings of known size, such as eina\+\_\+strngshare. If {\ttfamily buf} can\textquotesingle{}t insert it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned.

\begin{DoxySeeAlso}{See also}
eina\+\_\+stringshare\+\_\+length() 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga9d5cc76fb7f56590182e7ea0f0eefacf}{eina\+\_\+ustrbuf\+\_\+insert()} 

\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga4ab8388942bc326cae4d66475dd340d3}{eina\+\_\+ustrbuf\+\_\+insert\+\_\+n()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+text\+\_\+append().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+insert\+\_\+char@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char}}
\index{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char@{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+insert\+\_\+char(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, Eina\+\_\+\+Unicode c, size\+\_\+t pos)}{eina_ustrbuf_insert_char(Eina_UStrbuf *buf, Eina_Unicode c, size_t pos)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+insert\+\_\+char (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{{\bf Eina\+\_\+\+Unicode}}]{c, }
\item[{size\+\_\+t}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gacd082fde0314e40ea0751b6414fe6d45}{}\label{group__Eina__Unicode__String__Buffer__Group_gacd082fde0314e40ea0751b6414fe6d45}


Insert a character to a string buffer, reallocating as necessary. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to insert to. \\
\hline
{\em c} & The char to insert. \\
\hline
{\em pos} & The position to insert the char. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function inserts {\ttfamily c} to {\ttfamily buf} at position {\ttfamily pos}. If {\ttfamily buf} can\textquotesingle{}t append it, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} is returned, otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} is returned. 

Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+append().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+remove@{eina\+\_\+ustrbuf\+\_\+remove}}
\index{eina\+\_\+ustrbuf\+\_\+remove@{eina\+\_\+ustrbuf\+\_\+remove}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+remove(\+Eina\+\_\+\+U\+Strbuf $\ast$buf, size\+\_\+t start, size\+\_\+t end)}{eina_ustrbuf_remove(Eina_UStrbuf *buf, size_t start, size_t end)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+ustrbuf\+\_\+remove (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf, }
\item[{size\+\_\+t}]{start, }
\item[{size\+\_\+t}]{end}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga6fdf161dc3be55146d266de92878fe45}{}\label{group__Eina__Unicode__String__Buffer__Group_ga6fdf161dc3be55146d266de92878fe45}


Remove a slice of the given string buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to remove a slice. \\
\hline
{\em start} & The initial (inclusive) slice position to start removing, in bytes. \\
\hline
{\em end} & The final (non-\/inclusive) slice position to finish removing, in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure.
\end{DoxyReturn}
This function removes a slice of {\ttfamily buf}, starting at {\ttfamily start} (inclusive) and ending at {\ttfamily end} (non-\/inclusive). Both values are in bytes. It returns \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on failure, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE} otherwise. 

Referenced by evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+copy(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+delete(), and evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+prev\+\_\+get().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+string\+\_\+get@{eina\+\_\+ustrbuf\+\_\+string\+\_\+get}}
\index{eina\+\_\+ustrbuf\+\_\+string\+\_\+get@{eina\+\_\+ustrbuf\+\_\+string\+\_\+get}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+string\+\_\+get(const Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_string_get(const Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Eina\+\_\+\+Unicode}$\ast$ eina\+\_\+ustrbuf\+\_\+string\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}{}\label{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}


Retrieve a pointer to the contents of a string buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The current string in the string buffer.
\end{DoxyReturn}
This function returns the string contained in {\ttfamily buf}. The returned value must not be modified and will no longer be valid if {\ttfamily buf} is modified. In other words, any \hyperlink{group__Eina__Unicode__String__Buffer__Group_ga23eb33daa92454aaca50e41174c14975}{eina\+\_\+ustrbuf\+\_\+append()} or similar will make that pointer invalid.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+object\+\_\+textblock\+\_\+clear(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+next(), evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+copy(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+is\+\_\+visible\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+text\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+end(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+start(), and evas\+\_\+textblock\+\_\+text\+\_\+utf8\+\_\+to\+\_\+markup().

\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+string\+\_\+steal@{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal}}
\index{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal@{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+string\+\_\+steal(\+Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_string_steal(Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Unicode}$\ast$ eina\+\_\+ustrbuf\+\_\+string\+\_\+steal (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}{}\label{group__Eina__Unicode__String__Buffer__Group_ga400816da7f9b4bd4cfa0a8192920b383}


Steal the contents of a string buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to steal. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The current string in the string buffer.
\end{DoxyReturn}
This function returns the string contained in {\ttfamily buf}. {\ttfamily buf} is then initialized and does not own the returned string anymore. The caller must release the memory of the returned string by calling free().

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Unicode__String__Buffer__Group_gafb195dbff55306b5255153927be941cd}{eina\+\_\+ustrbuf\+\_\+string\+\_\+get()} 
\end{DoxySeeAlso}
\index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+string\+\_\+free@{eina\+\_\+ustrbuf\+\_\+string\+\_\+free}}
\index{eina\+\_\+ustrbuf\+\_\+string\+\_\+free@{eina\+\_\+ustrbuf\+\_\+string\+\_\+free}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+string\+\_\+free(\+Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_string_free(Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+ustrbuf\+\_\+string\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_ga82cc368e0e2e597f2db9fbae6404b3bf}{}\label{group__Eina__Unicode__String__Buffer__Group_ga82cc368e0e2e597f2db9fbae6404b3bf}


Free the contents of a string buffer but not the buffer. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer to free the string of.\\
\hline
\end{DoxyParams}
This function frees the string contained in {\ttfamily buf} without freeing {\ttfamily buf}. \index{Unicode String Buffer@{Unicode String Buffer}!eina\+\_\+ustrbuf\+\_\+length\+\_\+get@{eina\+\_\+ustrbuf\+\_\+length\+\_\+get}}
\index{eina\+\_\+ustrbuf\+\_\+length\+\_\+get@{eina\+\_\+ustrbuf\+\_\+length\+\_\+get}!Unicode String Buffer@{Unicode String Buffer}}
\subsubsection[{\texorpdfstring{eina\+\_\+ustrbuf\+\_\+length\+\_\+get(const Eina\+\_\+\+U\+Strbuf $\ast$buf)}{eina_ustrbuf_length_get(const Eina_UStrbuf *buf)}}]{\setlength{\rightskip}{0pt plus 5cm}size\+\_\+t eina\+\_\+ustrbuf\+\_\+length\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+U\+Strbuf} $\ast$}]{buf}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Unicode__String__Buffer__Group_gaa47c70e6012f47eeae4860be27b2005e}{}\label{group__Eina__Unicode__String__Buffer__Group_gaa47c70e6012f47eeae4860be27b2005e}


Retrieve the length of the string buffer content. 


\begin{DoxyParams}{Parameters}
{\em buf} & The string buffer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The current length of the string, in bytes.
\end{DoxyReturn}
This function returns the length of {\ttfamily buf}. 

Referenced by evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+copy(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+char\+\_\+last(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+char\+\_\+last(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+length\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pos\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pos\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+text\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+end(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+start(), and evas\+\_\+textblock\+\_\+text\+\_\+utf8\+\_\+to\+\_\+markup().

