Example #1
0
ut_macro
ut_macroSetGet(
    const ut_macroSet macroSet,
    const os_char *name)
{
    ut_macro macro;

    macro = os_iterResolve(macroSet->macroSet, ut_macroNameMatch, (void *)name);
    return macro;
}
Example #2
0
void
ut_macroSetAdd(
    const ut_macroSet macroSet,
    const ut_macro macro)
{
    ut_macro old_macro;

    old_macro = os_iterResolve(macroSet->macroSet, ut_macroNameMatch, macro->name);
    if (old_macro) {
        os_iterTake(macroSet->macroSet, old_macro);
    }
    os_iterInsert(macroSet->macroSet, macro);
}
Example #3
0
os_result
idl_genJavaHelperAddPackageRedirect (
    const os_char *optarg)
{
    idl_packageRedirect exists, redirect = NULL;
    os_char *colon;
    os_char *module = NULL;
    os_char *package = NULL;
    os_char *trim = NULL;
    os_result result = os_resultSuccess;

    assert (optarg != NULL);

    colon = os_index (optarg, ':');
    if (colon != NULL) {
        if (colon == optarg) {
            module = NULL;
        } else {
            module = os_strndup (optarg, (size_t) (colon - optarg));
            if (module != NULL) {
                if ((trim = os_str_trim (module, "./:")) != module) {
                    os_free (module);
                }
                module = trim;
            }
            if (module == NULL) {
                result = os_resultFail;
            } else if (strlen (module) == 0) {
                os_free (module);
                module = NULL;
            }
        }

        package = os_strdup (colon + 1);
        if ((trim = os_str_trim (package, "./:")) != package) {
            os_free (package);
        }
        package = trim;

        if (strlen (package) == 0) {
            result = os_resultInvalid;
        }

        redirect = os_malloc (OS_SIZEOF (idl_packageRedirect));
        if (result == os_resultSuccess) {
            redirect->module = module;
            redirect->package = package;

            exists = os_iterResolve (
                idl_genJavaHelperPackageRedirects,
               &idl_genJavaHelperComparePackageRedirect,
                redirect);
            if (exists != NULL) {
                result = os_resultInvalid;
            } else {
                idl_genJavaHelperPackageRedirects = os_iterAppend (
                    idl_genJavaHelperPackageRedirects,
                    redirect);
                /* idl_genJavaHelperPackageRedirect must be sorted */
                os_iterSort (
                    idl_genJavaHelperPackageRedirects,
                   &idl_genJavaHelperComparePackageRedirect,
                    OS_FALSE);
            }
        }

        if (result != os_resultSuccess) {
            os_free (module);
            os_free (package);
            os_free (redirect);
        }
    } else {
        result = os_resultInvalid;
    }

    return result;
}