From 96f7e53aa27f60938bbe4f2e1eb792fcb70cfcb9 Mon Sep 17 00:00:00 2001 From: Pablo Santiago Blum de Aguiar Date: Sat, 30 Apr 2016 18:39:08 -0300 Subject: [PATCH] #495: Alter history only when configured to do so --- tests/shells/test_fish.py | 4 +++- thefuck/shells/fish.py | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/shells/test_fish.py b/tests/shells/test_fish.py index 510b8f45..ba71edf5 100644 --- a/tests/shells/test_fish.py +++ b/tests/shells/test_fish.py @@ -74,10 +74,12 @@ class TestFish(object): assert 'TF_ALIAS=fuck PYTHONIOENCODING' in shell.app_alias('fuck') assert 'PYTHONIOENCODING=utf-8 thefuck' in shell.app_alias('fuck') - def test_app_alias_history_merge(self, settings, shell): + def test_app_alias_alter_history(self, settings, shell): settings.alter_history = True + assert 'history --delete' in shell.app_alias('FUCK') assert 'history --merge' in shell.app_alias('FUCK') settings.alter_history = False + assert 'history --delete' not in shell.app_alias('FUCK') assert 'history --merge' not in shell.app_alias('FUCK') def test_get_history(self, history_lines, shell): diff --git a/thefuck/shells/fish.py b/thefuck/shells/fish.py index 5cf8e833..7284867b 100644 --- a/thefuck/shells/fish.py +++ b/thefuck/shells/fish.py @@ -20,19 +20,19 @@ class Fish(Generic): def app_alias(self, fuck): if settings.alter_history: - hist_merge = ' history --merge ^ /dev/null\n' + alter_history = (' history --delete $fucked_up_command\n' + ' history --merge ^ /dev/null\n') else: - hist_merge = '' + alter_history = '' # It is VERY important to have the variables declared WITHIN the alias return ('function {0} -d "Correct your previous console command"\n' ' set -l fucked_up_command $history[1]\n' ' env TF_ALIAS={0} PYTHONIOENCODING=utf-8' ' thefuck $fucked_up_command | read -l unfucked_command\n' ' if [ "$unfucked_command" != "" ]\n' - ' eval $unfucked_command\n' - ' history --delete $fucked_up_command\n{1}' + ' eval $unfucked_command\n{1}' ' end\n' - 'end').format(fuck, hist_merge) + 'end').format(fuck, alter_history) @memoize @cache('.config/fish/config.fish', '.config/fish/functions')