\hypertarget{group__Eina__Unicode__String}{\section{Unicode String}
\label{group__Eina__Unicode__String}\index{Unicode String@{Unicode String}}
}


These functions provide basic unicode string handling.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{typedef wchar\-\_\-t \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode}}\label{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}

\begin{DoxyCompactList}\small\item\em A type that holds Unicode codepoints. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Unicode__String_gabbf95a2ae7d1356ddb8248f1be82985c}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} size\-\_\-t {\bfseries eina\-\_\-unicode\-\_\-strlen} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ustr) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga4669a55a23089d0f9b70702ef05cea68}{E\-I\-N\-A\-\_\-\-P\-U\-R\-E}}\label{group__Eina__Unicode__String_gabbf95a2ae7d1356ddb8248f1be82985c}

\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} size\-\_\-t \hyperlink{group__Eina__Unicode__String_ga75c4e18409ae96f45dbe35c129ad3b92}{eina\-\_\-unicode\-\_\-strnlen} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ustr, int n) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga4669a55a23089d0f9b70702ef05cea68}{E\-I\-N\-A\-\_\-\-P\-U\-R\-E}
\begin{DoxyCompactList}\small\item\em Returns the length of a Eina\-\_\-\-Unicode string, up to a limit. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_gae1282b77a4075b9455f9da169e202934}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_gae1282b77a4075b9455f9da169e202934}{eina\-\_\-unicode\-\_\-strdup} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$text) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\-I\-N\-A\-\_\-\-M\-A\-L\-L\-O\-C}}\label{group__Eina__Unicode__String_gae1282b77a4075b9455f9da169e202934}

\begin{DoxyCompactList}\small\item\em Same as the standard strdup just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_gacf49bb9f9d7d0bfd22d97efebde2a6fd}{eina\-\_\-unicode\-\_\-strndup} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$text, size\-\_\-t n) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\-I\-N\-A\-\_\-\-M\-A\-L\-L\-O\-C}
\begin{DoxyCompactList}\small\item\em Same as strdup but cuts on the given size. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_ga5620a3806b5b0ea42b5334fd578bf5c1}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} int \hyperlink{group__Eina__Unicode__String_ga5620a3806b5b0ea42b5334fd578bf5c1}{eina\-\_\-unicode\-\_\-strcmp} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$a, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$b) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1}\label{group__Eina__Unicode__String_ga5620a3806b5b0ea42b5334fd578bf5c1}

\begin{DoxyCompactList}\small\item\em Same as the standard strcmp just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_ga5dc6bd67dab8ed577f1f485bd5459d3d}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_ga5dc6bd67dab8ed577f1f485bd5459d3d}{eina\-\_\-unicode\-\_\-strcpy} (\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$dest, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$source) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1}\label{group__Eina__Unicode__String_ga5dc6bd67dab8ed577f1f485bd5459d3d}

\begin{DoxyCompactList}\small\item\em Same as the standard strcpy just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_ga4d323dd88159e04c370ced24a4821a67}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \\*
\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_ga4d323dd88159e04c370ced24a4821a67}{eina\-\_\-unicode\-\_\-strstr} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$haystack, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$needle) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1}\label{group__Eina__Unicode__String_ga4d323dd88159e04c370ced24a4821a67}

\begin{DoxyCompactList}\small\item\em Same as the standard strstr just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_ga94b6cd0750a29e99994561171674f718}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_ga94b6cd0750a29e99994561171674f718}{eina\-\_\-unicode\-\_\-strncpy} (\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$dest, const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$source, size\-\_\-t n) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1}\label{group__Eina__Unicode__String_ga94b6cd0750a29e99994561171674f718}

\begin{DoxyCompactList}\small\item\em Same as the standard strncpy just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \\*
\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_ga88683a27dbce6569c3fa67bf90a82979}{eina\-\_\-unicode\-\_\-escape} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$str) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\-I\-N\-A\-\_\-\-M\-A\-L\-L\-O\-C} \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T}
\item 
static \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Unicode__String_gae19707e54d7ff808e52ae6f0ade4faff}{eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get} (const char $\ast$buf, int $\ast$iindex) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1
\begin{DoxyCompactList}\small\item\em Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and advances {\ttfamily iindex} to the next code point after this. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \\*
\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Unicode__String_gaee98e7b1e105cf2d66001b895a7fe4eb}{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next} (const char $\ast$buf, int $\ast$iindex) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1
\begin{DoxyCompactList}\small\item\em Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and advances {\ttfamily iindex} to the next code point after this. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Unicode__String_ga0ffa41d417ad9517e37edb31dfea658a}{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev} (const char $\ast$buf, int $\ast$iindex) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1
\begin{DoxyCompactList}\small\item\em Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and moves àp iindex to the previous code point. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} int \hyperlink{group__Eina__Unicode__String_ga4b82b60ec4726830f069d8a00126bf83}{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len} (const char $\ast$buf) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1)
\begin{DoxyCompactList}\small\item\em Returns the number of unicode characters in the string. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_ga9ca197c52ab8de49053633c062c93525}{eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode} (const char $\ast$utf, int $\ast$\-\_\-len) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\-I\-N\-A\-\_\-\-M\-A\-L\-L\-O\-C}
\begin{DoxyCompactList}\small\item\em Converts a utf-\/8 string to a newly allocated Eina\-\_\-\-Unicode string. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} char $\ast$ \hyperlink{group__Eina__Unicode__String_ga8a3bc1c1e50618630f100bbf9d4fa45d}{eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8} (const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$uni, int $\ast$\-\_\-len) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\-I\-N\-A\-\_\-\-W\-A\-R\-N\-\_\-\-U\-N\-U\-S\-E\-D\-\_\-\-R\-E\-S\-U\-L\-T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\-I\-N\-A\-\_\-\-A\-R\-G\-\_\-\-N\-O\-N\-N\-U\-L\-L}(1) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\-I\-N\-A\-\_\-\-M\-A\-L\-L\-O\-C}
\begin{DoxyCompactList}\small\item\em Converts an Eina\-\_\-\-Unicode string to a newly allocated utf-\/8 string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Unicode__String_gaf32034aa063052b2fa8c126104af7ac7}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} const \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} $\ast$ \hyperlink{group__Eina__Unicode__String_gaf32034aa063052b2fa8c126104af7ac7}{E\-I\-N\-A\-\_\-\-U\-N\-I\-C\-O\-D\-E\-\_\-\-E\-M\-P\-T\-Y\-\_\-\-S\-T\-R\-I\-N\-G}}\label{group__Eina__Unicode__String_gaf32034aa063052b2fa8c126104af7ac7}

\begin{DoxyCompactList}\small\item\em Same as the standard strlen just with Eina\-\_\-\-Unicode instead of char. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Unicode__String_ga4669a55a23089d0f9b70702ef05cea68}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} int {\bfseries E\-I\-N\-A\-\_\-\-P\-U\-R\-E}}\label{group__Eina__Unicode__String_ga4669a55a23089d0f9b70702ef05cea68}

\item 
\hypertarget{group__Eina__Unicode__String_ga75899cfc1e37383e9ac7a7f02310bcc0}{static \hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} \hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \\*
\hyperlink{group__Eina__Unicode__String_ga00d6dbe6710822ef81e9539fc57c4b12}{Eina\-\_\-\-Unicode} {\bfseries E\-I\-N\-A\-\_\-\-D\-E\-P\-R\-E\-C\-A\-T\-E\-D}}\label{group__Eina__Unicode__String_ga75899cfc1e37383e9ac7a7f02310bcc0}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
These functions provide basic unicode string handling. Eina\-\_\-\-Unicode is a type that holds unicode codepoints. 

\subsection{Function Documentation}
\hypertarget{group__Eina__Unicode__String_ga75c4e18409ae96f45dbe35c129ad3b92}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-strnlen@{eina\-\_\-unicode\-\_\-strnlen}}
\index{eina\-\_\-unicode\-\_\-strnlen@{eina\-\_\-unicode\-\_\-strnlen}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-strnlen}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} size\-\_\-t eina\-\_\-unicode\-\_\-strnlen (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Unicode} $\ast$}]{ustr, }
\item[{int}]{n}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga75c4e18409ae96f45dbe35c129ad3b92}


Returns the length of a Eina\-\_\-\-Unicode string, up to a limit. 

This function returns the number of characters in string, up to a maximum of n. If the terminating character is not found in the string, it returns n.


\begin{DoxyParams}{Parameters}
{\em ustr} & String to search \\
\hline
{\em n} & Max length to search \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Number of characters or n. 
\end{DoxyReturn}
\hypertarget{group__Eina__Unicode__String_gacf49bb9f9d7d0bfd22d97efebde2a6fd}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-strndup@{eina\-\_\-unicode\-\_\-strndup}}
\index{eina\-\_\-unicode\-\_\-strndup@{eina\-\_\-unicode\-\_\-strndup}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-strndup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode}$\ast$ eina\-\_\-unicode\-\_\-strndup (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Unicode} $\ast$}]{text, }
\item[{size\-\_\-t}]{n}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_gacf49bb9f9d7d0bfd22d97efebde2a6fd}


Same as strdup but cuts on the given size. 

Assumes n $<$ len


\begin{DoxyParams}{Parameters}
{\em text} & The text to duplicate. \\
\hline
{\em n} & The maximum size of the text to duplicate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The duplicated string.
\end{DoxyReturn}
This function duplicates {\ttfamily text}. The resuting string is cut on {\ttfamily n}. {\ttfamily n} is assumed to be lesser ($<$) than the length of {\ttfamily text}. When not needed anymore, the returned string must be freed.

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


Referenced by eina\-\_\-unicode\-\_\-strdup().

\hypertarget{group__Eina__Unicode__String_ga88683a27dbce6569c3fa67bf90a82979}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-escape@{eina\-\_\-unicode\-\_\-escape}}
\index{eina\-\_\-unicode\-\_\-escape@{eina\-\_\-unicode\-\_\-escape}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-escape}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode} {\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode}$\ast$ eina\-\_\-unicode\-\_\-escape (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Unicode} $\ast$}]{str}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga88683a27dbce6569c3fa67bf90a82979}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__String__Group_ga96760f2bf2d845b4abec0e95f08271bd}{eina\-\_\-str\-\_\-escape()}
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em str} & The string to escape. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The escaped string. 
\end{DoxyReturn}
\hypertarget{group__Eina__Unicode__String_gae19707e54d7ff808e52ae6f0ade4faff}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get@{eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get}}
\index{eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get@{eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\-\_\-\-Unicode} eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{int $\ast$}]{iindex}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Unicode__String_gae19707e54d7ff808e52ae6f0ade4faff}


Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and advances {\ttfamily iindex} to the next code point after this. 

{\ttfamily iindex} is always advanced, unless if the advancement is after the {\ttfamily N\-U\-L\-L}. On error\-: return a codepoint between D\-C80 to D\-C\-F\-F where the low 8 bits are the byte's value.


\begin{DoxyParams}{Parameters}
{\em buf} & the string \\
\hline
{\em iindex} & the index to look at and return by. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the codepoint found, 0 if {\ttfamily buf} or {\ttfamily iindex} are N\-U\-L\-L 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-8.\-0 
\end{DoxySince}


Referenced by eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len(), eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode(), and evas\-\_\-string\-\_\-char\-\_\-next\-\_\-get().

\hypertarget{group__Eina__Unicode__String_gaee98e7b1e105cf2d66001b895a7fe4eb}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next}}
\index{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\-\_\-\-Unicode} {\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode} eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-next (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{int $\ast$}]{iindex}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_gaee98e7b1e105cf2d66001b895a7fe4eb}


Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and advances {\ttfamily iindex} to the next code point after this. 

{\ttfamily iindex} is always advanced, unless if the advancement is after the {\ttfamily N\-U\-L\-L}. On error\-: return a codepoint between D\-C80 to D\-C\-F\-F where the low 8 bits are the byte's value.


\begin{DoxyParams}{Parameters}
{\em buf} & the string \\
\hline
{\em iindex} & the index to look at and return by. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the codepoint found, 0 if {\ttfamily buf} or {\ttfamily iindex} are N\-U\-L\-L 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1.\-0 
\end{DoxySince}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000016}{Deprecated}]use eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get \end{DoxyRefDesc}
\hypertarget{group__Eina__Unicode__String_ga0ffa41d417ad9517e37edb31dfea658a}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev}}
\index{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode} eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-prev (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{int $\ast$}]{iindex}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga0ffa41d417ad9517e37edb31dfea658a}


Reads U\-T\-F8 bytes from {\ttfamily buf}, starting at {\ttfamily iindex} and returns the decoded code point at {\ttfamily iindex} offset, and moves àp iindex to the previous code point. 

{\ttfamily iindex} is always moved, as long as it's not past the start of the string. On error\-: return a codepoint between D\-C80 to D\-C\-F\-F where the low 8 bits are the byte's value.


\begin{DoxyParams}{Parameters}
{\em buf} & the string \\
\hline
{\em iindex} & the index to look at and return by. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the codepoint found. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1.\-0 
\end{DoxySince}


Referenced by evas\-\_\-string\-\_\-char\-\_\-prev\-\_\-get().

\hypertarget{group__Eina__Unicode__String_ga4b82b60ec4726830f069d8a00126bf83}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len}}
\index{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len@{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode} {\bf E\-A\-P\-I} int eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga4b82b60ec4726830f069d8a00126bf83}


Returns the number of unicode characters in the string. 

That is, the number of Eina\-\_\-\-Unicodes it'll take to store this string in an Eina\-\_\-\-Unicode string.


\begin{DoxyParams}{Parameters}
{\em buf} & the string \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the number of unicode characters (not bytes) in the string 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1.\-0 
\end{DoxySince}


References eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get().



Referenced by eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode(), and evas\-\_\-string\-\_\-char\-\_\-len\-\_\-get().

\hypertarget{group__Eina__Unicode__String_ga9ca197c52ab8de49053633c062c93525}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode@{eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode}}
\index{eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode@{eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Unicode}$\ast$ eina\-\_\-unicode\-\_\-utf8\-\_\-to\-\_\-unicode (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{utf, }
\item[{int $\ast$}]{\-\_\-len}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga9ca197c52ab8de49053633c062c93525}


Converts a utf-\/8 string to a newly allocated Eina\-\_\-\-Unicode string. 


\begin{DoxyParams}{Parameters}
{\em utf} & the string in utf-\/8 \\
\hline
{\em \-\_\-len} & the length of the returned Eina\-\_\-\-Unicode string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the newly allocated Eina\-\_\-\-Unicode string. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1.\-0 
\end{DoxySince}


References eina\-\_\-unicode\-\_\-utf8\-\_\-get\-\_\-len(), and eina\-\_\-unicode\-\_\-utf8\-\_\-next\-\_\-get().



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

\hypertarget{group__Eina__Unicode__String_ga8a3bc1c1e50618630f100bbf9d4fa45d}{\index{Unicode String@{Unicode String}!eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8@{eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8}}
\index{eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8@{eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8}!Unicode String@{Unicode String}}
\subsubsection[{eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} char$\ast$ eina\-\_\-unicode\-\_\-unicode\-\_\-to\-\_\-utf8 (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Unicode} $\ast$}]{uni, }
\item[{int $\ast$}]{\-\_\-len}
\end{DoxyParamCaption}
)}}\label{group__Eina__Unicode__String_ga8a3bc1c1e50618630f100bbf9d4fa45d}


Converts an Eina\-\_\-\-Unicode string to a newly allocated utf-\/8 string. 


\begin{DoxyParams}{Parameters}
{\em uni} & the Eina\-\_\-\-Unicode string \\
\hline
{\em \-\_\-len} & the length byte length of the return utf8 string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the newly allocated utf-\/8 string. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1.\-0 
\end{DoxySince}


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

