~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to shell.py

  • Committer: Aaron Bentley
  • Date: 2005-11-03 23:07:04 UTC
  • mfrom: (267.1.1)
  • Revision ID: aaron.bentley@utoronto.ca-20051103230704-e2cba0a6d0d409c3
Merged myself

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
            iter = (c for c in iter_command_names() if
45
45
                    c not in COMPLETION_BLACKLIST)
46
46
            try:
47
 
                if len(line) > 0:
48
 
                    arg = line.split()[-1]
49
 
                else:
50
 
                    arg = ""
51
 
                iter = list(iter_munged_completions(iter, arg, text))
 
47
                iter = list(filter_completions(iter, text))
52
48
            except Exception, e:
53
49
                print e, type(e)
54
50
 
165
161
 
166
162
 
167
163
    def completenames(self, text, line, begidx, endidx):
 
164
        from bzrlib.trace import mutter
168
165
        completions = []
169
166
        iter = (c for c in iter_command_names() if
170
167
                c not in COMPLETION_BLACKLIST)
173
170
                arg = line.split()[-1]
174
171
            else:
175
172
                arg = ""
176
 
            iter = list(iter_munged_completions(iter, arg, text))
 
173
            iter = filter_completions(iter, arg)
177
174
        except Exception, e:
178
175
            print e, type(e)
179
176
        return list(iter)
203
200
        try:
204
201
            if command_obj is not None:
205
202
                opts = list(iter_opt_completions(command_obj))
206
 
                files = list(iter_file_completions(args.split()[-1]))
207
 
                return list(iter_munged_completions(opts+files, args, text))
 
203
                files = list(iter_file_completions(text))
 
204
                return list(filter_completions(opts+files, text))
208
205
            elif cmd == "cd":
209
206
                if len(args) > 0:
210
207
                    arg = args.split()[-1]
211
208
                else:
212
209
                    arg = ""
213
 
                iter = iter_dir_completions(arg)
214
 
                iter = iter_munged_completions(iter, arg, text)
 
210
                iter = iter_dir_completions(text)
 
211
                iter = filter_completions(iter, text)
215
212
                return list(iter)
216
213
            elif len(args)>0:
217
214
                arg = args.split()[-1]
287
284
            if name == real_cmd_name or not real_cmd_name.startswith(name):
288
285
                yield name
289
286
 
 
287
def filter_completions(iter, arg):
 
288
    return (c for c in iter if c.startswith(arg))
 
289
 
290
290
def iter_munged_completions(iter, arg, text):
291
291
    for completion in iter:
292
292
        completion = str(completion)