diff options
author | David Zeuthen <davidz@redhat.com> | 2011-02-14 08:59:00 -0500 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2011-02-14 08:59:00 -0500 |
commit | c907e427f2e5bdace2f87b3162687a5c237fab3b (patch) | |
tree | d6897c4fb12f1fc7f0ece068b7eb64fec962a467 | |
parent | 6f441c079f39d05cfbf7fb0786aa6d0da8edc35e (diff) |
Fix corner-cases bugs for namespace handling
In particular make '--namespace G' work - e.g. generate type GBar and
functions g_bar_* instead of gbar_*.
Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r-- | src/dbustypes.py | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/dbustypes.py b/src/dbustypes.py index f903eb2..dc8b244 100644 --- a/src/dbustypes.py +++ b/src/dbustypes.py @@ -250,23 +250,24 @@ class Interface: self.annotations = [] def calculate_c_names(self, strip_prefix, namespace): - s = self.name overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.Name') if overridden_name: - s = overridden_name - - if s.startswith(strip_prefix): - s = s[len(strip_prefix):] - s = utils.strip_dots(s) - name_with_ns = utils.strip_dots(namespace + '.' + s) + name = overridden_name + else: + name = self.name + if name.startswith(strip_prefix): + name = name[len(strip_prefix):] + name = utils.strip_dots(name) + name_with_ns = utils.strip_dots(namespace + '.' + name) self.camel_name = name_with_ns - if len(namespace) > 1: + if len(namespace) > 0: self.ns_upper = utils.camel_case_to_uscore(namespace).upper() + '_' + self.name_lower = utils.camel_case_to_uscore(namespace) + '_' + utils.camel_case_to_uscore(name) else: self.ns_upper = '' - self.name_upper = utils.camel_case_to_uscore(s).upper() - self.name_lower = utils.camel_case_to_uscore(name_with_ns) + self.name_lower = utils.camel_case_to_uscore(name_with_ns) + self.name_upper = utils.camel_case_to_uscore(name).upper() for m in self.methods: m.calculate_c_names(strip_prefix, namespace) @@ -278,11 +279,14 @@ class Interface: p.calculate_c_names(strip_prefix, namespace) #print '---' - #print 'interface: ' + self.name - #print 'camel_name: ' + self.camel_name - #print 'ns_upper: ' + self.ns_upper - #print 'name_upper: ' + self.name_upper - #print 'name_lower: ' + self.name_lower + #print 'interface: ' + self.name + #print 'camel_name: ' + self.camel_name + #print 'ns_upper: ' + self.ns_upper + #print 'name_upper: ' + self.name_upper + #print 'name_lower: ' + self.name_lower + #print ' name: ' + name + #print ' namespace: ' + namespace + #print ' name_with_ns: ' + name_with_ns # # interface: org.project.Bar.Frobnicator # camel_name: FooBarFrobnicator |