Add support for --get and --set to cap_options (gnome_capplet_init): Add
2000-08-16 Bradford Hovinen <hovinen@helixcode.com> * capplet-widget.c: Add support for --get and --set to cap_options (gnome_capplet_init): Add return values 3 for --get and 4 for --set 2000-08-16 Bradford Hovinen <hovinen@helixcode.com> * rc-parse.c (write_screensaver_list): Don't try to write string if the screensaver has no command line * main.c (main): Register Popt table containing get and set options; call do_get_xml and do_set_xml when necessary (do_get_xml): (do_set_xml): Implement
This commit is contained in:
parent
a92e2e6423
commit
d24a6c7b67
5 changed files with 274 additions and 3 deletions
|
@ -28,6 +28,9 @@
|
|||
#include <gtk/gtk.h>
|
||||
#include <gnome.h>
|
||||
#include <libgnomeui/gnome-window-icon.h>
|
||||
#include <tree.h>
|
||||
#include <parser.h>
|
||||
#include <xmlIO.h>
|
||||
|
||||
#include <glade/glade.h>
|
||||
|
||||
|
@ -45,6 +48,8 @@ static PrefsWidget *prefs_widget;
|
|||
|
||||
static CappletWidget *capplet;
|
||||
|
||||
static gboolean do_get, do_set;
|
||||
|
||||
static void
|
||||
state_changed_cb (GtkWidget *widget)
|
||||
{
|
||||
|
@ -179,6 +184,50 @@ setup_capplet_widget (void)
|
|||
prefs->frozen = FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
do_get_xml (void)
|
||||
{
|
||||
Preferences *prefs;
|
||||
xmlDocPtr doc;
|
||||
|
||||
prefs = preferences_new ();
|
||||
preferences_load (prefs);
|
||||
doc = preferences_write_xml (prefs);
|
||||
xmlDocDump (stdout, doc);
|
||||
preferences_destroy (prefs);
|
||||
}
|
||||
|
||||
static void
|
||||
do_set_xml (void)
|
||||
{
|
||||
Preferences *prefs;
|
||||
xmlDocPtr doc;
|
||||
Preferences *old_prefs, *new_prefs;
|
||||
char *buffer;
|
||||
int len = 0;
|
||||
|
||||
while (!feof (stdin)) {
|
||||
if (!len) buffer = g_new (char, 16384);
|
||||
else buffer = g_renew (char, buffer, len + 16384);
|
||||
fread (buffer + len, 1, 16384, stdin);
|
||||
len += 16384;
|
||||
}
|
||||
|
||||
doc = xmlParseMemory (buffer, strlen (buffer));
|
||||
|
||||
old_prefs = preferences_new ();
|
||||
preferences_load (old_prefs);
|
||||
|
||||
new_prefs = preferences_read_xml (doc);
|
||||
|
||||
if (new_prefs) {
|
||||
new_prefs->config_db = old_prefs->config_db;
|
||||
preferences_save (new_prefs);
|
||||
} else {
|
||||
g_warning ("Error while reading the screensaver config file");
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
|
@ -197,6 +246,14 @@ main (int argc, char **argv)
|
|||
if (res < 0) {
|
||||
g_error ("Could not initialize the capplet.");
|
||||
}
|
||||
else if (res == 3) {
|
||||
do_get_xml ();
|
||||
return 0;
|
||||
}
|
||||
else if (res == 4) {
|
||||
do_set_xml ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
client = gnome_master_client ();
|
||||
flags = gnome_client_get_flags (client);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue