gimpenv 3 LIBGIMPBASE Library
gimpenv Functions to access the GIMP environment.

## Synopsis

    const gchar* gimp_directory                 (void);
    gchar*      gimp_personal_rc_file           (const gchar *basename);
    const gchar* gimp_data_directory            (void);
    const gchar* gimp_locale_directory          (void);
    const gchar* gimp_plug_in_directory         (void);
    const gchar* gimp_sysconf_directory         (void);
    const gchar* gimp_gtkrc                     (void);
    GList*      gimp_path_parse                 (const gchar *path,
                                                 gint max_paths,
                                                 gboolean check,
                                                 GList **check_failed);
    gchar*      gimp_path_to_str                (GList *path);
    void        gimp_path_free                  (GList *path);
    gchar*      gimp_path_get_user_writable_dir (GList *path);

## Description

A set of functions to find the locations of GIMP's data directories and configuration files.

## Details

### gimp_directory ()

    const gchar* gimp_directory                 (void);

Returns the user-specific GIMP settings directory. If the environment variable GIMP2_DIRECTORY exists, it is used. If it is an absolute path, it is used as is. If it is a relative path, it is taken to be a subdirectory of the home directory. If it is a relative path, and no home directory can be determined, it is taken to be a subdirectory of `gimp_data_directory()`.

The usual case is that no GIMP2_DIRECTORY environment variable exists, and then we use the GIMPDIR subdirectory of the home directory. If no home directory exists, we use a per-user subdirectory of `gimp_data_directory()`. In any case, we always return some non-empty string, whether it corresponds to an existing directory or not.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The user-specific GIMP settings directory.

gimp_directory

### gimp_personal_rc_file ()

    gchar*      gimp_personal_rc_file           (const gchar *basename);

Returns the name of a file in the user-specific GIMP settings directory.

The returned string is allocated dynamically and *SHOULD* be freed with `g_free()` after use. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

basename :

  The basename of a rc_file.

Returns :

  The name of a file in the user-specific GIMP settings directory.

gimp_personal_rc_file

### gimp_data_directory ()

    const gchar* gimp_data_directory            (void);

Returns the top directory for GIMP data. If the environment variable GIMP2_DATADIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Win32, the installation directory as deduced from the executable's name is used.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The top directory for GIMP data.

gimp_data_directory

### gimp_locale_directory ()

    const gchar* gimp_locale_directory          (void);

Returns the top directory for GIMP locale files. If the environment variable GIMP2_LOCALEDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Win32, the installation directory as deduced from the executable's name is used.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The top directory for GIMP locale files.

gimp_locale_directory

### gimp_plug_in_directory ()

    const gchar* gimp_plug_in_directory         (void);

Returns the top directory for GIMP plug_ins and modules. If the environment variable GIMP2_PLUGINDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Win32, the installation directory as deduced from the executable's name is used.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The top directory for GIMP plug_ins and modules.

gimp_plug_in_directory

### gimp_sysconf_directory ()

    const gchar* gimp_sysconf_directory         (void);

Returns the top directory for GIMP config files. If the environment variable GIMP2_SYSCONFDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Win32, the installation directory as deduced from the executable's name is used.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The top directory for GIMP config files.

gimp_sysconf_directory

### gimp_gtkrc ()

    const gchar* gimp_gtkrc                     (void);

Returns the name of the GIMP's application-specific gtkrc file.

The returned string is allocated just once, and should *NOT* be freed with `g_free()`. The returned string is in the encoding used for filenames by the system, which isn't necessarily UTF-8 (never is on Windows).

Returns :

  The name of the GIMP's application-specific gtkrc file.

gimp_gtkrc

### gimp_path_parse ()

    GList*      gimp_path_parse                 (const gchar *path,
                                                 gint max_paths,
                                                 gboolean check,
                                                 GList **check_failed);

path :

  A list of directories separated by G_SEARCHPATH_SEPARATOR.

max_paths :

  The maximum number of directories to return.

check :

  `TRUE` if you want the directories to be checked.

check_failed :

  Returns a GList of path elements for which the check failed.

Returns :

  A GList of all directories in path.

gimp_path_parse

### gimp_path_to_str ()

    gchar*      gimp_path_to_str                (GList *path);

path :

  A list of directories as returned by `gimp_path_parse()`.

Returns :

  A searchpath string separated by G_SEARCHPATH_SEPARATOR.

gimp_path_to_str

### gimp_path_free ()

    void        gimp_path_free                  (GList *path);

This function frees the memory allocated for the list and the strings it contains.

path :

  A list of directories as returned by `gimp_path_parse()`.

gimp_path_free

### gimp_path_get_user_writable_dir ()

    gchar*      gimp_path_get_user_writable_dir (GList *path);

Note that you have to `g_free()` the returned string.

path :

  A list of directories as returned by `gimp_path_parse()`.

Returns :

  The first directory in path where the user has write permission.

gimp_path_get_user_writable_dir