diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-05-14 14:05:10 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-05-14 14:05:10 +0000 |
commit | b7022e94d2ab62d522b0a7c2886cce3afaff6872 (patch) | |
tree | 6663fe08efd72d9a95d9cf4cf70baa07ded15aca /source3/aparser/templates/fn_end.tpl | |
parent | b7f9a2794273266a0c64a6c02f88d65d37554ea9 (diff) | |
download | samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.tar.gz samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.tar.bz2 samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.zip |
vastly improved awk based code generator
now handles recursive function definitions, unions etc
it is sufficient for some basic types like UNISTR2 and BUFFER5
to be defined in the *.struct file and used successfully
this generator uses templates (in *.tpl files) for all code
generation, allowing easy replacement of the backend functions
(This used to be commit 14ded82dc92ae6eff7639351f391a33b9cc31c0d)
Diffstat (limited to 'source3/aparser/templates/fn_end.tpl')
-rw-r--r-- | source3/aparser/templates/fn_end.tpl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/source3/aparser/templates/fn_end.tpl b/source3/aparser/templates/fn_end.tpl new file mode 100644 index 0000000000..b5c36fff35 --- /dev/null +++ b/source3/aparser/templates/fn_end.tpl @@ -0,0 +1,33 @@ + + return True; + +fail: + ZERO_STRUCTP(il); + return False; +} /* @FUNCNAME@ */ + +/******************************************************************* +parse a @STRUCTNAME@ structure +********************************************************************/ +BOOL @FUNCNAME@_alloc(char *desc, @STRUCTNAME@ **q_u, + prs_struct *ps, int depth) +{ + @STRUCTNAME@ *il; + BOOL ret; + + if (!UNMARSHALLING(ps)) return False; + + il=(@STRUCTNAME@ *)malloc(sizeof(@STRUCTNAME@)); + if (il == NULL) return False; + ZERO_STRUCTP(il); + + ret = @FUNCNAME@(desc, il, ps, depth); + if (!ret) { + free(il); + return False; + } + *q_u = il; + return True; +} + + |