mirror of
https://github.com/powerline/powerline.git
synced 2025-07-31 01:35:40 +02:00
Fix zsh prompt security and other issues
* Escape percent in zsh prompt * Prevent some security issues (directory named `$(echo abc)` appeared as `abc`) (`"$()"` → `'$()'`) * Removed exports
This commit is contained in:
parent
d20df5a382
commit
99158e3ef2
@ -1,6 +1,4 @@
|
|||||||
_powerline_precmd() {
|
_powerline_precmd() {
|
||||||
export PS1="$(powerline-prompt --renderer_module=zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus" left)"
|
|
||||||
export RPS1="$(powerline-prompt --renderer_module=zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus" right)"
|
|
||||||
_powerline_tmux_set_pwd
|
_powerline_tmux_set_pwd
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,6 +23,8 @@ _powerline_install_precmd() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
precmd_functions+=(_powerline_precmd)
|
precmd_functions+=(_powerline_precmd)
|
||||||
|
PS1='$(powerline-prompt --renderer_module=zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus" left)'
|
||||||
|
RPS1='$(powerline-prompt --renderer_module=zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus" right)'
|
||||||
}
|
}
|
||||||
|
|
||||||
trap "_powerline_tmux_set_columns" SIGWINCH
|
trap "_powerline_tmux_set_columns" SIGWINCH
|
||||||
|
@ -5,10 +5,14 @@ from powerline.renderers.shell import ShellRenderer
|
|||||||
|
|
||||||
class ZshPromptRenderer(ShellRenderer):
|
class ZshPromptRenderer(ShellRenderer):
|
||||||
'''Powerline zsh prompt segment renderer.'''
|
'''Powerline zsh prompt segment renderer.'''
|
||||||
def hl(self, fg=None, bg=None, attr=None):
|
def hl(self, *args, **kwargs):
|
||||||
'''Highlight a segment.
|
'''Highlight a segment.
|
||||||
|
|
||||||
Returns the default ShellRenderer escape sequence with %{...%} wrapped
|
Returns the default ShellRenderer escape sequence with %{...%} wrapped
|
||||||
around it (required in zsh prompts).
|
around it (required in zsh prompts).
|
||||||
'''
|
'''
|
||||||
return '%{' + super(ZshPromptRenderer, self).hl(fg, bg, attr) + '%}'
|
return '%{' + super(ZshPromptRenderer, self).hl(*args, **kwargs) + '%}'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def escape(string):
|
||||||
|
return string.replace('%', '%%')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user