Add 'c' command to change into a destination directory by typing the path

This commit is contained in:
sin 2014-10-21 15:13:21 +01:00
parent 58f897fead
commit 61bc5cd817
2 changed files with 27 additions and 1 deletions

3
README
View file

@ -35,8 +35,9 @@ You can navigate the list using the following keybinds (hardcoded):
| l | RIGHT | ^M | open file / directory (see section "File opening")
| h | LEFT | ^? | navigate up one directory
| / | & | | filter output
| q | | | exit program
| ! | | | spawn shell in current directory
| c | | | type and change into destination directory
| q | | | exit program
+------+-------+-------+---------------------------------------------------
File opening

25
noice.c
View file

@ -204,6 +204,7 @@ enum {
SEL_GOIN,
SEL_FLTR,
SEL_SH,
SEL_CD,
};
int
@ -258,6 +259,8 @@ nextsel(int *cur, int max)
break;
case '!':
return SEL_SH;
case 'c':
return SEL_CD;
}
return 0;
@ -604,6 +607,28 @@ nochange:
if (chdir(ipath) == -1)
printwarn();
break;
case SEL_CD:
/* Read target dir */
printmsg("");
move(LINES - 1, 0);
printw("chdir: ");
tmp = readln();
if (tmp == NULL) {
printmsg("");
goto nochange;
}
if (testopendir(tmp) == 0) {
printwarn();
goto nochange;
} else {
free(path);
path = strdup(tmp);
free(filter);
filter = strdup(ifilter); /* Reset filter */
DPRINTF_S(path);
cur = 0;
goto out;
}
}
}