From 315132b3633459f0bccf47dd9e671fde37463184 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Mon, 13 Apr 2020 08:32:32 +0530 Subject: [PATCH] =?UTF-8?q?Happy=20Birthday=20nnn!=20=F0=9F=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 45 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 +-- nnn.1 | 2 +- src/nnn.c | 18 ++++++++---------- 4 files changed, 55 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 811c4eb6..7619d2ea 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,48 @@ +nnn v3.1 +2020-04-13 + +- unlimited bookmarks and plugin keys +- status bar text in context color +- support config `NO_COLOR` to disable colors +- config `NNN_OPTS` to specify binary options to `nnn` +- config `NNN_MCLICK` to emulate configurable key +- toggle selection on right click +- ignore hard links when calculating disk usage +- dim (hard/sym) link names (symlink to file has `@`) +- more special keys at empty filter prompt in _type-to-nav_ +- key > to export file list +- option `-F` to show fortune in help and settings screen +- option `-T` to specify sort order (obsoletes `-v`) +- option to clear sort order +- key T to change time type (access/change/mod) +- `.nmv` - internal fully-functional batch renamer plugin +- make var `O_NOBATCH` to disable native batch renamer +- `nuke` & `imgview` - open all images in directory sxiv +- `nuke` - open log files in vi +- plugin `x2sel` - system clipboard to selection copier +- plugin `fzy` - cd using z database +- plugin `fzopen` - support `FZF_DEFAULT_COMMAND` +- create new context on TAB without prompt +- hover and connect by dir name (within config dir) +- move to next entry on current file delete +- on single file copy/move, select the copied/moved file +- option `-f` to to use readline history file (off by default) +- use `s` in status bar to indicate selection in progress +- make var `O_NOMOUSE` to disable mouse support +- do not store `NNN_TRASH` and `-Q` in config/session +- add sample .desktop file for XDG compatible DEs +- rename _nav-as-you-type_ to _type-to-nav_ mode +- fix PCRE case-insensitive regex search +- fix no error msg when filter length limit exceeded +- fix static package generation +- fix broken abort message when started in du-mode +- fix filter lost on context switch in non _type-to-nav_ mode +- fix broken readline prompt +- fix long strings treated as action keys in filter prompt +- fix `NNNLVL` not reset when spawned shell is exited + +------------------------------------------------------------------------------- + nnn v3.0 2020-02-12 diff --git a/README.md b/README.md index e3301c20..0f17a7eb 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ CircleCI Status Privacy Awareness License -Wiki Donate via PayPal!

@@ -51,7 +50,7 @@ It runs smoothly on the Pi, [Termux](https://www.youtube.com/watch?v=AbaauM7gUJw 25. Watch matrix text fly or read fortune messages 26. Configure in 5 minutes! -Once installed (instructions below), _**read the fine [manual](https://github.com/jarun/nnn/wiki)**_. +Once installed (instructions below), _**read the fine manual**_. [![Wiki](https://img.shields.io/badge/nnn-Wiki-important?maxAge=2592000)](https://github.com/jarun/nnn/wiki) ## Features diff --git a/nnn.1 b/nnn.1 index cc74b0e0..6b5ff0a5 100644 --- a/nnn.1 +++ b/nnn.1 @@ -1,4 +1,4 @@ -.Dd Feb 12, 2020 +.Dd Apr 13, 2020 .Dt NNN 1 .Os .Sh NAME diff --git a/src/nnn.c b/src/nnn.c index b9cc70c2..8f21134d 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -107,7 +107,7 @@ #include "dbg.h" /* Macro definitions */ -#define VERSION "3.0" +#define VERSION "3.1" #define GENERAL_INFO "BSD 2-Clause\nhttps://github.com/jarun/nnn" #define SESSIONS_VERSION 1 @@ -770,7 +770,7 @@ static void clear_hash() static void clearinfoln(void) { move(xlines - 2, 0); - addch('\n'); + clrtoeol(); } #ifdef KEY_RESIZE @@ -819,12 +819,6 @@ static void printerr(int linenum) exit(1); } -static void printinfoln(const char *str) -{ - clearinfoln(); - mvaddstr(xlines - 2, xcols - strlen(str), str); -} - static inline bool xconfirm(int c) { return (c == 'y' || c == 'Y'); @@ -936,7 +930,7 @@ static void *xrealloc(void *pcur, size_t len) * Always null ('\0') terminates if both src and dest are valid pointers. * Returns the number of bytes copied including terminating null byte. */ -static size_t xstrsncpy(char *restrict dest, const char *restrict src, size_t n) +static size_t xstrsncpy(char *dest, const char *src, size_t n) { if (!src || !dest || !n) return 0; @@ -2390,13 +2384,17 @@ static void showfilterinfo(void) snprintf(info + i, REGEX_MAX - i - 1, " %s [/], %s [:]", (cfg.regex ? "regex" : "str"), ((fnstrstr == &strcasestr) ? "ic" : "noic")); - printinfoln(info); + + clearinfoln(); + mvaddstr(xlines - 2, xcols - strlen(info), info); } static void showfilter(char *str) { + attron(COLOR_PAIR(cfg.curctx + 1)); showfilterinfo(); printmsg(str); + // printmsg calls attroff() } static inline void swap_ent(int id1, int id2)