From f24ddbddc5177a930b867626b12d2bb8b3757223 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 7 Nov 2003 12:19:34 +0000 Subject: Use consistent error messages for missing files. Detect directories where an ordinary file is expected. --- gas/ChangeLog | 5 +++++ gas/input-file.c | 25 +++++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 57cf9ff..fadb9c3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-11-07 Jonathan R. Grant + + * input-file.c (input_file_open): Use "No such file" error + message. + 2003-11-06 Pete Gonzalez * config/tc-arm.texi (struct reg_entry): Add new field 'builtin'. diff --git a/gas/input-file.c b/gas/input-file.c index b6c91ed..8e73615 100644 --- a/gas/input-file.c +++ b/gas/input-file.c @@ -1,5 +1,5 @@ /* input_file.c - Deal with Input Files - - Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001 + Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -26,6 +26,7 @@ #include #include +#include #include "as.h" #include "input-file.h" #include "safe-ctype.h" @@ -135,15 +136,31 @@ input_file_open (filename, pre) assert (filename != 0); /* Filename may not be NULL. */ if (filename[0]) - { /* We have a file name. Suck it and see. */ + { + struct stat statbuf; + + if (stat (filename, &statbuf) < 0) + { + as_bad (_("%s: No such file"), filename); + return; + } + else if (! S_ISREG (statbuf.st_mode)) + { + as_bad (_("'%s' is not an ordinary file"), filename); + return; + } + f_in = fopen (filename, FOPEN_RT); file_name = filename; } else - { /* use stdin for the input file. */ + { + /* Use stdin for the input file. */ f_in = stdin; - file_name = _("{standard input}"); /* For error messages. */ + /* For error messages. */ + file_name = _("{standard input}"); } + if (f_in == (FILE *) 0) { as_bad (_("can't open %s for reading"), file_name); -- cgit v1.1