summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2011-02-14 08:59:00 -0500
committerDavid Zeuthen <davidz@redhat.com>2011-02-14 08:59:00 -0500
commitc907e427f2e5bdace2f87b3162687a5c237fab3b (patch)
treed6897c4fb12f1fc7f0ece068b7eb64fec962a467
parent6f441c079f39d05cfbf7fb0786aa6d0da8edc35e (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.py34
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