Kaynağa Gözat

Add 't' command to sort output by entry's mtime

master
sin 10 yıl önce
ebeveyn
işleme
a63aac0b11
3 değiştirilmiş dosya ile 13 ekleme ve 0 silme
  1. +1
    -0
      config.def.h
  2. +2
    -0
      noice.1
  3. +10
    -0
      noice.c

+ 1
- 0
config.def.h Dosyayı Görüntüle

@@ -47,4 +47,5 @@ struct key bindings[] = {
{ '!', SEL_SH },
/* Change dir */
{ 'c', SEL_CD },
{ 't', SEL_MTIME },
};

+ 2
- 0
noice.1 Dosyayı Görüntüle

@@ -47,6 +47,8 @@ Change filter (see below for more information).
Enter filter-as-you-type mode.
.It Ic c
Change into the given directory.
.It Ic t
Sort by time modified.
.It Ic !
Spawn shell in current directory.
.It Ic q


+ 10
- 0
noice.c Dosyayı Görüntüle

@@ -56,6 +56,7 @@ enum action {
SEL_PGUP,
SEL_SH,
SEL_CD,
SEL_MTIME,
};

struct key {
@@ -68,8 +69,11 @@ struct key {
struct entry {
char *name;
mode_t mode;
time_t t;
};

int mtimeorder;

/*
* Layout:
* .---------
@@ -231,6 +235,8 @@ entrycmp(const void *va, const void *vb)
a = (struct entry *)va;
b = (struct entry *)vb;

if (mtimeorder)
return b->t - a->t;
return strcmp(a->name, b->name);
}

@@ -487,6 +493,7 @@ dentfill(char *path, struct entry **dents,
if (r == -1)
printerr(1, "lstat");
(*dents)[n].mode = sb.st_mode;
(*dents)[n].t = sb.st_mtime;
n++;
}

@@ -809,6 +816,9 @@ moretyping:
filter = xstrdup(ifilter); /* Reset filter */
DPRINTF_S(path);
goto out;
case SEL_MTIME:
mtimeorder = !mtimeorder;
goto out;
}
}



||||||
x
 
000:0
Yükleniyor…
İptal
Kaydet