Changes to one file · Browse files at bd8f5ebeb023 Showing diff from parent 63ec65163da3 Diff from another changeset...
@@ -1,14 +1,32 @@ package kiln
+/*
+#include <conio.h>
+*/
+import "C"
+
import (
- "bufio"
+ "errors"
"fmt"
- "os"
)
func getPass(prompt string) (string, error) {
fmt.Print("Password: ")
- scanner := bufio.NewScanner(os.Stdin)
- scanner.Scan()
- return scanner.Text(), scanner.Err()
+ pass := make([]rune, 0)
+ var ch rune
+ for {
+ ch = rune(C._getwch())
+ if ch == '\n' || ch == '\r' {
+ break
+ } else if ch == 3 {
+ return "", errors.New("break")
+ } else if ch == '\b' && len(pass) > 0 {
+ pass = pass[0 : len(pass)-1]
+ } else {
+ pass = append(pass, ch)
+ }
+ }
+ C._putch('\r')
+ C._putch('\n')
+ return string(pass), nil
}
|
Loading...