diff options
Diffstat (limited to 'src/compgen.c')
-rw-r--r-- | src/compgen.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compgen.c b/src/compgen.c index 4e91fda..af8050d 100644 --- a/src/compgen.c +++ b/src/compgen.c @@ -125,11 +125,10 @@ char *compgen_cached() if (stat(cache_path, &sb) == -1) { if (errno == ENOENT) { char *commands = compgen(); - if (!mkdirp(cache_path)) { - free(cache_path); - return commands; + if (mkdirp(cache_path)) { + write_cache(commands, cache_path); } - write_cache(commands, cache_path); + free(cache_path); return commands; } free(cache_path); @@ -224,6 +223,8 @@ char *compgen() } buf[bytes_written] = '\0'; + string_vec_destroy(&programs); + return buf; } |