summaryrefslogtreecommitdiffstats
path: root/src/lib/parse_release.c
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-01-25 21:17:49 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-01-25 21:17:49 +0100
commit7f5cbf38caa3c6fdd0afe3a4cb7a9bd3b3010596 (patch)
tree18f2a6581d8428606309fdcd5b01b3a0d6379166 /src/lib/parse_release.c
parentd5cbfe52eaaa9f690a1e2937faf62781cd52d722 (diff)
downloadabrt-7f5cbf38caa3c6fdd0afe3a4cb7a9bd3b3010596.tar.gz
abrt-7f5cbf38caa3c6fdd0afe3a4cb7a9bd3b3010596.tar.xz
abrt-7f5cbf38caa3c6fdd0afe3a4cb7a9bd3b3010596.zip
split parse_release() into Bz and RHTS versions
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/lib/parse_release.c')
-rw-r--r--src/lib/parse_release.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/lib/parse_release.c b/src/lib/parse_release.c
index f9057bfe..b24f928c 100644
--- a/src/lib/parse_release.c
+++ b/src/lib/parse_release.c
@@ -19,7 +19,7 @@
#include "abrtlib.h"
// caller is reposible for freeing *product* and *version*
-void parse_release(const char *release, char** product, char** version)
+static void parse_release(const char *release, char** product, char** version, bool append_rhel_version)
{
if (strstr(release, "Rawhide"))
{
@@ -33,21 +33,31 @@ void parse_release(const char *release, char** product, char** version)
if (strstr(release, "Fedora"))
strbuf_append_str(buf_product, "Fedora");
else if (strstr(release, "Red Hat Enterprise Linux"))
- strbuf_append_str(buf_product, "Red Hat Enterprise Linux ");
+ strbuf_append_str(buf_product, "Red Hat Enterprise Linux");
+ else
+ {
+ /* TODO: add logic for parsing other distros' names here */
+ strbuf_append_str(buf_product, release);
+ }
const char *r = strstr(release, "release");
const char *space = r ? strchr(r, ' ') : NULL;
struct strbuf *buf_version = strbuf_new();
- if (space++)
+ if (space)
{
+ space++;
while (*space != '\0' && *space != ' ')
{
/* Eat string like "5.2" */
strbuf_append_char(buf_version, *space);
- if ((strcmp(buf_product->buf, "Red Hat Enterprise Linux ") == 0))
+ if (append_rhel_version
+ && strcmp(buf_product->buf, "Red Hat Enterprise Linux") == 0
+ ) {
+ strbuf_append_char(buf_product, ' ');
strbuf_append_char(buf_product, *space);
-
+ }
+ append_rhel_version = false;
space++;
}
}
@@ -57,3 +67,15 @@ void parse_release(const char *release, char** product, char** version)
VERB3 log("%s: version:'%s' product:'%s'", __func__, *version, *product);
}
+
+void parse_release_for_bz(const char *release, char** product, char** version)
+{
+ /* Fedora/RH bugzilla uses "Red Hat Enterprise Linux N" product RHEL */
+ parse_release(release, product, version, /*append_rhel_version:*/ true);
+}
+
+void parse_release_for_rhts(const char *release, char** product, char** version)
+{
+ /* RHTS uses "Red Hat Enterprise Linux" product for RHEL */
+ parse_release(release, product, version, /*append_rhel_version:*/ false);
+}