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/+ (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) (cf. fjf97.pas); 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)