Vsh class

A bourne-compatible shell. More...

## Files

file | psh.h
| Header file for a simple parallel extension of ALOC's VSH.
file | vsh.h
| Header file for vsh, a bourne-compatible shell.

## Classes

struct | sVsh
| Contains public data members for Vsh class. More...

## Typedefs

typedef struct sVsh | Vsh
| Declaration of the Vsh class as the Vsh structure. More...

## Functions

int | Vsh_pshell (Vsh *thee, char *pPR, void *pthee, int(*builtin)(void *thee, int argc, char **argv))
| Drop-in replacement for Vsh_shell giving parallel extensions. More...
Vsh * | Vsh_ctor (Vmem *vmem, int argc, char **argv)
| Create the shell. More...
void | Vsh_dtor (Vsh **thee)
| Destroy the shell. More...
int | Vsh_shell (Vsh *thee, char *pPR, void *pthee, int(*builtin)(void *thee, int argc, char **argv))
| A bash-like shell with user-definable extensions. More...
int | Vsh_putenv (Vsh *thee, const char *envi, const char *valu)
| Place a variable with a value in the environment. More...
int | Vsh_putenvInfo (Vsh *thee, const char *envi, const char *valu)
| Place a variable with an info string in the environment. More...
int | Vsh_putenvInt (Vsh *thee, const char *envi, const int valu)
| Place a variable with a value (integer) in the environment. More...
int | Vsh_putenvReal (Vsh *thee, const char *envi, const double valu)
| Place a variable with a value (real) in the environment. More...
char * | Vsh_getenv (Vsh *thee, const char *envi)
| Get a value of variable in the environment. More...
char * | Vsh_getenvInfo (Vsh *thee, const char *envi)
| Get info associated with a variable in the environment. More...
int | Vsh_getenvInt (Vsh *thee, const char *envi)
| Get a value of variable in the environment as an integer. More...
double | Vsh_getenvReal (Vsh *thee, const char *envi)
| Get a value of variable in the environment as a real. More...
void | Vsh_remove (Vsh *thee, const char *envi)
| Remove a variable from the environment. More...
void | Vsh_wipe (Vsh *thee)
| Wipe the environment. More...
void | Vsh_memChk (Vsh *thee)
| Print the exact current malloc usage. More...
Vio * | Vsh_ioSetup (Vsh *thee, char *key)
| Setup for an I/O command. More...
void | Vsh_ioCleanup (Vsh *thee, Vio **sock)
| Cleanup an I/O command. More...

## Detailed Description

A bourne-compatible shell.

## Typedef Documentation

## Vsh

typedef struct sVsh Vsh

Declaration of the Vsh class as the Vsh structure.

Author
  Michael Holst

## Function Documentation

## Vsh_ctor()

Vsh * Vsh_ctor | ( | Vmem * | vmem,
|  | int | argc,
|  | char ** | argv
| ) |  |

Create the shell.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Pointer to the new allocated Vsh object

Parameters

  vmem | Memory management object
  argc | number of the command line arguments
  argv | the command line arguments

## Vsh_dtor()

void Vsh_dtor | ( | Vsh ** | thee | ) |

Destroy the shell.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  None

Parameters

  thee | Pointer to the Vsh object

## Vsh_getenv()

char * Vsh_getenv | ( | Vsh * | thee,
|  | const char * | envi
| ) |  |

Get a value of variable in the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  value of variable in the environment.

Parameters

  thee | Pointer to the Vsh object
  envi | environment string

## Vsh_getenvInfo()

char * Vsh_getenvInfo | ( | Vsh * | thee,
|  | const char * | envi
| ) |  |

Get info associated with a variable in the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  info associated with a variable in the environment.

Parameters

  thee | Pointer to the Vsh object
  envi | environment string

## Vsh_getenvInt()

int Vsh_getenvInt | ( | Vsh * | thee,
|  | const char * | envi
| ) |  |

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

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  value of variable in the environment as an integer.

Parameters

  thee | Pointer to the Vsh object
  envi | environment string

## Vsh_getenvReal()

double Vsh_getenvReal | ( | Vsh * | thee,
|  | const char * | envi
| ) |  |

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

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  value of variable in the environment as a real.

Parameters

  thee | Pointer to the Vsh object
  envi | environment string

## Vsh_ioCleanup()

void Vsh_ioCleanup | ( | Vsh * | thee,
|  | Vio ** | sock
| ) |  |

Cleanup an I/O command.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  None

Parameters

  thee | Pointer to the Vsh object
  sock | socket for reading/writing the external data

## Vsh_ioSetup()

Vio * Vsh_ioSetup | ( | Vsh * | thee,
|  | char * | key
| ) |  |

Setup for an I/O command.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  socket for reading/writing the external data

Parameters

  thee | Pointer to the Vsh object
  key | Pointer to different read/write option

## Vsh_memChk()

void Vsh_memChk | ( | Vsh * | thee | ) |

Print the exact current malloc usage.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  None

Parameters

  thee | Pointer to the Vsh object

## Vsh_pshell()

int Vsh_pshell | ( | Vsh * | thee,
|  | char * | pPR,
|  | void * | pthee,
|  | int(*)(void *thee, int argc, char **argv) | builtin
| ) |  |

Drop-in replacement for Vsh_shell giving parallel extensions.

Author
  Michael Holst

Note
  None

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  pPR | minimal prompt
  pthee | the externally supplied builtin object pointer
  builtin | external supershell builtin function

## Vsh_putenv()

int Vsh_putenv | ( | Vsh * | thee,
|  | const char * | envi,
|  | const char * | valu
| ) |  |

Place a variable with a value in the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  envi | environment string
  valu | value string

## Vsh_putenvInfo()

int Vsh_putenvInfo | ( | Vsh * | thee,
|  | const char * | envi,
|  | const char * | valu
| ) |  |

Place a variable with an info string in the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  envi | environment string
  valu | value string

## Vsh_putenvInt()

int Vsh_putenvInt | ( | Vsh * | thee,
|  | const char * | envi,
|  | const int | valu
| ) |  |

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

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  envi | environment string
  valu | value string

## Vsh_putenvReal()

int Vsh_putenvReal | ( | Vsh * | thee,
|  | const char * | envi,
|  | const double | valu
| ) |  |

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

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  envi | environment string
  valu | value string

## Vsh_remove()

void Vsh_remove | ( | Vsh * | thee,
|  | const char * | envi
| ) |  |

Remove a variable from the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  None

Parameters

  thee | Pointer to the Vsh object
  envi | environment string

## Vsh_shell()

int Vsh_shell | ( | Vsh * | thee,
|  | char * | pPR,
|  | void * | pthee,
|  | int(*)(void *thee, int argc, char **argv) | builtin
| ) |  |

A bash-like shell with user-definable extensions.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  Success enumeration

Parameters

  thee | Pointer to the Vsh object
  pPR | minimal prompt
  pthee | the externally supplied builtin object pointer
  builtin | external supershell builtin function

## Vsh_wipe()

void Vsh_wipe | ( | Vsh * | thee | ) |

Wipe the environment.

Author
  Michael Holst

Note
  Class Vsh: Non-inlineable method (vsh.c)

Returns
  None

Parameters

  thee | Pointer to the Vsh object