SF.net SVN: geany:[5028] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Thu Jun 17 12:03:01 UTC 2010


Revision: 5028
          http://geany.svn.sourceforge.net/geany/?rev=5028&view=rev
Author:   ntrel
Date:     2010-06-17 12:03:00 +0000 (Thu, 17 Jun 2010)

Log Message:
-----------
Replace /home/user with ~ in the documents list (patch by Jon
Strait, thanks).

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/sidebar.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2010-06-16 15:26:04 UTC (rev 5027)
+++ trunk/ChangeLog	2010-06-17 12:03:00 UTC (rev 5028)
@@ -1,3 +1,10 @@
+2010-06-17  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/sidebar.c:
+   Replace /home/user with ~ in the documents list (patch by Jon
+   Strait, thanks).
+
+
 2010-06-16  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/notebook.c:

Modified: trunk/src/sidebar.c
===================================================================
--- trunk/src/sidebar.c	2010-06-16 15:26:04 UTC (rev 5027)
+++ trunk/src/sidebar.c	2010-06-17 12:03:00 UTC (rev 5028)
@@ -345,8 +345,10 @@
 	gchar *tmp_dirname;
 	gchar *project_base_path;
 	gchar *dirname = NULL;
+	const gchar *home_dir = g_get_home_dir();
 	static GtkTreeIter parent;
 	GtkTreeModel *model = GTK_TREE_MODEL(store_openfiles);
+	const gchar *rest;
 
 	if (!documents_show_paths)
 		return NULL;
@@ -357,7 +359,6 @@
 	if (project_base_path != NULL)
 	{
 		gsize len = strlen(project_base_path);
-		const gchar *rest;
 
 		if (project_base_path[len-1] == G_DIR_SEPARATOR)
 			project_base_path[len-1] = '\0';
@@ -367,12 +368,27 @@
 		{
 			rest = tmp_dirname + len;
 			if (*rest == G_DIR_SEPARATOR || *rest == '\0')
+			{
 				dirname = g_strdup_printf("%s%s", app->project->name, rest);
+			}
 		}
 		g_free(project_base_path);
 	}
 	if (dirname == NULL)
+	{
 		dirname = tmp_dirname;
+
+		/* If matches home dir, replace with tilde */
+		if (home_dir && *home_dir != 0 && g_str_has_prefix(dirname, home_dir))
+		{
+			rest = dirname + strlen(home_dir);
+			if (*rest == G_DIR_SEPARATOR || *rest == '\0')
+			{
+				dirname = g_strdup_printf("~%s", rest);
+				g_free(tmp_dirname);
+			}
+		}
+	}
 	else
 		g_free(tmp_dirname);
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list