http: replace escape() with escape_url()

pull/1409/head
Alexander Medvednikov 2019-07-31 20:53:07 +02:00
parent 550e8cd0cb
commit d3d4ee6b39
5 changed files with 28 additions and 8 deletions

View File

@ -5,7 +5,7 @@ for f in `find . -type f -name '*_test.v'`; do
v $f || echo "fail" v $f || echo "fail"
done done
for f in examples/*.v ; do for f in `find examples -type f -name '*.v'`; do
echo "Building $f..." echo "Building $f..."
v $f || echo "fail" v $f || echo "fail"
done done

View File

@ -189,14 +189,24 @@ pub fn (req &Request) do() Response {
} }
} }
pub fn unescape(s string) string { pub fn unescape_url(s string) string {
return string(byteptr(C.curl_unescape(s.str, s.len))) return string(byteptr(C.curl_unescape(s.str, s.len)))
} }
pub fn escape(s string) string { pub fn escape_url(s string) string {
return string(byteptr(C.curl_escape(s.str, s.len))) return string(byteptr(C.curl_escape(s.str, s.len)))
} }
pub fn unescape(s string) string {
panic('http.unescape() was replaced with http.unescape_url()')
return ''
}
pub fn escape(s string) string {
panic('http.escape() was replaced with http.escape_url()')
return ''
}
// //////////////// // ////////////////
fn (req &Request) do2() Response { fn (req &Request) do2() Response {
mut resp := Response{} mut resp := Response{}

View File

@ -2,8 +2,8 @@ import http
fn test_escape_unescape() { fn test_escape_unescape() {
original := 'те ст: т\\%' original := 'те ст: т\\%'
escaped := http.escape(original) escaped := http.escape_url(original)
assert escaped == '%D1%82%D0%B5%20%D1%81%D1%82%3A%20%D1%82%5C%25' assert escaped == '%D1%82%D0%B5%20%D1%81%D1%82%3A%20%D1%82%5C%25'
unescaped := http.unescape(escaped) unescaped := http.unescape_url(escaped)
assert unescaped == original assert unescaped == original
} }

View File

@ -194,19 +194,29 @@ pub fn (req &Request) do() Response {
return resp return resp
} }
pub fn escape(s string) string { pub fn escape_url(s string) string {
mut buf := &u16(malloc(INTERNET_MAX_URL_LENGTH * 2)) // INTERNET_MAX_URL_LENGTH * sizeof(wchar_t) mut buf := &u16(malloc(INTERNET_MAX_URL_LENGTH * 2)) // INTERNET_MAX_URL_LENGTH * sizeof(wchar_t)
mut nr_chars := INTERNET_MAX_URL_LENGTH mut nr_chars := INTERNET_MAX_URL_LENGTH
res := C.UrlEscape(s.to_wide(), buf, &nr_chars, URL_ESCAPE_PERCENT | URL_ESCAPE_AS_UTF8 | URL_ESCAPE_ASCII_URI_COMPONENT) res := C.UrlEscape(s.to_wide(), buf, &nr_chars, URL_ESCAPE_PERCENT | URL_ESCAPE_AS_UTF8 | URL_ESCAPE_ASCII_URI_COMPONENT)
return string_from_wide2(buf, nr_chars) return string_from_wide2(buf, nr_chars)
} }
pub fn unescape(s string) string { pub fn unescape_url(s string) string {
mut buf := &u16(malloc(INTERNET_MAX_URL_LENGTH * 2)) mut buf := &u16(malloc(INTERNET_MAX_URL_LENGTH * 2))
mut nr_chars := INTERNET_MAX_URL_LENGTH mut nr_chars := INTERNET_MAX_URL_LENGTH
res := C.UrlUnescape(s.to_wide(), &buf, &nr_chars, URL_ESCAPE_AS_UTF8 | URL_ESCAPE_ASCII_URI_COMPONENT) res := C.UrlUnescape(s.to_wide(), &buf, &nr_chars, URL_ESCAPE_AS_UTF8 | URL_ESCAPE_ASCII_URI_COMPONENT)
return string_from_wide2(buf, nr_chars) return string_from_wide2(buf, nr_chars)
} }
pub fn unescape(s string) string {
panic('http.unescape() was replaced with http.unescape_url()')
return ''
}
pub fn escape(s string) string {
panic('http.escape() was replaced with http.escape_url()')
return ''
}
fn C.InternetReadFile(voidptr, voidptr, int, intptr) bool fn C.InternetReadFile(voidptr, voidptr, int, intptr) bool

View File

@ -140,7 +140,7 @@ fn (ctx mut Context) parse_form(s string) {
key := keyval[0] key := keyval[0]
val := keyval[1] val := keyval[1]
//println('http form $key => $val') //println('http form $key => $val')
ctx.post_form[key] = http.unescape(val) ctx.post_form[key] = http.unescape_url(val)
} }
} }
} }