diff --git a/fs/fspath/path.go b/fs/fspath/path.go index a9dd858d1..2c9c42b00 100644 --- a/fs/fspath/path.go +++ b/fs/fspath/path.go @@ -13,13 +13,12 @@ import ( ) const ( - configNameRe = `[\w\p{L}\p{N}.-]+(?: +[\w\p{L}\p{N}.-]+)*` + configNameRe = `[\w\p{L}\p{N}.]+(?:[ -]+[\w\p{L}\p{N}.-]+)*` // don't allow it to start with `-` as it complicates usage (#4261) ) var ( - errInvalidCharacters = errors.New("config name contains invalid characters - may only contain numbers, letters, `_`, `-`, `.` and space, while not start or end with space") + errInvalidCharacters = errors.New("config name contains invalid characters - may only contain numbers, letters, `_`, `-`, `.` and space, while not start with `-` or space, and not end with space") errCantBeEmpty = errors.New("can't use empty string as a path") - errCantStartWithDash = errors.New("config name starts with `-`") errBadConfigParam = errors.New("config parameters may only contain `0-9`, `A-Z`, `a-z` and `_`") errEmptyConfigParam = errors.New("config parameters can't be empty") errConfigNameEmpty = errors.New("config name can't be empty") @@ -42,10 +41,6 @@ func CheckConfigName(configName string) error { if !configNameMatcher.MatchString(configName) { return errInvalidCharacters } - // Reject configName, if it starts with -, complicates usage. (#4261) - if strings.HasPrefix(configName, "-") { - return errCantStartWithDash - } return nil } diff --git a/fs/fspath/path_test.go b/fs/fspath/path_test.go index 6c4ac754d..ad58ef399 100644 --- a/fs/fspath/path_test.go +++ b/fs/fspath/path_test.go @@ -32,7 +32,7 @@ func TestCheckConfigName(t *testing.T) { {"rem\\ote", errInvalidCharacters}, {"[remote", errInvalidCharacters}, {"*", errInvalidCharacters}, - {"-remote", errCantStartWithDash}, + {"-remote", errInvalidCharacters}, {"r-emote-", nil}, {"_rem_ote_", nil}, {".", nil}, @@ -62,7 +62,7 @@ func TestCheckRemoteName(t *testing.T) { {".:", nil}, {"..:", nil}, {".r.e.m.o.t.e.:", nil}, - {"-r-emote-:", nil}, + {"-r-emote-:", errInvalidCharacters}, {"rem ote:", nil}, {"blåbær:", nil}, {"chữ Quốc ngữ:", nil},