aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal_gen.py
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2004-02-20 13:51:30 +0000
committerJörg Mayer <jmayer@loplof.de>2004-02-20 13:51:30 +0000
commit6d421d36dd45283207095a3abbaeffb67b26c441 (patch)
treef262f5498427fffc325581bf74d310795a999e87 /ethereal_gen.py
parent339e52c355c286f0a3b6b5050074242fdcfed1a3 (diff)
Frederic Peters: handle ulong and ushort
svn path=/trunk/; revision=10132
Diffstat (limited to 'ethereal_gen.py')
-rw-r--r--ethereal_gen.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/ethereal_gen.py b/ethereal_gen.py
index ef2d946bb6..78bd1fca28 100644
--- a/ethereal_gen.py
+++ b/ethereal_gen.py
@@ -1,6 +1,6 @@
# -*- python -*-
#
-# $Id: ethereal_gen.py,v 1.28 2002/08/02 23:35:46 jmayer Exp $
+# $Id: ethereal_gen.py,v 1.29 2004/02/20 13:51:30 jmayer Exp $
#
# ethereal_gen.py (part of idl2eth)
#
@@ -1192,10 +1192,18 @@ class ethereal_gen_C:
self.st.out(self.template_union_code_save_discriminant_long, discname=un.identifier() )
self.addvar(self.c_s_disc + un.identifier() + ";")
+ elif (st.kind() == idltype.tk_ulong):
+ self.st.out(self.template_union_code_save_discriminant_ulong, discname=un.identifier() )
+ self.addvar(self.c_s_disc + un.identifier() + ";")
+
elif (st.kind() == idltype.tk_short):
self.st.out(self.template_union_code_save_discriminant_short, discname=un.identifier() )
self.addvar(self.c_s_disc + un.identifier() + ";")
+ elif (st.kind() == idltype.tk_ushort):
+ self.st.out(self.template_union_code_save_discriminant_ushort, discname=un.identifier() )
+ self.addvar(self.c_s_disc + un.identifier() + ";")
+
elif (st.kind() == idltype.tk_boolean):
self.st.out(self.template_union_code_save_discriminant_boolean, discname=un.identifier() )
self.addvar(self.c_s_disc + un.identifier() + ";")
@@ -2690,9 +2698,17 @@ disc_s_@discname@ = (gint32) u_octet4; /* save Enum Value discriminant and
disc_s_@discname@ = (gint32) s_octet4; /* save gint32 discriminant and cast to gint32 */
"""
+ template_union_code_save_discriminant_ulong = """\
+disc_s_@discname@ = (gint32) u_octet4; /* save guint32 discriminant and cast to gint32 */
+"""
+
template_union_code_save_discriminant_short = """\
disc_s_@discname@ = (gint32) s_octet2; /* save gint16 discriminant and cast to gint32 */
"""
+
+ template_union_code_save_discriminant_ushort = """\
+disc_s_@discname@ = (gint32) u_octet2; /* save guint16 discriminant and cast to gint32 */
+"""
template_union_code_save_discriminant_char = """\
disc_s_@discname@ = (gint32) u_octet1; /* save guint1 discriminant and cast to gint32 */