Example #1
0
int main(int argc, char *argv[])
{
    // This works because argv is NULL-terminated
    char **argv_copy = mb::util::dup_cstring_list(argv);
    if (!argv_copy) {
        fprintf(stderr, "Failed to copy arguments: %s\n", strerror(errno));
        return EXIT_FAILURE;
    }

    if (!mb::util::set_process_title_init(argc, argv)) {
        fprintf(stderr, "set_process_title_init() failed: %s\n",
                strerror(errno));
        return EXIT_FAILURE;
    }

    umask(0);

    if (!setlocale(LC_ALL, "C")) {
        fprintf(stderr, "Failed to set default locale\n");
    }

    int ret;

    char *no_multicall = getenv("MBTOOL_NO_MULTICALL");
    if (no_multicall && strcmp(no_multicall, "true") == 0) {
        ret = main_normal(argc, argv_copy);
    } else {
        ret = main_multicall(argc, argv_copy);
    }

    mb::util::free_cstring_list(argv_copy);

    return ret;
}
Example #2
0
int main(int argc, char *argv[])
{
    main_argv0 = argv[0];

    umask(0);

    if (!setlocale(LC_ALL, "C")) {
        fprintf(stderr, "Failed to set default locale\n");
    }

    char *no_multicall = getenv("MBTOOL_NO_MULTICALL");
    if (no_multicall && strcmp(no_multicall, "true") == 0) {
        return main_normal(argc, argv);
    } else {
        return main_multicall(argc, argv);
    }
}