Browse Source

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

master
sin 10 years ago
parent
commit
61bc5cd817
2 changed files with 27 additions and 1 deletions
  1. +2
    -1
      README
  2. +25
    -0
      noice.c

+ 2
- 1
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
- 0
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;
}
}
}



Loading…
Cancel
Save