5 wl('static unsigned decode_%s(GlDecoder *dec, const char *data)', func.name)
7 wl(' unsigned pos = 0;')
9 wl(' %s ret;', ret.ctype)
11 wl(' %s p_%s;', p.ctype, p.name)
13 wl(' pos += read_%s(&ret, data+pos);', ret.io[0])
16 wl(' pos += read_%s(&p_%s, data+pos);', p.io[0], p.name)
18 wl(' pos += read_data((const void **)&p_%s, data+pos);', p.name)
20 wl(' pos += read_pointer((void **)&p_%s, data+pos);', p.name)
21 wl(' if(dec->%s)', func.name)
22 w(' dec->%s(dec->user_data', func.name)
30 :static int decode_func(GlDecoder *dec, short func, const char *data)
34 wl(' case FUNC_%s: return decode_%s(dec, data);', func.name.upper(), func.name)