title: ksh errexit on conditional execution
body: <p>Consider the code:</p>
  
  <pre><code>set -ex
  for a in 1 2 3; do
    [ $a == 1 ] || false
  done
  </code></pre>
  
  <p>The expected output is:</p>
  
  <pre><code>+ [ 1 == 1 ]
  + [ 2 == 1 ]
  + false
  </code></pre>
  
  <p>However I get:</p>
  
  <pre><code>+ [ 1 == 1 ]
  + [ 2 == 1 ]
  + false
  + [ 3 == 1 ]
  + false
  </code></pre>
  
  <p>For some reason ksh decides not to exit after the <code>false</code> on the second iteration.</p>
  
  <p>Running this script through bash provides the expected results.</p>
  
  <p>Interestingly enough, I can convince ksh to provide the expected results by changing the code to:</p>
  
  <pre><code>set -ex
  for a in 1 2 3; do
    [ $a == 1 ] || false
    true
  done
  </code></pre>
  
  <p>Which on the surface, all I'm doing is adding a <code>true</code> command that's supposed to effectively do nothing.</p>
  
  <p>My ksh version (the default on OpenBSD 6.0) is: <code>@(#)PD KSH v5.2.14 99/07/13.2</code></p>
  
  <p>I wanted to make sure that there isn't something I'm missing before I decide to report this as a bug.</p>