Moritz Heidkamp avatar Moritz Heidkamp committed 27ef35f

chicken-select: set cbreak and (not echo) via stty so input gets handled immediately

Comments (0)

Files changed (2)

chicken-belt.meta

  (author "Christian Kellermann, Moritz Heidkamp")
  (category tools)
  (license "BSD")
- (depends matchable))
+ (depends matchable stty))

chicken-select.scm

 #!/usr/bin/csi -s
 
-(use srfi-1 posix)
+(use srfi-1 posix stty)
 (include "chicken-env")
 
 (assert-chicken-coop-exists)
                     (iota (length all-chicks)))
           (newline)
           (print "Select a new Chicken, press 'q' to abort:")
-          (let* ((choice-raw (read-char))
+          (let* ((choice-raw (with-stty '(cbreak (not echo)) read-char))
                  (num (string->number (string choice-raw))))
             (if (and 
                  num
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.