Skip to content
  • Orgad Shaneh's avatar
    Remove braces for single lines of conditions · 29a93998
    Orgad Shaneh authored
    
    
    #!/usr/bin/env ruby
    
    Dir.glob('**/*.cpp') { |file|
      # skip ast (excluding paste, astpath, and canv'ast'imer)
      next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
      s = File.read(file)
      next if s.include?('qlalr')
      orig = s.dup
      s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
        res = $&
        if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
          res
        else
          res.gsub!('} else', 'else')
          res.gsub!(/\n +} *\n/m, "\n")
          res.gsub(/ *{$/, '')
        end
      }
      s.gsub!(/ *$/, '')
      File.open(file, 'wb').write(s) if s != orig
    }
    
    Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
    Reviewed-by: default avatarhjk <qthjk@ovi.com>
    29a93998