fullscreen: T audio_rate: 44100 stereo: F player: Player fps: 30
Here is code to parse this file:
#int <xnm.h> int main() { XnmValue *cnf; // Configuration default values gboolean fullscreen = FALSE; gdouble audio_rate = 44100; gboolean stereo = FALSE; const gchar player = "Joe"; gint fps = 15; gboolean reflection = TRUE; if (xnm_parse_file(cnf_file, // output &cnf, &error) != 0) die("Failed reading file.\n"); ret = xnm_value_get_values(val, "fullscreen", XNM_GET_BOOL, &fullscreen, "audio_rate", XNM_GET_DOUBLE, &audio_root, "stereo", XNM_GET_BOOL, &stereo, "player", XNM_GET_STRING, &player, "fps", XNM_GET_INT, &fps, NULL); }
core => {
away => {
idle_reporting=>system
away_when_idle=>0
mins_before_way=>10
auto_reply=>awayidle
report_idle=>1
}
buddies => {}
contact => {
last_match => 0
offline_score => 2
away_score => 2
idle_score => 1
}
gaim => {
gtk=> {
browsers=> {
place=>F
command=>"xterm -e lynx %s"
browser=>firefox
new_window=>F
}
plugins => [
'/usr/lib/gaim/gaimrc.so'
'/usr/lib/gaim/ssl-nss.so'
'/usr/lib/gaim/ssl.so'
]
}
}
}
As a short example, let's just iterate over the plugins:
XnmValue *xnm_root, *xnm_plugins; /* Retrieve a shortcut. */ xnm_value_get(xnm_root, "core/gaim/gtk/plugins", &xnm_plugins); int num_plugins = xnm_value_get_array_length(xnm_plugins, ""); for (i=0; i<num_plugins; i++) { const gchar *plugin_name; gchar key[16]; sprintf(key, "[%d]", i); xnm_value_get_const_string(key, &plugin_name); } xnm_value_unref(xnm_plugins); }
1.5.7.1