diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2010-06-30 17:42:04 +0200 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2010-06-30 17:42:04 +0200 |
commit | b644ad1e65198fb556b84bc38600ff484374ad2c (patch) | |
tree | b30c1d53d450beab6c738c1cfc81ede87b9a1257 /src/CLI | |
parent | c50ea5b03387781e2f8d228553d4aedbfe3907b5 (diff) | |
download | abrt-b644ad1e65198fb556b84bc38600ff484374ad2c.tar.gz abrt-b644ad1e65198fb556b84bc38600ff484374ad2c.tar.xz abrt-b644ad1e65198fb556b84bc38600ff484374ad2c.zip |
added support for package specific actions
Diffstat (limited to 'src/CLI')
-rw-r--r-- | src/CLI/report.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/CLI/report.cpp b/src/CLI/report.cpp index 8316418c..d917fd50 100644 --- a/src/CLI/report.cpp +++ b/src/CLI/report.cpp @@ -494,12 +494,17 @@ static vector_string_t get_enabled_reporters(map_crash_data_t &crash_data) const char *package_nvr = get_crash_data_item_content_or_NULL(crash_data, FILENAME_PACKAGE); if (!package_nvr) return result; /* No package name found in the crash data. */ - std::string str_package_nvr(package_nvr); - std::string package_name = str_package_nvr.substr(0, str_package_nvr.rfind("-", str_package_nvr.rfind("-") - 1)); + char * package_name = get_package_name_from_NVR_or_NULL(package_nvr); // analyzer with package name (CCpp:xorg-x11-app) has higher priority - std::string package_specific_analyzer = std::string(analyzer) + ":" + package_name; + map_string_t::const_iterator reporters_iter; + if(package_name != NULL) + { + char* package_specific_analyzer = xasprintf("%s:%s", analyzer, package_name); + reporters_iter = analyzer_to_reporters.find(package_specific_analyzer); + free(package_specific_analyzer); + free(package_name); + } - map_string_t::const_iterator reporters_iter = analyzer_to_reporters.find(package_specific_analyzer); if (analyzer_to_reporters.end() == reporters_iter) { reporters_iter = analyzer_to_reporters.find(analyzer); |