X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fdebug.C;h=bbf67f0fe52f35b20d7b6a4a5ed5b649c599a250;hb=024275f0690b41634e26dabe8758e3dc6cd31ee2;hp=8fa82458fbf313f3376602c1b58aa6cf55a37bd4;hpb=83acbbd5237373926c629855379e1df9a04209b2;p=lyx.git diff --git a/src/debug.C b/src/debug.C index 8fa82458fb..bbf67f0fe5 100644 --- a/src/debug.C +++ b/src/debug.C @@ -1,26 +1,35 @@ -/* This file is part of -* ====================================================== -* -* LyX, The Document Processor -* -* Copyright 1999-2001 The LyX Team. -* -* ====================================================== */ - -#ifdef __GNUG__ -#pragma implementation -#endif +/** + * \file debug.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ #include -#include - #include "debug.h" #include "gettext.h" -using std::ostream; +#include "support/convert.h" +#include "support/lstrings.h" + +#include +#include + + +namespace lyx { + +using support::ascii_lowercase; +using support::bformat; +using support::isStrInt; + using std::setw; -using std::endl; +using std::string; +using std::ostream; namespace { @@ -37,7 +46,7 @@ error_item errorTags[] = { { Debug::INIT, "init", N_("Program initialisation")}, { Debug::KEY, "key", N_("Keyboard events handling")}, { Debug::GUI, "gui", N_("GUI handling")}, - { Debug::PARSER, "parser", N_("Lyxlex grammer parser")}, + { Debug::PARSER, "parser", N_("Lyxlex grammar parser")}, { Debug::LYXRC, "lyxrc", N_("Configuration files reading")}, { Debug::KBMAP, "kbmap", N_("Custom keyboard definition")}, { Debug::LATEX, "latex", N_("LaTeX generation/execution")}, @@ -52,7 +61,14 @@ error_item errorTags[] = { { Debug::DEPEND, "depend", N_("Dependency information")}, { Debug::INSETS, "insets", N_("LyX Insets")}, { Debug::FILES, "files", N_("Files used by LyX")}, - { Debug::ANY, "any", N_("All debugging messages")} + { Debug::WORKAREA, "workarea", N_("Workarea events")}, + { Debug::INSETTEXT, "insettext", N_("Insettext/tabular messages")}, + { Debug::GRAPHICS, "graphics", N_("Graphics conversion and loading")}, + { Debug::CHANGES, "changes", N_("Change tracking")}, + { Debug::EXTERNAL, "external", N_("External template/inset messages")}, + { Debug::PAINTING, "painting", N_("RowPainter profiling")}, + { Debug::DEBUG, "debug", N_("Developers' general debug messages")}, + { Debug::ANY, "any", N_("All debugging messages")} }; @@ -60,30 +76,22 @@ int const numErrorTags = sizeof(errorTags)/sizeof(error_item); } // namespace anon - -Debug::type const Debug::ANY = Debug::type( - Debug::INFO | Debug::INIT | Debug::KEY | Debug::GUI | - Debug::PARSER | Debug::LYXRC | Debug::KBMAP | Debug::LATEX | - Debug::MATHED | Debug::FONT | Debug::TCLASS | Debug::LYXVC | - Debug::LYXSERVER | Debug::ROFF | Debug::ACTION | Debug::LYXLEX | - Debug::DEPEND | Debug::INSETS | Debug::FILES); - -Debug::type Debug::value(string const & val) +lyx_debug_trait::type lyx_debug_trait::value(string const & val) { type l = Debug::NONE; string v(val); while (!v.empty()) { - string::size_type st = v.find(','); - string tmp(lowercase(v.substr(0, st))); + string::size_type const st = v.find(','); + string const tmp(ascii_lowercase(v.substr(0, st))); if (tmp.empty()) break; // Is it a number? - if (isStrInt(tmp)) - l |= static_cast(strToInt(tmp)); + if (isStrInt(tmp)) + l |= static_cast(convert(tmp)); else // Search for an explicit name - for (int i = 0 ; i < numErrorTags ; ++i) + for (int i = 0 ; i < numErrorTags ; ++i) if (tmp == errorTags[i].name) { l |= errorTags[i].level; break; @@ -95,23 +103,35 @@ Debug::type Debug::value(string const & val) } -void Debug::showLevel(ostream & o, Debug::type level) +void lyx_debug_trait::showLevel(ostream & os, lyx_debug_trait::type level) { // Show what features are traced - for (int i = 0 ; i < numErrorTags ; ++i) + for (int i = 0; i < numErrorTags ; ++i) { if (errorTags[i].level != Debug::ANY && errorTags[i].level != Debug::NONE - && errorTags[i].level & level) - o << _("Debugging `") << errorTags[i].name - << "' (" << _(errorTags[i].desc) << ')' << endl; + && errorTags[i].level & level) { + // avoid to_utf8(_(...)) re-entrance problem + docstring const s = _(errorTags[i].desc); + os << to_utf8(bformat(_("Debugging `%1$s' (%2$s)"), + from_utf8(errorTags[i].name), s)) + << '\n'; + } + } + os.flush(); } -void Debug::showTags(ostream & os) +void lyx_debug_trait::showTags(ostream & os) { - for (int i = 0 ; i < numErrorTags ; ++i) - os << setw(7) << errorTags[i].level - << setw(10) << errorTags[i].name - << " " << _(errorTags[i].desc) << '\n'; + for (int i = 0; i < numErrorTags ; ++i) + os << setw(10) << static_cast(errorTags[i].level) + << setw(13) << errorTags[i].name + << " " << to_utf8(_(errorTags[i].desc)) << '\n'; os.flush(); } + + +LyXErr lyxerr; + + +} // namespace lyx