~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to userinteractor.py

  • Committer: Aaron Bentley
  • Date: 2006-06-13 02:31:28 UTC
  • mfrom: (0.1.119 shelf)
  • Revision ID: aaron.bentley@utoronto.ca-20060613023128-20f2ff3a212a6ea2
Pull in latest shelf stuff

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
 
1
3
import sys
2
 
from bzrlib.osutils import getchar
3
 
 
4
4
 
5
5
class UserOption:
6
6
    def __init__(self, char, action, help, default=False):
113
113
                sys.stdout.write(opt.char)
114
114
            sys.stdout.write('?] (%s): ' % default.char)
115
115
 
116
 
            response = getchar()
 
116
            response = self.__getchar()
117
117
 
118
118
            # default, which we see as newline, is 'n'
119
119
            if response in ['\n', '\r', '\r\n']:
132
132
    def __show_help(self):
133
133
        for opt in self._options:
134
134
            print '  %s - %s' % (opt.char, opt.help)
 
135
 
 
136
    if sys.platform == "win32":
 
137
        import msvcrt
 
138
        def __getchar(self):
 
139
            return msvcrt.getche()
 
140
    else:
 
141
        def __getchar(self):
 
142
            import tty
 
143
            import termios
 
144
            fd = sys.stdin.fileno()
 
145
            settings = termios.tcgetattr(fd)
 
146
            try:
 
147
                tty.setraw(fd)
 
148
                ch = sys.stdin.read(1)
 
149
            finally:
 
150
                termios.tcsetattr(fd, termios.TCSADRAIN, settings)
 
151
            return ch