From: Frank Terbeck Date: Wed, 10 Mar 2010 23:48:44 +0000 (+0100) Subject: zshrc: Make minimal-shellrc printf-free X-Git-Tag: v0.3.80~1 X-Git-Url: https://git.grml.org/?a=commitdiff_plain;h=2464dac5c121307ce71877332d7a7b19fe653b95;hp=00085f1df9b9da86d01105627f7c42a0669b1e0b;p=grml-etc-core.git zshrc: Make minimal-shellrc printf-free One of the major reasons for `minimal-shell()' is to be able to use it without /usr being mounted. But some OS vendors think it's smart to put `printf' into /usr/bin - sed, of course happily lives in /bin. Debian happens to think that's funny, too. mksh doesn't make `printf' a builtin because it doesn't want to link libm in (well, you can hack it in - but that's a discouraged non- default). This replaces "printf '%s' foo' with "print -r -- foo", which should resolve the issue for us nicely. --- diff --git a/etc/minimal-shellrc b/etc/minimal-shellrc index dec53b5..1a5a9c2 100644 --- a/etc/minimal-shellrc +++ b/etc/minimal-shellrc @@ -43,7 +43,7 @@ if [[ -x $(which infocmp) ]] && [[ -x $(which sed) ]] ; then while read -r line ; do key="${line%=*}" [[ "${key}" != k* ]] && continue - seq="$(printf '%s' "${line#*=}" | sed -e 's,\\\([1-7][0-7]*\),\\0\1,g')" + seq="$(print -r -- "${line#*=}" | sed -e 's,\\\([1-7][0-7]*\),\\0\1,g')" seq="$(print "${seq}")" case "$key" in key_left) bind "${seq}"='backward-char' ;;