summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2013-08-18 12:27:20 -0400
committerShaun McCance <shaunm@gnome.org>2013-08-18 12:27:20 -0400
commitf762d7559e35a12601a513b7ac191ada2b8cc304 (patch)
tree6bba1982cc44a7b33fdc2e4e54ab3dd0e26d37fc
parentd4cdad3da0798e52b14e8946a5fe3c6dcbe5679c (diff)
downloadyelp-f762d7559e35a12601a513b7ac191ada2b8cc304.tar.gz
yelp-settings: Hook up DocBook conditional processing
Currently anything that gets a platform: token in Mallard gets put in the db.profile.os parameter for matching on the os attr.
-rw-r--r--libyelp/yelp-settings.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/libyelp/yelp-settings.c b/libyelp/yelp-settings.c
index ad7b80cf..2635b9b4 100644
--- a/libyelp/yelp-settings.c
+++ b/libyelp/yelp-settings.c
@@ -823,11 +823,11 @@ yelp_settings_get_all_params (YelpSettings *settings,
{
gchar **params;
gint i, ix;
- GString *envstr;
+ GString *malstr, *dbstr;
GList *envs, *envi;
params = g_new0 (gchar *,
- (2*YELP_SETTINGS_NUM_COLORS) + (2*YELP_SETTINGS_NUM_ICONS) + extra + 7);
+ (2*YELP_SETTINGS_NUM_COLORS) + (2*YELP_SETTINGS_NUM_ICONS) + extra + 9);
for (i = 0; i < YELP_SETTINGS_NUM_COLORS; i++) {
gchar *val;
@@ -854,16 +854,24 @@ yelp_settings_get_all_params (YelpSettings *settings,
else
params[ix++] = g_strdup ("false()");
- envstr = g_string_new ("'");
+ malstr = g_string_new ("'");
+ dbstr = g_string_new ("'");
envs = g_hash_table_get_keys (settings->priv->tokens);
for (envi = envs; envi != NULL; envi = envi->next) {
- g_string_append_c (envstr, ' ');
- g_string_append (envstr, (gchar *) envi->data);
+ g_string_append_c (malstr, ' ');
+ g_string_append (malstr, (gchar *) envi->data);
+ if (g_str_has_prefix ((gchar *) envi->data, "platform:")) {
+ g_string_append_c (dbstr, ';');
+ g_string_append (dbstr, (gchar *) (envi->data + 9));
+ }
}
- g_string_append_c (envstr, '\'');
+ g_string_append_c (malstr, '\'');
+ g_string_append_c (dbstr, '\'');
g_list_free (envs);
params[ix++] = g_strdup ("mal.if.custom");
- params[ix++] = g_string_free (envstr, FALSE);
+ params[ix++] = g_string_free (malstr, FALSE);
+ params[ix++] = g_strdup ("db.profile.os");
+ params[ix++] = g_string_free (dbstr, FALSE);
params[ix] = NULL;