## dconf Paths dconf Paths — utility functions to validate dconf paths |

## Functions

gboolean | dconf_is_dir ()
gboolean | dconf_is_key ()
gboolean | dconf_is_path ()
gboolean | dconf_is_rel_path ()
gboolean | dconf_is_rel_dir ()
gboolean | dconf_is_rel_key ()

## Description

Various places in the dconf API speak of "paths", "keys", "dirs" and relative versions of each of these. This file contains functions to check if a given string is a valid member of each of these classes and to report errors when a string is not.

See each function in this section for a precise description of what makes a string a valid member of a given class.

## Functions

### dconf_is_dir ()

    gboolean
    dconf_is_dir (const gchar *string,
                  GError **error);

Checks if `string` is a valid dconf dir. dconf dirs must start and end with '/' and not contain '//'.

A dconf dir refers to a subtree of the database that can contain other dirs or keys. If `string` is a dir, then it will be a prefix of any key or dir contained within it.

"/", "/a/" and "/a/b/" are examples of dirs. "", "a/", "a/b/", "//a/b/", "/a//b/" and "/a" are examples of strings that are not dirs.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a dir

### dconf_is_key ()

    gboolean
    dconf_is_key (const gchar *string,
                  GError **error);

Checks if `string` is a valid dconf key. dconf keys must start with '/', not contain '//' and not end with '/'.

A dconf key is the potential location of a single value within the database.

"/a", "/a/b" and "/a/b/c" are examples of keys. "", "/", "a", "a/b", "//a/b", "/a//b", and "/a/" are examples of strings that are not keys.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a key

### dconf_is_path ()

    gboolean
    dconf_is_path (const gchar *string,
                   GError **error);

Checks if `string` is a valid dconf path. dconf keys must start with '/' and not contain '//'.

A dconf path may be either a key or a dir. See `dconf_is_key()` and `dconf_is_dir()` for examples of each.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a path

### dconf_is_rel_path ()

    gboolean
    dconf_is_rel_path (const gchar *string,
                       GError **error);

Checks if `string` is a valid dconf relative path. A relative path is a string that, when concatenated to a dir, forms a valid dconf path. This means that a rel must not start with a '/' or contain '//'.

A dconf rel may be either a relative key or a relative dir. See `dconf_is_rel_key()` and `dconf_is_rel_dir()` for examples of each.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a relative path

### dconf_is_rel_dir ()

    gboolean
    dconf_is_rel_dir (const gchar *string,
                      GError **error);

Checks if `string` is a valid dconf relative dir. A relative dir is a string that, when appended to a dir, forms a valid dconf dir. This means that a relative dir must not start with a '/' or contain '//' and must end with a '/' except in the case that it is the empty string (in which case the path specified by appending the rel to a directory is the original directory).

"", "a/" and "a/b/" are examples of relative dirs. "/", "/a/", "/a/b/", "//a/b/", "a//b/" and "a" are examples of strings that are not relative dirs.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a relative dir

### dconf_is_rel_key ()

    gboolean
    dconf_is_rel_key (const gchar *string,
                      GError **error);

Checks if `string` is a valid dconf relative key. A relative key is a string that, when concatenated to a dir, forms a valid dconf key. This means that a relative key must not start or end with a '/' or contain '//'.

"a", "a/b" and "a/b/c" are examples of relative keys. "", "/", "/a", "/a/b", "//a/b", "/a//b", and "a/" are examples of strings that are not relative keys.

#### Parameters

string | a string |
error | a pointer to a GError, or `NULL`, set when `FALSE` is returned |

#### Returns

`TRUE` if `string` is a relative key

## Types and Values