projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
examples: Change extensions from .stat to .sps.
[pspp]
/
src
/
ui
/
gui
/
psppire-conf.c
diff --git
a/src/ui/gui/psppire-conf.c
b/src/ui/gui/psppire-conf.c
index dbcdf0e01f08d94907fedab3e43486e2a874c812..fe4f934bd640193e382f1fc077c7ff661f91850b 100644
(file)
--- a/
src/ui/gui/psppire-conf.c
+++ b/
src/ui/gui/psppire-conf.c
@@
-24,6
+24,8
@@
#include <stdio.h>
#include <sys/stat.h>
#include <stdio.h>
#include <sys/stat.h>
+#include <glib.h>
+
#include "psppire-conf.h"
static void psppire_conf_init (PsppireConf *conf);
#include "psppire-conf.h"
static void psppire_conf_init (PsppireConf *conf);
@@
-73,8
+75,8
@@
conf_read (PsppireConf *conf)
NULL);
}
NULL);
}
-static
void
-
conf_write
(PsppireConf *conf)
+static
gboolean
+
flush_conf
(PsppireConf *conf)
{
gsize length = 0;
{
gsize length = 0;
@@
-86,8
+88,19
@@
conf_write (PsppireConf *conf)
}
g_free (kf);
}
g_free (kf);
+ conf->idle = 0;
+ return FALSE;
}
}
+static void
+conf_write (PsppireConf *conf)
+{
+ if ( conf->idle == 0)
+ conf->idle = g_idle_add_full (G_PRIORITY_LOW,
+ (GSourceFunc) flush_conf, conf, NULL);
+}
+
+
static void
psppire_conf_dispose (GObject *object)
{
static void
psppire_conf_dispose (GObject *object)
{
@@
-150,13
+163,14
@@
psppire_conf_init (PsppireConf *conf)
to want to put files there. */
dirname = g_get_user_config_dir ();
if (stat (dirname, &s) == -1 && errno == ENOENT)
to want to put files there. */
dirname = g_get_user_config_dir ();
if (stat (dirname, &s) == -1 && errno == ENOENT)
- mkdir (dirname, 07
77
);
+ mkdir (dirname, 07
00
);
conf->filename = g_strdup_printf ("%s/%s", dirname, "psppirerc");
conf->keyfile = g_key_file_new ();
conf->dispose_has_run = FALSE;
conf->filename = g_strdup_printf ("%s/%s", dirname, "psppirerc");
conf->keyfile = g_key_file_new ();
conf->dispose_has_run = FALSE;
+ conf->idle = 0;
}
}