files: remove a superfluous condition, and do not ignore a "No"

Having just opened a fresh buffer, 'openfile->next' will never be NULL,
because the list is circular.

Second, when compiled with --disable-nultibuffer, and deciding not to
override an existing lock, the 'return FALSE' should *not* be skipped,
because otherwise the named file will be opened after all.

This fixes an unreported bug.
master
Benno Schulenberg 2016-05-18 13:18:07 +02:00
parent bc33539b11
commit faf5227bc5
1 changed files with 4 additions and 5 deletions

View File

@ -456,14 +456,13 @@ bool open_buffer(const char *filename, bool undoable)
if (has_valid_path(realname)) {
#ifndef NANO_TINY
if (ISSET(LOCKING) && filename[0] != '\0') {
/* When not overriding an existing lock, discard the buffer. */
if (do_lockfile(realname) < 0) {
#ifndef DISABLE_MULTIBUFFER
if (openfile->next) {
close_buffer();
free(realname);
return FALSE;
}
close_buffer();
#endif
free(realname);
return FALSE;
}
}
#endif /* !NANO_TINY */