zshrc: Make minimal-shellrc printf-free
authorFrank Terbeck <ft@bewatermyfriend.org>
Wed, 10 Mar 2010 23:48:44 +0000 (00:48 +0100)
committerFrank Terbeck <ft@bewatermyfriend.org>
Wed, 10 Mar 2010 23:48:44 +0000 (00:48 +0100)
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.

etc/minimal-shellrc

index dec53b5..1a5a9c2 100644 (file)
@@ -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'        ;;