summaryrefslogtreecommitdiff
path: root/src/uri
blob: b9a5f58bc9ee614f0b1ab1a23e137613836a64c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh
set -eu

awk '
BEGIN {
	for (i = 0; i < 256; i++) {
		hex[sprintf("%c", i)] = sprintf("%%%02X", i)
	}
}

{
	for (i = 1; i <= length($0); i++) {
		c = substr($0, i, 1)
		printf "%s", (c ~ /^[-._a-zA-Z0-9]$/ ? c : hex[c])
	}
}
'