Returning TEXT/BYTE values from functions

When returning a TEXT or BYTE value from a function, the locator is pushed in on the stack. Storage information of the TEXT/BYTE is defined in the locator structure, therefore you can define the storage of the large object variable in a function, initialize the object with a value, and return it.

MAIN
  DEFINE t TEXT
  LET t = init_text(t)
  DISPLAY "t size = ", LENGTH(t)
END MAIN

FUNCTION init_text(t)
  DEFINE t TEXT
  LOCATE t IN MEMORY
  LET t = "abc"
  RETURN t
END FUNCTION
The above sample will produce following ouput:
t size =         3