Boost logo

Boost :

From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2007-05-18 22:51:35


On 5/18/07, Hartmut Kaiser <hartmut.kaiser_at_[hidden]> wrote:
> Felipe,
>
> > I have modified it in my local copy to have this.
>
> That's a nice idea! Could you send me a patch, please? I'll incorporate it
> into the codebase.

Sure, in the end of the message.
Used cvs diff. Hope it is right.

>
> Regards Hartmut

Index: util/cpp_iterator.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/wave/util/cpp_iterator.hpp,v
retrieving revision 1.35.2.16
diff -r1.35.2.16 cpp_iterator.hpp
1205,1223c1205
< ctx.get_hooks().found_include_directive(f, include_next);
<
< file_path = util::impl::unescape_lit(file_path);
< if (!ctx.find_include_file (file_path, dir_path, is_system,
current_name)) {
< BOOST_WAVE_THROW(preprocess_exception, bad_include_file,
< file_path.c_str(), act_pos);
< }
<
< fs::path native_path(file_path, fs::native);
<
< if (!fs::exists(native_path)) {
< BOOST_WAVE_THROW(preprocess_exception, bad_include_file,
< file_path.c_str(), act_pos);
< }
<
< // test, if this file is known through a #pragma once directive
< #if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0
< if (!ctx.has_pragma_once(native_path.native_file_string()))
< #endif

---
>     if(ctx.get_hooks().found_include_directive(f, include_next))
1225,1251d1206
<     // the new include file determines the actual current directory
<         ctx.set_current_directory(native_path.native_file_string().c_str());
<
<     // preprocess the opened file
<     boost::shared_ptr<base_iteration_context_type> new_iter_ctx (
<         new iteration_context_type(native_path.native_file_string().c_str(),
<             act_pos,
boost::wave::enable_prefer_pp_numbers(ctx.get_language())));
<
<     // call the include policy trace function
<         ctx.get_hooks().opened_include_file(dir_path, file_path,
<             ctx.get_iteration_depth(), is_system);
<
<     // store current file position
<         iter_ctx->filename = act_pos.get_file();
<         iter_ctx->line = act_pos.get_line();
<         iter_ctx->if_block_depth = ctx.get_if_block_depth();
<
<     // push the old iteration context onto the stack and continue with the new
<         ctx.push_iteration_context(act_pos, iter_ctx);
<         iter_ctx = new_iter_ctx;
<         seen_newline = true;        // fake a newline to trigger pp_directive
<         must_emit_line_directive = true;
<
<         act_pos.set_file(iter_ctx->filename);  // initialize file position
< #if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0
<         ctx.set_current_filename(iter_ctx->real_filename.c_str());
< #endif
1253,1254c1208,1256
<         act_pos.set_line(iter_ctx->line);
<         act_pos.set_column(0);
---
>       file_path = util::impl::unescape_lit(file_path);
>       if (!ctx.find_include_file (file_path, dir_path, is_system, current_name)) {
>           BOOST_WAVE_THROW(preprocess_exception, bad_include_file,
>               file_path.c_str(), act_pos);
>       }
>
>   fs::path native_path(file_path, fs::native);
>
>       if (!fs::exists(native_path)) {
>           BOOST_WAVE_THROW(preprocess_exception, bad_include_file,
>               file_path.c_str(), act_pos);
>       }
>
>   // test, if this file is known through a #pragma once directive
>   #if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0
>       if (!ctx.has_pragma_once(native_path.native_file_string()))
>   #endif
>       {
>       // the new include file determines the actual current directory
>           ctx.set_current_directory(native_path.native_file_string().c_str());
>
>       // preprocess the opened file
>       boost::shared_ptr<base_iteration_context_type> new_iter_ctx (
>           new iteration_context_type(native_path.native_file_string().c_str(),
>               act_pos, boost::wave::enable_prefer_pp_numbers(ctx.get_language())));
>
>       // call the include policy trace function
>           ctx.get_hooks().opened_include_file(dir_path, file_path,
>               ctx.get_iteration_depth(), is_system);
>
>       // store current file position
>           iter_ctx->filename = act_pos.get_file();
>           iter_ctx->line = act_pos.get_line();
>           iter_ctx->if_block_depth = ctx.get_if_block_depth();
>
>       // push the old iteration context onto the stack and continue with the new
>           ctx.push_iteration_context(act_pos, iter_ctx);
>           iter_ctx = new_iter_ctx;
>           seen_newline = true;        // fake a newline to trigger pp_directive
>           must_emit_line_directive = true;
>
>           act_pos.set_file(iter_ctx->filename);  // initialize file position
>   #if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0
>           ctx.set_current_filename(iter_ctx->real_filename.c_str());
>   #endif
>
>           act_pos.set_line(iter_ctx->line);
>           act_pos.set_column(0);
>       }
-- 
Felipe Magno de Almeida

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk