Make _sbdir absolute. Add locks to read maps.

Add locks to the read maps to support disabling the select command.

Make the _sbdir etc absolute to let it be referenced from anywhere.
This commit is contained in:
Chris Johns
2013-04-27 20:23:35 +10:00
parent 624954ba0b
commit dbede7322b

View File

@@ -57,10 +57,11 @@ class macros:
if original is None:
self.macros = {}
self.read_maps = []
self.read_map_locked = False
self.write_map = 'global'
self.macros['global'] = {}
self.macros['global']['_cwd'] = ('dir', 'required', path.shell(os.getcwd()))
self.macros['global']['_sbdir'] = ('dir', 'required', path.shell(sbdir))
self.macros['global']['_cwd'] = ('dir', 'required', path.abspath(os.getcwd()))
self.macros['global']['_sbdir'] = ('dir', 'required', path.abspath(sbdir))
else:
self.macros = {}
for m in original.macros:
@@ -69,6 +70,7 @@ class macros:
for k in original.macros[m]:
self.macros[m][k] = original.macros[m][k]
self.read_maps = sorted(original.read_maps)
self.read_map_locked = original.read_map_locked
self.write_map = original.write_map
if name is not None:
self.load(name)
@@ -404,19 +406,21 @@ class macros:
return keys
def set_read_map(self, _map):
if _map in self.macros:
if _map not in self.get_read_maps():
rm = '%04d_%s' % (len(self.read_maps), _map)
self.read_maps = sorted(self.read_maps + [rm])
return True
if not self.read_map_locked:
if _map in self.macros:
if _map not in self.get_read_maps():
rm = '%04d_%s' % (len(self.read_maps), _map)
self.read_maps = sorted(self.read_maps + [rm])
return True
return False
def unset_read_map(self, _map):
if _map in self.get_read_maps():
for i in range(0, len(self.read_maps)):
if '%04d_%s' % (i, _map) == self.read_maps[i]:
self.read_maps.pop(i)
return True
if not self.read_map_locked:
if _map in self.get_read_maps():
for i in range(0, len(self.read_maps)):
if '%04d_%s' % (i, _map) == self.read_maps[i]:
self.read_maps.pop(i)
return True
return False
def set_write_map(self, map):
@@ -425,6 +429,12 @@ class macros:
return True
return False
def lock_read_map(self, _map):
self.read_map_locked = True
def unlock_read_map(self, _map):
self.read_map_locked = False
if __name__ == "__main__":
import copy
import sys