diff options
author | Shaun McCance <shaunm@gnome.org> | 2013-08-18 12:27:20 -0400 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2013-08-18 12:27:20 -0400 |
commit | f762d7559e35a12601a513b7ac191ada2b8cc304 (patch) | |
tree | 6bba1982cc44a7b33fdc2e4e54ab3dd0e26d37fc | |
parent | d4cdad3da0798e52b14e8946a5fe3c6dcbe5679c (diff) | |
download | yelp-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.c | 22 |
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; |