[yelp] yelp-settings: Hook up DocBook conditional processing



commit f762d7559e35a12601a513b7ac191ada2b8cc304
Author: Shaun McCance <shaunm gnome org>
Date:   Sun Aug 18 12:27:20 2013 -0400

    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.

 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 ad7b80c..2635b9b 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;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]