diff options
author | rrt <rrt@sc3d.org> | 2016-06-20 23:10:46 +0100 |
---|---|---|
committer | rrt <rrt@sc3d.org> | 2016-06-20 23:10:46 +0100 |
commit | cbdb7c8bc35ed8d2d6599722246c6929217ed26e (patch) | |
tree | de8e44548cf23716c72adadc661227ded63d2b6d /external | |
parent | 4623290607e796456d3c56a6bc7e87430ba9ae62 (diff) | |
download | pygments-cbdb7c8bc35ed8d2d6599722246c6929217ed26e.tar.gz |
Fall back to od -x, and use hexdump lexer
Diffstat (limited to 'external')
-rwxr-xr-x | external/autopygmentize | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/external/autopygmentize b/external/autopygmentize index 9b030fac..26fe365c 100755 --- a/external/autopygmentize +++ b/external/autopygmentize @@ -74,14 +74,22 @@ case $(file $file_common_opts --mime-type "$file") in application/x-xz) concat=xzcat;; esac -# Find a reader: either a suitable lexer, or hd for binary files -reader="" +# Find a suitable lexer, preceded by a hex dump for binary files +prereader="" encoding=$(file --mime-encoding --uncompress $file_common_opts "$file") if [[ $encoding == "binary" ]]; then - reader=hd -elif [[ -n "$lexer" ]]; then + prereader="od -x" # POSIX fallback + if [[ -n $(which hd) ]]; then + prereader="hd" # preferred + fi + lexer=hexdump +fi +if [[ -n "$lexer" ]]; then reader="pygmentize -O inencoding=$encoding $PYGMENTIZE_OPTS $options -l $lexer" fi +if [[ -n "$prereader" ]]; then + reader="$prereader | $reader" +fi # If we found a reader, run it if [[ -n "$reader" ]]; then |