Bastien Nocera c007ea
From f7861d27fbcbc519f57d8496aa9486f487908821 Mon Sep 17 00:00:00 2001
Bastien Nocera c007ea
From: Bastien Nocera <hadess@hadess.net>
Bastien Nocera c007ea
Date: Sat, 9 Nov 2013 18:13:43 +0100
Bastien Nocera c007ea
Subject: [PATCH 1/5] obex: Use GLib helper function to manipulate paths
Bastien Nocera c007ea
Bastien Nocera c007ea
Instead of trying to do it by hand. This also makes sure that
Bastien Nocera c007ea
relative paths aren't used by the agent.
Bastien Nocera c007ea
---
Bastien Nocera c007ea
 obexd/src/manager.c | 10 +++++-----
Bastien Nocera c007ea
 1 file changed, 5 insertions(+), 5 deletions(-)
Bastien Nocera c007ea
Bastien Nocera c007ea
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
Bastien Nocera c007ea
index cec8a39..f18896e 100644
Bastien Nocera c007ea
--- a/obexd/src/manager.c
Bastien Nocera c007ea
+++ b/obexd/src/manager.c
Bastien Nocera c007ea
@@ -651,14 +651,14 @@ static void agent_reply(DBusPendingCall *call, void *user_data)
Bastien Nocera c007ea
 				DBUS_TYPE_STRING, &name,
Bastien Nocera c007ea
 				DBUS_TYPE_INVALID)) {
Bastien Nocera c007ea
 		/* Splits folder and name */
Bastien Nocera c007ea
-		const char *slash = strrchr(name, '/');
Bastien Nocera c007ea
+		gboolean is_relative = !g_path_is_absolute(name);
Bastien Nocera c007ea
 		DBG("Agent replied with %s", name);
Bastien Nocera c007ea
-		if (!slash) {
Bastien Nocera c007ea
-			agent->new_name = g_strdup(name);
Bastien Nocera c007ea
+		if (is_relative) {
Bastien Nocera c007ea
+			agent->new_name = g_path_get_basename(name);
Bastien Nocera c007ea
 			agent->new_folder = NULL;
Bastien Nocera c007ea
 		} else {
Bastien Nocera c007ea
-			agent->new_name = g_strdup(slash + 1);
Bastien Nocera c007ea
-			agent->new_folder = g_strndup(name, slash - name);
Bastien Nocera c007ea
+			agent->new_name = g_path_get_basename(name);
Bastien Nocera c007ea
+			agent->new_folder = g_path_get_dirname(name);
Bastien Nocera c007ea
 		}
Bastien Nocera c007ea
 	}
Bastien Nocera c007ea
 
Bastien Nocera c007ea
-- 
Bastien Nocera c007ea
1.8.4.2
Bastien Nocera c007ea