Show More
@@ -372,6 +372,22 b' class IPCompleter(Completer):' | |||||
372 | def protect_filename(s): |
|
372 | def protect_filename(s): | |
373 | return "".join([(ch in protectables and '\\' + ch or ch) |
|
373 | return "".join([(ch in protectables and '\\' + ch or ch) | |
374 | for ch in s]) |
|
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 | lbuf = self.lbuf |
|
392 | lbuf = self.lbuf | |
377 | open_quotes = 0 # track strings with open quotes |
|
393 | open_quotes = 0 # track strings with open quotes | |
@@ -420,17 +436,8 b' class IPCompleter(Completer):' | |||||
420 | else: |
|
436 | else: | |
421 | matches = [text_prefix + |
|
437 | matches = [text_prefix + | |
422 | protect_filename(f) for f in m0] |
|
438 | protect_filename(f) for f in m0] | |
423 | if len(matches) == 1 and os.path.isdir(matches[0]): |
|
439 | ||
424 | # Takes care of links to directories also. Use '/' |
|
440 | return single_dir_expand(matches) | |
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 |
|
|||
434 |
|
441 | |||
435 | def alias_matches(self, text): |
|
442 | def alias_matches(self, text): | |
436 | """Match internal system aliases""" |
|
443 | """Match internal system aliases""" |
@@ -1,5 +1,10 b'' | |||||
1 | 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu> |
|
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 | * IPython/Shell.py (_load_pylab): Make the execution of 'from |
|
8 | * IPython/Shell.py (_load_pylab): Make the execution of 'from | |
4 | pylab import *' when -pylab is given be optional. A new flag, |
|
9 | pylab import *' when -pylab is given be optional. A new flag, | |
5 | pylab_import_all controls this behavior, the default is True for |
|
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