From 2c38fe180e2e7ada407e069e6beb8a322326c55b Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Tue, 5 Jun 2012 21:31:12 +0000 Subject: [PATCH] added: new function for ezc templating: void space_value_noescape(Info & i, PT::Space & space) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@846 e52654a7-88a9-db11-a3e9-0013d4bc506e --- templates/miscspace.cpp | 24 +++++++++++++++++++++++- templates/miscspace.h | 5 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/templates/miscspace.cpp b/templates/miscspace.cpp index df41662..3434409 100755 --- a/templates/miscspace.cpp +++ b/templates/miscspace.cpp @@ -129,12 +129,32 @@ void space(Info & i, PT::Space & space) if( value ) i.out << *value; else - log << log1 << "nie ma takiej wartosci" << logend; + log << log1 << "nie ma takiej wartosci" << logend; // only for testing } } } +void space_value_noescape(Info & i, PT::Space & space) +{ + space_check_reqid(); + + if( !i.params.empty() ) + { + SpaceInfo & space_info = spaces_map[&space]; + space_init(i.params, space, space_info); + + if( space_info.last_space ) + { + const std::wstring & param = i.params.back(); + const std::wstring * value = space_info.last_space->GetValue(param); + + if( value ) + i.out << R(*value); + } + } +} + @@ -263,6 +283,8 @@ void spaces_tab(Info & i, PT::Space & space) { SpaceStackItem & stack_item = spaces_tab_info.stack_tab[spaces_tab_info.cur_stack]; + // !! CHECK ME there was a change in EZC lately + // make sure this still is ok // i.iter is different for each [for] statement (implemented in EZC) // so we don't have to remember it in our stack // for each the same space we have only one item in the stack, e.g. diff --git a/templates/miscspace.h b/templates/miscspace.h index 5ab53e6..ad5cdd2 100755 --- a/templates/miscspace.h +++ b/templates/miscspace.h @@ -14,13 +14,18 @@ namespace TemplatesFunctions { +// !! rename to 'space_value' void space(Info & i, PT::Space & space); +void space_value_noescape(Info & i, PT::Space & space); +// !! rename to 'space_value_tab' etc. void spaces_tab(Info & i, PT::Space & space); void spaces_tab_value(Info & i, PT::Space & space); void spaces_tab_has_next(Info & i, PT::Space & space); +// !! add space_tab (iteration through spaces) + } // namespace TemplatesFunctions