--- /dev/null
+USING: accessors fuel.listener io.serial.linux io.serial.linux.ffi
+kernel libc math.bitwise sequences system ;
+IN: fuel.listener.linux
+
+: flush-termios ( termios fileno -- )
+ TCSAFLUSH rot tcsetattr io-error ;
+
+: set-raw-flags ( termios -- )
+ [ ICANON unmask ECHO unmask ] change-lflag
+ cc>> [ 1 VMIN rot set-nth ] [ 0 VTIME rot set-nth ] bi ;
+
+M: linux fuel-pty-setup
+ 0 get-fd-termios dup set-raw-flags 0 flush-termios ;
--- /dev/null
+USING: help.syntax ;
+IN: fuel.listener
+
+ARTICLE: "fuel.listener" "FUEL command listener" "This vocab contains the listener started from FUEL. It sets up the pty in non-canonical mode so that you can paste long lines into it from Emacs." ;
+
+ABOUT: "fuel.listener"
--- /dev/null
+USING: kernel listener system vocabs ;
+IN: fuel.listener
+
+HOOK: fuel-pty-setup os ( -- )
+
+M: object fuel-pty-setup ;
+
+os linux? [ "fuel.listener.linux" require ] when
+
+: fuel-listener ( -- )
+ fuel-pty-setup listener-main ;
+
+MAIN: fuel-listener
(message "Starting FUEL listener (this may take a while) ...")
(pop-to-buffer (fuel-listener--buffer))
(make-comint-in-buffer "fuel listener" (current-buffer) factor nil
- "-run=listener" (format "-i=%s" image))
+ "-run=fuel.listener" (format "-i=%s" image))
(fuel-listener--wait-for-prompt 60000)
(fuel-listener--history-setup)
(fuel-con--setup-connection (current-buffer))))