Software / code / prosody
Comparison
prosodyctl @ 1500:56d05ba00169
prosodyctl: Don't 'blugh' when ^C is pressed during reading passwords
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 08 Jul 2009 16:48:49 +0100 |
| parent | 1499:51e3e22b5316 |
| child | 1501:330b8437ac35 |
comparison
equal
deleted
inserted
replaced
| 1499:51e3e22b5316 | 1500:56d05ba00169 |
|---|---|
| 123 end | 123 end |
| 124 end | 124 end |
| 125 | 125 |
| 126 local function getchar(n) | 126 local function getchar(n) |
| 127 os.execute("stty raw -echo"); | 127 os.execute("stty raw -echo"); |
| 128 local char = io.read(n or 1); | 128 local ok, char = pcall(io.read, n or 1); |
| 129 os.execute("stty sane"); | 129 os.execute("stty sane"); |
| 130 return char; | 130 if ok then |
| 131 return char; | |
| 132 end | |
| 131 end | 133 end |
| 132 | 134 |
| 133 local function getpass() | 135 local function getpass() |
| 134 os.execute("stty -echo"); | 136 os.execute("stty -echo"); |
| 135 local pass = io.read("*l"); | 137 local ok, pass = pcall(io.read, "*l"); |
| 136 os.execute("stty sane"); | 138 os.execute("stty sane"); |
| 137 io.write("\n"); | 139 io.write("\n"); |
| 138 return pass; | 140 if ok then |
| 141 return pass; | |
| 142 end | |
| 139 end | 143 end |
| 140 | 144 |
| 141 function show_yesno(prompt) | 145 function show_yesno(prompt) |
| 142 io.write(prompt, " "); | 146 io.write(prompt, " "); |
| 143 local choice = getchar():lower(); | 147 local choice = getchar():lower(); |