gd_entry_list(3) GETDATA gd_entry_list(3)NAME
gd_entry_list, gd_field_list, gd_field_list_by_type gd_mfield_list,
gd_mfield_list_by_type, gd_mvector_list, gd_vector_list — list field
entries in a dirfile
SYNOPSIS
#include <getdata.h>
const char **gd_entry_list(DIRFILE *dirfile, const char *parent,
unsigned int type, unsigned int flags);
const char **gd_field_list(DIRFILE *dirfile);
const char **gd_field_list_by_type(DIRFILE *dirfile, gd_entype_t type);
const char **gd_mfield_list(DIRFILE *dirfile, const char *parent);
const char **gd_mfield_list_by_type(DIRFILE *dirfile, const char
*parent, gd_entype_t type);
const char **gd_mvector_list(DIRFILE *dirfile, const char *parent);
const char **gd_vector_list(DIRFILE *dirfile);
DESCRIPTION
The gd_entry_list() function queries a dirfile(5) database specified by
dirfile and returns a list of names of field entries satisfying the
supplied criteria. If parent is non-NULL, metafields under the field
specified by parent are considered; otherwise, top-level fields are
considered, and metafields ignored.
The type argument should be one of the following symbols indicating an
explicit entry type to list:
GD_BIT_ENTRY, GD_CARRAY_ENTRY, GD_CONST_ENTRY, GD_DIVIDE_ENTRY,
GD_INDEX_ENTRY, GD_LINCOM_ENTRY, GD_LINTERP_ENTRY,
GD_MPLEX_ENTRY, GD_MULTIPLY_ENTRY, GD_PHASE_ENTRY,
GD_POLYNOM_ENTRY, GD_RAW_ENTRY, GD_RECIP_ENTRY, GD_SBIT_ENTRY,
GD_STRING_ENTRY, GD_WINDOW_ENTRY.
(GD_INDEX_ENTRY is a special field type for the implicit INDEX field)
or else one of the following special symbols:
GD_ALL_ENTRIES (= 0)
List entries of all types.
GD_ALIAS_ENTRIES
List only aliases. This is the only way to get a list including
aliases which do not point to valid field codes.
GD_SCALAR_ENTRIES
List only scalar field types (CONST, CARRAY, STRING).
GD_VECTOR_ENTRIES
List only vector field types (all field types except the scalar
field types listed above).
The flags argument should be zero or more of the following flags, bit‐
wise or'd together:
GD_ENTRIES_HIDDEN
Include hidden entries (see gd_hidden(3)) in the list: normally
hidden entries are skipped;
GD_ENTRIES_NOALIAS
Exclude aliases from the list: normally aliases are considered
the same as their target (that is: if a field satisfies the cri‐
teria, both its canonical name and all its aliases will appear
in the list).
The array returned will be de-allocated by a call to gd_close(3) and
should not be de-allocated by the caller. The list returned should not
be assumed to be in any particular order. The array is terminated by a
NULL pointer. The number of elements in the array, excluding the ter‐
minating NULL, can be obtained from an equivalent call to gd_nen‐
tries(3).
The caller may not modify any strings in the array, or the array it‐
self. Doing so may cause database corruption. The pointer returned is
guaranteed to be valid at least until gd_entry_list() is called again
on the same DIRFILE object, or until the array is de-allocated by a
call to gd_close(3). (Although the data may have become obsolete, if
metadata have been modified in the interrim.)
Special Cases
The call
gd_field_list(dirfile);
is equivalent to
gd_entry_list(dirfile, NULL, GD_ALL_ENTRIES, 0);
The call
gd_field_list_by_type(dirfile, type);
is equivalent to
gd_entry_list(dirfile, NULL, type, 0);
The call
gd_mfield_list(dirfile, parent);
is equivalent to
gd_entry_list(dirfile, parent, GD_ALL_ENTRIES, 0);
The call
gd_mfield_list_by_type(dirfile, parent, type);
is equivalent to
gd_entry_list(dirfile, parent, type, 0);
The call
gd_mvector_list(dirfile, parent);
is equivalent to
gd_entry_list(dirfile, parent, GD_VECTOR_ENTRIES, 0);
The call
gd_vector_list(dirfile);
is equivalent to
gd_entry_list(dirfile, NULL, GD_VECTOR_ENTRIES, 0);
RETURN VALUE
Upon successful completion, these functions returns a pointer to an ar‐
ray of strings containing the names of all the entries in the database
satisfying the supplied criteria. On error, they return zero and sets
the dirfile error to a non-zero error value. Possible error values
are:
GD_E_BAD_CODE
The supplied parent field code was not found, or referred to a
metafield itself.
GD_E_BAD_DIRFILE
The supplied dirfile was invalid.
GD_E_BAD_ENTRY
The type parameter supplied was not one of the symbols listed
above.
The dirfile error may be retrieved by calling gd_error(3). A descrip‐
tive error string for the last error encountered can be obtained from a
call to gd_error_string(3).
SEE ALSOdirfile(5), gd_open(3), gd_error(3), gd_error_string(3), gd_hidden(3),
gd_nentries(3)Version 0.8.0 28 June 2012 gd_entry_list(3)