Dave Reisner, 2011-06-25 15:27:
On Sat, Jun 25, 2011 at 03:17:40PM +0200, Kurt J. Bosch wrote:
From: "Kurt J. Bosch"<[email protected]>

---
  rc.sysinit |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/rc.sysinit b/rc.sysinit
index 4073fb9..75f8095 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -229,7 +229,7 @@ stat_done

  # Flush old locale settings and set user defined locale
  status "Setting Locale: ${LOCALE:=en_US}" \
-       install -Tm 0755<(echo "export LANG=$LOCALE") /etc/profile.d/locale.sh
+       eval 'install -Tm 0755<(echo "export LANG=$LOCALE") 
/etc/profile.d/locale.sh'

  if [[ ${LOCALE,,} =~ utf ]]; then
        stat_busy "Setting Consoles to UTF-8 mode"
--
1.7.5.2


NACK.

As far as I can tell, the eval is not at all necessary.

dave

I was able to track this down to the scripts from fbsplash (AUR).

The following test case (run in a terminal)

#!/bin/bash

# custom override example
stat_busy() {
        if (( PUSH_MSG )); then
                # This triggers the error in "$@" below
                # actual code was:
                # echo set message "$1" > "$spl_fifo" &
                : &
        fi
        echo "$1" BUSY
}

status() {
        stat_busy "$1"
        shift
        "$@"
        local retval=$?
        (( retval == 0 )) && echo DONE || echo FAIL "($retval)"
}

PUSH_MSG=0 status "test #0" cat <(echo foo)
PUSH_MSG=1 status "test #1" cat <(echo foo)

gives:

test #0 BUSY
foo
DONE
test #1 BUSY
cat: /dev/fd/63: No such file or directory
FAIL (1)

BASH version installed on Arch is
bash 4.2.010-1
GNU bash, version 4.2.10(2)-release (i686-pc-linux-gnu)

BTW same behavior on Scientific 6
GNU bash, version 4.1.2(1)-release (i386-koji-linux-gnu)

So i think we need the eval for now to work around this.

CCing Tom Gundersen.
--
Kurt
#!/bin/bash

# custom override example
stat_busy() {
        if (( PUSH_MSG )); then
                # This triggers the error in "$@" below
                # actual code was:
                # echo set message "$1" > "$spl_fifo" &
                : &
        fi
        echo "$1" BUSY
}

status() {
        stat_busy "$1"
        shift
        "$@"
        local retval=$?
        (( retval == 0 )) && echo DONE || echo FAIL "($retval)"
}

PUSH_MSG=0 status "test #0" cat <(echo foo)
PUSH_MSG=1 status "test #1" cat <(echo foo)

Reply via email to