- working history (rl_* functions?) - '<<' with history? - finding commands - built-in commands - relative/absolute paths - signals - ^C, ^D, ^\ - variables - environment variables - $? - builtins: - echo (with option -n) - cd [path] - pwd (with no options) - export (with no options) - unset (with no options) - env (with no options or arguments) - exit (with no options) - fix - empty variables aren't freed - need to free value returned by readline - the builtins should get all arguments and check if they're good (also search TODO and FIXME in the files) (also check if it works at the cluster (might need libreadline-dev))