From 0676dfdce06f6b01f35d76a4fb77c77c03468366 Mon Sep 17 00:00:00 2001 From: "Kurt B. Kaiser" Date: Thu, 3 Feb 2005 01:37:14 +0000 Subject: Add config-main.def option to make the 'history' feature non-cyclic. Default remains cyclic. Python Patch 914546 Noam Raphael. M IdleHistory.py M NEWS.txt M config-main.def --- Lib/idlelib/IdleHistory.py | 20 +++++++++++++++----- Lib/idlelib/NEWS.txt | 3 +++ Lib/idlelib/config-main.def | 7 +++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Lib/idlelib/IdleHistory.py b/Lib/idlelib/IdleHistory.py index 46e70e1..f672db7 100644 --- a/Lib/idlelib/IdleHistory.py +++ b/Lib/idlelib/IdleHistory.py @@ -1,3 +1,5 @@ +from configHandler import idleConf + class History: def __init__(self, text, output_sep = "\n"): @@ -6,6 +8,7 @@ class History: self.history_prefix = None self.history_pointer = None self.output_sep = output_sep + self.cyclic = idleConf.GetOption("main", "History", "cyclic", 1, "bool") text.bind("<>", self.history_prev) text.bind("<>", self.history_next) @@ -40,7 +43,11 @@ class History: if reverse: pointer = nhist else: - pointer = -1 + if self.cyclic: + pointer = -1 + else: + self.text.bell() + return nprefix = len(prefix) while 1: if reverse: @@ -49,10 +56,13 @@ class History: pointer = pointer + 1 if pointer < 0 or pointer >= nhist: self.text.bell() - if self._get_source("iomark", "end-1c") != prefix: - self.text.delete("iomark", "end-1c") - self._put_source("iomark", prefix) - pointer = prefix = None + if not self.cyclic and pointer < 0: + return + else: + if self._get_source("iomark", "end-1c") != prefix: + self.text.delete("iomark", "end-1c") + self._put_source("iomark", prefix) + pointer = prefix = None break item = self.history[pointer] if item[:nprefix] == prefix and len(item) > nprefix: diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 8804bc1..0670255 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,6 +3,9 @@ What's New in IDLE 1.2a0? *Release date: XX-XXX-2005* +- Add config-main option to make the 'history' feature non-cyclic. + Default remains cyclic. Python Patch 914546 Noam Raphael. + - Removed ability to configure tabs indent from Options dialog. This 'feature' has never worked and no one has complained. It is still possible to set a default tabs (v. spaces) indent 'manually' via config-main.def (or to turn on diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def index b8667b8..5ddd098 100644 --- a/Lib/idlelib/config-main.def +++ b/Lib/idlelib/config-main.def @@ -18,8 +18,8 @@ # ~/.idlerc/config-highlight.cfg the user highlighting config file # ~/.idlerc/config-keys.cfg the user keybinding config file # -# On Windows2000 and Windows XP the .idlerc directory is at -# Documents and Settings\\.idlerc +# On Windows2000 and Windows XP the .idlerc directory is at +# Documents and Settings\\.idlerc # # On Windows98 it is at c:\.idlerc # @@ -73,4 +73,7 @@ name= IDLE Classic default= 1 name= IDLE Classic Windows +[History] +cyclic=1 + [HelpFiles] -- cgit v0.12