[dia] Revert "Merge branch 'xdg-base-dir-spec-support' into 'master'"



commit 018c1529c31af5ecfdf6570bd508043352b975ea
Author: Zander <ajhb2001 outlook com>
Date:   Sun Dec 9 09:58:17 2018 +0000

    Revert "Merge branch 'xdg-base-dir-spec-support' into 'master'"
    
    This reverts merge request !5

 app/app_procs.c                     | 35 +++++++-----------
 app/menus.c                         |  4 +--
 app/sheets_dialog_callbacks.c       |  4 +--
 lib/dia_dirs.c                      | 72 ++++++-------------------------------
 lib/dia_dirs.h                      |  4 +--
 lib/dialib.c                        |  2 +-
 lib/libdia.def                      |  3 +-
 lib/object_defaults.c               |  4 +--
 lib/persistence.c                   |  4 +--
 lib/plug-ins.c                      |  6 ++--
 lib/sheet.c                         |  2 +-
 objects/custom/custom.c             |  4 +--
 objects/custom_lines/custom_lines.c |  4 +--
 plug-ins/python/python-startup.py   | 20 +----------
 plug-ins/xslt/xslt.c                |  3 +-
 tests/test-objects.c                |  2 --
 16 files changed, 45 insertions(+), 128 deletions(-)
---
diff --git a/app/app_procs.c b/app/app_procs.c
index c62cdb86..dfd84e9c 100644
--- a/app/app_procs.c
+++ b/app/app_procs.c
@@ -1086,50 +1086,41 @@ app_exit(void)
 
 static void create_user_dirs(void)
 {
-  gchar *confdir, *datadir, *subdir;
+  gchar *dir, *subdir;
 
 #ifdef G_OS_WIN32
-  /*
-   * not necessary to quit the program with g_error. Spit out a warning ...
+  /* not necessary to quit the program with g_error, everywhere else
+   * dia_config_filename appears to be used. Spit out a warning ...
    */
-  if (!g_get_user_config_dir() || !g_get_user_data_dir())
+  if (!g_get_home_dir())
   {
-    g_warning(_("Could not create per-user Dia directories!"));
+    g_warning(_("Could not create per-user Dia configuration directory"));
     return; /* ... and return. Probably removes my one and only FAQ. --HB */
   }
 #endif
-  datadir = g_strconcat(g_get_user_data_dir(), G_DIR_SEPARATOR_S "dia", NULL);
-  if (g_mkdir(datadir, 0755) && errno != EEXIST) {
-#ifndef G_OS_WIN32
-    g_critical(_("Could not create per-user Dia data directory"));
-    exit(1);
-#else /* HB: it this really a reason to exit the program on *nix ? */
-    g_warning(_("Could not create per-user Dia data directory."));
-#endif
-  }
-  confdir = g_strconcat(g_get_user_config_dir(), G_DIR_SEPARATOR_S "dia", NULL);
-  if (g_mkdir(confdir, 0755) && errno != EEXIST) {
+  dir = g_strconcat(g_get_home_dir(), G_DIR_SEPARATOR_S ".dia", NULL);
+  if (g_mkdir(dir, 0755) && errno != EEXIST) {
 #ifndef G_OS_WIN32
     g_critical(_("Could not create per-user Dia configuration directory"));
     exit(1);
 #else /* HB: it this really a reason to exit the program on *nix ? */
-    g_warning(_("Could not create per-user Dia configuration directory."));
+    g_warning(_("Could not create per-user Dia configuration directory. Please make "
+        "sure that the environment variable HOME points to an existing directory."));
 #endif
   }
 
   /* it is no big deal if these directories can't be created */
-  subdir = g_strconcat(datadir, G_DIR_SEPARATOR_S "objects", NULL);
+  subdir = g_strconcat(dir, G_DIR_SEPARATOR_S "objects", NULL);
   g_mkdir(subdir, 0755);
   g_free(subdir);
-  subdir = g_strconcat(datadir, G_DIR_SEPARATOR_S "shapes", NULL);
+  subdir = g_strconcat(dir, G_DIR_SEPARATOR_S "shapes", NULL);
   g_mkdir(subdir, 0755);
   g_free(subdir);
-  subdir = g_strconcat(datadir, G_DIR_SEPARATOR_S "sheets", NULL);
+  subdir = g_strconcat(dir, G_DIR_SEPARATOR_S "sheets", NULL);
   g_mkdir(subdir, 0755);
   g_free(subdir);
 
-  g_free(datadir);
-  g_free(confdir);
+  g_free(dir);
 }
 
 static PluginInitResult
diff --git a/app/menus.c b/app/menus.c
index daa9d57d..b39bb73d 100644
--- a/app/menus.c
+++ b/app/menus.c
@@ -347,7 +347,7 @@ load_accels(void)
 {
   gchar *accelfilename;
   /* load accelerators and prepare to later save them */
-  accelfilename = dia_user_config_filename("menurc");
+  accelfilename = dia_config_filename("menurc");
 
   if (accelfilename) {
     gtk_accel_map_load(accelfilename);
@@ -359,7 +359,7 @@ save_accels(gpointer data)
 {
   gchar *accelfilename;
 
-  accelfilename = dia_user_config_filename("menurc");
+  accelfilename = dia_config_filename("menurc");
   if (accelfilename) {
     gtk_accel_map_save (accelfilename);
     g_free (accelfilename);
diff --git a/app/sheets_dialog_callbacks.c b/app/sheets_dialog_callbacks.c
index aba8cf90..b21042ae 100644
--- a/app/sheets_dialog_callbacks.c
+++ b/app/sheets_dialog_callbacks.c
@@ -1616,7 +1616,7 @@ write_user_sheet(Sheet *sheet)
   SheetObject *sheetobject;
   GSList *sheet_objects;
     
-  dir_user_sheets = dia_user_data_filename("sheets");
+  dir_user_sheets = dia_config_filename("sheets");
   if (!*(sheet->filename)) {
     gchar *basename;
 
@@ -1707,7 +1707,7 @@ write_user_sheet(Sheet *sheet)
       gchar *dest;
       gchar *basename;
 
-      dia_user_shapes = dia_user_data_filename("shapes");
+      dia_user_shapes = dia_config_filename("shapes");
 
       basename = g_path_get_basename(som->svg_filename);
       dest = g_strdup_printf("%s%s%s", dia_user_shapes, G_DIR_SEPARATOR_S, basename);
diff --git a/lib/dia_dirs.c b/lib/dia_dirs.c
index 2572c769..99e8590c 100644
--- a/lib/dia_dirs.c
+++ b/lib/dia_dirs.c
@@ -156,76 +156,24 @@ dia_get_locale_directory(void)
 #endif
 }
 
-/** Migrate a file or dir from $HOME/.dia to a new location.
- * @param newloc New location of the subfile.
- * @param subfile Name of the subfile.
- */
-void
-dia_migrate_file (const gchar *newloc, const gchar *subfile)
-{
-  gchar *oldloc;
-  gchar *oldroot;
-
-  oldloc = g_strconcat(g_get_home_dir(), G_DIR_SEPARATOR_S ".dia"
-                       G_DIR_SEPARATOR_S, subfile, NULL);
-  if(g_file_test(oldloc, G_FILE_TEST_EXISTS))
-  {
-    if (!g_rename(oldloc, newloc))
-    {
-      g_warning("Could not migrate '%s' from '%s' to '%s'.",
-                subfile, oldloc, newloc);
-    }
-  }
-  g_free(oldloc);
-  /* we are trying to remove an empty folder '$HOME/.dia'
-   * if it is not empty, it is not removed */
-  oldroot = g_strconcat(g_get_home_dir(), G_DIR_SEPARATOR_S ".dia", NULL);
-  g_rmdir(oldroot);
-  g_free(oldroot);
-}
-
-/** Get the name of a file under the XDG user Dia config directory.
- * @param subfile Name of the subfile.
- * @returns A string with the full path of the desired file.  This string
- *          should be freed after use.
- */
-gchar *
-dia_user_config_filename(const gchar *subfile)
-{
-  const gchar *confdir;
-  gchar *diaconfdir;
-
-  confdir = g_get_user_config_dir();
-  if (!confdir) {
-    confdir = g_get_tmp_dir(); /* put config stuff in /tmp -- not ideal, but
-                                * we should not reach this state */
-  }
-  diaconfdir = g_strconcat(confdir, G_DIR_SEPARATOR_S "dia" G_DIR_SEPARATOR_S,
-                           subfile, NULL);
-  dia_migrate_file(diaconfdir, subfile);
-  return diaconfdir;
-}
-
-/** Get the name of a file under the XDG user Dia config directory.
+/** Get the name of a file under the Dia config directory.  If no home
+ *  directory can be found, uses a temporary directory.
  * @param subfile Name of the subfile.
  * @returns A string with the full path of the desired file.  This string
  *          should be freed after use.
  */
 gchar *
-dia_user_data_filename(const gchar *subfile)
+dia_config_filename(const gchar *subfile)
 {
-  const gchar *datadir;
-  gchar *diadatadir;
+  const gchar *homedir;
 
-  datadir = g_get_user_data_dir();
-  if (!datadir) {
-    datadir = g_get_tmp_dir(); /* put config stuff in /tmp -- not ideal, but
-                                * we should not reach this state */
+  homedir = g_get_home_dir();
+  if (!homedir) {
+    homedir = g_get_tmp_dir(); /* put config stuff in /tmp -- not ideal, but
+                               * we should not reach this state */
   }
-  diadatadir = g_strconcat(datadir, G_DIR_SEPARATOR_S "dia" G_DIR_SEPARATOR_S,
-                           subfile, NULL);
-  dia_migrate_file(diadatadir, subfile);
-  return diadatadir;
+  return g_strconcat(homedir, G_DIR_SEPARATOR_S ".dia" G_DIR_SEPARATOR_S,
+                    subfile, NULL);
 }
 
 /** Ensure that the directory part of `filename' exists.
diff --git a/lib/dia_dirs.h b/lib/dia_dirs.h
index ded774e4..c0cbff05 100644
--- a/lib/dia_dirs.h
+++ b/lib/dia_dirs.h
@@ -30,9 +30,7 @@
 gchar *dia_get_data_directory (const gchar* subdir);
 gchar *dia_get_lib_directory  (const gchar* subdir);
 gchar *dia_get_locale_directory (void);
-void dia_migrate_file (const gchar *newloc, const gchar *file);
-gchar *dia_user_config_filename (const gchar* file);
-gchar *dia_user_data_filename (const gchar* file);
+gchar *dia_config_filename    (const gchar* file);
 gboolean dia_config_ensure_dir  (const gchar* filename);
 gchar *dia_get_absolute_filename (const gchar *filename);
 gchar *dia_relativize_filename (const gchar *master, const gchar *slave);
diff --git a/lib/dialib.c b/lib/dialib.c
index 5d5c2f9a..2d99e66c 100644
--- a/lib/dialib.c
+++ b/lib/dialib.c
@@ -114,7 +114,7 @@ libdia_init (guint flags)
 
     gtk_widget_set_default_colormap(gdk_rgb_get_cmap());
 
-    diagtkrc = dia_user_config_filename("diagtkrc");
+    diagtkrc = dia_config_filename("diagtkrc");
     dia_log_message ("Config from %s", diagtkrc);
     gtk_rc_parse(diagtkrc);
     g_free(diagtkrc);
diff --git a/lib/libdia.def b/lib/libdia.def
index d6a03e70..8d9b5b9a 100644
--- a/lib/libdia.def
+++ b/lib/libdia.def
@@ -204,8 +204,7 @@ EXPORTS
  dia_color_selector_new
  dia_color_selector_set_color
  dia_color_selector_set_use_alpha
- dia_user_config_filename
- dia_user_data_filename
+ dia_config_filename
 
  dia_context_add_message
  dia_context_add_message_with_errno
diff --git a/lib/object_defaults.c b/lib/object_defaults.c
index f29c31ac..fd151a83 100644
--- a/lib/object_defaults.c
+++ b/lib/object_defaults.c
@@ -109,7 +109,7 @@ dia_object_defaults_load (const gchar *filename, gboolean create_lazy, DiaContex
   /* overload properties from file */
   if (!filename) 
     {
-      gchar *default_filename = dia_user_data_filename("defaults.dia");
+      gchar *default_filename = dia_config_filename("defaults.dia");
 
       dia_context_set_filename(ctx, default_filename);
       if (g_file_test(default_filename, G_FILE_TEST_EXISTS))
@@ -396,7 +396,7 @@ dia_object_defaults_save (const gchar *filename, DiaContext *ctx)
   gchar *real_filename;
 
   if (!filename)
-    real_filename = dia_user_data_filename("defaults.dia");
+    real_filename = dia_config_filename("defaults.dia");
   else
     real_filename = g_strdup (filename);
 
diff --git a/lib/persistence.c b/lib/persistence.c
index 2ffa5969..2cba2cb4 100644
--- a/lib/persistence.c
+++ b/lib/persistence.c
@@ -309,7 +309,7 @@ void
 persistence_load()
 {
   xmlDocPtr doc;
-  gchar *filename = dia_user_data_filename("persistence");
+  gchar *filename = dia_config_filename("persistence");
   DiaContext *ctx;
 
   persistence_init();
@@ -482,7 +482,7 @@ persistence_save()
   xmlDocPtr doc;
   xmlNs *name_space;
   DiaContext *ctx;
-  gchar *filename = dia_user_data_filename("persistence");
+  gchar *filename = dia_config_filename("persistence");
 
   ctx = dia_context_new ("Persistence");
   doc = xmlNewDoc((const xmlChar *)"1.0");
diff --git a/lib/plug-ins.c b/lib/plug-ins.c
index 8f81a985..250ef472 100644
--- a/lib/plug-ins.c
+++ b/lib/plug-ins.c
@@ -374,7 +374,7 @@ dia_register_plugins(void)
 
   library_path = g_getenv("DIA_LIB_PATH");
 
-  lib_dir = dia_user_data_filename("objects");
+  lib_dir = dia_config_filename("objects");
 
   if (lib_dir != NULL) {
     dia_register_plugins_in_dir(lib_dir);
@@ -444,7 +444,7 @@ ensure_pluginrc(void)
 
   if (pluginrc)
     return;
-  filename = dia_user_config_filename("pluginrc");
+  filename = dia_config_filename("pluginrc");
   dia_context_set_filename (ctx, filename);
   if (g_file_test (filename,  G_FILE_TEST_IS_REGULAR))
     pluginrc = diaXmlParseFile(filename, ctx, FALSE);
@@ -613,7 +613,7 @@ dia_pluginrc_write(void)
     xmlSetProp(pluginnode, (const xmlChar *)"filename", (xmlChar *)info->filename);
   }
 
-  filename = dia_user_config_filename("pluginrc");
+  filename = dia_config_filename("pluginrc");
   
   xmlDiaSaveFile(filename, pluginrc);
   
diff --git a/lib/sheet.c b/lib/sheet.c
index 560d52f5..698b750f 100644
--- a/lib/sheet.c
+++ b/lib/sheet.c
@@ -130,7 +130,7 @@ load_all_sheets(void)
   char *sheet_path;
   char *home_dir;
 
-  home_dir = dia_user_data_filename("sheets");
+  home_dir = dia_config_filename("sheets");
   if (home_dir) {
     dia_log_message ("sheets from '%s'", home_dir);
     load_sheets_from_dir(home_dir, SHEET_SCOPE_USER);
diff --git a/objects/custom/custom.c b/objects/custom/custom.c
index 8df3c558..5de009dd 100644
--- a/objects/custom/custom.c
+++ b/objects/custom/custom.c
@@ -141,9 +141,9 @@ dia_plugin_init(PluginInfo *info)
                            NULL, NULL))
     return DIA_PLUGIN_INIT_ERROR;
 
-  home_dir = g_get_user_data_dir();
+  home_dir = g_get_home_dir();
   if (home_dir) {
-    home_dir = dia_user_data_filename("shapes");
+    home_dir = dia_config_filename("shapes");
     load_shapes_from_tree(home_dir);
     g_free((char *)home_dir);
   }
diff --git a/objects/custom_lines/custom_lines.c b/objects/custom_lines/custom_lines.c
index b3dda366..05916300 100644
--- a/objects/custom_lines/custom_lines.c
+++ b/objects/custom_lines/custom_lines.c
@@ -161,9 +161,9 @@ dia_plugin_init(PluginInfo *info)
                            NULL, NULL))
     return DIA_PLUGIN_INIT_ERROR;
   
-  home_dir = g_get_user_data_dir();
+  home_dir = g_get_home_dir();
   if (home_dir) {
-    home_dir = dia_user_data_filename("lines");
+    home_dir = dia_config_filename("lines");
     load_linefiles_from_tree(home_dir);
     g_free((char *)home_dir);
   }
diff --git a/plug-ins/python/python-startup.py b/plug-ins/python/python-startup.py
index 8c8a542a..9883724b 100644
--- a/plug-ins/python/python-startup.py
+++ b/plug-ins/python/python-startup.py
@@ -22,26 +22,8 @@ def load(plugindir):
 # import any python plugins from the user ...
 if not os.environ.has_key('HOME'):
        os.environ['HOME'] = os.pathsep + 'tmp'
-       os.environ['XDG_DATA_HOME'] = os.pathsep + 'tmp'
-else:
-       default = os.path.join(os.environ['HOME'], '.local', 'share')
-       oldlocation = os.path.join(os.environ['HOME'], '.dia', 'python')
-       newlocation = os.path.join (
-               os.getenv ('XDG_DATA_HOME', default),
-               'dia',
-               'python'
-       )
-       if os.path.isdir(oldlocation):
-               try:
-                       os.rename(oldlocation, newlocation)
-               except OSError:
-                       sys.stderr.write('WARNING:' +
-                                        'Could not migrate python scripts from ' +
-                                        '"%s" to "%s". Do it manually!%s' %
-                                        (oldlocation, newlocation, os.linesep))
-
 # import all plugins found in user plugin dir
-load(os.path.join(os.environ['XDG_DATA_HOME'], 'dia', 'python'))
+load(os.path.join(os.environ['HOME'], '.dia', 'python'))
 
 # find system python plugin dir
 curdir = os.path.dirname(__file__)
diff --git a/plug-ins/xslt/xslt.c b/plug-ins/xslt/xslt.c
index 3564918c..88f9695d 100644
--- a/plug-ins/xslt/xslt.c
+++ b/plug-ins/xslt/xslt.c
@@ -354,7 +354,8 @@ dia_plugin_init(PluginInfo *info)
        global_res = read_configuration(path);
        g_free (path);
 
-       path = dia_user_data_filename("xslt" G_DIR_SEPARATOR_S "stylesheets.xml");
+       path = dia_config_filename("xslt" G_DIR_SEPARATOR_S 
+                                                    "stylesheets.xml");
        user_res = read_configuration(path);
        g_free (path);
        
diff --git a/tests/test-objects.c b/tests/test-objects.c
index 9102d30a..6388786a 100644
--- a/tests/test-objects.c
+++ b/tests/test-objects.c
@@ -1090,8 +1090,6 @@ main (int argc, char** argv)
   else
     {
       /* avoid loading objects/plug-ins form the users home directory */
-      g_setenv ("XDG_DATA_HOME", "/tmp", TRUE);
-      g_setenv ("XDG_CONFIG_HOME", "/tmp", TRUE);
       g_setenv ("HOME", "/tmp", TRUE);
       dia_register_plugins ();
     }


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