expr was printing `expr: warning: '^.*[<>"]': using '^' as the first character of a basic regular expression is not portable;`
# email
_email_has_display_name() {
_email="$1"
- expr "$_email" : '^.*[<>"]' >/dev/null
+ echo "$_email" | grep -q -E '^.*[<>"]'
}
##
_text="$1"
# (regex character ranges like [a-z] can be locale-dependent; enumerate ASCII chars to avoid that)
_ascii='] $`"'"[!#%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ~^_abcdefghijklmnopqrstuvwxyz{|}~-"
- if expr "$_text" : "^.*[^$_ascii]" >/dev/null; then
+ if echo "$_text" | grep -q -E "^.*[^$_ascii]"; then
# At least one non-ASCII char; convert entire thing to encoded word
printf "%s" "=?UTF-8?B?$(printf "%s" "$_text" | _base64)?="
else