ZealOS has a string indirection feature implemented with the same hash symbol table entry as #define macros, HTT_DEFINE_STR. Support for string lists is also provided, but it's not very efficient, though, you can make a hash table with a list using HashDefineListAdd(). See ::/System/DolDoc/DocInit.ZC. If you have an @ as the first char of a define list entry, it is an alias for the prev entry num. Each task can load its own Define strings. Remember, when a Hash table is searched for a string, if it is not found, the parent task's table is searched. The DolDoc framework supports text that changes based on entries in the task's symbol table. Set a text entry with a D= arg, as in $TX,"",D="DD_MYSTRING"$. See ::/Demo/DolDoc/DefineStr.ZC, ::/System/Define.ZC and ::/Doc/MemoryOverview.DD. See ::/Demo/Define.ZC.