diff --git a/lslopt/lslbasefuncs.py b/lslopt/lslbasefuncs.py index cdd0cb2..4de1cd0 100644 --- a/lslopt/lslbasefuncs.py +++ b/lslopt/lslbasefuncs.py @@ -552,7 +552,7 @@ def InternalTypecast(val, out, InList, f32): if out in (Vector, Quaternion): Z,dim = (ZERO_VECTOR,3) if out == Vector else (ZERO_ROTATION,4) ret = [] - if val[0:1] != u'<': + if not val.startswith(u'<'): return Z val = val[1:] for _ in range(dim): @@ -562,7 +562,8 @@ def InternalTypecast(val, out, InList, f32): if match.group(1): ret.append(F32(float.fromhex(match.group(0)), f32)) elif match.group(2): - ret.append(Indet if match.group(0)[0] == '-' else NaN) + ret.append(Indet if match.group(0).startswith(u'-') else + NaN) else: ret.append(F32(float(match.group(0)), f32)) if len(ret) < dim: diff --git a/lslopt/lslloadlib.py b/lslopt/lslloadlib.py index f924234..1b136ce 100644 --- a/lslopt/lslloadlib.py +++ b/lslopt/lslloadlib.py @@ -175,7 +175,8 @@ def LoadLibrary(builtins = None, fndata = None): value = None elif typ in (u'vector', u'rotation'): try: - if value[0:1] != u'<' or value[-1:] != u'>': + if not (value.startswith(u'<') and value.endswith(u'>') + ): raise ValueError value = value[1:-1].split(u',') if len(value) != (3 if typ == 'vector' else 4): @@ -205,7 +206,8 @@ def LoadLibrary(builtins = None, fndata = None): u" line %d: %s" % (ubuiltins, linenum, line)) else: assert typ == u'list' - if value[0:1] != u'[' or value[-1:] != u']': + if not (value.startswith(u'[') and value.endswith(u']') + ): warning(u"Invalid list value in %s, line %d: %s" % (ubuiltins, linenum, line)) elif value[1:-1].strip() != '':