Commit ae1139f9 by Douglas B Rupp Committed by Richard Kenner

cppfiles.c (STAT_SIZE_TOO_BIG): Define.

	* cppfiles.c (STAT_SIZE_TOO_BIG): Define.
	(read_include_file): Use STAT_SIZE_TOO_BIG.

From-SVN: r47245
parent ca47c89e
Wed Nov 21 16:44:01 2001 Douglas B. Rupp <rupp@gnat.com> Wed Nov 21 16:44:01 2001 Douglas B. Rupp <rupp@gnat.com>
* cppfiles.c (STAT_SIZE_TOO_BIG): Define.
(read_include_file): Use STAT_SIZE_TOO_BIG.
* cppinit.c (INO_T_COPY): Define. * cppinit.c (INO_T_COPY): Define.
(INO_T_EQ): Uppercase parameters. (INO_T_EQ): Uppercase parameters.
(append_include_chain): Use INO_T_COPY. (append_include_chain): Use INO_T_COPY.
......
...@@ -73,6 +73,15 @@ struct include_file ...@@ -73,6 +73,15 @@ struct include_file
unsigned char mapped; /* file buffer is mmapped */ unsigned char mapped; /* file buffer is mmapped */
}; };
/* Variable length record files on VMS will have a stat size that includes
record control characters that won't be included in the read size. */
#ifdef VMS
# define FAB_C_VAR 2 /* variable length records (see Starlet fabdef.h) */
# define STAT_SIZE_TOO_BIG(ST) ((ST).st_fab_rfm == FAB_C_VAR)
#else
# define STAT_SIZE_TOO_BIG(ST) 0
#endif
/* The cmacro works like this: If it's NULL, the file is to be /* The cmacro works like this: If it's NULL, the file is to be
included again. If it's NEVER_REREAD, the file is never to be included again. If it's NEVER_REREAD, the file is never to be
included again. Otherwise it is a macro hashnode, and the file is included again. Otherwise it is a macro hashnode, and the file is
...@@ -392,7 +401,11 @@ read_include_file (pfile, inc) ...@@ -392,7 +401,11 @@ read_include_file (pfile, inc)
goto perror_fail; goto perror_fail;
if (count == 0) if (count == 0)
{ {
cpp_warning (pfile, "%s is shorter than expected", inc->name); if (!STAT_SIZE_TOO_BIG (inc->st))
cpp_warning
(pfile, "%s is shorter than expected", inc->name);
buf = xrealloc (buf, offset);
inc->st.st_size = offset;
break; break;
} }
offset += count; offset += count;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment