mirror of
https://github.com/syncthing/syncthing.git
synced 2026-02-07 12:44:14 -05:00
### Purpose This closes #9400 by always expanding tildes when parent/subdir checks are done. ### Testing I tested this by creating folders with paths to parent or subdirectories of the default folder that include a tilde in their path as shown in the attached screenshots. With this change, overlap will be detected regardless of wether or not tildes are used in other folder paths. ### Screenshots Default Folder:  Newly created folder (parent directory in this case)  --------- Signed-off-by: tobifroe <froeltob@pm.me>
This commit is contained in:
@@ -6,7 +6,12 @@ angular.module('syncthing.core')
|
||||
ctrl.$validators.folderPathErrors = function (viewValue) {
|
||||
// This function checks whether ydir is a subdirectory of xdir,
|
||||
// e.g. it would return true if xdir = "/home/a", ydir = "/home/a/b".
|
||||
// Tildes in both xdir and ydir are expanded for comparison
|
||||
// so that e.g. xdir = "home/a/", ydir = "~/b" will return true.
|
||||
function isSubDir(xdir, ydir) {
|
||||
var tildeExpansionRegex = new RegExp(`^~${scope.system.pathSeparator}|^~/`);
|
||||
xdir = xdir.replace(tildeExpansionRegex, `${scope.system.tilde}${scope.system.pathSeparator}`);
|
||||
ydir = ydir.replace(tildeExpansionRegex, `${scope.system.tilde}${scope.system.pathSeparator}`);
|
||||
var xdirArr = xdir.split(scope.system.pathSeparator);
|
||||
var ydirArr = ydir.split(scope.system.pathSeparator);
|
||||
if (xdirArr.slice(-1).pop() === "") {
|
||||
|
||||
Reference in New Issue
Block a user