diff --git a/src/main/findactions.c b/src/main/findactions.c index 1cd8159..f9f8fd7 100644 --- a/src/main/findactions.c +++ b/src/main/findactions.c @@ -42,6 +42,7 @@ void find_actions (char*** parOut, size_t* parCount) { list.count = 0; foreach_dir(&increase_actionlist, &list); if (0 == list.count) { + *parOut = NULL; return; } @@ -60,7 +61,9 @@ void free_actions (char** parActions, size_t parCount) { for (z = 0; z < parCount; ++z) { free(parActions[z]); } - free(parActions); + if (parActions) { + free(parActions); + } } static void foreach_dir (void(*parAction)(const char*, ActionList*), ActionList* parList) { diff --git a/src/main/main.c b/src/main/main.c index ca290dc..6a33ca0 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -40,9 +40,11 @@ int main (int parArgc, char* parArgv[]) { char** argv; FILE* streamout; int retval; + int showbuiltin; + showbuiltin = (parArgc >= 2 ? not strcmp("--builtin", parArgv[1]) : 0); find_actions(&actions, &actions_count); - if (0 == actions_count) { + if (0 == actions_count and not showbuiltin) { fprintf(stderr, "No actions found in \"%s\"\n", ACTIONS_SEARCH_PATH); return 1; } @@ -64,7 +66,7 @@ int main (int parArgc, char* parArgv[]) { free_actions(actions, actions_count); return retval; } - else if (strcmp("--builtin", parArgv[1]) == 0) { + else if (showbuiltin) { print_builtin_feats(); free_actions(actions, actions_count); return 0;