-rw-r--r-- | components/exception_dev | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/components/exception_dev b/components/exception_dev index d62f462..49b7f45 100644 --- a/components/exception_dev +++ b/components/exception_dev @@ -11,33 +11,33 @@ #include <sitecing/util.h> #include <sitecing/magic.h> #include <konforka/util.h> #include <konforka/exception.h> </%impl> %%var string message; %%var string root_source; %%var string root_intermediate; %%var string root_so; %%var string component; %%var int line_number = -1; %%var const exception* exception_caught; <%code> __SCIF->headers.clear(); __SCIF->out->seekp(0); int magic = _magic; - va_list va = _args; + va_list va; va_copy(va,_args); switch(magic) { case sitecing::__magic_compile_error: message = va_arg(va,const char*); root_source = va_arg(va,const char*); root_intermediate = va_arg(va,const char*); root_so = va_arg(va,const char*); component = va_arg(va,const char*); break; case sitecing::__magic_preprocess_error: message = va_arg(va,const char*); root_source = va_arg(va,const char*); root_intermediate = va_arg(va,const char*); root_so = va_arg(va,const char*); component = va_arg(va,const char*); line_number = va_arg(va,int); break; @@ -313,32 +313,33 @@ } } </%code> <div class="what"> <% sitecing::html_escape(message,sitecing::html_escape_br) %> </div> </div> </%method> <%codemethod string strip_roots(const string& filename) %> string np = konforka::normalize_path(filename); try{ return sitecing::strip_prefix(np,root_source); }catch(sitecing::utility_no_prefix& e){ } try{ return sitecing::strip_prefix(np,root_intermediate); }catch(sitecing::utility_no_prefix& e){ } + return np; </%codemethod> <%codemethod string remove_roots(const string& str) %> string rv = str; string::size_type rp; string::size_type rl = root_source.length(); while((rp=rv.find(root_source))!=string::npos) { rv.erase(rp,rl); } rl = root_intermediate.length(); while((rp=rv.find(root_intermediate))!=string::npos) { rv.erase(rp,rl); } rl = root_so.length(); while((rp=rv.find(root_so))!=string::npos) { rv.erase(rp,rl); } |