Beispiel #1
0
PUBLIC void end_assume(tree cxt)
{
     int i;
     
     assume = FALSE;

     for (i = 0; i < n_assumes; i++)
	  if (a_table[i].a_refs == 1) {
	       tc_warn(cxt->x_loc,
		       "implicitly quantified name %n appears only once",
		       a_table[i].a_name);
	       tc_e_etc("Predicate: %z", cxt);
	       tc_e_end();
	  }
}
static int test_mangle_option(int argc, char **argv, const char *option, int hasval)
{
    int ac = argc, i = 0, ret;
    char *av[MAX_OPTS];
    const char *useless = NULL;

    assert(argc <= MAX_OPTS);

    for (i = 0; i < argc; i++) {
        av[i] = argv[i];
    }
    ret = tc_mangle_cmdline(&argc, &argv, option, (hasval) ?(&useless) :NULL);
    tc_info("mangling: %i", ret);
    if (ret != 0) {
        DUMP_OPTS(argc, argv);
        if (ac != argc) {
            tc_warn("missing argument (argc not changed)");
            return 1;
        }
        for (i = 0; i < argc; i++) {
            if (av[i] != argv[i]
             || strcmp(av[i], argv[i]) != 0) {
                tc_warn("argument diversion (%s VS %s @ %i)", av[i], argv[i], i);
                return 1;
            }
        }
        if (!in_set(option, (const char **)argv, argc)) {
            tc_warn("option still present");
            return 1;
        }
    } else {
        int na = ac - ((hasval) ?2 :1);
        DUMP_OPTS(argc, argv);
        if (na != argc) {
            tc_warn("argument number mismatch (expected %i|got %i)", na, argc);
            return 1;
        }
        if (in_set(option, (const char **)argv, argc)) {
            tc_warn("option still present");
            return 1;
        }
        for (i = 0; i < ac; i++) {
            if (!in_set(argv[i], (const char **)av, ac)) {
                tc_warn("missing argument: %s", argv[i]);
                return 1;
            }
        }
    }
    return 0;
}
Beispiel #3
0
void *load_module(const char *mod_name, int mode)
{
    const char *error;
    void *handle;

    if (mode & TC_EXPORT) {
        tc_snprintf(module, sizeof(module), "%s/export_%s.so", ((mod_path==NULL)? MODULE_PATH:mod_path), mod_name);

        tc_debug(TC_DEBUG_MODULES,
                 "loading %s export module %s",
                 ((mode & TC_VIDEO)? "video": "audio"), module);

        handle = dlopen(module, RTLD_GLOBAL| RTLD_LAZY);
        if (!handle) {
            error = dlerror();
            tc_warn("%s", error);
            tc_warn("(%s) loading \"%s\" failed", __FILE__, module);
            return(NULL);
        }

        if (mode & TC_VIDEO) {
            TCV_export = dlsym(handle, "tc_export");
            error = dlerror();
            if (error != NULL)  {
                tc_warn("%s", error);
                return(NULL);
            }
        }

        if (mode & TC_AUDIO) {
            TCA_export = dlsym(handle, "tc_export");
            error = dlerror();
            if (error != NULL)  {
                tc_warn("%s", error);
                return(NULL);
            }
        }

        return(handle);
    }


    if (mode & TC_IMPORT) {
        tc_snprintf(module, sizeof(module), "%s/import_%s.so", ((mod_path==NULL)? MODULE_PATH:mod_path), mod_name);

        tc_debug(TC_DEBUG_MODULES,
                 "loading %s import module %s",
                 ((mode & TC_VIDEO)? "video": "audio"), module);

        handle = dlopen(module, RTLD_GLOBAL| RTLD_LAZY);
        if (!handle) {
            error = dlerror();
            tc_warn("%s", error);
            return(NULL);
        }

        if (mode & TC_VIDEO) {
            TCV_import = dlsym(handle, "tc_import");
            error = dlerror();
            if (error != NULL)  {
                tc_warn("%s", error);
                return(NULL);
            }
        }

        if(mode & TC_AUDIO) {
            TCA_import = dlsym(handle, "tc_import");
            error = dlerror();
            if (error != NULL)  {
                tc_warn("%s", error);
                return(NULL);
            }
        }

        return(handle);
    }

    // wrong mode?
    return(NULL);
}