[dia] persistance: style cleanups



commit 05c64fa2ffc1725bb90781d012bc5389bbf7fc5d
Author: Zander Brown <zbrown gnome org>
Date:   Fri May 1 03:07:56 2020 +0100

    persistance: style cleanups
    
    Update docs

 lib/persistence.c | 791 ++++++++++++++++++++++++++++++++++++------------------
 lib/persistence.h | 107 ++++----
 2 files changed, 585 insertions(+), 313 deletions(-)
---
diff --git a/lib/persistence.c b/lib/persistence.c
index e0c7f86c..fe60a1ad 100644
--- a/lib/persistence.c
+++ b/lib/persistence.c
@@ -27,9 +27,6 @@
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 
 #include "persistence.h"
 #include "dia_dirs.h"
@@ -42,20 +39,22 @@
 #include <gtk/gtk.h>
 #include <libxml/tree.h>
 
-/* private data structures */
-/*!
- * \brief A persistently stored list of strings.
+
+/**
+ * PersistentList:
+ *
+ * A persistently stored list of strings.
  *
  * The persitent list contains no duplicates.
- * If sorted is FALSE, any string added will be placed in front of the list
+ * If sorted is %FALSE, any string added will be placed in front of the list
  * (possibly removing it from further down), thus making it an LRU list.
  * The list is not tied to any particular GTK widget, as it has uses
  * in a number of different places (though mostly in menus)
  */
 struct _PersistentList {
-  const gchar *role;
+  const char *role;
   gboolean sorted;
-  gint max_members;
+  int max_members;
   GList *glist;
   GList *listeners;
 };
@@ -68,18 +67,21 @@ typedef struct {
   GtkWindow *window;
 } PersistentWindow;
 
-/* Hash table from window role (string) to PersistentWindow structure.
- */
-static GHashTable *persistent_windows, *persistent_entrystrings, *persistent_lists;
-static GHashTable *persistent_integers, *persistent_reals;
-static GHashTable *persistent_booleans, *persistent_strings;
+/* string->value */
+static GHashTable *persistent_windows;
+static GHashTable *persistent_entrystrings;
+static GHashTable *persistent_lists;
+static GHashTable *persistent_integers;
+static GHashTable *persistent_reals;
+static GHashTable *persistent_booleans;
+static GHashTable *persistent_strings;
 static GHashTable *persistent_colors;
 
 static GHashTable *
 _dia_hash_table_str_any_new (void)
 {
   /* the key is const, the value gets freed */
-  return g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
+  return g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free);
 }
 
 /* *********************** LOADING FUNCTIONS *********************** */
@@ -275,7 +277,7 @@ persistence_set_type_handler (gchar *name, PersistenceLoadFunc func)
 
 
 static void
-persistence_init(void)
+persistence_init (void)
 {
   persistence_set_type_handler ("window", persistence_load_window);
   persistence_set_type_handler ("entrystring", persistence_load_entrystring);
@@ -356,8 +358,7 @@ persistence_load (void)
 
 
 /* *********************** SAVING FUNCTIONS *********************** */
-typedef struct
-{
+typedef struct {
   xmlNodePtr  tree;
   DiaContext *ctx;
 } PersitenceUserData;
@@ -531,52 +532,67 @@ persistence_save (void)
 
 /* ********* WINDOWS ********* */
 
-/* Returns the name used for a window in persistence.
+/*
+ * Returns the name used for a window in persistence.
  */
-static const gchar *
-persistence_get_window_name(GtkWindow *window)
+static const char *
+persistence_get_window_name (GtkWindow *window)
 {
-  const gchar *name = gtk_window_get_role(window);
+  const char *name = gtk_window_get_role (window);
+
   if (name == NULL) {
-    g_warning("Internal:  Window %s has no role.", gtk_window_get_title(window));
+    g_warning ("Internal: Window %s has no role.",
+               gtk_window_get_title (window));
     return NULL;
   }
+
   return name;
 }
 
+
 static void
-persistence_store_window_info(GtkWindow *window, PersistentWindow *wininfo,
-                             gboolean isclosed)
+persistence_store_window_info (GtkWindow        *window,
+                               PersistentWindow *wininfo,
+                               gboolean          isclosed)
 {
   /* Drawable means visible & mapped, what we usually think of as open. */
   if (!isclosed) {
-    gtk_window_get_position(window, &wininfo->x, &wininfo->y);
-    gtk_window_get_size(window, &wininfo->width, &wininfo->height);
+    gtk_window_get_position (window, &wininfo->x, &wininfo->y);
+    gtk_window_get_size (window, &wininfo->width, &wininfo->height);
     wininfo->isopen = TRUE;
   } else {
     wininfo->isopen = FALSE;
   }
 }
 
-/*!
- * \brief Update the persistent information for a window.
- * @param window The GTK window object being stored.
- * @param isclosed Whether the window should be stored as closed or not.
+
+/**
+ * persistence_update_window:
+ * @window: The GTK window object being stored.
+ * @isclosed: Whether the window should be stored as closed or not.
+ *
+ * Update the persistent information for a window.
+ *
  * In some cases, the window's open/close state is not updated by the time
  * the handler is called.
+ *
+ * Since: dawn-of-time
  */
 static void
-persistence_update_window(GtkWindow *window, gboolean isclosed)
+persistence_update_window (GtkWindow *window, gboolean isclosed)
 {
-  const gchar *name = persistence_get_window_name(window);
+  const char *name = persistence_get_window_name(window);
   PersistentWindow *wininfo;
 
-  if (name == NULL) return;
+  if (name == NULL) {
+    return;
+  }
 
   if (persistent_windows == NULL) {
-    persistent_windows = _dia_hash_table_str_any_new();
+    persistent_windows = _dia_hash_table_str_any_new ();
   }
-  wininfo = (PersistentWindow *)g_hash_table_lookup(persistent_windows, name);
+  wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows,
+                                                      name);
 
   if (wininfo != NULL) {
     persistence_store_window_info (window, wininfo, isclosed);
@@ -630,7 +646,7 @@ persistence_window_map (GtkWindow *window,
 {
   g_return_val_if_fail (event->type == GDK_MAP, FALSE);
 
-  dia_log_message  ("map (%s)", persistence_get_window_name (window));
+  dia_log_message ("map (%s)", persistence_get_window_name (window));
 
   persistence_update_window (window,
                              !gtk_widget_get_mapped (GTK_WIDGET (window)));
@@ -679,9 +695,12 @@ persistence_hide_show_window (GtkWindow *window, gpointer data)
  *
  * Check stored window information against screen size
  *
- * If the screen size has changed some persistent info maybe out of the visible area.
- * This function checks that stored coordinates are at least paritally visible on some
- * monitor. In GDK parlance a screen can have multiple monitors.
+ * If the screen size has changed some persistent info maybe out of the
+ * visible area.
+ *
+ * This function checks that stored coordinates are at least paritally
+ * visible on some monitor. In GDK parlance a screen can have multiple
+ * monitors.
  */
 static gboolean
 wininfo_in_range (const PersistentWindow *wininfo)
@@ -702,8 +721,10 @@ wininfo_in_range (const PersistentWindow *wininfo)
     gdk_screen_get_monitor_geometry (screen, i, &rmon);
 
     gdk_rectangle_intersect (&rwin, &rmon, &rres);
-    if (rres.width * rres.height > 0)
+
+    if (rres.width * rres.height > 0) {
       break;
+    }
   }
 
   return (rres.width * rres.height > 0);
@@ -721,7 +742,7 @@ wininfo_in_range (const PersistentWindow *wininfo)
 void
 persistence_register_window (GtkWindow *window)
 {
-  const gchar *name = persistence_get_window_name (window);
+  const char *name = persistence_get_window_name (window);
   PersistentWindow *wininfo;
 
   if (name == NULL) {
@@ -732,7 +753,8 @@ persistence_register_window (GtkWindow *window)
     persistent_windows = _dia_hash_table_str_any_new ();
   }
 
-  wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows, name);
+  wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows,
+                                                      name);
   if (wininfo != NULL) {
     if (wininfo_in_range (wininfo)) {
       /* only restore position if partially visible */
@@ -781,9 +803,11 @@ persistence_register_window (GtkWindow *window)
  * called if the window should be opened at startup.
  * If no persistence information is available for the given role,
  * nothing happens.
+ *
+ * Since: dawn-of-time
  */
 void
-persistence_register_window_create (gchar *role, NullaryFunc *func)
+persistence_register_window_create (char *role, NullaryFunc *func)
 {
   PersistentWindow *wininfo;
 
@@ -803,197 +827,290 @@ persistence_register_window_create (gchar *role, NullaryFunc *func)
 }
 
 
-/* ********* STRING ENTRIES ********** */
-
 static gboolean
-persistence_update_string_entry(GtkWidget *widget, GdkEvent *event,
-                               gpointer userdata)
+persistence_update_string_entry (GtkWidget *widget,
+                                 GdkEvent  *event,
+                                 gpointer   userdata)
 {
-  gchar *role = (gchar*)userdata;
+  char *role = (char*) userdata;
 
   if (event->type == GDK_FOCUS_CHANGE) {
-    gchar *string = (gchar *)g_hash_table_lookup(persistent_entrystrings, role);
-    const gchar *entrystring = gtk_entry_get_text(GTK_ENTRY(widget));
-    if (string == NULL || strcmp(string, entrystring) != 0) {
-      g_hash_table_insert(persistent_entrystrings, role, g_strdup(entrystring));
+    char *string = (char *) g_hash_table_lookup (persistent_entrystrings,
+                                                 role);
+    const char *entrystring = gtk_entry_get_text (GTK_ENTRY (widget));
+    if (string == NULL || g_strcmp0 (string, entrystring) != 0) {
+      g_hash_table_insert (persistent_entrystrings,
+                           role,
+                           g_strdup (entrystring));
     }
   }
 
   return FALSE;
 }
 
-/*!
- * \brief Cancel modification of a persistent string entry
+
+/**
+ * persistence_change_string_entry:
+ * @role: the name of the value
+ * @string: the new value
+ * @widget: #GtkEntry editing @role
+ *
+ * Cancel modification of a persistent string entry
  *
  * Change the contents of the persistently stored string entry.
  * If widget is non-null, it is updated to reflect the change.
  * This can be used e.g. for when a dialog is cancelled and the old
  * contents should be restored.
+ *
+ * Returns: %FALSE
+ *
+ * Since: dawn-of-time
  */
 gboolean
-persistence_change_string_entry(gchar *role, gchar *string,
-                               GtkWidget *widget)
+persistence_change_string_entry (char      *role,
+                                 char      *string,
+                                 GtkWidget *widget)
 {
-  gchar *old_string = (gchar*)g_hash_table_lookup(persistent_entrystrings, role);
+  char *old_string = (char *) g_hash_table_lookup (persistent_entrystrings,
+                                                   role);
+
   if (old_string != NULL) {
     if (widget != NULL) {
-      gtk_entry_set_text(GTK_ENTRY(widget), string);
+      gtk_entry_set_text (GTK_ENTRY (widget), string);
     }
-    g_hash_table_insert(persistent_entrystrings, role, g_strdup(string));
+    g_hash_table_insert (persistent_entrystrings, role, g_strdup(string));
   }
 
   return FALSE;
 }
 
-/*!
- * \brief Register a string in a GtkEntry for persistence.
+
+/**
+ * persistence_register_string_entry:
+ * @role: the name of the value
+ * @entry: the #GtkEntry editing @role
+ *
+ * Register a string in a #GtkEntry for persistence.
  *
  * This should include not only a unique name, but some way to update
  * whereever the string is used.
+ *
+ * Since: dawn-of-time
  */
 void
-persistence_register_string_entry(gchar *role, GtkWidget *entry)
+persistence_register_string_entry (char *role, GtkWidget *entry)
 {
-  gchar *string;
-  if (role == NULL) return;
+  char *string;
+
+  if (role == NULL) {
+    return;
+  }
+
   if (persistent_entrystrings == NULL) {
     persistent_entrystrings = _dia_hash_table_str_any_new();
   }
-  string = (gchar *)g_hash_table_lookup(persistent_entrystrings, role);
+
+  string = (char *) g_hash_table_lookup (persistent_entrystrings, role);
   if (string != NULL) {
-    gtk_entry_set_text(GTK_ENTRY(entry), string);
+    gtk_entry_set_text (GTK_ENTRY (entry), string);
   } else {
-    string = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
-    g_hash_table_insert(persistent_entrystrings, role, string);
+    string = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));
+    g_hash_table_insert (persistent_entrystrings, role, string);
   }
-  g_signal_connect(G_OBJECT(entry), "event",
-                  G_CALLBACK(persistence_update_string_entry), role);
+
+  g_signal_connect (G_OBJECT (entry), "event",
+                    G_CALLBACK (persistence_update_string_entry), role);
 }
 
-/* ********* LISTS ********** */
-/* Lists are used for e.g. recent files, selected fonts, etc.
+
+/**
+ * persistence_register_list:
+ * @role: the name of the value
+ *
+ * Lists are used for e.g. recent files, selected fonts, etc.
  * Anywhere where the user occasionally picks from a long list and
  * is likely to reuse the items.
+ *
+ * Returns: a #PersistentList for @role
+ *
+ * Since: dawn-of-time
  */
-
 PersistentList *
-persistence_register_list(const gchar *role)
+persistence_register_list (const char *role)
 {
   PersistentList *list;
-  if (role == NULL) return NULL;
+
+  if (role == NULL) {
+    return NULL;
+  }
+
   if (persistent_lists == NULL) {
-    persistent_lists = _dia_hash_table_str_any_new();
+    persistent_lists = _dia_hash_table_str_any_new ();
   } else {
-    list = (PersistentList *)g_hash_table_lookup(persistent_lists, role);
+    list = (PersistentList *) g_hash_table_lookup (persistent_lists, role);
     if (list != NULL) {
       return list;
     }
   }
-  list = g_new(PersistentList, 1);
+
+  list = g_new (PersistentList, 1);
   list->role = role;
   list->glist = NULL;
   list->sorted = FALSE;
   list->max_members = G_MAXINT;
-  g_hash_table_insert(persistent_lists, (gchar *)role, list);
+
+  g_hash_table_insert (persistent_lists, (char *) role, list);
+
   return list;
 }
 
+
+/**
+ * persistent_list_get:
+ * @role: the name of the list
+ *
+ * Returns: the #PersistentList for @role, or %NULL when unregistered
+ *
+ * Since: dawn-of-time
+ */
 PersistentList *
-persistent_list_get(const gchar *role)
+persistent_list_get (const char *role)
 {
   PersistentList *list;
-  if (role == NULL) return NULL;
+
+  if (role == NULL) {
+    return NULL;
+  }
+
   if (persistent_lists != NULL) {
-    list = (PersistentList *)g_hash_table_lookup(persistent_lists, role);
+    list = (PersistentList *) g_hash_table_lookup (persistent_lists, role);
     if (list != NULL) {
       return list;
     }
   }
+
   /* Not registered! */
   return NULL;
 }
 
+
+/**
+ * persistent_list_get_glist:
+ * @role: the name of the list
+ *
+ * Returns: the #GList for @role, or %NULL when unregistered
+ *
+ * Since: dawn-of-time
+ */
 GList *
-persistent_list_get_glist(const gchar *role)
+persistent_list_get_glist (const char *role)
 {
-  PersistentList *plist = persistent_list_get(role);
-  if (plist == NULL) return NULL;
+  PersistentList *plist = persistent_list_get (role);
+
+  if (plist == NULL) {
+    return NULL;
+  }
+
   return plist->glist;
 }
 
+
 static GList *
-persistent_list_cut_length(GList *list, guint length)
+persistent_list_cut_length (GList *list, guint length)
 {
-  while (g_list_length(list) > length) {
-    GList *last = g_list_last(list);
+  while (g_list_length (list) > length) {
+    GList *last = g_list_last (list);
     /* Leaking data?  See not in persistent_list_add */
-    list = g_list_remove_link(list, last);
-    g_list_free(last);
+    list = g_list_remove_link (list, last);
+    g_list_free (last);
   }
   return list;
 }
 
-/*!
- * \brief Add a new entry to this persistent list.
- * @param role The name of a persistent list.
- * @param item An entry to add.
- * @return FALSE if the entry already existed in the list, TRUE otherwise.
+
+/**
+ * persistent_list_add
+ * @role: The name of a persistent list.
+ * @item: An entry to add.
+ *
+ * Add a new entry to this persistent list.
+ *
+ * Returns: %FALSE if the entry already existed in the list, %TRUE otherwise.
+ *
+ * Since: dawn-of-time
  */
 gboolean
-persistent_list_add(const gchar *role, const gchar *item)
+persistent_list_add (const char *role, const char *item)
 {
-  PersistentList *plist = persistent_list_get(role);
-  if(plist == NULL) {
-    g_warning("Can't find list for %s when adding %s", role, item);
+  PersistentList *plist = persistent_list_get (role);
+
+  if (plist == NULL) {
+    g_warning ("Can't find list for %s when adding %s", role, item);
     return TRUE;
   }
+
   if (plist->sorted) {
     /* Sorting not implemented yet. */
     return TRUE;
   } else {
     gboolean existed = FALSE;
     GList *tmplist = plist->glist;
-    GList *old_elem = g_list_find_custom(tmplist, item, (GCompareFunc)g_ascii_strcasecmp);
+    GList *old_elem = g_list_find_custom (tmplist,
+                                          item,
+                                          (GCompareFunc) g_ascii_strcasecmp);
     while (old_elem != NULL) {
-      tmplist = g_list_remove_link(tmplist, old_elem);
+      tmplist = g_list_remove_link (tmplist,old_elem);
       /* Don't free this, as it makes recent_files go boom after
        * selecting a file there several times.  Yes, it should be strdup'd,
        * but it isn't.
        */
       /*g_clear_pointer (&old_elem->data, g_free);*/
-      g_list_free_1(old_elem);
-      old_elem = g_list_find_custom(tmplist, item, (GCompareFunc)g_ascii_strcasecmp);
+      g_list_free_1 (old_elem);
+      old_elem = g_list_find_custom (tmplist,
+                                     item,
+                                     (GCompareFunc) g_ascii_strcasecmp);
       existed = TRUE;
     }
-    tmplist = g_list_prepend(tmplist, g_strdup(item));
-    tmplist = persistent_list_cut_length(tmplist, plist->max_members);
+
+    tmplist = g_list_prepend (tmplist, g_strdup (item));
+    tmplist = persistent_list_cut_length (tmplist, plist->max_members);
     plist->glist = tmplist;
+
     return existed;
   }
 }
 
+
 void
-persistent_list_set_max_length(const gchar *role, gint max)
+persistent_list_set_max_length (const char *role, int max)
 {
-  PersistentList *plist = persistent_list_get(role);
+  PersistentList *plist = persistent_list_get (role);
   plist->max_members = max;
-  plist->glist = persistent_list_cut_length(plist->glist, max);
+  plist->glist = persistent_list_cut_length (plist->glist, max);
 }
 
-/*!
- * \brief Remove an item from the persistent list.
- * @param role The name of the persistent list.
- * @param item The entry to remove.
- * @returns TRUE if the item existed in the list, FALSE otherwise.
+
+/**
+ * persistent_list_remove:
+ * @role: The name of the persistent list.
+ * @item: The entry to remove.
+ *
+ * Remove an item from the persistent list.
+ *
+ * Returns: %TRUE if the item existed in the list, %FALSE otherwise.
+ *
+ * Since: dawn-of-time
  */
 gboolean
-persistent_list_remove(const gchar *role, const gchar *item)
+persistent_list_remove (const char *role, const char *item)
 {
-  PersistentList *plist = persistent_list_get(role);
+  PersistentList *plist = persistent_list_get (role);
   /* Leaking data?  See not in persistent_list_add */
-  GList *entry = g_list_find_custom(plist->glist, item, (GCompareFunc)g_ascii_strcasecmp);
+  GList *entry = g_list_find_custom (plist->glist,
+                                     item,
+                                     (GCompareFunc) g_ascii_strcasecmp);
   if (entry != NULL) {
-    plist->glist = g_list_remove_link(plist->glist, entry);
+    plist->glist = g_list_remove_link (plist->glist, entry);
     g_clear_pointer (&entry->data, g_free);
     return TRUE;
   } else {
@@ -1001,320 +1118,466 @@ persistent_list_remove(const gchar *role, const gchar *item)
   }
 }
 
+
 void
-persistent_list_remove_all(const gchar *role)
+persistent_list_remove_all (const char *role)
 {
-  PersistentList *plist = persistent_list_get(role);
-  persistent_list_cut_length(plist->glist, 0);
+  PersistentList *plist = persistent_list_get (role);
+  persistent_list_cut_length (plist->glist, 0);
   plist->glist = NULL;
 }
 
+
 typedef struct {
   PersistenceCallback func;
   GObject *watch;
   gpointer userdata;
 } ListenerData;
 
-/*!
- * \brief Add a listener to a persitence list
+
+/**
+ * persistent_list_add_listener:
+ * @role: The name of the persistent list to watch.
+ * @func: A function to call when the list is updated, takes the given
+ *        @userdata.
+ * @watch: GObject to watch
+ * @userdata: Data passed back into the callback function.
+ *
+ * Add a listener to a persitence list
  *
  * Add a listener to updates on the list, so that if another
  * instance changes the list, menus and such can be updated.
- * @param role The name of the persistent list to watch.
- * @param func A function to call when the list is updated, takes
- * the given userdata.
- * @param watch GObject to watch
- * @param userdata Data passed back into the callback function.
+ *
+ * Since: dawn-of-time
  */
 void
-persistent_list_add_listener(const gchar *role, PersistenceCallback func,
-                            GObject *watch, gpointer userdata)
+persistent_list_add_listener (const char          *role,
+                              PersistenceCallback  func,
+                              GObject             *watch,
+                              gpointer             userdata)
 {
-  PersistentList *plist = persistent_list_get(role);
+  PersistentList *plist = persistent_list_get (role);
   ListenerData *listener;
 
   if (plist != NULL) {
-    listener = g_new(ListenerData, 1);
+    listener = g_new (ListenerData, 1);
     listener->func = func;
     listener->watch = watch;
-    g_object_add_weak_pointer(watch, (gpointer)&listener->watch);
+    g_object_add_weak_pointer (watch, (gpointer) &listener->watch);
     listener->userdata = userdata;
-    plist->listeners = g_list_append(plist->listeners, listener);
+    plist->listeners = g_list_append (plist->listeners, listener);
   }
 }
 
-/*!
- * \brief Empty the list
+
+/**
+ * persistent_list_clear:
+ * @role: The name of the persistent list
+ *
+ * Empty the list
+ *
+ * Since: dawn-of-time
  */
 void
-persistent_list_clear(const gchar *role)
+persistent_list_clear (const char *role)
 {
-  PersistentList *plist = persistent_list_get(role);
+  PersistentList *plist = persistent_list_get (role);
 
-  g_list_foreach(plist->glist, (GFunc)g_free, NULL);
-  g_list_free(plist->glist);
+  g_list_foreach (plist->glist, (GFunc) g_free, NULL);
+  g_list_free (plist->glist);
   plist->glist = NULL;
 }
 
-/* ********* INTEGERS ********** */
-gint
-persistence_register_integer(gchar *role, int defaultvalue)
+
+/**
+ * persistence_register_integer:
+ * @role: The name of the persistent integer
+ * @defaultvalue: default value for @role
+ *
+ * Returns: The stored integer, or @defaultvalue
+ *
+ * Since: dawn-of-time
+ */
+int
+persistence_register_integer (char *role, int defaultvalue)
 {
-  gint *integer;
-  if (role == NULL) return 0;
+  int *integer;
+
+  if (role == NULL) {
+    return 0;
+  }
+
   if (persistent_integers == NULL) {
-    persistent_integers = _dia_hash_table_str_any_new();
+    persistent_integers = _dia_hash_table_str_any_new ();
   }
-  integer = (gint *)g_hash_table_lookup(persistent_integers, role);
+
+  integer = (int *) g_hash_table_lookup (persistent_integers, role);
   if (integer == NULL) {
-    integer = g_new(gint, 1);
+    integer = g_new (int, 1);
     *integer = defaultvalue;
-    g_hash_table_insert(persistent_integers, role, integer);
+    g_hash_table_insert (persistent_integers, role, integer);
   }
+
   return *integer;
 }
 
-gint
-persistence_get_integer(gchar *role)
+
+int
+persistence_get_integer (char *role)
 {
-  gint *integer;
+  int *integer;
+
   if (persistent_integers == NULL) {
-    g_warning("No persistent integers to get for %s!", role);
+    g_warning ("No persistent integers to get for %s!", role);
     return 0;
   }
-  integer = (gint *)g_hash_table_lookup(persistent_integers, role);
-  if (integer != NULL) return *integer;
-  g_warning("No integer to get for %s", role);
+
+  integer = (int *) g_hash_table_lookup (persistent_integers, role);
+
+  if (integer != NULL) {
+    return *integer;
+  }
+
+  g_warning ("No integer to get for %s", role);
+
   return 0;
 }
 
+
 void
-persistence_set_integer(gchar *role, gint newvalue)
+persistence_set_integer (char *role, int newvalue)
 {
-  gint *integer;
+  int *integer;
+
   if (persistent_integers == NULL) {
-    g_warning("No persistent integers yet for %s!", role);
+    g_warning ("No persistent integers yet for %s!", role);
     return;
   }
-  integer = (gint *)g_hash_table_lookup(persistent_integers, role);
-  if (integer != NULL)
+
+  integer = (int *) g_hash_table_lookup (persistent_integers, role);
+  if (integer != NULL) {
     *integer = newvalue;
-  else
-    g_warning("No integer to set for %s", role);
+  } else {
+    g_warning ("No integer to set for %s", role);
+  }
 }
 
-/* ********* REALS ********** */
-real
-persistence_register_real(gchar *role, real defaultvalue)
+
+double
+persistence_register_real (char *role, double defaultvalue)
 {
-  real *realval;
-  if (role == NULL) return 0;
+  double *realval;
+
+  if (role == NULL) {
+    return 0;
+  }
+
   if (persistent_reals == NULL) {
-    persistent_reals = _dia_hash_table_str_any_new();
+    persistent_reals = _dia_hash_table_str_any_new ();
   }
-  realval = (real *)g_hash_table_lookup(persistent_reals, role);
+
+  realval = (double *) g_hash_table_lookup (persistent_reals, role);
   if (realval == NULL) {
-    realval = g_new(real, 1);
+    realval = g_new (double, 1);
     *realval = defaultvalue;
-    g_hash_table_insert(persistent_reals, role, realval);
+    g_hash_table_insert (persistent_reals, role, realval);
   }
+
   return *realval;
 }
 
-real
-persistence_get_real(gchar *role)
+
+double
+persistence_get_real (char *role)
 {
-  real *realval;
+  double *realval;
+
   if (persistent_reals == NULL) {
-    g_warning("No persistent reals to get for %s!", role);
+    g_warning ("No persistent reals to get for %s!", role);
     return 0;
   }
-  realval = (real *)g_hash_table_lookup(persistent_reals, role);
-  if (realval != NULL) return *realval;
-  g_warning("No real to get for %s", role);
+
+  realval = (double *) g_hash_table_lookup (persistent_reals, role);
+  if (realval != NULL) {
+    return *realval;
+  }
+
+  g_warning ("No real to get for %s", role);
+
   return 0.0;
 }
 
+
 void
-persistence_set_real(gchar *role, real newvalue)
+persistence_set_real (char *role, double newvalue)
 {
-  real *realval;
+  double *realval;
+
   if (persistent_reals == NULL) {
-    g_warning("No persistent reals yet for %s!", role);
+    g_warning ("No persistent reals yet for %s!", role);
     return;
   }
-  realval = (real *)g_hash_table_lookup(persistent_reals, role);
-  if (realval != NULL)
+
+  realval = (double *) g_hash_table_lookup (persistent_reals, role);
+  if (realval != NULL) {
     *realval = newvalue;
-  else
-    g_warning("No real to set for %s", role);
+  } else {
+    g_warning ("No real to set for %s", role);
+  }
 }
 
 
-/* ********* BOOLEANS ********** */
-/*! \brief Returns true if the given role has been registered. */
 gboolean
-persistence_boolean_is_registered(const gchar *role)
+persistence_register_boolean (const char *role, gboolean defaultvalue)
 {
   gboolean *booleanval;
-  if (role == NULL) return 0;
-  if (persistent_booleans == NULL) {
-    persistent_booleans = _dia_hash_table_str_any_new();
+
+  if (role == NULL) {
+    return 0;
   }
-  booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
-  return booleanval != NULL;
-}
 
-gboolean
-persistence_register_boolean(const gchar *role, gboolean defaultvalue)
-{
-  gboolean *booleanval;
-  if (role == NULL) return 0;
   if (persistent_booleans == NULL) {
     persistent_booleans = _dia_hash_table_str_any_new();
   }
-  booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
+
+  booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
   if (booleanval == NULL) {
-    booleanval = g_new(gboolean, 1);
+    booleanval = g_new (gboolean, 1);
     *booleanval = defaultvalue;
     g_hash_table_insert (persistent_booleans, (gpointer) role, booleanval);
   }
+
   return *booleanval;
 }
 
+
 gboolean
-persistence_get_boolean(const gchar *role)
+persistence_get_boolean (const char *role)
 {
   gboolean *booleanval;
+
   if (persistent_booleans == NULL) {
-    g_warning("No persistent booleans to get for %s!", role);
+    g_warning ("No persistent booleans to get for %s!", role);
     return FALSE;
   }
-  booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
-  if (booleanval != NULL) return *booleanval;
-  g_warning("No boolean to get for %s", role);
+
+  booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
+  if (booleanval != NULL) {
+    return *booleanval;
+  }
+
+  g_warning ("No boolean to get for %s", role);
+
   return FALSE;
 }
 
+
+/**
+ * persistence_set_boolean:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
 void
-persistence_set_boolean(const gchar *role, gboolean newvalue)
+persistence_set_boolean (const char *role, gboolean newvalue)
 {
   gboolean *booleanval;
+
   if (persistent_booleans == NULL) {
-    g_warning("No persistent booleans yet for %s!", role);
+    g_warning ("No persistent booleans yet for %s!", role);
     return;
   }
-  booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
-  if (booleanval != NULL)
+
+  booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
+  if (booleanval != NULL) {
     *booleanval = newvalue;
-  else
-    g_warning("No boolean to set for %s", role);
+  } else {
+    g_warning ("No boolean to set for %s", role);
+  }
 }
 
-/* ********* STRINGS ********** */
-/*!
- * \brief Register a string in persistence.
- * @param role The name used to refer to the string.  Must be unique within
- *             registered strings (and preferably with all registered items)
- * @param defaultvalue A value to use if the role does not exist yet.
- * @returns The value that role has after registering.  The caller is
+
+/**
+ * persistence_register_string:
+ * @role: The name used to refer to the string.  Must be unique within
+ *        registered strings (and preferably with all registered items)
+ * @defaultvalue: A value to use if the role does not exist yet.
+ *
+ * Register a string in persistence.
+ *
+ * Returns: The value that role has after registering.  The caller is
  *          responsible for freeing this memory.  It will never be the same
  *          memory as defaultvalue.
+ *
+ * Since: dawn-of-time
  */
-gchar *
-persistence_register_string(gchar *role, gchar *defaultvalue)
+char *
+persistence_register_string (char *role, const char *defaultvalue)
 {
-  gchar *stringval;
-  if (role == NULL) return 0;
+  char *stringval;
+
+  if (role == NULL) {
+    return 0;
+  }
+
   if (persistent_strings == NULL) {
     persistent_strings = _dia_hash_table_str_any_new();
   }
-  stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
+
+  stringval = (char *) g_hash_table_lookup (persistent_strings, role);
   if (stringval == NULL) {
-    stringval = g_strdup(defaultvalue);
-    g_hash_table_insert(persistent_strings, role, stringval);
+    stringval = g_strdup (defaultvalue);
+    g_hash_table_insert (persistent_strings, role, stringval);
   }
-  return g_strdup(stringval);
+
+  return g_strdup (stringval);
 }
 
-gchar *
-persistence_get_string(gchar *role)
+
+/**
+ * persistence_get_string:
+ * @role: the name to get the value for
+ *
+ * Returns: the string, or %NULL
+ *
+ * Since: dawn-of-time
+ */
+char *
+persistence_get_string (char *role)
 {
-  gchar *stringval;
+  char *stringval;
+
   if (persistent_strings == NULL) {
-    g_warning("No persistent strings to get for %s!", role);
+    g_warning ("No persistent strings to get for %s!", role);
     return NULL;
   }
-  stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
-  if (stringval != NULL) return g_strdup(stringval);
-  g_warning("No string to get for %s", role);
+
+  stringval = (char *) g_hash_table_lookup (persistent_strings, role);
+  if (stringval != NULL) {
+    return g_strdup (stringval);
+  }
+
+  g_warning ("No string to get for %s", role);
+
   return NULL;
 }
 
+
+/**
+ * persistence_set_string:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
 void
-persistence_set_string(gchar *role, const gchar *newvalue)
+persistence_set_string (char *role, const char *newvalue)
 {
-  gchar *stringval;
+  char *stringval;
+
   if (persistent_strings == NULL) {
-    g_warning("No persistent strings yet for %s!", role);
+    g_warning ("No persistent strings yet for %s!", role);
     return;
   }
-  stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
+
+  stringval = (char *) g_hash_table_lookup (persistent_strings, role);
   if (stringval != NULL) {
-    g_hash_table_insert(persistent_strings, role, g_strdup(newvalue));
+    g_hash_table_insert (persistent_strings, role, g_strdup(newvalue));
   } else {
-    g_hash_table_remove(persistent_strings, role);
+    g_hash_table_remove (persistent_strings, role);
   }
 }
 
-/* ********* COLORS ********** */
-/*!
- * \brief Register a _Color for persistence
+
+/**
+ * persistence_register_color:
+ * @role: the name of the value
+ * @defaultvalue: default value for @role
+ *
+ * Register a #Color for persistence
  *
  * Remember that colors returned are private, not to be deallocated.
- * They will be smashed in some undefined way by persistence_set_color */
+ * They will be smashed in some undefined way by persistence_set_color
+ *
+ * Returns: The stored colour, or @defaultvalue
+ *
+ * Since: dawn-of-time
+ */
 Color *
-persistence_register_color(gchar *role, Color *defaultvalue)
+persistence_register_color (char *role, Color *defaultvalue)
 {
   Color *colorval;
-  if (role == NULL) return 0;
+
+  if (role == NULL) {
+    return 0;
+  }
+
   if (persistent_colors == NULL) {
-    persistent_colors = _dia_hash_table_str_any_new();
+    persistent_colors = _dia_hash_table_str_any_new ();
   }
-  colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
+
+  colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
   if (colorval == NULL) {
-    colorval = g_new(Color, 1);
+    colorval = g_new (Color, 1);
     *colorval = *defaultvalue;
-    g_hash_table_insert(persistent_colors, role, colorval);
+    g_hash_table_insert (persistent_colors, role, colorval);
   }
+
   return colorval;
 }
 
+
+/**
+ * persistence_get_color:
+ * @role: the name to get the value for
+ *
+ * Returns: the #Color, or %NULL
+ *
+ * Since: dawn-of-time
+ */
 Color *
-persistence_get_color(gchar *role)
+persistence_get_color (char *role)
 {
   Color *colorval;
+
   if (persistent_colors == NULL) {
-    g_warning("No persistent colors to get for %s!", role);
-    return 0;
+    g_warning ("No persistent colors to get for %s!", role);
+    return NULL;
   }
-  colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
-  if (colorval != NULL) return colorval;
-  g_warning("No color to get for %s", role);
-  return 0;
+
+  colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
+  if (colorval != NULL) {
+    return colorval;
+  }
+
+  g_warning ("No color to get for %s", role);
+
+  return NULL;
 }
 
+
+/**
+ * persistence_set_color:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
 void
-persistence_set_color(gchar *role, Color *newvalue)
+persistence_set_color (char *role, Color *newvalue)
 {
   Color *colorval;
+
   if (persistent_colors == NULL) {
-    g_warning("No persistent colors yet for %s!", role);
+    g_warning ("No persistent colors yet for %s!", role);
     return;
   }
-  colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
-  if (colorval != NULL)
+
+  colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
+  if (colorval != NULL) {
     *colorval = *newvalue;
-  else
-    g_warning("No color to set for %s", role);
+  } else {
+    g_warning ("No color to set for %s", role);
+  }
 }
diff --git a/lib/persistence.h b/lib/persistence.h
index 5980a774..d7baa091 100644
--- a/lib/persistence.h
+++ b/lib/persistence.h
@@ -16,62 +16,71 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-/* persistence.h -- definitions for persistent storage.
- */
+#pragma once
 
-#ifndef PERSISTENCE_H
-#define PERSISTENCE_H
 #include "geometry.h"
 
 #include <gtk/gtk.h>
 
-typedef void (NullaryFunc)();
-
-void persistence_load(void);
-void persistence_save(void);
-void persistence_register_window(GtkWindow *window);
-void persistence_register_window_create(gchar *role, NullaryFunc *func);
-void persistence_register_string_entry(gchar *role, GtkWidget *entry);
-gboolean persistence_change_string_entry(gchar *role, gchar *string,
-                                        GtkWidget *widget);
-
-
-typedef struct _PersistentList PersistentList;
-
-typedef void (*PersistenceCallback)(GObject *, gpointer);
-
-PersistentList *persistence_register_list(const gchar *role);
-PersistentList *persistent_list_get(const gchar *role);
-GList *persistent_list_get_glist(const gchar *role);
-gboolean persistent_list_add(const gchar *role, const gchar *item);
-void persistent_list_set_max_length(const gchar *role, gint max);
-gboolean persistent_list_remove(const gchar *role, const gchar *item);
-void persistent_list_remove_all(const gchar *role);
-void persistent_list_add_listener(const gchar *role, PersistenceCallback func, 
-                                 GObject *watch, gpointer userdata);
-void persistent_list_clear(const gchar *role);
-
-gboolean persistence_is_registered(gchar *role);
+G_BEGIN_DECLS
 
-gint persistence_register_integer(gchar *role, int defaultvalue);
-gint persistence_get_integer(gchar *role);
-void persistence_set_integer(gchar *role, gint newvalue);
+typedef void (NullaryFunc) ();
 
-real persistence_register_real(gchar *role, real defaultvalue);
-real persistence_get_real(gchar *role);
-void persistence_set_real(gchar *role, real newvalue);
+void     persistence_load                   (void);
+void     persistence_save                   (void);
+void     persistence_register_window        (GtkWindow   *window);
+void     persistence_register_window_create (char        *role,
+                                             NullaryFunc *func);
+void     persistence_register_string_entry  (char        *role,
+                                             GtkWidget   *entry);
+gboolean persistence_change_string_entry    (char        *role,
+                                             char        *string,
+                                             GtkWidget   *widget);
 
-gboolean persistence_boolean_is_registered(const gchar *role);
-gboolean persistence_register_boolean(const gchar *role, gboolean defaultvalue);
-gboolean persistence_get_boolean(const gchar *role);
-void persistence_set_boolean(const gchar *role, gboolean newvalue);
 
-gchar *persistence_register_string(gchar *role, gchar *defaultvalue);
-gchar *persistence_get_string(gchar *role);
-void persistence_set_string(gchar *role, const gchar *newvalue);
-
-Color *persistence_register_color(gchar *role, Color *defaultvalue);
-Color *persistence_get_color(gchar *role);
-void persistence_set_color(gchar *role, Color *newvalue);
+typedef struct _PersistentList PersistentList;
 
-#endif
+typedef void (*PersistenceCallback) (GObject *, gpointer);
+
+PersistentList *persistence_register_list      (const char          *role);
+PersistentList *persistent_list_get            (const char          *role);
+GList          *persistent_list_get_glist      (const char          *role);
+gboolean        persistent_list_add            (const char          *role,
+                                                const char          *item);
+void            persistent_list_set_max_length (const char          *role,
+                                                int                  max);
+gboolean        persistent_list_remove         (const char          *role,
+                                                const char          *item);
+void            persistent_list_remove_all     (const char          *role);
+void            persistent_list_add_listener   (const char          *role,
+                                                PersistenceCallback  func,
+                                                GObject             *watch,
+                                                gpointer             userdata);
+void            persistent_list_clear          (const char          *role);
+int             persistence_register_integer   (char                *role,
+                                                int                  defaultvalue);
+int             persistence_get_integer        (char                *role);
+void            persistence_set_integer        (char                *role,
+                                                int                  newvalue);
+double          persistence_register_real      (char                *role,
+                                                double               defaultvalue);
+double          persistence_get_real           (char                *role);
+void            persistence_set_real           (char                *role,
+                                                double               newvalue);
+gboolean        persistence_register_boolean   (const char          *role,
+                                                gboolean             defaultvalue);
+gboolean        persistence_get_boolean        (const char          *role);
+void            persistence_set_boolean        (const char          *role,
+                                                gboolean             newvalue);
+char           *persistence_register_string    (char                *role,
+                                                const char          *defaultvalue);
+char           *persistence_get_string         (char                *role);
+void            persistence_set_string         (char                *role,
+                                                const char          *newvalue);
+Color          *persistence_register_color     (char                *role,
+                                                Color               *defaultvalue);
+Color          *persistence_get_color          (char                *role);
+void            persistence_set_color          (char                *role,
+                                                Color               *newvalue);
+
+G_END_DECLS



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