emotty: fix for undefined $TTY (FreeBSD) (#7844)

See https://github.com/robbyrussell/oh-my-zsh/pull/6731#issuecomment-449653115
This commit is contained in:
Marc Cornellà 2019-05-25 12:19:51 +02:00 committed by GitHub
parent 8d4d766bac
commit 1f07889888
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,8 +25,14 @@ emotty_default_set=emoji
function emotty() {
# Use emotty set defined by user, fallback to default
local emotty=${_emotty_sets[${emotty_set:-$emotty_default_set}]}
# Parse $TTY number, normalizing it to an emotty set index
(( tty = (${TTY##/dev/tty} % ${#${=emotty}}) + 1 ))
# Parse tty number via prompt expansion. %l equals:
# - N if tty = /dev/ttyN
# - pts/N if tty = /dev/pts/N
local tty = ${${(%):-%l}##pts/}
# Normalize it to an emotty set index
(( tty = (tty % ${#${=emotty}}) + 1 ))
local character_name=${${=emotty}[tty]}
echo "${emoji[${character_name}]}${emoji2[emoji_style]}"
}