<div dir="ltr">Submitted patch and added SVN usage instructions in r208765 and r208766, respectively.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 14, 2014 at 11:27 AM, Gonzalo BG <span dir="ltr"><<a href="mailto:gonzalobg88@gmail.com" target="_blank">gonzalobg88@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks! <div><br></div><div>I just tried it and the following works fine: </div><div><br></div><div>svn<span> </span><span>diff</span><span> </span><span>--diff-cmd=diff</span><span> </span><span>-x-U0</span><span> | </span>tools/clang-format/clang-format-diff.py</div>


<div><br></div><div>Maybe one could add a single line to the llvm docs (here: <a href="http://clang.llvm.org/docs/ClangFormat.html" target="_blank">http://clang.llvm.org/docs/ClangFormat.html</a>) explaining how to use it with svn since there is only an explanation for git.<br>


</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 14, 2014 at 11:01 AM, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com" target="_blank">djasper@google.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Wed, May 14, 2014 at 9:38 AM, Gonzalo BG <span dir="ltr"><<a href="mailto:gonzalobg88@gmail.com" target="_blank">gonzalobg88@gmail.com</a>></span> wrote:<br>




</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">




<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.800000190734863px">It looks like you might have attached the wrong diff. It contains nothing but formatting changes as far as I can tell.</span></blockquote>






<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.800000190734863px"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.800000190734863px"><br></span></div>




</div></div><div>

Indeed. Sorry about that. Here is the whole patch. It is however unformatted.<div><br></div><div>Bests,</div><div>Gonzalo</div><div><br></div><div>P.S: I tried to find how to format the diff with clang-format. The only way I found was:<div>






<br>"svn diff | tools/clang-format/clang-format-diff.py > ~/patch.diff". </div></div></div></div></blockquote><div><br></div><div>clang-format-diff takes a unified diff as input, determines which lines are changed and reformats those lines in the original files. For SVN, you should be able to do:</div>




<div><br></div><div>svn diff --diff-cmd=diff -x-u0 | tools/clang-format/clang-format-diff.py<br></div><div><br></div><div>Which will show you the differences or use "-i" to change the files in place.</div><div>



<br></div><div>OR, just integrate clang-format into your editor :-).</div><div><div><br>
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div>However, clang-format-diff swallows almost the whole patch..</div>




<div><br></div><div>I tried setting up "git clang-format" but it seems to be non trivial and there seem to be no docs about it.</div></div></div></blockquote><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div dir="ltr"><div><div>If you could point me to the documentation about how to set up git clang-format and use it to format the patch I can try again.</div></div></div></blockquote><div><br></div></div><div>Well, you need to use git instead of svn as version control system and you should not make that switch for clang-format. Once you use git, it should be a simple matter of putting git-clang-format on your path.</div>



<div><br></div><div>In the interest of getting this submitted quickly, I'll patch it in, do a bit of cleanup and submit.</div><div>Thanks for working on this!</div><div><br></div><div>Cheers,</div><div>Daniel</div><div>


<div>
<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote">



<div>On Wed, May 14, 2014 at 7:49 AM, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com" target="_blank">djasper@google.com</a>></span> wrote:<br>


</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div>
<div dir="ltr"><div><div>It looks like you might have attached the wrong diff. It contains nothing but formatting changes as far as I can tell.
<div><br>
</div>
</div></div><div>Cheers,<br>
Daniel<br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote"><div><div>On Mon, May 12, 2014 at 8:19 PM, Gonzalo BG <span dir="ltr">
<<a href="mailto:gonzalobg88@gmail.com" target="_blank">gonzalobg88@gmail.com</a>></span> wrote:<br>
</div></div><div><div><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">This patch adds a new option "AllowSimpleBracedStatements" that allows braced statements to be considered as "simple". That is, if AllowShortIfStatementsOnASingleLine and AllowShortLoopStatementsOnASingle line are enabled, code like:
<div><br>
</div>
<div>if (true) {</div>
<div>  f();</div>
<div>}</div>
<div><br>
</div>
<div>can be wrapped into a single line as:</div>
<div><br>
</div>
<div>if (true) { f(); }</div>
<div><br>
</div>
<div>AllowSimpleBracedStatements defaults to false, meaning that the above transformation will not happen since braced block are considered "complex" and thus are not allowed to be put on a single line.<br>
</div>
<div><br>
</div>
<div>This is a fix for <a href="http://llvm.org/bugs/show_bug.cgi?id=19193" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=19193</a> . There, the following remarks were made:</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Things to do before this can get accepted: <br>
- You clang-format in LLVM style to format the changes (or e.g. git-clang-format). <br>
- Add tests, i.e. your test program should be put as unit tests into unittests/Format/FormatTest.cpp</blockquote>
<div><br>
</div>
<div>These issues have been addressed (hopefully!) in the attached patch </div>
<div>and adding the tests has made the patch better (so thanks for the feedback!).</div>
<div><br>
</div>
<div>Some newbie impressions on the clang-format code for those interested:</div>
<div><br>
</div>
<div>I have almost no experience with clang-format but after hacking on it a bit I feel that in the future there should be a way to format blocks independently of them being braced or not, belonging to a function, a control statements, a loop, ... Right now
 there are multiple functions dealing with the formatting of blocks and it felt a bit messy. </div>
<div><br>
</div>
<div>It also took me a bit to figure out how to add a new test, and how to launch clang-format tests only (independently of all others llvm tests) but this could probably fixed with a small paragraph in the docs.</div>
<div><br>
</div>
<div>Otherwise the code is self explanatory and well documented, and for someone like me who has no idea what he is doing (and what clang-format is doing) it was really easy to get clang-format to do what I wanted. </div>







<div><br>
</div>
<div>Bests,</div>
<div>Gonzalo BG</div>
</div>
</blockquote>
</div></div></div></div></div>
<br>
</div>
</div>
</div>
</div>

</blockquote></div><br></div>
</blockquote></div></div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>