From 4d6e0ee7eaeda61de245d541ad26c398be540282 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 31 Oct 2013 03:13:46 +0000 Subject: fix problem with int stack names --- diff --git a/TurtleArt/tabasics.py b/TurtleArt/tabasics.py index a80b3ae..ce84a49 100644 --- a/TurtleArt/tabasics.py +++ b/TurtleArt/tabasics.py @@ -1039,11 +1039,11 @@ buttons')) self.tw.lc.def_prim( 'nop3', 1, Primitive(self.tw.lc.prim_define_stack, - arg_descs=[ArgSlot(TYPE_STRING)])) + arg_descs=[ArgSlot(TYPE_OBJECT)])) primitive_dictionary['stack'] = Primitive( self.tw.lc.prim_invoke_stack, - arg_descs=[ArgSlot(TYPE_STRING)]) + arg_descs=[ArgSlot(TYPE_OBJECT)]) palette.add_block('stack', style='basic-style-1arg', label=_('action'), @@ -1052,7 +1052,8 @@ buttons')) logo_command='action', default=_('action'), help_string=_('invokes named action stack')) - self.tw.lc.def_prim('stack', 1, primitive_dictionary['stack'], True) + self.tw.lc.def_prim('stack', 1, + primitive_dictionary['stack'], True) palette.add_block('storeinbox1', hidden=True, diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index a0d12c2..2b297ef 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -818,8 +818,11 @@ class LogoCode: return name else: # make sure '5' and '5.0' point to the same action stack - if isinstance(name, (int, long)): - name = float(name) + if isinstance(name, (int, long, float)): + if int(name) == name: + name = int(name) + else: + name = float(name) return 'stack3' + str(name) def load_heap(self, path): diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py index 634ee01..ef80877 100644 --- a/TurtleArt/tautils.py +++ b/TurtleArt/tautils.py @@ -819,7 +819,7 @@ def get_stack_name(blk): return 'stack2' elif top_block.name == 'hat': try: - return top_block.connections[1].values[0] + return str(top_block.connections[1].values[0]) except (AttributeError, TypeError, IndexError): # AttributeError: t_b has no attribute 'connections' or t_b.c[1] # has no attribute 'value' -- cgit v0.9.1