def expand_aliases(self, fn, rest): """Expand multiple levels of aliases: if: alias foo bar /tmp alias baz foo then: baz huhhahhei -> bar /tmp huhhahhei """ line = fn + " " + rest done = set() while 1: pre, _, fn, rest = split_user_input(line, shell_line_split) if fn in self.alias_table: if fn in done: warn("Cyclic alias definition, repeated '%s'" % fn) return "" done.add(fn) l2 = self.transform_alias(fn, rest) if l2 == line: break # ls -> ls -F should not recurse forever if l2.split(None, 1)[0] == line.split(None, 1)[0]: line = l2 break line = l2 else: break return line
def expand_aliases(self, fn, rest): """Expand multiple levels of aliases: if: alias foo bar /tmp alias baz foo then: baz huhhahhei -> bar /tmp huhhahhei """ line = fn + " " + rest done = set() while 1: pre,_,fn,rest = split_user_input(line, shell_line_split) if fn in self.alias_table: if fn in done: warn("Cyclic alias definition, repeated '%s'" % fn) return "" done.add(fn) l2 = self.transform_alias(fn, rest) if l2 == line: break # ls -> ls -F should not recurse forever if l2.split(None,1)[0] == line.split(None,1)[0]: line = l2 break line=l2 else: break return line
def __init__(self, line, continue_prompt): self.line = line self.continue_prompt = continue_prompt self.pre, self.ifun, self.the_rest = split_user_input(line) self.pre_char = self.pre.strip() if self.pre_char: self.pre_whitespace = '' # No whitespace allowd before esc chars else: self.pre_whitespace = self.pre self._oinfo = None
def expand_alias(self, line): """ Expand an alias in the command line Returns the provided command line, possibly with the first word (command) translated according to alias expansion rules. [ipython]|16> _ip.expand_aliases("np myfile.txt") <16> 'q:/opt/np/notepad++.exe myfile.txt' """ pre, _, fn, rest = split_user_input(line) res = pre + self.expand_aliases(fn, rest) return res
def expand_alias(self, line): """ Expand an alias in the command line Returns the provided command line, possibly with the first word (command) translated according to alias expansion rules. [ipython]|16> _ip.expand_aliases("np myfile.txt") <16> 'q:/opt/np/notepad++.exe myfile.txt' """ pre,_,fn,rest = split_user_input(line) res = pre + self.expand_aliases(fn, rest) return res