> Hi all,
>
> I wrote a small perl script which fixes (some of) the astyle problems.
>
> Before use it, you must adjust the $ASTYLE_BIN variable at the beggining
> of the formatter.pl file.
>
> I am running it using the following command:
>   # find . -name "*.cc"  -exec formater.pl \{\} \;
> but it can take multiple files as arguments.
>
> I used it with astyle versions 1.18 and 1.21. I did not do extensive
> tests, so I am sure it contains bugs :-).  Please use it with caution.
>
> I tried to implement Alex suggestions.  For the problem discussion look
> at the thread:
> http://www.squid-cache.org/mail-archive/squid-dev/200801/0019.html
>
> This script starts the astyle and attach one filter in its input and one
> in its output, using pipes.
>
> The input filter search for "unsigned int XXXXX:1;" cases and convert
> them to  "unsigned int XXXXX__FORASTYLE__1;".
>
> The output filter search for "unsigned int XXXXX__FORASTYLE__1;"
> patterns and convert them back to the original text.
> Also it search for the cases "#preprocessor directive {" or "{
> #preprocessor_directive" and fix them.
>
>
> Do we need something like that? Any comments/suggestions? Any testers?
>
> Regards,
>     Christos
>

Tested.

I have made a (small) file of the structures I've noticed past formatting
errors on. With a manual fix-up to what I think it should look like in
readable C++ under the published squid formatting description.

The output of your script does this:
--- astyle-test-cases.cc-original       2008-02-07 12:13:07.000000000 +1300
+++ astyle-test-cases.cc        2008-02-07 12:19:14.000000000 +1300
@@ -9,10 +9,11 @@
 */

 /// structures with bit-fields
+
 struct t1 {
-    unsigned int a:1;
-    unsigned int b:1;
-    unsigned int c:1;
+    unsigned  int a:1;
+    unsigned  int b:1;
+    unsigned  int c:1;
 };

 /// code-blocks inside definition protection
@@ -20,6 +21,7 @@
 {
     ;
 }
+
 #endif

 /// regular function declarations
@@ -30,6 +32,7 @@
 }

 /// template class explicit Instantiation for some compilers
+
 template class ACLStrategised<HttpHeader*>;

 /// global template Instances with macro definition





NP: breaking the auto-docs away from the documented object is not that
good a thing to do.

Amos

Reply via email to