Chromium Code Reviews| Index: ppapi/generators/idl_c_proto.py |
| diff --git a/ppapi/generators/idl_c_proto.py b/ppapi/generators/idl_c_proto.py |
| index c522babf4c39971cf2079173705dcc9ed1b75999..1d28b23f8aa723d4d70182ba1f8edb16104d390d 100755 |
| --- a/ppapi/generators/idl_c_proto.py |
| +++ b/ppapi/generators/idl_c_proto.py |
| @@ -426,12 +426,15 @@ class CGen(object): |
| # include_name - If true, include member name in the signature. |
| # If false, leave it out. In any case, prefix and ptr_prefix |
| # are always included. |
| + # include_version - if True, include version in the member name |
| # |
| def GetSignature(self, node, release, mode, prefix='', func_as_ptr=True, |
| - ptr_prefix='', include_name=True): |
| + ptr_prefix='', include_name=True, include_version=False): |
| self.LogEnter('GetSignature %s %s as func=%s' % |
| (node, mode, func_as_ptr)) |
| rtype, name, arrayspec, callspec = self.GetComponents(node, release, mode) |
| + if include_version: |
| + name = self.GetStructName(node, release, True) |
| out = self.Compose(rtype, name, arrayspec, callspec, prefix, |
| func_as_ptr, ptr_prefix, include_name) |
| self.LogExit('Exit GetSignature: %s' % out) |
| @@ -567,6 +570,44 @@ class CGen(object): |
| return CommentLines(lines, tabs) |
| + def Indent(self, data, tabs=0): |
| + """Handles indentation and 80-column line wrapping.""" |
| + tab = ' ' * tabs |
| + lines = [] |
| + for line in data.split('\n'): |
| + # Add indentation |
| + line = tab + line |
| + if len(line) > 80: |
| + left = line.rfind('(') + 1 |
| + args = line[left:].split(',') |
| + orig_args = args |
| + orig_left = left |
| + # Look for a better split. |
| + while args[0][0] == ')': |
|
dmichael (off chromium)
2012/11/16 18:24:44
Can you maybe put an example of the kind of code y
teravest
2012/11/16 18:52:36
Sure. Comment added.
|
| + left = line.rfind('(', 0, left - 1) + 1 |
| + if left == 0: # No more parens, take the original option |
| + args = orig_args |
| + left = orig_left |
| + break |
| + args = line[left:].split(',') |
| + |
| + line_max = 0 |
| + for arg in args: |
| + if len(arg) > line_max: line_max = len(arg) |
| + |
| + if left + line_max >= 80: |
| + space = '%s ' % tab |
|
dmichael (off chromium)
2012/11/16 18:24:44
indent might be a better name than space?
teravest
2012/11/16 18:52:36
Done. I had left this unchanged from the previous
|
| + args = (',\n%s' % space).join([arg.strip() for arg in args]) |
| + lines.append('%s\n%s%s' % (line[:left], space, args)) |
| + else: |
| + space = ' ' * (left - 1) |
| + args = (',\n%s' % space).join(args) |
| + lines.append('%s%s' % (line[:left], args)) |
| + else: |
| + lines.append(line.rstrip()) |
|
dmichael (off chromium)
2012/11/16 18:24:44
I think I'd flip the if and the else, since in the
teravest
2012/11/16 18:52:36
Done.
|
| + return '\n'.join(lines) |
| + |
| + |
| # Define a top level object. |
| def Define(self, node, releases, tabs=0, prefix='', comment=False): |
| # If this request does not match unique release, or if the release is not |
| @@ -596,30 +637,10 @@ class CGen(object): |
| out += comment_txt |
| out += define_txt |
| - tab = ' ' * tabs |
| - lines = [] |
| - for line in out.split('\n'): |
| - # Add indentation |
| - line = tab + line |
| - if len(line) > 80: |
| - left = line.rfind('(') + 1 |
| - args = line[left:].split(',') |
| - line_max = 0 |
| - for arg in args: |
| - if len(arg) > line_max: line_max = len(arg) |
| - |
| - if left + line_max >= 80: |
| - space = '%s ' % tab |
| - args = (',\n%s' % space).join([arg.strip() for arg in args]) |
| - lines.append('%s\n%s%s' % (line[:left], space, args)) |
| - else: |
| - space = ' ' * (left - 1) |
| - args = (',\n%s' % space).join(args) |
| - lines.append('%s%s' % (line[:left], args)) |
| - else: |
| - lines.append(line.rstrip()) |
| + indented_out = self.Indent(out, tabs) |
| self.LogExit('Exit Define') |
| - return '\n'.join(lines) |
| + return indented_out |
| + |
| # Clean a string representing an object definition and return then string |
| # as a single space delimited set of tokens. |
| @@ -692,4 +713,3 @@ def Main(args): |
| if __name__ == '__main__': |
| sys.exit(Main(sys.argv[1:])) |
| - |
|
noelallen1
2012/11/15 22:03:18
Make sure to leave blank line to prevent windows p
teravest
2012/11/16 17:33:36
Done.
|