\doxysection{Vsh class }
\label{a00051}\index{Vsh class@{Vsh class}}


A bourne-\/compatible shell.  


\doxysubsubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ psh.\+h}
\begin{DoxyCompactList}\small\item\em Header file for a simple parallel extension of ALOC\textquotesingle{}s VSH. \end{DoxyCompactList}\item 
file \textbf{ vsh.\+h}
\begin{DoxyCompactList}\small\item\em Header file for vsh, a bourne-\/compatible shell. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ s\+Vsh}
\begin{DoxyCompactList}\small\item\em Contains public data members for \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \textbf{ s\+Vsh} \textbf{ Vsh}
\begin{DoxyCompactList}\small\item\em Declaration of the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} class as the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ Vsh\+\_\+pshell} (\textbf{ Vsh} $\ast$thee, char $\ast$p\+PR, void $\ast$pthee, int($\ast$builtin)(void $\ast$thee, int argc, char $\ast$$\ast$argv))
\begin{DoxyCompactList}\small\item\em Drop-\/in replacement for Vsh\+\_\+shell giving parallel extensions. \end{DoxyCompactList}\item 
\textbf{ Vsh} $\ast$ \textbf{ Vsh\+\_\+ctor} (\textbf{ Vmem} $\ast$vmem, int argc, char $\ast$$\ast$argv)
\begin{DoxyCompactList}\small\item\em Create the shell. \end{DoxyCompactList}\item 
void \textbf{ Vsh\+\_\+dtor} (\textbf{ Vsh} $\ast$$\ast$thee)
\begin{DoxyCompactList}\small\item\em Destroy the shell. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+shell} (\textbf{ Vsh} $\ast$thee, char $\ast$p\+PR, void $\ast$pthee, int($\ast$builtin)(void $\ast$thee, int argc, char $\ast$$\ast$argv))
\begin{DoxyCompactList}\small\item\em A bash-\/like shell with user-\/definable extensions. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+putenv} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi, const char $\ast$valu)
\begin{DoxyCompactList}\small\item\em Place a variable with a value in the environment. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+putenv\+Info} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi, const char $\ast$valu)
\begin{DoxyCompactList}\small\item\em Place a variable with an info string in the environment. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+putenv\+Int} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi, const int valu)
\begin{DoxyCompactList}\small\item\em Place a variable with a value (integer) in the environment. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+putenv\+Real} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi, const double valu)
\begin{DoxyCompactList}\small\item\em Place a variable with a value (real) in the environment. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ Vsh\+\_\+getenv} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi)
\begin{DoxyCompactList}\small\item\em Get a value of variable in the environment. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ Vsh\+\_\+getenv\+Info} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi)
\begin{DoxyCompactList}\small\item\em Get info associated with a variable in the environment. \end{DoxyCompactList}\item 
int \textbf{ Vsh\+\_\+getenv\+Int} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi)
\begin{DoxyCompactList}\small\item\em Get a value of variable in the environment as an integer. \end{DoxyCompactList}\item 
double \textbf{ Vsh\+\_\+getenv\+Real} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi)
\begin{DoxyCompactList}\small\item\em Get a value of variable in the environment as a real. \end{DoxyCompactList}\item 
void \textbf{ Vsh\+\_\+remove} (\textbf{ Vsh} $\ast$thee, const char $\ast$envi)
\begin{DoxyCompactList}\small\item\em Remove a variable from the environment. \end{DoxyCompactList}\item 
void \textbf{ Vsh\+\_\+wipe} (\textbf{ Vsh} $\ast$thee)
\begin{DoxyCompactList}\small\item\em Wipe the environment. \end{DoxyCompactList}\item 
void \textbf{ Vsh\+\_\+mem\+Chk} (\textbf{ Vsh} $\ast$thee)
\begin{DoxyCompactList}\small\item\em Print the exact current malloc usage. \end{DoxyCompactList}\item 
\textbf{ Vio} $\ast$ \textbf{ Vsh\+\_\+io\+Setup} (\textbf{ Vsh} $\ast$thee, char $\ast$key)
\begin{DoxyCompactList}\small\item\em Setup for an I/O command. \end{DoxyCompactList}\item 
void \textbf{ Vsh\+\_\+io\+Cleanup} (\textbf{ Vsh} $\ast$thee, \textbf{ Vio} $\ast$$\ast$sock)
\begin{DoxyCompactList}\small\item\em Cleanup an I/O command. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A bourne-\/compatible shell. 



\label{doc-typedef-members}
\doxysubsection{Typedef Documentation}
\index{Vsh class@{Vsh class}!Vsh@{Vsh}}
\index{Vsh@{Vsh}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh}
{\footnotesize\ttfamily \label{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} 
typedef struct \textbf{ s\+Vsh} \textbf{ Vsh}}



Declaration of the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} class as the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} structure. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}


\label{doc-func-members}
\doxysubsection{Function Documentation}
\index{Vsh class@{Vsh class}!Vsh\_ctor@{Vsh\_ctor}}
\index{Vsh\_ctor@{Vsh\_ctor}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_ctor()}
{\footnotesize\ttfamily \label{a00051_gab58833e53519c7d63950752f6f4ce57c} 
\textbf{ Vsh} $\ast$ Vsh\+\_\+ctor (\begin{DoxyParamCaption}\item[{\textbf{ Vmem} $\ast$}]{vmem}{, }\item[{int}]{argc}{, }\item[{char $\ast$$\ast$}]{argv}{}\end{DoxyParamCaption})}



Create the shell. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Pointer to the new allocated \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em vmem} & Memory management object \\
\hline
{\em argc} & number of the command line arguments \\
\hline
{\em argv} & the command line arguments \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_dtor@{Vsh\_dtor}}
\index{Vsh\_dtor@{Vsh\_dtor}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_dtor()}
{\footnotesize\ttfamily \label{a00051_gacb9c9b8392e13b5d155a96e01b825080} 
void Vsh\+\_\+dtor (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$$\ast$}]{thee}{}\end{DoxyParamCaption})}



Destroy the shell. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_getenv@{Vsh\_getenv}}
\index{Vsh\_getenv@{Vsh\_getenv}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_getenv()}
{\footnotesize\ttfamily \label{a00051_ga32fd6e229af45a08e6849608b9d9da01} 
char $\ast$ Vsh\+\_\+getenv (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{}\end{DoxyParamCaption})}



Get a value of variable in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
value of variable in the environment. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_getenvInfo@{Vsh\_getenvInfo}}
\index{Vsh\_getenvInfo@{Vsh\_getenvInfo}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_getenvInfo()}
{\footnotesize\ttfamily \label{a00051_ga42da6593ccafa9beca295203c1496568} 
char $\ast$ Vsh\+\_\+getenv\+Info (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{}\end{DoxyParamCaption})}



Get info associated with a variable in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
info associated with a variable in the environment. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_getenvInt@{Vsh\_getenvInt}}
\index{Vsh\_getenvInt@{Vsh\_getenvInt}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_getenvInt()}
{\footnotesize\ttfamily \label{a00051_ga6e7d66179e0315866f4671659edb06dd} 
int Vsh\+\_\+getenv\+Int (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{}\end{DoxyParamCaption})}



Get a value of variable in the environment as an integer. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
value of variable in the environment as an integer. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_getenvReal@{Vsh\_getenvReal}}
\index{Vsh\_getenvReal@{Vsh\_getenvReal}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_getenvReal()}
{\footnotesize\ttfamily \label{a00051_ga005dc1c9915b1e4651774aab403555a4} 
double Vsh\+\_\+getenv\+Real (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{}\end{DoxyParamCaption})}



Get a value of variable in the environment as a real. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
value of variable in the environment as a real. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_ioCleanup@{Vsh\_ioCleanup}}
\index{Vsh\_ioCleanup@{Vsh\_ioCleanup}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_ioCleanup()}
{\footnotesize\ttfamily \label{a00051_ga5caf47cfdaa31928b8b0d709c106213b} 
void Vsh\+\_\+io\+Cleanup (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{\textbf{ Vio} $\ast$$\ast$}]{sock}{}\end{DoxyParamCaption})}



Cleanup an I/O command. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em sock} & socket for reading/writing the external data \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_ioSetup@{Vsh\_ioSetup}}
\index{Vsh\_ioSetup@{Vsh\_ioSetup}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_ioSetup()}
{\footnotesize\ttfamily \label{a00051_gaab159e01f4c0f699a8daf79b37484b1a} 
\textbf{ Vio} $\ast$ Vsh\+\_\+io\+Setup (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{char $\ast$}]{key}{}\end{DoxyParamCaption})}



Setup for an I/O command. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
socket for reading/writing the external data 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em key} & Pointer to different read/write option \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_memChk@{Vsh\_memChk}}
\index{Vsh\_memChk@{Vsh\_memChk}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_memChk()}
{\footnotesize\ttfamily \label{a00051_ga8c143a9986753585de1af3aec437ab3e} 
void Vsh\+\_\+mem\+Chk (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{}\end{DoxyParamCaption})}



Print the exact current malloc usage. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_pshell@{Vsh\_pshell}}
\index{Vsh\_pshell@{Vsh\_pshell}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_pshell()}
{\footnotesize\ttfamily \label{a00051_gac65ab0aa601462e1f8609209c618a2c7} 
int Vsh\+\_\+pshell (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{char $\ast$}]{p\+PR}{, }\item[{void $\ast$}]{pthee}{, }\item[{int($\ast$}]{builtin~}{)(void $\ast$thee, int argc, char $\ast$$\ast$argv)}\end{DoxyParamCaption})}



Drop-\/in replacement for Vsh\+\_\+shell giving parallel extensions. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
None 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em p\+PR} & minimal prompt \\
\hline
{\em pthee} & the externally supplied builtin object pointer \\
\hline
{\em builtin} & external supershell builtin function \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_putenv@{Vsh\_putenv}}
\index{Vsh\_putenv@{Vsh\_putenv}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_putenv()}
{\footnotesize\ttfamily \label{a00051_ga48d875ef8f43ada815309c3a4a2246a5} 
int Vsh\+\_\+putenv (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{, }\item[{const char $\ast$}]{valu}{}\end{DoxyParamCaption})}



Place a variable with a value in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
{\em valu} & value string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_putenvInfo@{Vsh\_putenvInfo}}
\index{Vsh\_putenvInfo@{Vsh\_putenvInfo}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_putenvInfo()}
{\footnotesize\ttfamily \label{a00051_ga2ca0b09f128ed620a497f4c36d8f14e3} 
int Vsh\+\_\+putenv\+Info (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{, }\item[{const char $\ast$}]{valu}{}\end{DoxyParamCaption})}



Place a variable with an info string in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
{\em valu} & value string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_putenvInt@{Vsh\_putenvInt}}
\index{Vsh\_putenvInt@{Vsh\_putenvInt}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_putenvInt()}
{\footnotesize\ttfamily \label{a00051_gae6d896f333feacb870ff0ce5eed9e37a} 
int Vsh\+\_\+putenv\+Int (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{, }\item[{const int}]{valu}{}\end{DoxyParamCaption})}



Place a variable with a value (integer) in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
{\em valu} & value string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_putenvReal@{Vsh\_putenvReal}}
\index{Vsh\_putenvReal@{Vsh\_putenvReal}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_putenvReal()}
{\footnotesize\ttfamily \label{a00051_gad0435687b56824f68f03a97e2c51e4c5} 
int Vsh\+\_\+putenv\+Real (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{, }\item[{const double}]{valu}{}\end{DoxyParamCaption})}



Place a variable with a value (real) in the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
{\em valu} & value string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_remove@{Vsh\_remove}}
\index{Vsh\_remove@{Vsh\_remove}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_remove()}
{\footnotesize\ttfamily \label{a00051_gaa8129b2bc1c67dc2e3369d0838747b1f} 
void Vsh\+\_\+remove (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{const char $\ast$}]{envi}{}\end{DoxyParamCaption})}



Remove a variable from the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em envi} & environment string \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_shell@{Vsh\_shell}}
\index{Vsh\_shell@{Vsh\_shell}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_shell()}
{\footnotesize\ttfamily \label{a00051_gacd4454df1a3175b65a58857fa612afa4} 
int Vsh\+\_\+shell (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{, }\item[{char $\ast$}]{p\+PR}{, }\item[{void $\ast$}]{pthee}{, }\item[{int($\ast$}]{builtin~}{)(void $\ast$thee, int argc, char $\ast$$\ast$argv)}\end{DoxyParamCaption})}



A bash-\/like shell with user-\/definable extensions. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
{\em p\+PR} & minimal prompt \\
\hline
{\em pthee} & the externally supplied builtin object pointer \\
\hline
{\em builtin} & external supershell builtin function \\
\hline
\end{DoxyParams}
\index{Vsh class@{Vsh class}!Vsh\_wipe@{Vsh\_wipe}}
\index{Vsh\_wipe@{Vsh\_wipe}!Vsh class@{Vsh class}}
\doxysubsubsection{Vsh\_wipe()}
{\footnotesize\ttfamily \label{a00051_gad588fc35f6c73a0e3ba8271aee8fb373} 
void Vsh\+\_\+wipe (\begin{DoxyParamCaption}\item[{\textbf{ Vsh} $\ast$}]{thee}{}\end{DoxyParamCaption})}



Wipe the environment. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3}\+: Non-\/inlineable method (vsh.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the \doxyref{Vsh}{p.}{a00051_ga12e0c622051a2ba8ed3b0609a5ae71e3} object \\
\hline
\end{DoxyParams}
