diff --git a/src/base/settings.py b/src/base/settings.py index d75ca8a3..56fd23e1 100644 --- a/src/base/settings.py +++ b/src/base/settings.py @@ -28,14 +28,23 @@ from bt.message import error from bt.file import fopen +# Return true if settings contains key +def has(key): + global settings + return (key in settings.keys()) + + # Return the value at key def get(key, all=False): + key = key.upper() global settings + if has(key)==False: + return None if(all == False): - return settings[key.upper()][0] + return settings[key][0] else: - return settings[key.upper()] + return settings[key] # Replace settings[key] with value @@ -56,6 +65,13 @@ def pop(key): return None +def delete(key): + key = key.upper() + global settings + if has(key) == True: + del settings[key] + + # Read settings from file def readfile(file): write("Reading file: "+file,True) diff --git a/src/core/cli.py b/src/core/cli.py index 30347ffd..55051709 100644 --- a/src/core/cli.py +++ b/src/core/cli.py @@ -20,7 +20,6 @@ import cline.message import settings global maxyx, stdscr, thread -threads = [] # Called every time the plugin is enabled @@ -65,6 +64,13 @@ def close(): #thread.join() write("CLI has been stopped", True) + # Delete keys that settings no longer needs + settings.delete("stdscr") + settings.delete("maxyx") + settings.delete("prompt") + settings.delete("clinex") + settings.delete("cliney") + # Called when the plugin needs to perform some action def run(args=None): diff --git a/src/core/cline/message.py b/src/core/cline/message.py index b364b0f7..d3bc46a1 100644 --- a/src/core/cline/message.py +++ b/src/core/cline/message.py @@ -33,7 +33,7 @@ def insert(string): if len(string) >= maxyx[1]: stdscr.addstr(y, 0, string[0:maxyx[1]]) - advance(y, maxyx[0], stdscr) + y = advance(y, maxyx[0], stdscr) insert(string[maxyx[1]:]) return @@ -45,6 +45,8 @@ def insert(string): # Replace the string on the current line def disp(string): stdscr = settings.get("stdscr") + if stdscr == None: + return try: stdscr.addstr(settings.get("cliney"), 0, string) except: