Show More
@@ -372,6 +372,22 b' class IPCompleter(Completer):' | |||
|
372 | 372 | def protect_filename(s): |
|
373 | 373 | return "".join([(ch in protectables and '\\' + ch or ch) |
|
374 | 374 | for ch in s]) |
|
375 | ||
|
376 | def single_dir_expand(matches): | |
|
377 | "Recursively expand match lists containing a single dir." | |
|
378 | ||
|
379 | if len(matches) == 1 and os.path.isdir(matches[0]): | |
|
380 | # Takes care of links to directories also. Use '/' | |
|
381 | # explicitly, even under Windows, so that name completions | |
|
382 | # don't end up escaped. | |
|
383 | d = matches[0] | |
|
384 | if d[-1] in ['/','\\']: | |
|
385 | d = d[:-1] | |
|
386 | ||
|
387 | matches = [ (d + '/' + p) for p in os.listdir(d) ] | |
|
388 | return single_dir_expand(matches) | |
|
389 | else: | |
|
390 | return matches | |
|
375 | 391 | |
|
376 | 392 | lbuf = self.lbuf |
|
377 | 393 | open_quotes = 0 # track strings with open quotes |
@@ -420,17 +436,8 b' class IPCompleter(Completer):' | |||
|
420 | 436 | else: |
|
421 | 437 | matches = [text_prefix + |
|
422 | 438 | protect_filename(f) for f in m0] |
|
423 | if len(matches) == 1 and os.path.isdir(matches[0]): | |
|
424 | # Takes care of links to directories also. Use '/' | |
|
425 | # explicitly, even under Windows, so that name completions | |
|
426 | # don't end up escaped. | |
|
427 | d = matches[0] | |
|
428 | if d[-1] in ['/','\\']: | |
|
429 | d = d[:-1] | |
|
430 | ||
|
431 | matches = [ (d + '/' + p) for p in os.listdir(d) ] | |
|
432 | ||
|
433 | return matches | |
|
439 | ||
|
440 | return single_dir_expand(matches) | |
|
434 | 441 | |
|
435 | 442 | def alias_matches(self, text): |
|
436 | 443 | """Match internal system aliases""" |
@@ -1,5 +1,10 b'' | |||
|
1 | 1 | 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu> |
|
2 | 2 | |
|
3 | * IPython/completer.py | |
|
4 | (IPCompleter.file_matches.single_dir_expand): fix a problem | |
|
5 | reported by Stefan, where directories containign a single subdir | |
|
6 | would be completed too early. | |
|
7 | ||
|
3 | 8 | * IPython/Shell.py (_load_pylab): Make the execution of 'from |
|
4 | 9 | pylab import *' when -pylab is given be optional. A new flag, |
|
5 | 10 | pylab_import_all controls this behavior, the default is True for |
General Comments 0
You need to be logged in to leave comments.
Login now