<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi guys,<div><br></div><div>I have updated rule 76 to be more consistent with other style changes:</div><div><br></div><div><ul style="margin-bottom: 1em; color: rgb(72, 72, 72); font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"><li><p style="margin-top: 0px;">(changed 76) <code>switch</code> statement should have one of the two of following forms:</p><pre style="padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin-right: 1em; margin-left: 1.6em; background-color: rgb(250, 250, 250); border: 1px solid rgb(226, 226, 226); width: auto; overflow-x: auto; overflow-y: hidden;">switch (condition) {
case ABC:
  statements;
  // Fallthrough

case DEF:
  statements;
  break;

case XYZ:
  statements;
  break;

default:
  statements;
  break;
}
</pre><p style="margin-top: 0px;">or</p><pre style="padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin-right: 1em; margin-left: 1.6em; background-color: rgb(250, 250, 250); border: 1px solid rgb(226, 226, 226); width: auto; overflow-x: auto; overflow-y: hidden;">switch (condition)
  {
  case ABC:
    statements;
    // Fallthrough

  case DEF:
    statements;
    break;

  case XYZ:
    statements;
    break;

  default:
    statements;
    break;
  }</pre></li></ul><div><br></div><div>These two variants is what emacs will do when our gnu style is selected.  Previous variant was directly copied from the base rules and I don't think I ever followed that one.</div></div><div><br></div><div>---</div><div>Alex</div><div><br><div><div>On Mar 30, 2014, at 7:18 PM, Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu">shijunxiao@email.arizona.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Alex<div><br></div><div>Amended rule 76 gives an example of a switch statement:</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font face="courier new, monospace">switch (condition) { </font></div>

</div><div><font face="courier new, monospace">  case ABC:</font></div><div><font face="courier new, monospace">    statements; </font></div><div><div><font face="courier new, monospace">    // Fallthrough </font></div>

</div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">  case DEF: </font></div><div><div><font face="courier new, monospace">    statements; </font></div>

</div><div><font face="courier new, monospace">    break;</font></div><div><font face="courier new, monospace"><br></font></div><div><div><font face="courier new, monospace">  case XYZ: </font></div>

</div><div><font face="courier new, monospace">    statements; </font></div><div><font face="courier new, monospace">    break; </font></div><div><div><font face="courier new, monospace"><br></font></div>

</div><div><font face="courier new, monospace">  default: </font></div><div><font face="courier new, monospace">    statements; </font></div><div><div><font face="courier new, monospace">    break;</font></div>

</div><div><font face="courier new, monospace">}</font></div></blockquote><div><br></div><div>Rule 76 also states: Note that each <font face="courier new, monospace">case</font> keyword is indented relative to the switch statement as a whole.</div>

<div>This note is not eliminated by the amendment.</div><div><br></div><div><br></div><div>Amended rule 68 permits an additional block layout:</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>

<font face="courier new, monospace">while (!done)</font></div><div><font face="courier new, monospace">  {</font></div><div><font face="courier new, monospace">    doSomething();</font></div><div><font face="courier new, monospace">    done = moreToDo();</font></div>

<div><font face="courier new, monospace">  }</font></div></blockquote><div><br></div><div><br></div><div>There is a conflict when two amendments are applied together.</div><div><br></div><div>The note in rule 76 causes <font face="courier new, monospace">case</font> keywords to indent <i>relative to</i> the <font face="courier new, monospace">switch</font> keyword.</div>

<div>The example given indicates that the relative offset is 2 spaces.</div><div><br></div><div>However, when the additional block layout permitted by amended rule 68 is used, <font face="courier new, monospace">case</font> keywords would end up at the same column with { } brackets.</div>

<div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="courier new, monospace">switch (condition)</font></div><div><font face="courier new, monospace">  {</font></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<div><font face="courier new, monospace">  case ABC:</font></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">    statements;</font></blockquote>

<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">    break;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="courier new, monospace">  default:</font></div>

</blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">    statements;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<div><font face="courier new, monospace">    break;</font></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">  }</font></blockquote></div>

<div><br></div><div>Is this the intended layout, or should <font face="courier new, monospace">case</font> keywords be indented 4 spaces after <font face="courier new, monospace">switch</font> keyword (2 spaces after { } brackets)?</div>

<div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="courier new, monospace">switch (condition)</font></div><div><font face="courier new, monospace">  {</font></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<font face="courier new, monospace">    case ABC:</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">      statements;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<font face="courier new, monospace">      break;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">    default:</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<font face="courier new, monospace">      statements;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><font face="courier new, monospace">      break;</font></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">

<font face="courier new, monospace">  }</font></blockquote></div><div><br></div><div>Yours, Junxiao</div></div>
</blockquote></div><br></div></body></html>