diff --git a/src/main.c b/src/main.c index 77e9edc866ae06c6401ac9f0e556082422754274..8f6284137523dc1d027c141285e7a896479083fc 100644 --- a/src/main.c +++ b/src/main.c @@ -28,18 +28,18 @@ /* check ncdu.h what these are for */ struct dir *dat; int winrows, wincols; -char sdir[PATH_MAX]; int sflags, bflags, sdelay, bgraph; int subwinc, subwinr; +struct state pstate; /* parse command line */ -void parseCli(int argc, char **argv) { +void argv_parse(int argc, char **argv, char *dir) { int i, j; /* load defaults */ - memset(sdir, 0, PATH_MAX); - getcwd(sdir, PATH_MAX); + memset(dir, 0, PATH_MAX); + getcwd(dir, PATH_MAX); sflags = 0; sdelay = 100; bflags = BF_SIZE | BF_DESC; @@ -85,9 +85,9 @@ void parseCli(int argc, char **argv) { exit(1); } } else { - sdir[PATH_MAX - 1] = 0; - strncpy(sdir, argv[i], PATH_MAX); - if(sdir[PATH_MAX - 1] != 0) { + dir[PATH_MAX - 1] = 0; + strncpy(dir, argv[i], PATH_MAX); + if(dir[PATH_MAX - 1] != 0) { printf("Error: path length exceeds PATH_MAX\n"); exit(1); } @@ -100,7 +100,8 @@ void parseCli(int argc, char **argv) { int main(int argc, char **argv) { dat = NULL; - parseCli(argc, argv); + argv_parse(argc, argv, pstate.calc.root); + pstate.st = ST_CALC; initscr(); cbreak(); @@ -108,14 +109,14 @@ int main(int argc, char **argv) { curs_set(0); keypad(stdscr, TRUE); ncresize(); - - if((dat = showCalc(sdir)) != NULL) + + if((dat = showCalc(pstate.calc.root)) != NULL) showBrowser(); erase(); refresh(); endwin(); - return(0); + return 0; } diff --git a/src/ncdu.h b/src/ncdu.h index ab6f8d91ca0f47f055e10f867205365db8f5d0f3..f07a446f624651c453afbcd32e3bc9ea0b5531bb 100644 --- a/src/ncdu.h +++ b/src/ncdu.h @@ -137,7 +137,10 @@ struct dir { struct state { int st; /* SC_x */ - /* TODO: information structs for the states */ + struct { + char root[PATH_MAX]; + } calc; + /* TODO: information structs for the other states */ }; @@ -156,6 +159,8 @@ extern char sdir[PATH_MAX]; extern int sflags, bflags, sdelay, bgraph; /* used for creating windows */ extern int subwinr, subwinc; +/* program state */ +extern struct state pstate; /*