| Index: grit/tool/toolbar_preprocess.py
|
| ===================================================================
|
| --- grit/tool/toolbar_preprocess.py (revision 0)
|
| +++ grit/tool/toolbar_preprocess.py (revision 0)
|
| @@ -0,0 +1,62 @@
|
| +#!/usr/bin/python2.4
|
| +# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +''' Toolbar preprocessing code. Turns all IDS_COMMAND macros in the RC file
|
| +into simpler constructs that can be understood by GRIT. Also deals with
|
| +expansion of $lf; placeholders into the correct linefeed character.
|
| +'''
|
| +
|
| +import preprocess_interface
|
| +
|
| +import re
|
| +import sys
|
| +import codecs
|
| +
|
| +class ToolbarPreProcessor(preprocess_interface.PreProcessor):
|
| + ''' Toolbar PreProcessing class.
|
| + '''
|
| +
|
| + _IDS_COMMAND_MACRO = re.compile(r'(.*IDS_COMMAND)\s*\(([a-zA-Z0-9_]*)\s*,\s*([a-zA-Z0-9_]*)\)(.*)')
|
| + _LINE_FEED_PH = re.compile(r'\$lf;')
|
| + _PH_COMMENT = re.compile(r'PHRWR')
|
| + _COMMENT = re.compile(r'^(\s*)//.*')
|
| +
|
| +
|
| + def Process(self, rctext, rcpath):
|
| + ''' Processes the data in rctext.
|
| + Args:
|
| + rctext: string containing the contents of the RC file being processed
|
| + rcpath: the path used to access the file.
|
| +
|
| + Return:
|
| + The processed text.
|
| + '''
|
| +
|
| + ret = ''
|
| + rclines = rctext.splitlines()
|
| + for line in rclines:
|
| +
|
| + if self._LINE_FEED_PH.search(line):
|
| + # Replace "$lf;" placeholder comments by an empty line.
|
| + # this will not be put into the processed result
|
| + if self._PH_COMMENT.search(line):
|
| + mm = self._COMMENT.search(line)
|
| + if mm:
|
| + line = '%s//' % mm.group(1)
|
| +
|
| + else:
|
| + # Replace $lf by the right linefeed character
|
| + line = self._LINE_FEED_PH.sub(r'\\n', line)
|
| +
|
| + # Deal with IDS_COMMAND_MACRO stuff
|
| + mo = self._IDS_COMMAND_MACRO.search(line)
|
| + if mo:
|
| + line = '%s_%s_%s%s' % (mo.group(1), mo.group(2), mo.group(3), mo.group(4))
|
| +
|
| + ret += (line + '\n')
|
| +
|
| + return ret
|
| +
|
| +
|
|
|
| Property changes on: grit/tool/toolbar_preprocess.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|