From 8370da75425c0c03028ba965db5a365943916dec Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Fri, 2 Jan 2015 11:51:35 -0800 Subject: [PATCH] dedup history items in merge_zsh_history --- dotfiles/lib/python/merge_zsh_history.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dotfiles/lib/python/merge_zsh_history.py b/dotfiles/lib/python/merge_zsh_history.py index c7b5def4..e92f57aa 100644 --- a/dotfiles/lib/python/merge_zsh_history.py +++ b/dotfiles/lib/python/merge_zsh_history.py @@ -2,9 +2,24 @@ import re history_entry_re = re.compile(": ([0-9]*):[0-9]*;.*") + +class dedup(set): + + def contains_add(self, elem): + if elem in self: + return True + else: + self.add(elem) + return False + + def merge_history(filenames): + entries = dedup() pairs = [entry for filename in filenames for entry in entry_timestamp_pairs(filename)] - return "".join([p[0] for p in sorted(pairs, key=lambda pair: pair[1])]) + return "".join([ + p[0] for p in sorted(pairs, key=lambda pair: pair[1]) + if not entries.contains_add(p[0]) + ]) def entry_timestamp_pairs(filename):