From 6cb1ffbb0c8669ce4942fa0380b0004a35db885d Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 11 Jan 2019 17:04:44 +0000 Subject: Improve error reporting when a file given on the command line cannot be opened: * Mention the filename. * Report the errno for the file itself, not the one with .gz appended. --- read.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'read.c') diff --git a/read.c b/read.c index afafcdb5..a3a1f982 100644 --- a/read.c +++ b/read.c @@ -1,7 +1,7 @@ -/* $Id: read.c,v 1.210 2018/12/31 04:55:47 schwarze Exp $ */ +/* $Id: read.c,v 1.211 2019/01/11 17:04:44 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2010-2018 Ingo Schwarze + * Copyright (c) 2010-2019 Ingo Schwarze * Copyright (c) 2010, 2012 Joerg Sonnenberger * * Permission to use, copy, modify, and distribute this software for any @@ -607,7 +607,7 @@ int mparse_open(struct mparse *curp, const char *file) { char *cp; - int fd; + int fd, save_errno; cp = strrchr(file, '.'); curp->gzip = (cp != NULL && ! strcmp(cp + 1, "gz")); @@ -623,9 +623,11 @@ mparse_open(struct mparse *curp, const char *file) */ if ( ! curp->gzip) { + save_errno = errno; mandoc_asprintf(&cp, "%s.gz", file); fd = open(cp, O_RDONLY); free(cp); + errno = save_errno; if (fd != -1) { curp->gzip = 1; return fd; -- cgit v1.2.3-56-ge451