X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fc_client.py;h=99fe11481191fb559a8f4853cd643b23da7ba787;hb=96e55444b9b9500420f9132a1ace720100a26398;hp=1c6ad16e4d7ce5836a7c8029f91e8314b45e390e;hpb=1ead02e88eb9f37757eeb1cc8c762fc48d6d08ee;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/c_client.py b/src/c_client.py index 1c6ad16..99fe114 100755 --- a/src/c_client.py +++ b/src/c_client.py @@ -176,6 +176,12 @@ def c_open(self): for (n, h) in self.imports: _hc('#include "%s.h"', h) + _h('') + _h('#ifdef __cplusplus') + _h('extern "C" {') + _h('#endif') + + if _ns.is_ext: _h('') _h('#define XCB_%s_MAJOR_VERSION %s', _ns.ext_name.upper(), _ns.major_version) _h('#define XCB_%s_MINOR_VERSION %s', _ns.ext_name.upper(), _ns.minor_version) @@ -193,6 +199,12 @@ def c_close(self): _h_setlevel(2) _c_setlevel(2) _hc('') + + _h('') + _h('#ifdef __cplusplus') + _h('}') + _h('#endif') + _h('') _h('#endif') _h('') @@ -635,9 +647,15 @@ def _c_complex(self): struct_fields = [] maxtypelen = 0 + varfield = None for field in self.fields: if not field.type.fixed_size(): - break + varfield = field.c_field_name + continue + if varfield != None and not field.type.is_pad and field.wire: + errmsg = '%s: warning: variable field %s followed by fixed field %s\n' % (self.c_type, varfield, field.c_field_name) + sys.stderr.write(errmsg) + # sys.exit(1) if field.wire: struct_fields.append(field)