|
@@ -241,6 +241,31 @@ function sway-screens {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+urlencode() {
|
|
|
+ # urlencode <string>
|
|
|
+
|
|
|
+ old_lc_collate=$LC_COLLATE
|
|
|
+ LC_COLLATE=C
|
|
|
+
|
|
|
+ local length="${#1}"
|
|
|
+ for (( i = 0; i < length; i++ )); do
|
|
|
+ local c="${1:$i:1}"
|
|
|
+ case $c in
|
|
|
+ [a-zA-Z0-9.~_-]) printf '%s' "$c" ;;
|
|
|
+ *) printf '%%%02X' "'$c" ;;
|
|
|
+ esac
|
|
|
+ done
|
|
|
+
|
|
|
+ LC_COLLATE=$old_lc_collate
|
|
|
+}
|
|
|
+
|
|
|
+urldecode() {
|
|
|
+ # urldecode <string>
|
|
|
+
|
|
|
+ local url_encoded="${1//+/ }"
|
|
|
+ printf '%b' "${url_encoded//%/\\x}"
|
|
|
+}
|
|
|
+
|
|
|
## Custom completion
|
|
|
# certo
|
|
|
eval "$(_CERTO_COMPLETE=source_zsh certo)"
|