Merge pull request #29 from tgirod/master

adds OpenDevice(path string)
diff --git a/tty.go b/tty.go
index f8e3362..13cb206 100644
--- a/tty.go
+++ b/tty.go
@@ -7,7 +7,11 @@
 )
 
 func Open() (*TTY, error) {
-	return open()
+	return open("/dev/tty")
+}
+
+func OpenDevice(path string) (*TTY, error) {
+	return open(path)
 }
 
 func (tty *TTY) Raw() (func() error, error) {
diff --git a/tty_unix.go b/tty_unix.go
index ed5db86..3cb9450 100644
--- a/tty_unix.go
+++ b/tty_unix.go
@@ -21,17 +21,17 @@
 	ss      chan os.Signal
 }
 
-func open() (*TTY, error) {
+func open(path string) (*TTY, error) {
 	tty := new(TTY)
 
-	in, err := os.Open("/dev/tty")
+	in, err := os.Open(path)
 	if err != nil {
 		return nil, err
 	}
 	tty.in = in
 	tty.bin = bufio.NewReader(in)
 
-	out, err := os.OpenFile("/dev/tty", syscall.O_WRONLY, 0)
+	out, err := os.OpenFile(path, syscall.O_WRONLY, 0)
 	if err != nil {
 		return nil, err
 	}
diff --git a/tty_windows.go b/tty_windows.go
index eb3e248..22b538c 100644
--- a/tty_windows.go
+++ b/tty_windows.go
@@ -4,8 +4,8 @@
 
 import (
 	"context"
-	"os"
 	"errors"
+	"os"
 	"syscall"
 	"unsafe"