SF.net SVN: geany:[4183] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Sep 14 11:14:23 UTC 2009


Revision: 4183
          http://geany.svn.sourceforge.net/geany/?rev=4183&view=rev
Author:   ntrel
Date:     2009-09-14 11:14:23 +0000 (Mon, 14 Sep 2009)

Log Message:
-----------
Fix opening filenames beginning with two dots (closes #2858487).

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-09-13 15:36:43 UTC (rev 4182)
+++ trunk/ChangeLog	2009-09-14 11:14:23 UTC (rev 4183)
@@ -1,3 +1,9 @@
+2009-09-14  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/utils.c:
+   Fix opening filenames beginning with two dots (closes #2858487).
+
+
 2009-09-13  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/keybindings.c:

Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2009-09-13 15:36:43 UTC (rev 4182)
+++ trunk/src/utils.c	2009-09-14 11:14:23 UTC (rev 4183)
@@ -1733,8 +1733,8 @@
 	if (preserve_double_backslash)
 		g_string_prepend(str, "\\");
 
-	/* replace "/.." */
-	needle = G_DIR_SEPARATOR_S "..";
+	/* replace "/../" */
+	needle = G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S;
 	while (1)
 	{
 		c = strstr(str->str, needle);
@@ -1746,9 +1746,11 @@
 			if (pos <= 3)
 				break;	/* bad path */
 
-			g_string_erase(str, pos, strlen(needle));	/* erase "/.." */
+			/* replace "/../" */
+			g_string_erase(str, pos, strlen(needle));
+			g_string_insert_c(str, pos, G_DIR_SEPARATOR);
 
-			tmp = g_strndup(str->str, pos);	/* path up to "/.." */
+			tmp = g_strndup(str->str, pos);	/* path up to "/../" */
 			c = g_strrstr(tmp, G_DIR_SEPARATOR_S);
 			g_return_if_fail(c);
 


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