def do_depend(self, params):
     if params:
         for param in shlex.split(params):
             if param not in self.client_prog_inst.install_definitions_index:
                 print(text_with_color(param, 'green'), "not in index")
                 continue
             depend_list = unique_list()
             self.client_prog_inst.needs(param, depend_list)
             if not depend_list:
                 depend_list = ("no one",)
             depend_text_list = list()
             for depend in depend_list:
                 if depend.endswith("(missing)"):
                     depend_text_list.append(text_with_color(depend, 'red'))
                 else:
                     depend_text_list.append(text_with_color(depend, 'yellow'))
             print (text_with_color(param, 'green'), "needs:\n    ", ", ".join(depend_text_list))
             needed_by_list = self.client_prog_inst.needed_by(param)
             if needed_by_list is None:
                 print("could not get needed by list for", text_with_color(param, 'green'))
             else:
                 if not needed_by_list:
                     needed_by_list = ("no one",)
                 needed_by_list = [text_with_color(needed_by, 'yellow') for needed_by in needed_by_list]
                 print (text_with_color(param, 'green'), "needed by:\n    ", ", ".join(needed_by_list))
     return False
def compact_history():
    if hasattr(readline, "replace_history_item"):
        unique_history = unique_list()
        for index in reversed(range(1, readline.get_current_history_length())):
            hist_item = readline.get_history_item(index)
            if hist_item: # some history items are None (usually at index 0)
                unique_history.append(readline.get_history_item(index))
        unique_history.reverse()
        for index in range(len(unique_history)):
            readline.replace_history_item(index+1, unique_history[index])
        for index in reversed(range(len(unique_history)+1, readline.get_current_history_length())):
            readline.remove_history_item(index)