Software / code / prosody
Comparison
util/human/io.lua @ 12802:4a8740e01813
Merge 0.12->trunk
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 12 Dec 2022 07:10:54 +0100 |
| parent | 12783:d513e4bd4928 |
| child | 12975:d10957394a3c |
comparison
equal
deleted
inserted
replaced
| 12801:ebd6b4d8bf04 | 12802:4a8740e01813 |
|---|---|
| 6 end; | 6 end; |
| 7 | 7 |
| 8 local function getchar(n) | 8 local function getchar(n) |
| 9 local stty_ret = os.execute("stty raw -echo 2>/dev/null"); | 9 local stty_ret = os.execute("stty raw -echo 2>/dev/null"); |
| 10 local ok, char; | 10 local ok, char; |
| 11 if stty_ret == true or stty_ret == 0 then | 11 if stty_ret then |
| 12 ok, char = pcall(io.read, n or 1); | 12 ok, char = pcall(io.read, n or 1); |
| 13 os.execute("stty sane"); | 13 os.execute("stty sane"); |
| 14 else | 14 else |
| 15 ok, char = pcall(io.read, "*l"); | 15 ok, char = pcall(io.read, "*l"); |
| 16 if ok then | 16 if ok then |
| 28 return line; | 28 return line; |
| 29 end | 29 end |
| 30 end | 30 end |
| 31 | 31 |
| 32 local function getpass() | 32 local function getpass() |
| 33 local stty_ret, _, status_code = os.execute("stty -echo 2>/dev/null"); | 33 local stty_ret = os.execute("stty -echo 2>/dev/null"); |
| 34 if status_code then -- COMPAT w/ Lua 5.1 | 34 if not stty_ret then |
| 35 stty_ret = status_code; | |
| 36 end | |
| 37 if stty_ret ~= 0 then | |
| 38 io.write("\027[08m"); -- ANSI 'hidden' text attribute | 35 io.write("\027[08m"); -- ANSI 'hidden' text attribute |
| 39 end | 36 end |
| 40 local ok, pass = pcall(io.read, "*l"); | 37 local ok, pass = pcall(io.read, "*l"); |
| 41 if stty_ret == 0 then | 38 if stty_ret then |
| 42 os.execute("stty sane"); | 39 os.execute("stty sane"); |
| 43 else | 40 else |
| 44 io.write("\027[00m"); | 41 io.write("\027[00m"); |
| 45 end | 42 end |
| 46 io.write("\n"); | 43 io.write("\n"); |