summaryrefslogtreecommitdiff
path: root/src/strings
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-10-31 15:06:05 -0700
committerBen Longbons <b.r.longbons@gmail.com>2013-10-31 15:06:05 -0700
commitbe870a6ed796af00a3c1c2f23cd189bf33fc6a4c (patch)
tree6d5a7b3efbe833d0eed0067107ff5e9a2eb1d6b0 /src/strings
parent6c389b7f9eb0f40a017951e55834223ac9d7f707 (diff)
downloadtmwa-be870a6ed796af00a3c1c2f23cd189bf33fc6a4c.tar.gz
tmwa-be870a6ed796af00a3c1c2f23cd189bf33fc6a4c.tar.bz2
tmwa-be870a6ed796af00a3c1c2f23cd189bf33fc6a4c.tar.xz
tmwa-be870a6ed796af00a3c1c2f23cd189bf33fc6a4c.zip
Add some more pretty printers
Diffstat (limited to 'src/strings')
-rw-r--r--src/strings/vstring.py17
-rw-r--r--src/strings/xstring.py18
2 files changed, 35 insertions, 0 deletions
diff --git a/src/strings/vstring.py b/src/strings/vstring.py
new file mode 100644
index 0000000..39e657b
--- /dev/null
+++ b/src/strings/vstring.py
@@ -0,0 +1,17 @@
+class VString(object):
+ ''' print a VString
+ '''
+ __slots__ = ('_value')
+ name = 'strings::VString'
+ enabled = True
+
+ def __init__(self, value):
+ self._value = value
+
+ def to_string(self):
+ b = self._value['_data']
+ b = b.cast(b.type.target().pointer())
+ n = self._value.type.template_argument(0)
+ s = self._value['_special']
+ d = n - s
+ return b.lazy_string(length=d)
diff --git a/src/strings/xstring.py b/src/strings/xstring.py
new file mode 100644
index 0000000..92cb78b
--- /dev/null
+++ b/src/strings/xstring.py
@@ -0,0 +1,18 @@
+class XString(object):
+ ''' print a XString
+ '''
+ __slots__ = ('_value')
+ name = 'strings::XString'
+ enabled = True
+
+ def __init__(self, value):
+ self._value = value
+
+ def children(self):
+ yield 'base', self._value['_base']
+
+ def to_string(self):
+ b = self._value['_b']['_ptr']
+ e = self._value['_e']['_ptr']
+ d = e - b
+ return b.lazy_string(length=d)