summaryrefslogtreecommitdiff
path: root/source3/aparser/func.awk
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-05-12 14:35:14 +0000
committerAndrew Tridgell <tridge@samba.org>2000-05-12 14:35:14 +0000
commit059956376897b3fee0d019b8f5e27ac3b84acb5d (patch)
tree0224478abd66088fca43b105ad20ef63cf603820 /source3/aparser/func.awk
parent5c3588c430557d091683de7b7cc6f9d9534ca397 (diff)
downloadsamba-059956376897b3fee0d019b8f5e27ac3b84acb5d.tar.gz
samba-059956376897b3fee0d019b8f5e27ac3b84acb5d.tar.bz2
samba-059956376897b3fee0d019b8f5e27ac3b84acb5d.zip
preliminary support for unions
(This used to be commit 57a6cb52e6c646cd8a3d25f10f65a65e12d22a24)
Diffstat (limited to 'source3/aparser/func.awk')
-rw-r--r--source3/aparser/func.awk39
1 files changed, 39 insertions, 0 deletions
diff --git a/source3/aparser/func.awk b/source3/aparser/func.awk
new file mode 100644
index 0000000000..fcf21a0a2e
--- /dev/null
+++ b/source3/aparser/func.awk
@@ -0,0 +1,39 @@
+function func_footer() {
+ printf("\n\
+\n\
+ return True;\n\
+}\n");
+}
+
+function func_header(func_name, struct_name)
+{
+ printf("\
+/*******************************************************************\n\
+parse a %s structure\n\
+********************************************************************/ \n\
+BOOL %s(char *desc, %s **q_u, \n\
+ prs_struct *ps, int depth)\n\
+{ \n\
+ %s *il;\n\
+ \n\
+ prs_debug(ps, depth, desc, \"%s\");\n\
+ depth++;\n\
+ \n\
+ /* reading */\n\
+ if (UNMARSHALLING(ps)) {\n\
+ il=(%s *)malloc(sizeof(%s));\n\
+ if(il == NULL)\n\
+ return False;\n\
+ ZERO_STRUCTP(il);\n\
+ *q_u=il;\n\
+ }\n\
+ else {\n\
+ il=*q_u;\n\
+ }\n\
+ \n\
+ if(!prs_align(ps))\n\
+ return False;\n\
+\n\
+", struct_name, func_name, struct_name, struct_name, func_name, struct_name, struct_name);
+}
+