瀏覽代碼

Support trash-cli to trash

master
Arun Prakash Jana 5 年之前
父節點
當前提交
5dd5710b31
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: A75979F35C080412
共有 2 個文件被更改,包括 21 次插入9 次删除
  1. +3
    -3
      README.md
  2. +18
    -6
      src/nnn.c

+ 3
- 3
README.md 查看文件

@@ -101,7 +101,7 @@ It runs on Linux, macOS, Raspberry Pi, BSD, Cygwin, Linux subsystem for Windows
- Create, rename files and directories
- Select files across dirs; all/range selection
- Copy, move, delete, archive selection
- Freedeskp compliant trash (needs trash-cli)
- FreeDesktop compliant trash (needs trash-cli)
- Show copy, move progress on Linux (needs avdcpmv)
- Create sym/hard link(s) to selection
- Transfer files using lftp
@@ -136,7 +136,7 @@ It runs on Linux, macOS, Raspberry Pi, BSD, Cygwin, Linux subsystem for Windows
| xdg-open (Linux), open(1) (macOS), cygstart (Cygwin) | desktop opener |
| file | determine file type |
| coreutils (cp, mv, rm), findutils (xargs) | copy, move and remove files |
| trash-cli | trash files instead of delete |
| trash-cli | trash files (instead of delete) |
| mediainfo or exiftool | multimedia file details |
| atool, patool ([integration](https://github.com/jarun/nnn/wiki/How-to#integrate-patool)) | create, list and extract archives |
| vidir (from moreutils) | batch rename dir entries |
@@ -378,7 +378,7 @@ The following indicators are used in the detail view:
| `NNN_NO_AUTOSELECT=1` | do not auto-select matching dir in _nav-as-you-type` mode |
| `NNN_RESTRICT_NAV_OPEN=1` | open files on <kbd> ↵</kbd>, not <kbd>→</kbd> or <kbd>l</kbd> |
| `NNN_RESTRICT_0B=1` | do not open 0-byte files |
| `NNN_TRASH=1` | trash (instead of _delete_) files to desktop Trash |
| `NNN_TRASH=1` | trash files to the desktop Trash [default: delete] |
| `NNN_CP_MV_PROG=1` | show copy, move progress on Linux |

#### Help


+ 18
- 6
src/nnn.c 查看文件

@@ -1141,20 +1141,32 @@ static void mvstr(char *buf)

static void rmmulstr(char *buf)
{
snprintf(buf, CMD_LEN_MAX,
if (cfg.trash) {
snprintf(buf, CMD_LEN_MAX,
#ifdef __linux__
"xargs -0 -a %s trash-put", g_cppath);
#else
"cat %s | xargs -0 trash-put", g_cppath);
#endif
} else {
snprintf(buf, CMD_LEN_MAX,
#ifdef __linux__
"xargs -0 -a %s rm -%cr",
"xargs -0 -a %s rm -%cr", g_cppath, confirm_force());
#else
"cat %s | xargs -0 -o rm -%cr",
"cat %s | xargs -0 -o rm -%cr", g_cppath, confirm_force());
#endif
g_cppath, confirm_force());
}
}

static void xrm(char *path)
{
char rm_opts[] = {'-', confirm_force(), 'r'};
if (cfg.trash)
spawn("trash-put", path, NULL, NULL, F_NORMAL | F_SIGINT);
else {
char rm_opts[] = {'-', confirm_force(), 'r'};

spawn("rm", rm_opts, path, NULL, F_NORMAL | F_SIGINT);
spawn("rm", rm_opts, path, NULL, F_NORMAL | F_SIGINT);
}
}

static void archive_selection(const char *archive, const char *curpath)


Loading…
取消
儲存