Home | History | Annotate | Download | only in Scripts
      1 
      2 # Copyright (C) 2006 Michael Emmel<mike.emmel (a] gmail.com>  All rights reserved.
      3 #
      4 # Redistribution and use in source and binary forms, with or without
      5 # modification, are permitted provided that the following conditions
      6 # are met:
      7 #
      8 # 1.  Redistributions of source code must retain the above copyright
      9 #     notice, this list of conditions and the following disclaimer.
     10 # 2.  Redistributions in binary form must reproduce the above copyright
     11 #     notice, this list of conditions and the following disclaimer in the
     12 #     documentation and/or other materials provided with the distribution.
     13 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     14 #     its contributors may be used to endorse or promote products derived
     15 #     from this software without specific prior written permission.
     16 #
     17 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     20 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     22 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     24 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 
     28 cmdcpp="astyle \
     29 --unpad=paren \
     30 --style=linux \
     31 --brackets=linux \
     32 --indent=spaces=4 \
     33 --indent-switches \
     34 --convert-tabs" 
     35 
     36 cmdh="astyle \
     37 --unpad=paren \
     38 --style=linux \
     39 --brackets=break \
     40 --indent=spaces=4 \
     41 --convert-tabs" 
     42 
     43 #astyle does not support unpadding so we use sed
     44 for i in $@
     45 do
     46 echo $i
     47 
     48 ext=`echo $i|awk -F . '{print $NF}'`
     49 
     50 cmd=$cmdcpp
     51 
     52 if [ $ext == "h" ] ; then
     53     cmd=$cmdh
     54 fi
     55 
     56 $cmd $i
     57 
     58 #first print the changes we are making
     59 sed  -n -e '
     60 /( .*/p  
     61 s/( /(/gp   
     62 /*. )/p
     63 s/ )/)/gp   
     64 #supress printing this
     65 #/^namespace WebCore/{
     66 #N
     67 #s/\n{/ {/p
     68 #}
     69 ' $i 
     70 
     71 #do it for real
     72 sed -e '
     73 #unpad leading spaces
     74 s/( /(/g
     75 #unpad traling spaces
     76 s/ )/)/g
     77 #fixup the namspec decl
     78 /^namespace WebCore/{
     79 N
     80 s/\n{/ {/
     81 }
     82 #fixup extra tab in constructor initalizer
     83 /^ \+,/{s/^    //}
     84 /^ \+:/{s/^    //}
     85 ' $i > $i.sed
     86 mv $i.sed $i
     87 done
     88 
     89 
     90