diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2016-10-31 18:35:19 +0000 |
---|---|---|
committer | Daniel Shahaf <d.s@daniel.shahaf.name> | 2016-10-31 18:35:47 +0000 |
commit | 74aa45910b3711622e9eb5ccf8adef9566db6f62 (patch) | |
tree | f488a15df38b4b9099ade82fcd4af83b9f034bc4 /Functions/VCS_Info/VCS_INFO_hexdump | |
parent | 88c42a2ba0f0baa9fd20bb7abddc2ad89b66a508 (diff) | |
download | zsh-74aa45910b3711622e9eb5ccf8adef9566db6f62.tar.gz zsh-74aa45910b3711622e9eb5ccf8adef9566db6f62.tar.xz zsh-74aa45910b3711622e9eb5ccf8adef9566db6f62.zip |
39786: vcs_info (hg): Use native hexdump implementation instead of external command.
Fixes issue whereby the external command would print "*" for repeated octets. Includes comment change, cf 39790.
Diffstat (limited to 'Functions/VCS_Info/VCS_INFO_hexdump')
-rw-r--r-- | Functions/VCS_Info/VCS_INFO_hexdump | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Functions/VCS_Info/VCS_INFO_hexdump b/Functions/VCS_Info/VCS_INFO_hexdump new file mode 100644 index 000000000..11f1c1a50 --- /dev/null +++ b/Functions/VCS_Info/VCS_INFO_hexdump @@ -0,0 +1,16 @@ +## vim:ft=zsh + +# VCS_INFO_hexdump FILENAME BYTECOUNT +# +# Return in $REPLY a hexadecimal representation (lowercase, no whitespace) +# of the first BYTECOUNT bytes of FILENAME. + +if [[ -r $1 ]]; then + setopt localoptions nomultibyte extendedglob + local val + read -k $2 -u 0 val <$1 + REPLY=${(Lj::)${(l:2::0:)${(@s//)val}//(#m)*/$(( [##16] ##$MATCH ))}} +else + return 1 +fi + |