DtDtsDataTypeToAttributeValue(library call)

NAME
DtDtsDataTypeToAttributeValue — get an attribute value for a specified data type

SYNOPSIS

#include &<Dt/Dts.h>
char *DtDtsDataTypeToAttributeValue(
const char *datatype,
const char *attr_name,
const char *opt_name);

DESCRIPTION

The DtDtsDataTypeToAttributeValue returns an attribute value for the specified data type name.

The datatype argument is a pointer to a data type name string.

The attr_name argument is a name of the attribute.

The opt_name argument can be used to specify a name to be associated with the data type. If the opt_name argument is not NULL, it is used as a pseudo file name in typing; otherwise, certain attributes may be returned as NULL because the filename components could not be determined.

RETURN VALUE

Upon successful completion, the DtDtsDataTypeToAttributeValue function returns a pointer to a data attribute value string, or NULL if no value could be determined.

APPLICATION USAGE

The application should use the DtDtsFreeAttributeValue(3) function to release the memory for the returned value.

The opt_name argument is useful when the attribute being returned contains a modifier string that depends on having a file name included. For example, if the INSTANCE_ICON attribute had the value %name%.icon, opt_name would be used to derive the %name% portion of the attribute value. See dtdtsfile(4).

EXAMPLES

The following takes a list of files as arguments and determines the description and actions for each file:

#include &<Dt/Dts.h>
#define ATTRIBUTE1      "DESCRIPTION"
#define ATTRIBUTE2      "ACTIONS"
main (int argc, char **argv)
{
        char    *attribute;
        char    *datatype;
        /* load data types database */
        DtDtsLoadDataTypes();
        argv++;
        while (*argv) {
                /* get data type file file */
                datatype = DtDtsFileToDataType(*argv);
                /* get first attribute for datatype */
                attribute = DtDtsDataTypeToAttributeValue(datatype,
                                        ATTRIBUTE1, *argv);
                if (attribute)
                        printf("%s for file %s is %s,
                                ATTRIBUTE1, *argv, attribute);
                /* get second attribute for datatype */
                attribute = DtDtsDataTypeToAttributeValue(datatype,
                                        ATTRIBUTE2, NULL);
                if (attribute)
                        printf("%s for file %s is %s,
                                ATTRIBUTE2, *argv, attribute);
                argv++;
        }
        DtDtsRelease();
        exit(0);
}

SEE ALSO

Dt/Dts.h, DtDtsFileToDataType(3), DtDtsLoadDataTypes(3), DtDtsRelease(3), DtDtsFreeAttributeValue(3).