X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdebug%2Flogger.cpp;h=fc83e89df006878579182213364194d9f0f34534;hb=b53b8aff0aa55c2349ea10992daac23a929ae19f;hp=a3f6899ef9ae0d8a2d1e0408fbb2957360bf1156;hpb=360aad676ba92ca443083da298b766628f6a3bfb;p=inkscape.git diff --git a/src/debug/logger.cpp b/src/debug/logger.cpp index a3f6899ef..fc83e89df 100644 --- a/src/debug/logger.cpp +++ b/src/debug/logger.cpp @@ -93,19 +93,29 @@ static void set_category_mask(bool * const mask, char const *filter) { while (*end) { while ( *end && *end != ',' ) { end++; } if ( start != end ) { - if (equal_range("CORE", start, end)) { - mask[Event::CORE] = true; - } else if (equal_range("XML", start, end)) { - mask[Event::XML] = true; - } else if (equal_range("SPOBJECT", start, end)) { - mask[Event::SPOBJECT] = true; - } else if (equal_range("DOCUMENT", start, end)) { - mask[Event::DOCUMENT] = true; - } else if (equal_range("REFCOUNT", start, end)) { - mask[Event::REFCOUNT] = true; - } else if (equal_range("EXTENSION", start, end)) { - mask[Event::EXTENSION] = true; - } else { + struct CategoryName { + char const *name; + Event::Category category; + }; + static const CategoryName category_names[] = { + { "CORE", Event::CORE }, + { "XML", Event::XML }, + { "SPOBJECT", Event::SPOBJECT }, + { "DOCUMENT", Event::DOCUMENT }, + { "REFCOUNT", Event::REFCOUNT }, + { "EXTENSION", Event::EXTENSION }, + { "FINALIZERS", Event::FINALIZERS }, + { "OTHER", Event::OTHER }, + { NULL, Event::OTHER } + }; + CategoryName const *iter; + for ( iter = category_names ; iter->name ; iter++ ) { + if (equal_range(iter->name, start, end)) { + mask[iter->category] = true; + break; + } + } + if (!iter->name) { g_warning("Unknown debugging category %*s", end - start, start); } }