- if (!allow_includes_b_)
- {
- LexerError (_ ("include files are not allowed in safe mode").to_str0 ());
- return;
- }
-
- Source_file *file = sources->get_file (name);
+ string current_dir = dir_name (main_input_name_);
+ if (relative_includes)
+ current_dir = include_stack_.size () ? dir_name (include_stack_.back ()->name_string ()) : "";
+
+ Source_file *file = sources->get_file (name, current_dir);