r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 25 May 2005 13:50:27 +0000 (13:50 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:17:01 +0000 (13:17 -0500)
commite427f58622e3d88c59953d6c1fb583acfb046213
tree4fe708ec07cdcb85dd3af028e158505e065ca59e
parente7b3f91678a27d85791f7a62fc418988edc92214
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.

The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:

IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }

This makes the ndr_parser.pm internals much more sane.

Other changes include:

- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
  most other IDL compilers). This can be overridden using the
  default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
  is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
  useful for making sure IDL files work with other IDL compilers.

oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
58 files changed:
source4/build/pidl/README
source4/build/pidl/com_header.pm
source4/build/pidl/compat.pm [new file with mode: 0644]
source4/build/pidl/dcom_proxy.pm
source4/build/pidl/eparser.pm [deleted file]
source4/build/pidl/eth_header.pm [new file with mode: 0644]
source4/build/pidl/eth_parser.pm [new file with mode: 0644]
source4/build/pidl/idl.pm
source4/build/pidl/idl.yp
source4/build/pidl/ndr.pm
source4/build/pidl/ndr_client.pm
source4/build/pidl/ndr_header.pm
source4/build/pidl/ndr_parser.pm
source4/build/pidl/needed.pm [deleted file]
source4/build/pidl/odl.pm
source4/build/pidl/pidl.pl
source4/build/pidl/test.pm
source4/build/pidl/typelist.pm
source4/build/pidl/validator.pm
source4/librpc/idl/atsvc.idl
source4/librpc/idl/audiosrv.idl
source4/librpc/idl/browser.idl
source4/librpc/idl/dbgidl.idl
source4/librpc/idl/dcom.idl
source4/librpc/idl/dfs.idl
source4/librpc/idl/drsblobs.idl
source4/librpc/idl/drsuapi.idl
source4/librpc/idl/dsbackup.idl
source4/librpc/idl/dssetup.idl
source4/librpc/idl/echo.idl
source4/librpc/idl/efs.idl
source4/librpc/idl/epmapper.idl
source4/librpc/idl/eventlog.idl
source4/librpc/idl/exchange.idl
source4/librpc/idl/initshutdown.idl
source4/librpc/idl/krb5pac.idl
source4/librpc/idl/lsa.idl
source4/librpc/idl/mgmt.idl
source4/librpc/idl/nbt.idl
source4/librpc/idl/netlogon.idl
source4/librpc/idl/oxidresolver.idl
source4/librpc/idl/policyagent.idl
source4/librpc/idl/remact.idl
source4/librpc/idl/rot.idl
source4/librpc/idl/samr.idl
source4/librpc/idl/spoolss.idl
source4/librpc/idl/srvsvc.idl
source4/librpc/idl/svcctl.idl
source4/librpc/idl/trkwks.idl
source4/librpc/idl/winreg.idl
source4/librpc/idl/winsrepl.idl
source4/librpc/idl/wkssvc.idl
source4/librpc/ndr/libndr.h
source4/librpc/ndr/ndr.c
source4/librpc/ndr/ndr_sec.c
source4/librpc/rpc/dcerpc.c
source4/rpc_server/dcerpc_server.c
source4/utils/ndrdump.c