]> source.dussan.org Git - gitea.git/commit
Clean up various use of escape/unescape functions for URL generation (#6334)
authormrsdizzie <info@mrsdizzie.com>
Mon, 18 Mar 2019 14:00:23 +0000 (10:00 -0400)
committertechknowlogick <matti@mdranta.net>
Mon, 18 Mar 2019 14:00:23 +0000 (10:00 -0400)
commitca463856377cf1ed40f8d8bd6f76739bf3711bb1
tree21193c00fea251dcd3e812eae7d75c1ff1cc6ebe
parentc151682fae3b77a696af56a232671b41f828d54f
Clean up various use of escape/unescape functions for URL generation (#6334)

* Use PathUnescape instead of QueryUnescape when working with branch names

Currently branch names with a '+' fail in certain situations because
QueryUnescape replaces the + character with a blank space.

Using PathUnescape should be better since it is defined as:

// PathUnescape is identical to QueryUnescape except that it does not
// unescape '+' to ' ' (space).

Fixes #6333

* Change error to match new function name

* Add new util function PathEscapeSegments

This function simply runs PathEscape on each segment of a path without
touching the forward slash itself. We want to use this instead of
PathEscape/QueryEscape in most cases because a forward slash is a valid name for a
branch etc... and we don't want that escaped in a URL.

Putting this in new file url.go and also moving a couple similar
functions into that file as well.

* Use EscapePathSegments where appropriate

Replace various uses of EscapePath/EscapeQuery with new
EscapePathSegments. Also remove uncessary uses of various
escape/unescape functions when the text had already been escaped or was
not escaped.

* Reformat comment to make drone build happy

* Remove no longer used url library

* Requested code changes
12 files changed:
cmd/hook.go
integrations/internal_test.go
models/repo.go
modules/context/auth.go
modules/context/context.go
modules/context/repo.go
modules/private/branch.go
modules/util/url.go [new file with mode: 0644]
modules/util/util.go
routers/home.go
routers/private/repository.go
routers/repo/pull.go