/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/shelf_ui.py

merge bzr.dev r4054

Show diffs side-by-side

added added

removed removed

Lines of Context:
157
157
        sys.stdout.flush()
158
158
        return char
159
159
 
160
 
    def prompt_bool(self, question):
 
160
    def prompt_bool(self, question, long=False):
161
161
        """Prompt the user with a yes/no question.
162
162
 
163
163
        This may be overridden by self.auto.  It may also *set* self.auto.  It
167
167
        """
168
168
        if self.auto:
169
169
            return True
170
 
        char = self.prompt(question + ' [yNfq]')
 
170
        if long:
 
171
            prompt = ' [(y)es, (N)o, (f)inish, or (q)uit]'
 
172
        else:
 
173
            prompt = ' [yNfq?]'
 
174
        char = self.prompt(question + prompt)
171
175
        if char == 'y':
172
176
            return True
173
177
        elif char == 'f':
174
178
            self.auto = True
175
179
            return True
 
180
        elif char == '?':
 
181
            return self.prompt_bool(question, long=True)
176
182
        if char == 'q':
177
183
            raise errors.UserAbort()
178
184
        else:
223
229
        tree, path = workingtree.WorkingTree.open_containing(directory)
224
230
        manager = tree.get_shelf_manager()
225
231
        if shelf_id is not None:
226
 
            shelf_id = int(shelf_id)
 
232
            try:
 
233
                shelf_id = int(shelf_id)
 
234
            except ValueError:
 
235
                raise errors.InvalidShelfId(shelf_id)
227
236
        else:
228
237
            shelf_id = manager.last_shelf()
229
238
            if shelf_id is None: