+/* Centralize calls to open(2) here. This provides a hook for future
+ changes which might, e.g. look for and open a precompiled version
+ of the header. It also means all the magic currently associated
+ with calling open is in one place, and if we ever need more, it'll
+ be in one place too.
+
+ Open files in nonblocking mode, so we don't get stuck if someone
+ clever has asked cpp to process /dev/rmt0. read_include_file
+ will check that we have a real file to work with. Also take care
+ not to acquire a controlling terminal by mistake (this can't happen
+ on sane systems, but paranoia is a virtue).
+
+ Use the three-argument form of open even though we aren't
+ specifying O_CREAT, to defend against broken system headers. */
+
+static inline int
+open_include_file (pfile, filename)
+ cpp_reader *pfile ATTRIBUTE_UNUSED;
+ const char *filename;
+{
+ return open (filename, O_RDONLY|O_NONBLOCK|O_NOCTTY, 0666);
+}
+