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:
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++;
}