## IAnjutaEnvironment IAnjutaEnvironment — Implemented by plugins doing cross compilation |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-environment.h>

    #define             IANJUTA_ENVIRONMENT_ERROR
                        IAnjutaEnvironment;
                        IAnjutaEnvironmentIface;
    GQuark              ianjuta_environment_error_quark     (void);
    gchar*              ianjuta_environment_get_real_directory
                                                            (IAnjutaEnvironment *obj,
                                                             gchar *dir,
                                                             GError **err);
    gboolean            ianjuta_environment_override        (IAnjutaEnvironment *obj,
                                                             gchar **dirp,
                                                             gchar ***argvp,
                                                             gchar ***envp,
                                                             GError **err);

## Object Hierarchy

      GInterface
       +----IAnjutaEnvironment

## Prerequisites

IAnjutaEnvironment requires GObject.

## Description

## Details

### IANJUTA_ENVIRONMENT_ERROR

    #define IANJUTA_ENVIRONMENT_ERROR ianjuta_environment_error_quark()

### IAnjutaEnvironment

    typedef struct _IAnjutaEnvironment IAnjutaEnvironment;

### IAnjutaEnvironmentIface

    typedef struct {
    	GTypeInterface g_iface;

    	gchar* (*get_real_directory) (IAnjutaEnvironment *obj, gchar *dir, GError **err);
    	gboolean (*override) (IAnjutaEnvironment *obj, gchar **dirp,  gchar ***argvp,  gchar ***envp, GError **err);
    } IAnjutaEnvironmentIface;

### ianjuta_environment_error_quark ()

    GQuark              ianjuta_environment_error_quark     (void);

Returns : |

### ianjuta_environment_get_real_directory ()

    gchar*              ianjuta_environment_get_real_directory
                                                            (IAnjutaEnvironment *obj,
                                                             gchar *dir,
                                                             GError **err);

Convert a directory in the environment to a directory outside. It is useful when the environment use chroot. Take care that the input directory string is freed using g_free but and you need to free the output string when not needed.

`obj` : | Self
`dir` : | A directory path in the environment
`err` : | Error propagation and reporting.
Returns : | The directory path outside the environment

### ianjuta_environment_override ()

    gboolean            ianjuta_environment_override        (IAnjutaEnvironment *obj,
                                                             gchar **dirp,
                                                             gchar ***argvp,
                                                             gchar ***envp,
                                                             GError **err);

Override a command to work in another build environment

`obj` : | Self
`dirp` : | a pointer on the working directory
`argvp` : | a pointer on a NULL terminated string array containing the command name in argv[0] and all its argument
`envp` : | a pointer on a NULL terminated string array containing all additional environment variable used by the command
`err` : | Error propagation and reporting.
Returns : | FALSE if there is an error.