Node: Planned - Strings, Next: Planned - Records/arrays, Up: Planned Features

#### Planned features: Strings

- const/var `AnyString` parameters and pointers (records internally, cf. gpc.pas) (GetCapacity; only for var parameters)
- `SetLength` for non-Pascal string types; use truncate-flag
- make work on all string types: string functions from `rts/string*.pas`, `Concat`/`+` (function with conformant array; Optimize `s := s + ch`) (fh19971105)
- option `--arrays-of-char-as-cstrings={none,zero-based,all}` to allow assigning [zero-based] arrays of char to cstring variables (warning otherwise) (cstrini2.pas); make padding of those arrays in initialized variables and in assignments dependent on this switch (fh19970921) (fjf57.pas, ok) and if the length matches exactly, give a warning (fh19971013) (cstrassign.pas); pass those arrays as cstrings in read*, write*, str (P_*STRING; current length=-1 in two places); compile time warning (and treatment as non-zero-based) if it's not clear at compile time if a conformant array or schema is zero-based or not, and an operation depends on this in the zero-based state
- Short strings (Length, Capacity) and switches (tc19980326.2,tc19980327); allow `type x=string` (undiscriminated) when switch is set so that strings don't default to length 255 (fh19971113) (fjf97.pas, ok); don't add a #0 terminator when passing as a CString parameter (automatically use String2CString)
- automatically convert CStrings to Strings?
- general switch `--bp-strings`
- “wide” characters
- open array/string parameters (`$P`, `$V` in BP; undocumented `OpenString` identifier in BP)
- variables of type undiscriminated schema/strings -> remove pointers to string constants; functions returning undiscriminated schemata (pg19980813.3)