summaryrefslogtreecommitdiff
path: root/source4/build/pidl/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/TODO')
-rw-r--r--source4/build/pidl/TODO21
1 files changed, 16 insertions, 5 deletions
diff --git a/source4/build/pidl/TODO b/source4/build/pidl/TODO
index d63fb4af7e..4969bf78b4 100644
--- a/source4/build/pidl/TODO
+++ b/source4/build/pidl/TODO
@@ -5,16 +5,23 @@
compilers.
Proposed extensions for pidl (to arrays):
[convert(t)] attribute for forcing conversions from CH_UCS2, etc to UTF8
- [noterm] attribute -> Indicating there is no terminating character
- [nullterm] attribute -> Indicating the string is null terminated
+ [noheader] attribute -> Indicating the string is not preceded
+
+Implement:
+ ndr.pm:
+ - represent a string as an array with length set to "STRING"
+ - [string] implies is_varying unless noheader is specified.
+ ndr_parser.pm:
+ - if [charset()] specified, use instead of the for loops (call ndr_pu{ll,sh}_charset()
+ - calculate length using helper function if [string] is specified
The various flags for strings would change as follows:
LIBNDR_FLAG_STR_ASCII -> [convert(CH_ASCII)]
-LIBNDR_FLAG_STR_LEN4 -> optionally [length_is()]
+LIBNDR_FLAG_STR_LEN4 -> [string]
LIBNDR_FLAG_STR_SIZE4 -> [size_is()] or if needed [conformant]
-LIBNDR_FLAG_STR_NOTERM -> [noterm]
-LIBNDR_FLAG_STR_NULLTERM -> [nullterm]
+LIBNDR_FLAG_STR_NOTERM -> array
+LIBNDR_FLAG_STR_NULLTERM -> [noheader]
LIBNDR_FLAG_STR_SIZE2 -> uint16 length; [string] char data[length]
LIBNDR_FLAG_STR_BYTESIZE -> uint16 length; [string] char data[length]
LIBNDR_FLAG_STR_FIXLEN32 -> [32]
@@ -25,3 +32,7 @@ LIBNDR_FLAG_STR_FIXLEN15 -> [15]
- True multiple dimension array / strings in arrays support (closely related to
things specified above)
+
+- compatibility mode for generating MIDL-readable data:
+ - strip out pidl-specific properties
+ - convert subcontext() to an array of chars.