Configuration Information [Automatically generated, do not change]: Machine: i586 OS: cygwin Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash.exe' -DCONF_HOSTTYPE='i586' -DCONF_OSTYPE='cygwin' -DCONF_MACHTYPE='i586-pc-cygwin' -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/ locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -DRECYCLES_PIDS -I. -I/ho me/xxx/bash/bash-3.0 -I/home/xxx/bash/bash-3.0/include -I/home/xxx/bash/bash -3.0/lib -O2 uname output: CYGWIN_98-4.10 pcdahl4201 1.5.18s(0.130/4/2) 20050611 15:29:08 i586 unknown unknown Cygwin Machine Type: i586-pc-cygwin
Bash Version: 3.0 Patch Level: 16 Release Status: release Description: When "declare -f" outputs a "for (( exp1; exp2; exp3 ))" command, it inserts a space after exp1 and exp2. When the output is re-fed into bash, these extra spaces become part of the new exp1 and exp2. Repeating this process several times leads to an accumulation of trailing spaces in exp1 and exp2. Repeat-By: $ f() { for (( i=0; i<$1; i++ )); do eval "$(declare -f f)"; done; } $ declare -f f f () { for ((i=0 ; i<$1 ; i++ )) do eval "$(declare -f f)"; done } $ f 20 $ declare -f f f () { for ((i=0 ; i<$1 ; i++ )) do eval "$(declare -f f)"; done } Fix: Either strip trailing whitespace in make_cmd.c:make_arith_for_command() or print "; " instead of " ; " in print_cmd.c:print_arith_for_command(). Regards, Thorsten Dahlheimer _______________________________________________ Bug-bash mailing list Bug-bash@gnu.org http://lists.gnu.org/mailman/listinfo/bug-bash