Function LineGetter.this

Make sure that the parent terminal struct remains in scope for the duration of LineGetter's lifetime, as it does hold on to and use the passed pointer throughout.

this (
  Terminal* tty,
  string historyFilename = null
);

historyFilename will load and save an input history log to a particular folder. Leaving it null will mean no file will be used and history will not be saved across sessions.