瀏覽代碼

Fix 2 archive handling issues

- when an archive is mounted, jump into the mount point
- while archiving the hovered file, exit if the archive name is same
master
Arun Prakash Jana 5 年之前
父節點
當前提交
f41e68742d
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: A75979F35C080412
共有 1 個文件被更改,包括 26 次插入11 次删除
  1. +26
    -11
      src/nnn.c

+ 26
- 11
src/nnn.c 查看文件

@@ -4566,6 +4566,11 @@ nochange:
continue;
}

if (!sb.st_size) {
printwait(messages[MSG_EMPTY_FILE], &presel);
goto nochange;
}

if (!regexec(&archive_re, dents[cur].name, 0, NULL, 0)) {
r = get_input(messages[MSG_ARCHIVE_OPTS]);
if (r == 'l' || r == 'x') {
@@ -4575,24 +4580,31 @@ nochange:
goto begin;
}

fd = FALSE;
if (r == 'm') {
if (!archive_mount(dents[cur].name, path, newpath, &presel))
fd = MSG_FAILED;
} else if (r != 'd')
fd = MSG_INVALID_KEY;
if (archive_mount(dents[cur].name,
path, newpath, &presel)) {
lastname[0] = '\0';

/* Save last working directory */
xstrlcpy(lastdir, path, PATH_MAX);

/* Switch to mount point */
xstrlcpy(path, newpath, PATH_MAX);

setdirwatch();
goto begin;
} else {
printwait(messages[MSG_FAILED], &presel);
goto nochange;
}
}

if (r != 'd') {
fd ? printwait(messages[fd], &presel) : clearprompt();
printwait(messages[MSG_INVALID_KEY], &presel);
goto nochange;
}
}

if (!sb.st_size) {
printwait(messages[MSG_EMPTY_FILE], &presel);
goto nochange;
}

/* Invoke desktop opener as last resort */
spawn(opener, newpath, NULL, NULL, opener_flags);
continue;
@@ -5123,6 +5135,9 @@ nochange:

switch (sel) {
case SEL_ARCHIVE:
if (r == 'c' && strcmp(tmp, dents[cur].name) == 0)
goto nochange;

mkpath(path, tmp, newpath);
if (access(newpath, F_OK) == 0) {
fd = get_input(messages[MSG_OVERWRITE]);


Loading…
取消
儲存