Переглянути джерело

Merge pull request #305 from 0xACE/fosterhome

Find a parent when CWD disappears
master
Mischievous Meerkat GitHub 6 роки тому
джерело
коміт
87d91251ae
Не вдалося знайти GPG ключ що відповідає даному підпису Ідентифікатор GPG ключа: 4AEE18F83AFDEB23
1 змінених файлів з 26 додано та 3 видалено
  1. +26
    -3
      src/nnn.c

+ 26
- 3
src/nnn.c Переглянути файл

@@ -3297,11 +3297,34 @@ nochange:
if (getppid() == 1)
_exit(0);

/* Check if CWD is deleted to avoid hang, bad idea */
/* Check if CWD is deleted and find an existing parent */
if (access(path, F_OK)) {
DPRINTF_S("dir deleted or moved");
cfg.badexit = 1;
return;

/* Save history */
xstrlcpy(lastname, xbasename(path), NAME_MAX + 1);

xstrlcpy(newpath, path, PATH_MAX);
while (true) {
dir = visit_parent(path, newpath, &presel);
if (istopdir(path) || istopdir(newpath)) {
if (!dir)
dir = dirname(newpath);
break;
}
if (!dir) {
xstrlcpy(path, newpath, PATH_MAX);
continue;
}
break;
}

xstrlcpy(path, dir, PATH_MAX);

setdirwatch();
mvprintw(xlines - 1, 0, "cannot access directory\n");
xdelay();
goto begin;
}

sel = nextsel(presel);


Завантаження…
Відмінити
Зберегти