diff options
| author | Marc Cornellà <marc@mcornella.com> | 2023-12-06 08:09:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-06 08:09:45 +0100 |
| commit | 1ae0515a80686d33406c9a2c58c0c9666ca47c77 (patch) | |
| tree | 23f9879fa4dedb9e0397b3ab1fff8c3a44e8fe3d | |
| parent | 0a9d82780e20e24b6fafc5b2aaefedb0957986c9 (diff) | |
| download | zsh-1ae0515a80686d33406c9a2c58c0c9666ca47c77.tar.gz zsh-1ae0515a80686d33406c9a2c58c0c9666ca47c77.tar.bz2 zsh-1ae0515a80686d33406c9a2c58c0c9666ca47c77.zip | |
fix(lib): patch `omz_urlencode` to not encode UTF-8 chars in Termux (#12076)
Fixes #12061
| -rw-r--r-- | lib/functions.zsh | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh index a252d0a33..f5c671f9c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -182,6 +182,8 @@ function omz_urlencode() { fi # Use LC_CTYPE=C to process text byte-by-byte + # Note that this doesn't work in Termux, as it only has UTF-8 locale. + # Characters will be processed as UTF-8, which is fine for URLs. local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' @@ -206,6 +208,9 @@ function omz_urlencode() { else if [[ "$byte" == " " && -n $spaces_as_plus ]]; then url_str+="+" + elif [[ "$PREFIX" = *com.termux* ]]; then + # Termux does not have non-UTF8 locales, so just send the UTF-8 character directly + url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" |
