nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 942bb39547f6a4ae487f180f9cdc61ff4e7cc46e
parent 52b7a41ea4f2123b35781512692da0b6fe7b08e1
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Thu,  8 Jun 2017 10:40:19 +0200

startup: don't crash when opening standard input would fail

This fixes https://savannah.gnu.org/bugs/?51206.

Diffstat:
Msrc/nano.c | 12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/nano.c b/src/nano.c @@ -1145,8 +1145,14 @@ void stdin_pager(void) /* Open standard input. */ stream = fopen("/dev/stdin", "rb"); - if (stream == NULL) - nperror("fopen"); + if (stream == NULL) { + int errnumber = errno; + + terminal_init(); + doupdate(); + statusline(ALERT, _("Failed to open stdin: %s"), strerror(errnumber)); + return; + } /* Read the input into a new buffer. */ open_buffer("", FALSE); @@ -1167,6 +1173,7 @@ void stdin_pager(void) terminal_init(); doupdate(); + set_modified(); } /* Register half a dozen signal handlers. */ @@ -2528,7 +2535,6 @@ int main(int argc, char **argv) /* If one of the arguments is a dash, read text from standard input. */ if (optind < argc && !strcmp(argv[optind], "-")) { stdin_pager(); - set_modified(); optind++; }