diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2009-12-09 14:15:50 +0100 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2009-12-09 14:15:50 +0100 |
commit | c82490f8f4f69092457a15598de0e358dc4c0caa (patch) | |
tree | d4a0c4a6c50ea855f4bee5afe28689dde746e077 | |
parent | 5786caaf73de8e65debef450a7c6ee3f284313e4 (diff) |
Fix the output of empty values (like envstore save foo '')
-rw-r--r-- | src/envstore.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/envstore.c b/src/envstore.c index bf01aa9..43e6d56 100644 --- a/src/envstore.c +++ b/src/envstore.c @@ -98,12 +98,19 @@ static inline void print_escaped(char *name, char *content) { static void command_disp(char *file, int command) { char vname[PARAM_LENGTH]; char vcontent[VALUE_LENGTH]; + int read_items; FILE *fp = store_open(file); if (fp == NULL) exit(EXIT_SUCCESS); - while (fscanf(fp, SCAN_FORMAT, vname, vcontent) != EOF) { + while ((read_items = fscanf(fp, SCAN_FORMAT, vname, vcontent)) != EOF) { + + if (read_items == 0) + errx(EXIT_FAILURE, "Unable to read items, store file '%s' corrupt?", file); + else if (read_items == 1) + vcontent[0] = '\0'; + if (command == CMD_LIST) printf("%-15s = %s\n", vname, vcontent); else |