Browse Source

Add url manipulation utilities

Blallo 3 years ago
parent
commit
2e370ce13b
1 changed files with 25 additions and 0 deletions
  1. 25 0
      .zshrc

+ 25 - 0
.zshrc

@@ -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)"