\hypertarget{group__Evil__Stdio__Group}{}\doxysection{Stdio.\+h functions}
\label{group__Evil__Stdio__Group}\index{Stdio.h functions@{Stdio.h functions}}


This header provides functions ported from Unix in stdio.\+h.  


\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bfseries EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+SWAP}(p,  s1,  s2)
\item 
\mbox{\Hypertarget{group__Evil__Stdio__Group_ga24c3a1e0d7951c0f5f8d0661f9dfc8fc}\label{group__Evil__Stdio__Group_ga24c3a1e0d7951c0f5f8d0661f9dfc8fc}} 
\#define {\bfseries EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+WIN32\+\_\+\+TO\+\_\+\+UNIX}(p)~EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+SWAP(p, \textquotesingle{}\textbackslash{}\textbackslash{}\textquotesingle{}, \textquotesingle{}/\textquotesingle{})
\item 
\mbox{\Hypertarget{group__Evil__Stdio__Group_ga778fcec15b35da0088ab7395cc3451c1}\label{group__Evil__Stdio__Group_ga778fcec15b35da0088ab7395cc3451c1}} 
\#define {\bfseries EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+UNIX\+\_\+\+TO\+\_\+\+WIN32}(p)~EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+SWAP(p, \textquotesingle{}/\textquotesingle{}, \textquotesingle{}\textbackslash{}\textbackslash{}\textquotesingle{})
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{group__Evil__Stdio__Group_ga773acdc811c11324d600405f3feafd67}{evil\+\_\+rename}} (const char $\ast$src, const char $\ast$dst)
\begin{DoxyCompactList}\small\item\em Emulate the rename() function on Windows. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Evil__Stdio__Group_gaf8777ebc13926ad6ae3be3531279d04e}{evil\+\_\+mkdir}} (const char $\ast$dirname, mode\+\_\+t mode)
\begin{DoxyCompactList}\small\item\em Wrap the \+\_\+mkdir() function on Windows. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This header provides functions ported from Unix in stdio.\+h. 



\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Evil__Stdio__Group_ga797b1063060cce8eece81d5b4b305e4d}\label{group__Evil__Stdio__Group_ga797b1063060cce8eece81d5b4b305e4d}} 
\index{Stdio.h functions@{Stdio.h functions}!EVIL\_PATH\_SEP\_SWAP@{EVIL\_PATH\_SEP\_SWAP}}
\index{EVIL\_PATH\_SEP\_SWAP@{EVIL\_PATH\_SEP\_SWAP}!Stdio.h functions@{Stdio.h functions}}
\doxysubsubsection{\texorpdfstring{EVIL\_PATH\_SEP\_SWAP}{EVIL\_PATH\_SEP\_SWAP}}
{\footnotesize\ttfamily \#define EVIL\+\_\+\+PATH\+\_\+\+SEP\+\_\+\+SWAP(\begin{DoxyParamCaption}\item[{}]{p,  }\item[{}]{s1,  }\item[{}]{s2 }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{   \textcolor{keywordflow}{do} \{ \(\backslash\)}
\DoxyCodeLine{     char *\_evil\_path\_tmp; \(\backslash\)}
\DoxyCodeLine{     \_evil\_path\_tmp = p; \(\backslash\)}
\DoxyCodeLine{     while (*\_evil\_path\_tmp) \(\backslash\)}
\DoxyCodeLine{       \{ \(\backslash\)}
\DoxyCodeLine{          if (*\_evil\_path\_tmp == s1) \(\backslash\)}
\DoxyCodeLine{            *\_evil\_path\_tmp = s2; \(\backslash\)}
\DoxyCodeLine{          \_evil\_path\_tmp++; \(\backslash\)}
\DoxyCodeLine{       \} \(\backslash\)}
\DoxyCodeLine{   \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Evil__Stdio__Group_ga773acdc811c11324d600405f3feafd67}\label{group__Evil__Stdio__Group_ga773acdc811c11324d600405f3feafd67}} 
\index{Stdio.h functions@{Stdio.h functions}!evil\_rename@{evil\_rename}}
\index{evil\_rename@{evil\_rename}!Stdio.h functions@{Stdio.h functions}}
\doxysubsubsection{\texorpdfstring{evil\_rename()}{evil\_rename()}}
{\footnotesize\ttfamily int evil\+\_\+rename (\begin{DoxyParamCaption}\item[{const char $\ast$}]{src,  }\item[{const char $\ast$}]{dst }\end{DoxyParamCaption})}



Emulate the rename() function on Windows. 


\begin{DoxyParams}{Parameters}
{\em src} & The old pathname. \\
\hline
{\em dst} & The new pathname. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/1 otherwise.
\end{DoxyReturn}
This function emulates the POSIX rename() function on Windows. The difference with the POSIX function is that the rename() function on windows fails if the destination exists.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Evil__Stdio__Group_gaf8777ebc13926ad6ae3be3531279d04e}\label{group__Evil__Stdio__Group_gaf8777ebc13926ad6ae3be3531279d04e}} 
\index{Stdio.h functions@{Stdio.h functions}!evil\_mkdir@{evil\_mkdir}}
\index{evil\_mkdir@{evil\_mkdir}!Stdio.h functions@{Stdio.h functions}}
\doxysubsubsection{\texorpdfstring{evil\_mkdir()}{evil\_mkdir()}}
{\footnotesize\ttfamily int evil\+\_\+mkdir (\begin{DoxyParamCaption}\item[{const char $\ast$}]{dirname,  }\item[{mode\+\_\+t}]{mode }\end{DoxyParamCaption})}



Wrap the \+\_\+mkdir() function on Windows. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dirname} & The new dir name. \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & Unused. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/1 otherwise.
\end{DoxyReturn}
This function wraps the \+\_\+mkdir() function.

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