First let me start with a note that I'm not in any way related to git
project -- just made an observation in my Linux distribution of choice
which has mksh as /bin/sh.

Anyway I did some checking and made two observations:

1. Looking at the expression in a simplified form:

OUT=$( ((echo foo; echo $? 1>&3) | :) 3>&1 ) && echo "$OUT"

isn't it supposed to echo only 0? Both mksh R51 and R52 echo foo and 0,
bash echoes 0, zsh echoes nothing. Three shells, three different
results.

2. In original command large_git produces lots of output to stdout,
which as described above lands in $OUT both in R51 and R52, but here's
the awkward difference between the two:

OUT="diff --git"
test "$OUT" -eq 141 && echo equals || echo not equals

R51: equals
R52: not equals

Looks like R51 passed git tests only by accident.

-- 
You received this bug notification because you are a member of mksh
Mailing List, which is subscribed to mksh.
Matching subscriptions: mkshlist-to-mksh-bugmail
https://bugs.launchpad.net/bugs/1532621

Title:
  Tests in git-2.7.0 fail with mksh R52

Status in mksh:
  New

Bug description:
  Newly released git version 2.7.0 fails to pass tests with most recent
  release of mksh -- test t0005-signals.sh fails on case 4 and 5:

  4: OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) && test "$OUT" -eq 141
  5: OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) && test "$OUT" 
-eq 141

  Note that everything works perfectly fine with R51 and ie bash.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mksh/+bug/1532621/+subscriptions

Reply via email to