Add command to cd back to HOME

Original patch written by Richard Hyde and taken from
https://github.com/RichardHyde/noice
This commit is contained in:
sin 2016-02-25 15:06:57 +00:00
parent e1c26079b1
commit 829bcdd7d4
3 changed files with 20 additions and 1 deletions

View File

@ -56,6 +56,7 @@ struct key bindings[] = {
{ '$', SEL_END }, { '$', SEL_END },
/* Change dir */ /* Change dir */
{ 'c', SEL_CD }, { 'c', SEL_CD },
{ '~', SEL_CDHOME },
/* Toggle hide .dot files */ /* Toggle hide .dot files */
{ '.', SEL_TOGGLEDOT }, { '.', SEL_TOGGLEDOT },
/* Toggle sort by time */ /* Toggle sort by time */

View File

@ -1,4 +1,4 @@
.Dd November 26, 2015 .Dd February 25, 2016
.Dt NOICE 1 .Dt NOICE 1
.Os .Os
.Sh NAME .Sh NAME
@ -49,6 +49,8 @@ Back up one directory level.
Change filter (see below for more information). Change filter (see below for more information).
.It Ic c .It Ic c
Change into the given directory. Change into the given directory.
.It Ic ~
Change to the HOME directory.
.It Ic \&. .It Ic \&.
Toggle hide .dot files. Toggle hide .dot files.
.It Ic t .It Ic t

16
noice.c
View File

@ -57,6 +57,7 @@ enum action {
SEL_HOME, SEL_HOME,
SEL_END, SEL_END,
SEL_CD, SEL_CD,
SEL_CDHOME,
SEL_TOGGLEDOT, SEL_TOGGLEDOT,
SEL_MTIME, SEL_MTIME,
SEL_REDRAW, SEL_REDRAW,
@ -707,6 +708,21 @@ nochange:
strlcpy(fltr, ifilter, sizeof(fltr)) strlcpy(fltr, ifilter, sizeof(fltr))
DPRINTF_S(path); DPRINTF_S(path);
goto begin; goto begin;
case SEL_CDHOME:
tmp = getenv("HOME");
if (tmp == NULL) {
clearprompt();
goto nochange;
}
if (canopendir(tmp) == 0) {
printwarn();
goto nochange;
}
strlcpy(path, tmp, sizeof(path));
/* Reset filter */
strlcpy(fltr, ifilter, sizeof(fltr));
DPRINTF_S(path);
goto begin;
case SEL_TOGGLEDOT: case SEL_TOGGLEDOT:
if (strcmp(fltr, ifilter) != 0) if (strcmp(fltr, ifilter) != 0)
strlcpy(fltr, ifilter, sizeof(fltr)); strlcpy(fltr, ifilter, sizeof(fltr));