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; }
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); } }