From 29d1e8087d3f94a78fc23e1fdd44c139349625b0 Mon Sep 17 00:00:00 2001
From: Michael Gapczynski <mtgap@owncloud.com>
Date: Sat, 1 Sep 2012 13:46:57 -0400
Subject: [PATCH] Implement generateTarget for file sharing backend

---
 apps/files_sharing/lib/share/file.php | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index b1e3ca8b48..82744924be 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -46,9 +46,25 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
 		return false;
 	}
 
-	public function generateTarget($itemSource, $shareWith, $exclude = null) {
-		// TODO Make sure target path doesn't exist already
-		return $itemSource;
+	public function generateTarget($filePath, $shareWith, $exclude = null) {
+		$target = $filePath;
+		if (isset($exclude)) {
+			if ($pos = strrpos($target, '.')) {
+				$name = substr($target, 0, $pos);
+				$ext = substr($target, $pos);
+			} else {
+				$name = $filePath;
+				$ext = '';
+			}
+			$i = 2;
+			$append = '';
+			while (in_array($name.$append.$ext, $exclude)) {
+				$append = ' ('.$i.')';
+				$i++;
+			}
+			$target = $name.$append.$ext;
+		}
+		return $target;
 	}
 
 	public function formatItems($items, $format, $parameters = null) {
-- 
GitLab