func New(args []string) *cli { if len(args) > 1 { return nil } // We assume the terminal starts in cooked mode. cooked, _ = liner.TerminalMode() if cooked == nil { return nil } i := &cli{liner.NewLiner()} if history_path, err := task.GetHistoryFilePath(); err == nil { if f, err := os.Open(history_path); err == nil { i.ReadHistory(f) f.Close() } } uncooked, _ = liner.TerminalMode() i.SetCtrlCAborts(true) i.SetTabCompletionStyle(liner.TabPrints) i.SetWordCompleter(complete) return i }
func LaunchForegroundTask() { if task0 != nil { mode, _ := liner.TerminalMode() task0.Job.mode = mode } task0 = NewTask(Cons(nil, Null), nil, nil, nil) go task0.Listen() }
func NewJob() *Job { mode, _ := liner.TerminalMode() return &Job{&sync.Mutex{}, "", 0, mode} }