comparison libgaim/dbus-analyze-functions.py @ 14648:74b69a11830c

[gaim-migrate @ 17394] sf patch #1469293, from Ari Pollak Our python script that generates dbus bindings was assuming that va_list is a pointer, but it is not a pointer on all platforms (like alpha, for example). I couldn't find a way to pass a va_list as a python parameter, but I'm not very familiar with dbus. This patch avoids creating a python binding for any function that accepts a va_list. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 29 Sep 2006 06:04:13 +0000
parents 9c884b84afb9
children
comparison
equal deleted inserted replaced
14647:18b74ed00850 14648:74b69a11830c
97 if len(type) == 1: 97 if len(type) == 1:
98 # simple types (int, gboolean, etc.) and enums 98 # simple types (int, gboolean, etc.) and enums
99 if (type[0] in simpletypes) or (type[0].startswith("Gaim")): 99 if (type[0] in simpletypes) or (type[0].startswith("Gaim")):
100 return self.inputsimple(type, name) 100 return self.inputsimple(type, name)
101 101
102
103 # va_list, replace by NULL
104 if type[0] == "va_list":
105 return self.inputvalist(type, name)
106
107 # pointers ... 102 # pointers ...
108 if (len(type) == 2) and (type[1] == pointer): 103 if (len(type) == 2) and (type[1] == pointer):
109 # strings 104 # strings
110 if type[0] == "char": 105 if type[0] == "char":
111 if const: 106 if const:
207 self.knowntypes.append(type[0]) 202 self.knowntypes.append(type[0])
208 203
209 def inputsimple(self, type, name): 204 def inputsimple(self, type, name):
210 self.paramshdr.append("%s %s" % (type[0], name)) 205 self.paramshdr.append("%s %s" % (type[0], name))
211 self.inputparams.append(("G_TYPE_INT", name)) 206 self.inputparams.append(("G_TYPE_INT", name))
212
213 def inputvalist(self, type, name):
214 self.paramshdr.append("va_list %s_NULL" % name)
215 207
216 def inputstring(self, type, name): 208 def inputstring(self, type, name):
217 self.paramshdr.append("const char *%s" % name) 209 self.paramshdr.append("const char *%s" % name)
218 self.inputparams.append(("G_TYPE_STRING", name)) 210 self.inputparams.append(("G_TYPE_STRING", name))
219 211
327 319
328 def inputsimple(self, type, name): 320 def inputsimple(self, type, name):
329 self.cdecls.append("\tdbus_int32_t %s;" % name) 321 self.cdecls.append("\tdbus_int32_t %s;" % name)
330 self.cparams.append(("INT32", name)) 322 self.cparams.append(("INT32", name))
331 self.addintype("i", name) 323 self.addintype("i", name)
332
333 def inputvalist(self, type, name):
334 self.cdecls.append("\tvoid * %s;" % name);
335 self.ccode.append("\t%s = NULL;" % name);
336 324
337 def inputstring(self, type, name): 325 def inputstring(self, type, name):
338 self.cdecls.append("\tconst char *%s;" % name) 326 self.cdecls.append("\tconst char *%s;" % name)
339 self.cparams.append(("STRING", name)) 327 self.cparams.append(("STRING", name))
340 self.ccode .append("\tNULLIFY(%s);" % name) 328 self.ccode .append("\tNULLIFY(%s);" % name)