--- /usr/portage/sys-apps/less/files/lesspipe.sh 2013-08-06 17:01:32.000000000 -0500 +++ /home/ssb/bin/lesspipe.sh 2013-10-21 10:24:21.772794865 -0500 @@ -195,6 +195,23 @@ ### Everything else ### *) + case `file -b -- "$1"` in + *UTF-16\ Unicode\ text*) conv='UTF-16' ;; + *UTF-32\ Unicode\ text*) conv='UTF-32' ;; + esac + if [ -n "$LC_ALL" ]; then + env="$LC_ALL" + elif [ -n "$LC_CTYPE" ]; then + env="$LC_CTYPE" + else + env="$LANG" + fi + env=`echo $env | cut -d. -f2` + if [ -n "$conv" -a -n "$env" -a "$conv" != "$env" ]; then + if iconv -f $conv -t $env -- "$1"; then + exit 0 + fi + fi case $(( recur++ )) in # Maybe we didn't match due to case issues ... 0) lesspipe "$1" "$(echo $1 | LC_ALL=C tr '[:upper:]' '[:lower:]')" ;;