[evolution] Add more debug messages to basedir migration.



commit d369274ae88a331f19630750ec485ccbcc8b2b3e
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Jul 28 10:57:52 2010 -0400

    Add more debug messages to basedir migration.
    
    If directory removal fails because the directory is not empty,
    list the file names in that directory.

 shell/e-shell-migrate.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/shell/e-shell-migrate.c b/shell/e-shell-migrate.c
index cc30366..674c8c3 100644
--- a/shell/e-shell-migrate.c
+++ b/shell/e-shell-migrate.c
@@ -63,16 +63,33 @@ shell_xdg_migrate_rename (const gchar *old_filename,
 static gboolean
 shell_xdg_migrate_rmdir (const gchar *dirname)
 {
+	GDir *dir = NULL;
 	gboolean success = TRUE;
 
 	if (g_file_test (dirname, G_FILE_TEST_IS_DIR)) {
 		g_print ("  rmdir %s\n", dirname);
 		if (g_rmdir (dirname) < 0) {
-			g_printerr ("  FAILED: %s\n", g_strerror (errno));
+			g_printerr ("  FAILED: %s", g_strerror (errno));
+			if (errno == ENOTEMPTY) {
+				dir = g_dir_open (dirname, 0, NULL);
+				g_printerr (" (contents follows)");
+			}
+			g_printerr ("\n");
 			success = FALSE;
 		}
 	}
 
+	/* List the directory's contents to aid debugging. */
+	if (dir != NULL) {
+		const gchar *basename;
+
+		/* Align the filenames beneath the error message. */
+		while ((basename = g_dir_read_name (dir)) != NULL)
+			g_print ("          %s\n", basename);
+
+		g_dir_close (dir);
+	}
+
 	return success;
 }
 



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