From ec3166742b08eabcca2c6d2166070b4cee488bf7 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Wed, 18 Nov 2015 17:54:00 +0100
Subject: [PATCH] Properly join path sections

This prevents double slashes that can mess up path comparisons in some
cases.
---
 apps/files/js/favoritesplugin.js | 2 +-
 apps/files/js/fileactions.js     | 5 +----
 apps/files_external/js/app.js    | 2 +-
 apps/files_sharing/js/app.js     | 2 +-
 apps/files_trashbin/js/app.js    | 5 +----
 5 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/apps/files/js/favoritesplugin.js b/apps/files/js/favoritesplugin.js
index 417a32ef80..454a505c7b 100644
--- a/apps/files/js/favoritesplugin.js
+++ b/apps/files/js/favoritesplugin.js
@@ -92,7 +92,7 @@
 			// folder in the files app instead of opening it directly
 			fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
 				OCA.Files.App.setActiveView('files', {silent: true});
-				OCA.Files.App.fileList.changeDirectory(context.$file.attr('data-path') + '/' + filename, true, true);
+				OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);
 			});
 			fileActions.setDefault('dir', 'Open');
 			return fileActions;
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 32385c4247..871a2149c8 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -612,10 +612,7 @@
 
 			this.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
 				var dir = context.$file.attr('data-path') || context.fileList.getCurrentDirectory();
-				if (dir !== '/') {
-					dir = dir + '/';
-				}
-				context.fileList.changeDirectory(dir + filename);
+				context.fileList.changeDirectory(OC.joinPaths(dir, filename));
 			});
 
 			this.registerAction({
diff --git a/apps/files_external/js/app.js b/apps/files_external/js/app.js
index bf853f926d..1bff3014bd 100644
--- a/apps/files_external/js/app.js
+++ b/apps/files_external/js/app.js
@@ -54,7 +54,7 @@ OCA.External.App = {
 		// folder in the files app instead of opening it directly
 		fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
 			OCA.Files.App.setActiveView('files', {silent: true});
-			OCA.Files.App.fileList.changeDirectory(context.$file.attr('data-path') + '/' + filename, true, true);
+			OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);
 		});
 		fileActions.setDefault('dir', 'Open');
 		return fileActions;
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index 3168e93082..af198208de 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -142,7 +142,7 @@ OCA.Sharing.App = {
 		// folder in the files app instead of opening it directly
 		fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
 			OCA.Files.App.setActiveView('files', {silent: true});
-			OCA.Files.App.fileList.changeDirectory(context.$file.attr('data-path') + '/' + filename, true, true);
+			OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);
 		});
 		fileActions.setDefault('dir', 'Open');
 		return fileActions;
diff --git a/apps/files_trashbin/js/app.js b/apps/files_trashbin/js/app.js
index 1f46f568bf..600a8ce2b0 100644
--- a/apps/files_trashbin/js/app.js
+++ b/apps/files_trashbin/js/app.js
@@ -38,10 +38,7 @@ OCA.Trashbin.App = {
 		var fileActions = new OCA.Files.FileActions();
 		fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
 			var dir = context.fileList.getCurrentDirectory();
-			if (dir !== '/') {
-				dir = dir + '/';
-			}
-			context.fileList.changeDirectory(dir + filename);
+			context.fileList.changeDirectory(OC.joinPaths(dir, filename));
 		});
 
 		fileActions.setDefault('dir', 'Open');
-- 
GitLab